IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クアルコム,インコーポレイテッドの特許一覧

特表2024-509524ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ
<>
  • 特表-ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ 図1
  • 特表-ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ 図2
  • 特表-ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ 図3
  • 特表-ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ 図4
  • 特表-ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ 図5
  • 特表-ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ 図6
  • 特表-ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ 図7
  • 特表-ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-04
(54)【発明の名称】ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ
(51)【国際特許分類】
   H04N 21/431 20110101AFI20240226BHJP
   H04N 21/442 20110101ALI20240226BHJP
   G06T 19/00 20110101ALI20240226BHJP
【FI】
H04N21/431
H04N21/442
G06T19/00 C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023552338
(86)(22)【出願日】2022-03-09
(85)【翻訳文提出日】2023-08-29
(86)【国際出願番号】 US2022071056
(87)【国際公開番号】W WO2022192886
(87)【国際公開日】2022-09-15
(31)【優先権主張番号】63/159,379
(32)【優先日】2021-03-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/654,023
(32)【優先日】2022-03-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】イメド・ボウアジジ
(72)【発明者】
【氏名】トーマス・ストックハンマー
【テーマコード(参考)】
5B050
5C164
【Fターム(参考)】
5B050AA03
5B050BA09
5B050BA11
5B050CA08
5B050DA01
5B050EA10
5B050EA26
5B050FA02
5C164UB10S
5C164UB41P
5C164UB81P
5C164UC21S
5C164YA11
5C164YA21
(57)【要約】
メディアデータを取り出すための例示的なデバイスは、メディアデータを記憶するように構成されたメモリと、回路機構で実装されるとともに、プレゼンテーションエンジンを実行するように構成された1つまたは複数のプロセッサとを含み、プレゼンテーションエンジンは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、オブジェクト衝突データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止することとを行うように構成される。
【特許請求の範囲】
【請求項1】
メディアデータを取り出す方法であって、
プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、
前記プレゼンテーションエンジンによって、前記少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信するステップと、
仮想カメラが前記少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、前記プレゼンテーションエンジンによって、ユーザから受信するステップと、
前記カメラ移動データに応答して、前記オブジェクト衝突データを使って、前記プレゼンテーションエンジンによって、前記仮想カメラが前記少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように、前記仮想カメラのロケーションを更新するステップとを含む方法。
【請求項2】
前記仮想カメラの前記ロケーションを更新するステップは、前記仮想カメラが前記少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップを含む、請求項1に記載の方法。
【請求項3】
前記オブジェクト衝突データを受信するステップは、MPEG_mesh_collision拡張を受信するステップを含む、請求項1に記載の方法。
【請求項4】
前記MPEG_mesh_collision拡張は、前記少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、請求項3に記載の方法。
【請求項5】
前記MPEG_mesh_collision拡張は、前記少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、前記3Dメッシュ用の材料、または前記仮想カメラが前記3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、請求項4に記載の方法。
【請求項6】
前記オブジェクト衝突データを受信するステップは、
前記少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、
前記少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、
衝突するオブジェクトが前記少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または
前記少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信するステップを含む、請求項1に記載の方法。
【請求項7】
前記少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、請求項1に記載の方法。
【請求項8】
前記ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、請求項1に記載の方法。
【請求項9】
前記ストリーミングされるメディアデータを受信するステップは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して前記ストリーミングされるメディアデータを要求するステップを含む、請求項1に記載の方法。
【請求項10】
前記オブジェクト衝突データはMPEGシーン記述の中に含まれる、請求項1に記載の方法。
【請求項11】
メディアデータを取り出すためのデバイスであって、
メディアデータを記憶するように構成されたメモリと、
回路機構で実装されるとともに、プレゼンテーションエンジンを実行するように構成された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、
前記少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、
仮想カメラが前記少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、
前記カメラ移動データに応答して、前記オブジェクト衝突データを使って、前記仮想カメラが前記少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように前記仮想カメラのロケーションを更新することとを行うように構成される、デバイス。
【請求項12】
前記仮想カメラの前記ロケーションを更新するために、前記プレゼンテーションエンジンは、前記仮想カメラが前記少なくとも1つの仮想固体オブジェクトの中を通るのを防止するように構成される、請求項11に記載のデバイス。
【請求項13】
前記オブジェクト衝突データを受信するために、前記プレゼンテーションエンジンは、MPEG_mesh_collision拡張を受信するように構成される、請求項11に記載のデバイス。
【請求項14】
前記MPEG_mesh_collision拡張は、前記少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、請求項13に記載のデバイス。
【請求項15】
前記MPEG_mesh_collision拡張は、前記少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、前記3Dメッシュ用の材料、または前記仮想カメラが前記3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、請求項14に記載のデバイス。
【請求項16】
前記オブジェクト衝突データを受信するために、前記プレゼンテーションエンジンは、
前記少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、
前記少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、
衝突するオブジェクトが前記少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または
前記少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信するように構成される、請求項11に記載のデバイス。
【請求項17】
前記少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、請求項11に記載のデバイス。
【請求項18】
前記ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、請求項11に記載のデバイス。
【請求項19】
前記ストリーミングされるメディアデータを受信するために、前記プレゼンテーションエンジンは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して前記ストリーミングされるメディアデータを要求するように構成される、請求項11に記載のデバイス。
【請求項20】
前記オブジェクト衝突データはMPEGシーン記述の中に含まれる、請求項11に記載のデバイス。
【請求項21】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、プロセッサに、
少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、
前記少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、
仮想カメラが前記少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、
前記カメラ移動データに応答して、前記オブジェクト衝突データを使って、前記仮想カメラが前記少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように前記仮想カメラのロケーションを更新することとを行わせる、コンピュータ可読記憶媒体。
【請求項22】
前記プロセッサに前記仮想カメラの前記ロケーションを更新させる前記命令は、前記プロセッサに、前記仮想カメラが前記少なくとも1つの仮想固体オブジェクトの中を通るのを防止させる命令を含む、請求項21に記載のコンピュータ可読記憶媒体。
【請求項23】
前記プロセッサに、前記オブジェクト衝突データを受信させる前記命令は、前記プロセッサに、MPEG_mesh_collision拡張を受信させる命令を含む、請求項21に記載のコンピュータ可読記憶媒体。
【請求項24】
前記MPEG_mesh_collision拡張は、前記少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、請求項23に記載のコンピュータ可読記憶媒体。
【請求項25】
前記MPEG_mesh_collision拡張は、前記少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、前記3Dメッシュ用の材料、または前記仮想カメラが前記3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、請求項23に記載のコンピュータ可読記憶媒体。
【請求項26】
前記プロセッサに、前記オブジェクト衝突データを受信させる前記命令は、前記プロセッサに、
前記少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、
前記少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、
衝突するオブジェクトが前記少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または
前記少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信させる命令を含む、請求項21に記載のコンピュータ可読記憶媒体。
【請求項27】
前記少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、請求項21に記載のコンピュータ可読記憶媒体。
【請求項28】
前記ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、請求項21に記載のコンピュータ可読記憶媒体。
【請求項29】
前記プロセッサに、前記ストリーミングされるメディアデータを受信させる前記命令は、前記プロセッサに、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して前記ストリーミングされるメディアデータを要求させる命令を含む、請求項21に記載のコンピュータ可読記憶媒体。
【請求項30】
前記オブジェクト衝突データはMPEGシーン記述の中に含まれる、請求項21に記載のコンピュータ可読記憶媒体。
【請求項31】
メディアデータを取り出すためのデバイスであって、
少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するための手段と、
前記少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信するための手段と、
仮想カメラが前記少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するための手段と、
前記カメラ移動データに応答して、前記オブジェクト衝突データを使って、前記仮想カメラが前記少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように前記仮想カメラのロケーションを更新するための手段とを備えるデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2022年3月8日に出願された米国特許出願第17/654,023号、および2021年3月10日に出願された米国仮出願第63/159,379号の優先権を主張し、その各々の内容全体が参照により本明細書に組み込まれる。2022年3月8日に出願された米国特許出願第17/654,023号は、2021年3月10日に出願された米国仮出願第63/159,379号の利益を主張する。
【0002】
本開示は、符号化ビデオデータの記憶および転送に関する。
【背景技術】
【0003】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、ビデオ会議デバイスなどを含む、幅広いデバイスに組み込むことができる。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送受信するために、MPEG-2、MPEG-4、ITU-T H.263またはITU-T H.264/MPEG-4, Part10、アドバンストビデオコーディング(AVC)、ITU-T H.265(高効率ビデオコーディング(HEVC)とも呼ばれる)によって定められた規格、および、そのような規格の拡張に記載されているものなどのビデオ圧縮技法を実装する。
【0004】
ビデオ圧縮技法は、空間的予測および/または時間的予測を実施し、ビデオシーケンスに固有の冗長性を低減または除去する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスがマクロブロックに区分され得る。各マクロブロックはさらに区分され得る。イントラコード化(I)フレームまたはスライスにおけるマクロブロックは、近接マクロブロックに関する空間的予測を使用して符号化される。インターコード化(PまたはB)フレームまたはスライスにおけるマクロブロックは、同じフレームまたはスライスにおける近接マクロブロックに関する空間的予測または他の参照フレームに関する時間的予測を使用し得る。
【0005】
ビデオデータが符号化された後、ビデオデータは送信または記憶のためにパケット化され得る。ビデオデータは、AVCなどの、国際標準化機構(ISO)ベースメディアファイルフォーマットおよびその拡張などの、様々な規格のいずれかに準拠するビデオファイルへと、アセンブルされ得る。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】R. Fielding他、RFC 2616、「Hypertext Transfer Protocol-HTTP/1.1」、Network Working Group、IETF、1999年6月
【非特許文献2】T. Paila他、「FLUTE-File Delivery over Unidirectional Transport」、Network Working Group、RFC 6726、2012年11月
【発明の概要】
【課題を解決するための手段】
【0007】
概して、本開示は、インタラクティブメディアデータのストリーミングに関連した技法について記載する。そのようなインタラクティブメディアデータは、たとえば、仮想現実、拡張現実、または他のそのようなインタラクティブコンテンツ、たとえば、他の3次元ビデオコンテンツであってよい。最近のMPEGシーン記述要素は、glTF2.0における時限メディアへのサポートを含む。メディアアクセス機能(MAF)は、プレゼンテーションエンジンにアプリケーションプログラミングインターフェース(API)を提供し、このAPIを通して、プレゼンテーションエンジンは時限メディアを要求し得る。MAFを実行する取出しユニットは、取り出された時限メディアデータを処理し、処理されたメディアデータを、循環バッファを通して、所望のフォーマットでプレゼンテーションエンジンに渡し得る。現在のMPEGシーン記述は、シーンメディアデータを6自由度(6DoF)で消費することをユーザに認めている。したがって、ユーザは一般的に、3Dシーンの中で自由に(たとえば、3Dシーンに表示される壁を通って)動くことができる。ただし、コンテンツ制作者は、たとえば、表示される壁または他のオブジェクトを通る移動を防止するために、いくつかのエリアへの、閲覧者の移動に対して限度を課すことを望む場合がある。本開示は、そのような限度を課すための技法について記載し、これらの技法は、ユーザが仮想世界における障害物の中を通るのを防止することによって、ユーザのエクスペリエンスがより現実的にされ得るので、エクスペリエンスを向上させることができる。
【0008】
一例では、メディアデータを取り出す方法は、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、3次元シーン用のカメラ制御データを受信するステップであって、カメラ制御データは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するための制約を定義するデータを含む、ステップと、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するステップと、カメラ移動データに応答して、カメラ制御データを使って、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップとを含む。
【0009】
別の例では、メディアデータを取り出すためのデバイスは、メディアデータを記憶するように構成されたメモリと、回路機構で実装されるとともに、プレゼンテーションエンジンを実行するように構成された1つまたは複数のプロセッサとを含み、プレゼンテーションエンジンは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、3次元シーン用のカメラ制御データを受信することであって、カメラ制御データは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するための制約を定義するデータを含む、ことと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、カメラ制御データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止することとを行うように構成される。
【0010】
別の例では、命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されると、クライアントデバイスのプロセッサに、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、3次元シーン用のカメラ制御データを受信することであって、カメラ制御データは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するための制約を定義するデータを含む、ことと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、カメラ制御データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止することとを行わせる。
【0011】
別の例では、メディアデータを取り出すためのデバイスは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するための手段と、3次元シーン用のカメラ制御データを受信するための手段であって、カメラ制御データは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するための制約を定義するデータを含む、手段と、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するための手段と、カメラ移動データに応答して、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するのにカメラ制御データを使うための手段とを含む。
【0012】
別の例では、メディアデータを取り出す方法は、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信するステップと、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するステップと、カメラ移動データに応答して、オブジェクト衝突データを使って、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップとを含む。
【0013】
別の例では、メディアデータを取り出すためのデバイスは、メディアデータを記憶するように構成されたメモリと、回路機構で実装されるとともに、プレゼンテーションエンジンを実行するように構成された1つまたは複数のプロセッサとを含み、プレゼンテーションエンジンは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、オブジェクト衝突データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止することとを行うように構成される。
【0014】
別の例では、コンピュータ可読記憶媒体は命令を記憶し、命令は、実行されると、クライアントデバイスのプロセッサに、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、オブジェクト衝突データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止することとを行わせる。
【0015】
別の例では、メディアデータを取り出すためのデバイスは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するための手段と、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信するための手段と、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するための手段と、カメラ移動データに応答して、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するのにオブジェクト衝突データを使うための手段とを含む。
【0016】
1つまたは複数の例の詳細が、添付図面および以下の説明に記載される。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0017】
図1】ネットワークを介してメディアデータをストリーミングするための技法を実装する例示的なシステムを示すブロック図である。
図2図1の取出しユニットの構成要素の例示的なセットをより詳細に示すブロック図である。
図3】例示的なマルチメディアコンテンツの要素を示す概念図である。
図4】表現のセグメントに対応し得る例示的なビデオファイルの要素を示すブロック図である。
図5】本開示の技法による、境界ボリュームをもつ例示的なカメラ経路セグメントを示す概念図である。
図6】この例では椅子である例示的な仮想オブジェクトを示す概念図である。
図7】本開示の技法による、メディアデータを取り出す例示的な方法を示すフローチャートである。
図8】本開示の技法による、メディアデータを取り出す例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【0018】
インタラクティブメディアデータは、ネットワークを介してストリーミングされ得る。たとえば、クライアントデバイスが、ユニキャスト、ブロードキャスト、マルチキャストなどを使って、インタラクティブメディアデータを取り出し得る。インタラクティブメディアデータは、たとえば、エクステンデッドリアリティ(XR)、拡張現実(AR)、仮想現実(VR)などのための3次元(3D)メディアデータであってよい。したがって、ユーザに対して提示されると、ユーザは、インタラクティブメディアデータに従ってレンダリングされた3D仮想シーンをナビゲートすることができる。
【0019】
MPEGシーン記述は、仮想世界もしくはエクスペリエンスのため、たとえば、XR、VR、AR、または他のインタラクティブメディアエクスペリエンスのための3次元(3D)シーンを記述し得る。本開示の技法によると、MPEGシーン記述は、椅子、壁、テーブル、カウンタ、ドア、窓、または他の固体オブジェクトなど、3Dシーン内のオブジェクトを記述し得る。本開示は、MPEGシーン記述(またはデータの他のそのような記述セット)が、仮想カメラ移動に対して制限を課すため、たとえば、カメラが壁などの固体オブジェクトの中を通るのを防止するためにそれによって強化され得る技法について記載する。
【0020】
特に、シーン記述は、カメラがそれに沿って動くことを認められる経路のセットを記述し得る。経路は、経路セグメントを通して接続されるアンカーポイントのセットとして記述され得る。カメラ制御の表現力強化のために、各経路セグメントは、経路に沿って、ある程度の運動の自由を認める境界ボリュームで強化され得る。
【0021】
追加または代替として、シーン記述は、シーンの中の仮想固体オブジェクトを記述し得る。シーン記述は、たとえば、オブジェクトの境界、オブジェクトがユーザもしくは他のオブジェクトとの衝突によって影響され得るかどうか(そのような衝突に応答して、オブジェクトが、動くか、それとも静止したままであるか、など)、衝突するオブジェクトがオブジェクトとどのように相互作用するかを表す、オブジェクト用の材料、および/または衝突に応答して再生もしくはオブジェクトに適用されるべきアニメーションを表すアニメーションデータを表す情報を提供し得る。
【0022】
本開示の技法は、ISOベースメディアファイルフォーマット、スケーラブルビデオコーディング(SVC)ファイルフォーマット、アドバンストビデオコーディング(AVC)ファイルフォーマット、第3世代パートナーシッププロジェクト(3GPP(登録商標))ファイルフォーマット、および/もしくはマルチビュービデオコーディング(MVC)ファイルフォーマット、または他の同様のビデオファイルフォーマットのいずれかに従ってカプセル化されたビデオデータに準拠するビデオファイルに適用され得る。
【0023】
HTTPストリーミングにおいて、頻繁に使用される動作には、HEAD、GET、および部分GETがある。HEAD動作は、所与のユニフォームリソースロケータ(URL)またはユニフォームリソースネーム(URN)に関連付けられたペイロードを取り出さずに、URLまたはURNに関連付けられたファイルのヘッダを取り出す。GET動作は、所与のURLまたはURNに関連付けられたファイル全体を取り出す。部分GET動作は、入力パラメータとしてバイト範囲を受信し、ファイルの連続した数のバイトを取り出し、この場合、バイトの数は受信されるバイト範囲に対応する。したがって、部分GET動作は1つまたは複数の個々のムービーフラグメントを取得できるので、ムービーフラグメントがHTTPストリーミングのために提供されてよい。ムービーフラグメントでは、異なるトラックのいくつかのトラックフラグメントが存在してよい。HTTPストリーミングでは、メディアプレゼンテーションは、クライアントにとってアクセス可能なデータの構造化された集合体であり得る。クライアントは、メディアデータ情報を要求およびダウンロードして、ユーザにストリーミングサービスを提示することができる。
【0024】
HTTPストリーミングを使用して3GPPデータをストリーミングする例では、マルチメディアコンテンツのビデオおよび/またはオーディオデータに関して複数の表現が存在し得る。以下で説明するように、異なる表現は、異なるコーディング特性(たとえば、ビデオコーディング規格の異なるプロファイルまたはレベル)、異なるコーディング規格またはコーディング規格の拡張(マルチビューおよび/もしくはスケーラブル拡張など)、あるいは異なるビットレートに対応し得る。そのような表現のマニフェストは、メディアプレゼンテーション記述(MPD)データ構造において定義され得る。メディアプレゼンテーションは、HTTPストリーミングクライアントデバイスにとってアクセス可能なデータの構造化された集合体に対応し得る。HTTPストリーミングクライアントデバイスは、メディアデータ情報を要求およびダウンロードして、クライアントデバイスのユーザにストリーミングサービスを提示することができる。メディアプレゼンテーションは、MPDの更新を含み得るMPDデータ構造で記述され得る。
【0025】
メディアプレゼンテーションは、1つまたは複数の期間のシーケンスを含み得る。各期間は、次の期間の開始まで、または最後の期間の場合にはメディアプレゼンテーションの終了まで及び得る。各期間は、同じメディアコンテンツのための1つまたは複数の表現を含み得る。表現は、オーディオ、ビデオ、時限のテキスト、または他のそのようなデータのいくつかの代替符号化バージョンのうちの1つであり得る。表現は、符号化のタイプ、たとえば、ビデオデータのビットレート、解像度、および/またはコーデック、ならびにオーディオデータのビットレート、言語、および/またはコーデックによって異なる場合がある。表現という用語は、マルチメディアコンテンツのある特定の期間に対応し、ある特定のやり方で符号化された、符号化オーディオデータまたは符号化ビデオデータのあるセクションを指すために使用される場合がある。
【0026】
ある特定の期間の表現は、表現が属する適応セットを示すMPD内の属性によって示されるグループに割り当てられ得る。同じ適応セット内の表現は、概して、クライアントデバイスが、たとえば帯域幅適応を実施するためにこれらの表現の間で動的かつシームレスに切り替わることができる点で、互いに対する代替物と見なされる。たとえば、ある特定の期間のビデオデータの各表現は、同じ適応セットに割り当てられ得るので、表現のうちのいずれもが、対応する期間のマルチメディアコンテンツの、ビデオデータまたはオーディオデータなど、メディアデータを提示するように復号するために選択され得る。いくつかの例では、1つの期間内のメディアコンテンツは、存在する場合には、グループ0からの1つの表現、または各非ゼロのグループからの最大でも1つの表現の組合せのいずれかによって表され得る。ある期間の各表現のタイミングデータは、期間の開始時間に対して表され得る。
【0027】
表現は1つまたは複数のセグメントを含み得る。各表現は、初期化セグメントを含んでよく、または表現の各セグメントは、自己初期化するものであってよい。初期化セグメントは、存在する場合、表現にアクセスするための初期化情報を含み得る。一般に、初期化セグメントは、メディアデータを含まない。セグメントは、ユニフォームリソースロケータ(URL)、ユニフォームリソースネーム(URN)、またはユニフォームリソース識別子(URI)のような、識別子によって一意に参照され得る。MPDは、各セグメントのための識別子を提供し得る。いくつかの例では、MPDはまた、URL、URN、またはURIによってアクセス可能なファイル内のセグメントのためのデータに対応し得る、range属性の形式で、バイト範囲を提供することができる。
【0028】
異なるタイプのメディアデータに関して実質的に同時に取り出すために異なる表現を選択することができる。たとえば、クライアントデバイスは、セグメントを取り出すオーディオ表現、ビデオ表現、および時限のテキスト表現を選択することができる。いくつかの例では、クライアントデバイスは、帯域幅適応を実施するために特定の適応セットを選択することができる。すなわち、クライアントデバイスは、ビデオ表現を含む適応セット、オーディオ表現を含む適応セット、および/または時限のテキストを含む適応セットを選択することができる。代替として、クライアントデバイスは、あるタイプのメディア(たとえば、ビデオ)に関する適応セットを選択し、他のタイプのメディア(たとえば、オーディオおよび/または時限のテキスト)に関する表現を直接選択することができる。
【0029】
図1は、ネットワークを介してメディアデータをストリーミングするための技法を実装する例示的なシステム10を示すブロック図である。この例では、システム10は、コンテンツ準備デバイス20、サーバデバイス60、およびクライアントデバイス40を含む。クライアントデバイス40およびサーバデバイス60は、インターネットを含み得るネットワーク74によって通信可能に結合される。いくつかの例では、コンテンツ準備デバイス20およびサーバデバイス60も、ネットワーク74もしくは別のネットワークによって結合されてよく、または直接通信可能に結合されてよい。いくつかの例では、コンテンツ準備デバイス20およびサーバデバイス60は、同じデバイスを含み得る。
【0030】
図1の例では、コンテンツ準備デバイス20は、オーディオソース22とビデオソース24とを含む。オーディオソース22は、たとえば、オーディオエンコーダ26によって符号化されるべきキャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替として、オーディオソース22は、以前に記録されたオーディオデータを記憶する記憶媒体、コンピュータ化されたシンセサイザのようなオーディオデータ生成器、またはオーディオデータの任意の他のソースを備え得る。ビデオソース24は、ビデオエンコーダ28によって符号化されるべきビデオデータを生成するビデオカメラ、以前に記録されたビデオデータで符号化された記憶媒体、コンピュータグラフィックスソースのようなビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。コンテンツ準備デバイス20は必ずしも、すべての例において、サーバデバイス60に通信可能に結合されるとは限らないが、サーバデバイス60によって読み取られる別個の媒体にマルチメディアコンテンツを記憶する場合がある。
【0031】
生のオーディオデータおよびビデオデータは、アナログデータまたはデジタルデータを含み得る。アナログデータは、オーディオエンコーダ26および/またはビデオエンコーダ28によって符号化される前にデジタル化され得る。オーディオソース22は、話している参加者から、その話している参加者が話している間オーディオデータを取得することができ、ビデオソース24は、話している参加者のビデオデータを同時に取得することができる。他の例では、オーディオソース22は、記憶されたオーディオデータを含むコンピュータ可読記憶媒体を備えてよく、ビデオソース24は、記憶されたビデオデータを含むコンピュータ可読記憶媒体を備え得る。このように、本開示で説明される技術は、ライブ、ストリーミング、リアルタイムオーディオデータ、およびリアルタイムビデオデータに適用され得、または、アーカイブされた事前に記録されたオーディオデータ、およびアーカイブされた事前に記録されたビデオデータに適用され得る。
【0032】
ビデオフレームに対応するオーディオフレームは、一般に、ビデオフレーム内に含まれるビデオソース24によってキャプチャ(または、生成)されたビデオデータと同時に、オーディオソース22によってキャプチャ(または、生成)されたオーディオデータを含むオーディオフレームである。たとえば、話している参加者が一般に話すことによってオーディオデータを生成している間、オーディオソース22はオーディオデータをキャプチャし、ビデオソース24は同時に、すなわち、オーディオソース22がオーディオデータをキャプチャしている間に、話している参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、1つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは、一般に、オーディオデータおよびビデオデータが同時にキャプチャされた状況に対応し、その状況に対して、オーディオフレームおよびビデオフレームがそれぞれ、同時にキャプチャされたオーディオデータおよびビデオデータを含む。
【0033】
いくつかの例では、オーディオエンコーダ26は、各符号化オーディオフレームにおいて、符号化オーディオフレームに関するオーディオデータが記録された時間を表すタイムスタンプを符号化することができ、同様に、ビデオエンコーダ28は、各符号化ビデオフレームにおいて、符号化ビデオフレームに関するビデオデータが記録された時間を表すタイムスタンプを符号化することができる。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを含むオーディオフレームおよび同じタイムスタンプを含むビデオフレームを含み得る。コンテンツ準備デバイス20は、オーディオエンコーダ26および/もしくはビデオエンコーダ28がタイムスタンプを生成する場合がある内部クロック、またはオーディオソース22およびビデオソース24がそれぞれオーディオデータおよびビデオデータをタイムスタンプに関連付けるために使用する場合がある内部クロックを含み得る。
【0034】
いくつかの例では、オーディオソース22は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ26に送ることができ、ビデオソース24は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ28に送ることができる。いくつかの例では、オーディオエンコーダ26は、符号化オーディオデータにおいて、符号化オーディオデータの相対的な時間順序を示すために、オーディオデータが記録された絶対的な時間を必ずしも示すとは限らないが、シーケンス識別子を符号化することができ、同様に、ビデオエンコーダ28も、符号化ビデオデータの相対的な時間順序を示すためにシーケンス識別子を使用することができる。同様に、いくつかの例では、シーケンス識別子がタイムスタンプとともにマップされるか、あるいはタイムスタンプと相関することがある。
【0035】
オーディオエンコーダ26は、一般に、符号化オーディオデータのストリームを生成し、ビデオエンコーダ28は、符号化ビデオデータのストリームを生成する。データの個々の各ストリーム(オーディオかビデオかにかかわらず)は、エレメンタリストリームと呼ばれることがある。エレメンタリストリームは、表現の単一のデジタル的にコーディングされた(場合によっては圧縮された)成分である。たとえば、表現のコード化ビデオまたはオーディオの部分は、エレメンタリストリームであり得る。エレメンタリストリームは、ビデオファイル内にカプセル化される前に、パケット化エレメンタリストリーム(PES)に変換され得る。同じ表現内で、ストリームIDが、あるエレメンタリストリームに属するPESパケットを他のエレメンタリストリームに属するPESパケットと区別するために使用され得る。エレメンタリストリームのデータの基本単位は、パケット化エレメンタリストリーム(PES)パケットである。したがって、コード化ビデオデータは、一般に、エレメンタリビデオストリームに対応する。同様に、オーディオデータは、1つまたは複数のそれぞれのエレメンタリストリームに対応する。
【0036】
ITU-T H.264/AVCおよび来たる高効率ビデオコーディング(HEVC)規格など、多くのビデオコーディング規格は、エラーのないビットストリームのためのシンタックス、意味論、および復号プロセスを定義し、それらのいずれもが、一定のプロファイルまたはレベルに準拠する。ビデオコーディング規格は、一般的にエンコーダを規定しないが、エンコーダは、生成されたビットストリームがデコーダのための規格に準拠することを保証する役割を課される。ビデオコーディング規格のコンテキストでは、「プロファイル」は、アルゴリズム、特徴、またはツールのサブセット、およびこれらに適用される制約に対応する。H.264規格によって定義されるように、たとえば、「プロファイル」は、H.264規格によって指定される全体のビットストリームシンタックスのサブセットである。「レベル」は、たとえば、デコーダメモリおよび計算のような、デコーダのリソース消費の制限に対応し、これは、ピクチャの解像度、ビットレート、およびブロック処理速度に関連する。プロファイルは、profile_idc(プロファイルインジケータ)値によってシグナリングされ得るが、レベルは、level_idc(レベルインジケータ)値によってシグナリングされ得る。
【0037】
たとえば、所与のプロファイルのシンタックスによって課される範囲内で、復号されるピクチャの指定されたサイズのようなビットストリーム内のシンタックス要素のとる値に応じて、エンコーダおよびデコーダの性能に大きい変動を求めることが依然として可能であることを、H.264規格は認める。多くの用途において、特定のプロファイル内のシンタックスのすべての仮想的な使用を扱うことが可能なデコーダを実装するのは、現実的でも経済的でもないことを、H.264規格はさらに認める。したがって、H.264規格は、ビットストリーム内のシンタックス要素の値に課される制約の指定されたセットとして、「レベル」を定義する。これらの制約は、値に対する単純な制限であり得る。代替として、これらの制約は、値の算術的な組合せの制約の形式(たとえば、1秒当たりに復号されるピクチャの数と、ピクチャの高さと、ピクチャの幅との積)をとり得る。個々の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートしてもよいことを、H.264規格はさらに規定する。
【0038】
プロファイルに準拠するデコーダは、普通、プロファイル内で定義されるすべての特徴をサポートする。たとえば、コーディング特徴として、Bピクチャコーディングは、H.264/AVCのベースラインプロファイルではサポートされないが、H.264/AVCの他のプロファイルではサポートされる。あるレベルに準拠するデコーダは、レベル内で定義された制限を超えるリソースを要求しない、あらゆるビットストリームを復号することが可能であるべきである。プロファイルおよびレベルの定義は、説明可能性のために有用であり得る。たとえば、ビデオ送信中、プロファイルおよびレベルの定義のペアが、送信セッション全体に対して取り決められ合意され得る。より具体的には、H.264/AVCにおいて、レベルは、処理される必要があるマクロブロックの数、復号ピクチャバッファ(DPB)のサイズ、コード化ピクチャバッファ(CPB)のサイズ、垂直方向の運動ベクトルの範囲、2つの連続するMB当たりの運動ベクトルの最大の数に対する制限、および、Bブロックが8×8ピクセルよりも小さいサブマクロブロック区分を有し得るかどうかを定義することができる。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうか判断することができる。
【0039】
図1の例では、コンテンツ準備デバイス20のカプセル化ユニット30は、ビデオエンコーダ28からのコード化ビデオデータを含むエレメンタリストリームと、オーディオエンコーダ26からのコード化オーディオデータを含むエレメンタリストリームとを受信する。いくつかの例では、ビデオエンコーダ28およびオーディオエンコーダ26は各々、符号化データからPESパケットを形成するためのパケッタイザを含み得る。他の例では、ビデオエンコーダ28およびオーディオエンコーダ26は各々、符号化データからPESパケットを形成するためのそれぞれのパケッタイザとインターフェースをとる場合がある。さらに他の例では、カプセル化ユニット30は、符号化オーディオデータおよび符号化ビデオデータからPESパケットを形成するためのパケッタイザを含み得る。
【0040】
ビデオエンコーダ28は、種々のやり方でマルチメディアコンテンツのビデオデータを符号化して、ピクセル解像度、フレームレート、様々なコーディング規格に対する準拠、様々なコーディング規格のための様々なプロファイルおよび/もしくはプロファイルのレベルに対する準拠、1つもしくは複数のビューを有する表現(たとえば、2次元または3次元の再生のための)、または他のそのような特性のような、様々な特性を有する様々なビットレートのマルチメディアコンテンツの様々な表現を生成することができる。本開示において使用される表現は、オーディオデータ、ビデオデータ、(たとえば、クローズドキャプション用の)テキストデータ、または他のそのようなデータのうちの1つを含んでもよい。この表現は、オーディオエレメンタリストリームまたはビデオエレメンタリストリームなどのエレメンタリストリームを含み得る。各PESパケットは、PESパケットが属するエレメンタリストリームを特定するstream_idを含み得る。カプセル化ユニット30は、様々な表現のビデオファイル(たとえば、セグメント)へとエレメンタリストリームを組み立てる役割を担う。
【0041】
カプセル化ユニット30は、オーディオエンコーダ26およびビデオエンコーダ28から表現のエレメンタリストリームのためのPESパケットを受信し、PESパケットから対応するネットワーク抽象化層(NAL)ユニットを形成する。コード化ビデオセグメントはNALユニットへと編成される場合があり、NALユニットは、ビデオ電話、記憶、ブロードキャスト、またはストリーミングのような、「ネットワークフレンドリ」なビデオ表現のアドレッシング適用を実現する。NALユニットは、ビデオコーディング層(VCL)NALユニットおよび非VCL NALユニットに分類され得る。VCLユニットは、コア圧縮エンジンを含んでよく、ブロック、マクロブロック、および/またはスライスレベルのデータを含んでよい。他のNALユニットは、非VCL NALユニットであり得る。いくつかの例では、1つの時間インスタンスにおけるコード化ピクチャは、通常は一次コード化ピクチャとして提示され、1つまたは複数のNALユニットを含み得るアクセスユニット内に包含され得る。
【0042】
非VCL NALユニットは、特に、パラメータセットのNALユニットおよびSEI NALユニットを含み得る。パラメータセットは、(シーケンスパラメータセット(SPS)内に)シーケンスレベルヘッダ情報を包含し、(ピクチャパラメータセット(PPS)内に)頻繁には変化しないピクチャレベルヘッダ情報を包含し得る。パラメータセット(たとえば、PPSおよびSPS)があれば、この頻繁には変化しない情報は、各シーケンスまたはピクチャに対して繰り返される必要がなく、したがって、コーディング効率が向上し得る。さらに、パラメータセットの使用が、重要なヘッダ情報の帯域外送信を有効化することができ、エラーの復元のための冗長な送信の必要がなくなる。帯域外送信の例では、パラメータセットのNALユニットが、SEI NALユニットなどの他のNALユニットとは異なるチャネル上で送信され得る。
【0043】
補足強調情報(SEI)は、VCL NALユニットからコード化ピクチャサンプルを復号するために必要ではない情報を包含し得るが、復号、表示、エラーの復元、および他の目的に関係するプロセスを支援し得る。SEIメッセージは、非VCL NALユニットに包含され得る。SEIメッセージは、いくつかの標準仕様の規範的部分であり、したがって、規格に準拠するデコーダの実装において常に必須であるとは限らない。SEIメッセージは、シーケンスレベルSEIメッセージまたはピクチャレベルSEIメッセージであり得る。いくつかのシーケンスレベル情報は、SVCの例におけるスケーラビリティ情報SEIメッセージおよびMVCにおけるビュースケーラビリティ情報SEIメッセージなどのSEIメッセージ内に包含され得る。これらの例示的なSEIメッセージは、たとえば、動作点の抽出および動作点の特性に関する情報を伝達することができる。加えて、カプセル化ユニット30は、表現の特性を記述するメディアプレゼンテーション記述子(MPD)などのマニフェストファイルを形成することができる。カプセル化ユニット30は、拡張可能マークアップ言語(XML)に従ってMPDをフォーマットすることができる。
【0044】
カプセル化ユニット30は、マニフェストファイル(たとえば、MPD)とともに、マルチメディアコンテンツの1つまたは複数の表現のためのデータを出力インターフェース32に提供し得る。出力インターフェース32は、ネットワークインターフェースもしくはユニバーサルシリアルバス(USB)インターフェース、CDもしくはDVDのライターもしくはバーナー、磁気記憶媒体もしくはフラッシュ記憶媒体へのインターフェースのような記憶媒体へ書き込むためのインターフェース、または、メディアデータを記憶もしくは送信するための他のインターフェースを含み得る。カプセル化ユニット30は、マルチメディアコンテンツの表現の各々のデータを出力インターフェース32に提供することができ、出力インターフェース32は、ネットワーク送信または記憶媒体を介してデータをサーバデバイス60に送ることができる。図1の例では、サーバデバイス60は、それぞれのマニフェストファイル66と1つまたは複数の表現68A~68N(表現68)とをそれぞれが含む様々なマルチメディアコンテンツ64を記憶する記憶媒体62を含む。いくつかの例では、出力インターフェース32はネットワーク74にデータを直接送ることもできる。
【0045】
いくつかの例では、表現68は、適応セットに分離され得る。すなわち、表現68の様々なサブセットは、コーデック、プロファイルおよびレベル、解像度、ビューの数、セグメントのファイルフォーマット、たとえば話者による、復号され提示されるべき表現および/またはオーディオデータとともに表示されるべきテキストの言語または他の特性を識別する場合があるテキストタイプ情報、カメラの角度または適応セット内の表現のシーンの現実世界のカメラの視野を表す場合があるカメラ角度情報、特定の視聴者に対するコンテンツの適切性を表すレーティング情報などのような、特性のそれぞれの共通のセットを含み得る。
【0046】
マニフェストファイル66は、特定の適応セットに対応する表現68のサブセットを示すデータ、ならびに適応セットの共通の特性を含み得る。マニフェストファイル66はまた、適応セットの個々の表現のための、ビットレートのような個々の特性を表すデータを含み得る。このようにして、適応セットは、簡略化されたネットワーク帯域幅適応を可能にする場合がある。適応セット内の表現は、マニフェストファイル66の適応セット要素の子要素を使用して示され得る。
【0047】
サーバデバイス60は、要求処理ユニット70およびネットワークインターフェース72を含む。いくつかの例では、サーバデバイス60は、複数のネットワークインターフェースを含み得る。さらに、サーバデバイス60の特徴のいずれかまたはすべては、ルータ、ブリッジ、プロキシデバイス、スイッチ、または他のデバイスなどの、コンテンツ配信ネットワークの他のデバイス上に実装され得る。いくつかの例では、コンテンツ配信ネットワークの中間デバイスは、マルチメディアコンテンツ64のデータをキャッシュし、サーバデバイス60の構成要素に実質的に準拠する構成要素を含み得る。一般に、ネットワークインターフェース72は、ネットワーク74を介してデータを送受信するように構成される。
【0048】
要求処理ユニット70は、記憶媒体62のデータに対するネットワーク要求をクライアントデバイス40のようなクライアントデバイスから受信するように構成される。たとえば、要求処理ユニット70は、R. Fielding他による、RFC 2616、「Hypertext Transfer Protocol-HTTP/1.1」、Network Working Group、IETF、1999年6月に記述されるような、ハイパーテキスト転送プロトコル(HTTP)バージョン1.1を実装する場合がある。すなわち、要求処理ユニット70は、HTTP GETまたは部分GET要求を受信して、それらの要求に応答して、マルチメディアコンテンツ64のデータを提供するように構成され得る。要求は、たとえば、セグメントのURLを使用して、表現68のうちの1つのセグメントを指定することができる。いくつかの例では、要求はまた、セグメントの1つまたは複数のバイト範囲を指定することができ、したがって、部分GET要求を含む。要求処理ユニット70はさらに、表現68のうちの1つのセグメントのヘッダデータを提供するために、HTTP HEAD要求に対応するように構成されてよい。いずれの場合でも、要求処理ユニット70は、クライアントデバイス40のような要求デバイスに、要求されたデータを提供するために、要求を処理するように構成され得る。
【0049】
追加または代替として、要求処理ユニット70は、eMBMSなどのブロードキャストまたはマルチキャストプロトコルを介してメディアデータを配信するように構成され得る。コンテンツ準備デバイス20は、DASHセグメントおよび/またはサブセグメントを、説明したのと実質的に同じやり方で作成することができるが、サーバデバイス60は、これらのセグメントまたはサブセグメントを、eMBMSまたは別のブロードキャストもしくはマルチキャストのネットワークトランスポートプロトコルを使用して配信することができる。たとえば、要求処理ユニット70は、クライアントデバイス40からマルチキャストグループ参加要求を受信するように構成され得る。すなわち、サーバデバイス60は、特定のマルチメディアコンテンツ(たとえば、ライブイベントのブロードキャスト)に関連付けられたマルチキャストグループに関連付けられたインターネットプロトコル(IP)アドレスを、クライアントデバイス40を含むクライアントデバイスに広告し得る。次に、クライアントデバイス40は、マルチキャストグループに加わるための要求を提出することができる。この要求は、ルータがマルチキャストグループに関連付けられたIPアドレス宛のトラフィックをクライアントデバイス40などの加入クライアントデバイスに向けるように、ネットワーク74中、たとえば、ネットワーク74を構成するルータに伝搬され得る。
【0050】
図1の例に示すように、マルチメディアコンテンツ64は、メディアプレゼンテーション記述(MPD)に対応し得るマニフェストファイル66を含む。マニフェストファイル66は、様々な代替の表現68(たとえば、品質が異なるビデオサービス)の記述を包含してよく、この記述は、たとえば、コーデック情報、プロファイル値、レベル値、ビットレート、および表現68の他の説明のための特性を含み得る。クライアントデバイス40は、表現68のセグメントにどのようにアクセスするかを決定するために、メディアプレゼンテーションのMPDを取り出し得る。
【0051】
具体的には、取出しユニット52は、ビデオデコーダ48の復号能力とビデオ出力44のレンダリング能力とを決定するために、クライアントデバイス40の構成データ(図示せず)を取り出し得る。ビデオ出力44は、ヘッドセットなど、エクステンデッドリアリティ、拡張現実、または仮想現実のためのディスプレイデバイスの中に含められてよい。同様に、構成データは、ビデオ出力44が、たとえば、エクステンデッドリアリティ、拡張現実、仮想現実などのための3Dビデオデータをレンダリングすることが可能であるかどうかを示し得る。構成データはまた、クライアントデバイス40のユーザによって選択される言語の選好、クライアントデバイス40のユーザによって設定される深さの選好に対応する1つもしくは複数のカメラ視野、および/または、クライアントデバイス40のユーザによって選択されるレーティングの選好のいずれかまたはすべてを含み得る。
【0052】
取出しユニット52は、たとえば、HTTP GETおよび部分GET要求を提出するように構成されたウェブブラウザまたはメディアクライアントを備え得る。取出しユニット52は、クライアントデバイス40の1つまたは複数のプロセッサまたは処理ユニット(図示せず)によって実行されるソフトウェア命令に対応し得る。いくつかの例では、取出しユニット52に関して説明した機能性のすべてまたは一部は、ハードウェア、または、ハードウェア、ソフトウェア、および/もしくはファームウェアの組合せにおいて実装されてよく、この場合、必須のハードウェアは、ソフトウェアまたはファームウェアのための命令を実行するために提供され得る。
【0053】
取出しユニット52は、クライアントデバイス40の復号およびレンダリング能力を、マニフェストファイル66の情報によって示される表現68の特性と比較することができる。取出しユニット52は、表現68の特性を決定するために、マニフェストファイル66の少なくとも一部分を最初に取り出し得る。たとえば、取出しユニット52は、1つまたは複数の適応セットの特性について説明する、マニフェストファイル66の一部分を要求する場合がある。取出しユニット52は、クライアントデバイス40のコーディングおよびレンダリング能力によって満たされ得る特性を有する、表現68のサブセット(たとえば、適応セット)を選択することができる。取出しユニット52は、次いで、適応セット内の表現に対するビットレートを決定し、ネットワーク帯域幅の現在利用可能な量を決定し、ネットワーク帯域幅によって満たされ得るビットレートを有する表現のうちの1つからセグメントを取り出すことができる。
【0054】
概して、表現のビットレートが高くなると、ビデオ再生の品質が高くなる一方、表現のビットレートが低くなると、利用可能なネットワーク帯域幅が縮小したときに、ビデオ再生の品質が十分なものになる場合がある。したがって、利用可能なネットワーク帯域幅が比較的高いときには、取出しユニット52は、ビットレートが比較的高い表現からデータを取り出すことができ、利用可能なネットワーク帯域幅が低いときには、取出しユニット52は、ビットレートが比較的低い表現からデータを取り出すことができる。このように、クライアントデバイス40は、ネットワーク74の変化するネットワーク帯域幅の利用可能性にも適応しながら、ネットワーク74を介してマルチメディアデータをストリーミングし得る。
【0055】
追加または代替として、取出しユニット52は、ブロードキャスト、またはeMBMSもしくはIPマルチキャストなどのマルチキャストネットワークプロトコルに従ってデータを受信するように構成され得る。そのような例では、取出しユニット52は、特定のメディアコンテンツに関連付けられたマルチキャストネットワークグループに加わるための要求を提出することができる。取出しユニット52は、マルチキャストグループに加わった後、サーバデバイス60またはコンテンツ準備デバイス20にさらなる要求を発行することなしに、マルチキャストグループのデータを受信することができる。取出しユニット52は、たとえば、再生を停止するために、または、チャネルを異なるマルチキャストグループに変更するために、マルチキャストグループのデータがもはや必要とされないとき、マルチキャストグループを出るための要求を提出することができる。
【0056】
ネットワークインターフェース54は、選択された表現のセグメントのデータを受信し、取出しユニット52に提供することができ、次に、取出しユニット52は、セグメントをカプセル化解除ユニット50に提供することができる。カプセル化解除ユニット50は、ビデオファイルの要素を、構成要素であるPESストリームへとカプセル化解除し、PESストリームをパケット化解除して符号化データを取り出し、たとえば、ストリームのPESパケットヘッダによって示されるように、符号化データがオーディオストリームの一部それともビデオストリームの一部であるかに応じて、符号化データをオーディオデコーダ46またはビデオデコーダ48のいずれかに送ることができる。オーディオデコーダ46は、符号化オーディオデータを復号し、復号したオーディオデータをオーディオ出力42に送る一方、ビデオデコーダ48は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号ビデオデータをビデオ出力44に送る。
【0057】
ビデオエンコーダ28、ビデオデコーダ48、オーディオエンコーダ26、オーディオデコーダ46、カプセル化ユニット30、取出しユニット52、およびカプセル化解除ユニット50は各々、適用できる場合は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理回路機構、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な適切な処理回路機構のいずれかとして実装され得る。ビデオエンコーダ28およびビデオデコーダ48の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてよく、これらのいずれもが、複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。同様に、オーディオエンコーダ26およびオーディオデコーダ46の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてよく、これらのいずれもが、複合コーデックの一部として統合され得る。ビデオエンコーダ28、ビデオデコーダ48、オーディオエンコーダ26、オーディオデコーダ46、カプセル化ユニット30、取出しユニット52、および/またはカプセル化解除ユニット50を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話のようなワイヤレス通信デバイスを含み得る。
【0058】
クライアントデバイス40、サーバデバイス60、および/またはコンテンツ準備デバイス20は、本開示の技法に従って動作するように構成され得る。例として、本開示は、クライアントデバイス40およびサーバデバイス60に関するこれらの技法について説明する。しかしながら、コンテンツ準備デバイス20は、サーバデバイス60の代わりに(または、それに加えて)これらの技法を実施するように構成され得ることを理解されたい。
【0059】
カプセル化ユニット30は、NALユニットが属するプログラム、ならびにペイロード、たとえばオーディオデータ、ビデオデータ、またはNALユニットが対応するトランスポートまたはプログラムストリームを記述するデータを特定するヘッダを含むNALユニットを形成することができる。たとえば、H.264/AVCにおいて、NALユニットは、1バイトのヘッダおよび可変サイズのペイロードを含む。そのペイロード内にビデオデータを含むNALユニットは、ビデオデータの様々な粒度レベルを含み得る。たとえば、NALユニットは、ビデオデータのブロック、複数のブロック、ビデオデータのスライス、またはビデオデータの全ピクチャを含み得る。カプセル化ユニット30は、ビデオエンコーダ28からの符号化ビデオデータをエレメンタリストリームのPESパケットの形で受信することができる。カプセル化ユニット30は、各エレメンタリストリームを対応するプログラムに関連付けることができる。
【0060】
カプセル化ユニット30はまた、複数のNALユニットからアクセスユニットを組み立てることができる。一般に、アクセスユニットは、ビデオデータのフレーム、ならびにそのようなオーディオデータが利用可能であるときにそのフレームに対応するオーディオデータを表すために1つまたは複数のNALユニットを含むことができる。アクセスユニットは、一般に、1つの出力時間インスタンスに対するすべてのNALユニット、たとえば1つの時間インスタンスに対するすべてのオーディオデータおよびビデオデータを含む。たとえば、各ビューが20フレーム毎秒(fps)のフレームレートを有する場合、各時間インスタンスは、0.05秒の時間間隔に対応し得る。この時間間隔中、同じアクセスユニット(同じ時間インスタンス)のすべてのビューに対する特定のフレームは、同時にレンダリングされ得る。一例では、アクセスユニットは、一次コード化ピクチャとして提示され得る、1つの時間インスタンス内のコード化ピクチャを含み得る。
【0061】
したがって、アクセスユニットは、共通の時間インスタンスのすべてのオーディオフレームおよびビデオフレーム、たとえば、時間Xに対応するすべてのビューを含むことができる。本開示はまた、特定のビューの符号化ピクチャを「ビューコンポーネント」と呼ぶ。すなわち、ビューコンポーネントは、特定の時間における特定のビューに対する符号化ピクチャ(または、フレーム)を含み得る。したがって、アクセスユニットは、共通の時間インスタンスのすべてのビューコンポーネントを含むものとして定義され得る。アクセスユニットの復号順序は、必ずしも出力または表示の順序と同じである必要はない。
【0062】
メディアプレゼンテーションは、異なる代替表現(たとえば、異なる品質を有するビデオサービス)の記述を包含し得るメディアプレゼンテーション記述(MPD)を含むことができ、記述は、たとえば、コーデック情報、プロファイル値、およびレベル値を含み得る。MPDは、マニフェストファイル66など、マニフェストファイルの一例である。クライアントデバイス40は、メディアプレゼンテーションのMPDを取り出して、様々なプレゼンテーションのムービーフラグメントにどのようにアクセスするかを決定することができる。ムービーフラグメントは、ビデオファイルのムービーフラグメントボックス(moofボックス)内に配置され得る。
【0063】
マニフェストファイル66(たとえば、MPDを含み得る)は、表現68のセグメントの利用可能性を広告することができる。すなわち、MPDは、表現68のうちの1つの第1のセグメントが利用可能になる壁時計時間を示す情報、ならびに表現68内のセグメントの持続時間を示す情報を含み得る。このようにして、クライアントデバイス40の取出しユニット52は、開始時間ならびに特定のセグメントに先行するセグメントの持続時間に基づいて、各セグメントが利用可能であるときを判断することができる。
【0064】
カプセル化ユニット30が、受信されたデータに基づいてNALユニットおよび/またはアクセスユニットをビデオファイルに組み立てた後、カプセル化ユニット30は、ビデオファイルを出力のために出力インターフェース32に渡す。いくつかの例では、カプセル化ユニット30は、ビデオファイルを直接クライアントデバイス40に送る代わりに、ビデオファイルをローカルに記憶するか、または出力インターフェース32を介してビデオファイルをリモートサーバに送ることができる。出力インターフェース32は、たとえば、送信機、トランシーバ、たとえば、オプティカルドライブ、磁気媒体ドライブ(たとえば、フロッピードライブ)などのコンピュータ可読媒体にデータを書き込むためのデバイス、ユニバーサルシリアルバス(USB)ポート、ネットワークインターフェース、または他の出力インターフェースを含み得る。出力インターフェース32は、たとえば、送信信号、磁気媒体、光学媒体、メモリ、フラッシュドライブ、または他のコンピュータ可読媒体など、コンピュータ可読媒体にビデオファイルを出力する。
【0065】
ネットワークインターフェース54は、ネットワーク74を介してNALユニットまたはアクセスユニットを受信し、NALユニットまたはアクセスユニットを取出しユニット52を介してカプセル化解除ユニット50に提供することができる。カプセル化解除ユニット50は、ビデオファイルの要素を、構成要素であるPESストリームへとカプセル化解除し、PESストリームをパケット化解除して符号化データを取り出し、たとえば、ストリームのPESパケットヘッダによって示されるように、符号化データがオーディオストリームの一部それともビデオストリームの一部であるかに応じて、符号化データをオーディオデコーダ46またはビデオデコーダ48のいずれかに送ることができる。オーディオデコーダ46は、符号化オーディオデータを復号し、復号したオーディオデータをオーディオ出力42に送る一方、ビデオデコーダ48は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号したビデオデータをビデオ出力44に送る。
【0066】
本開示の技法によると、クライアントデバイス40のユーザは、たとえばエクステンデッドリアリティ(XR)、拡張現実(AR)、仮想現実(VR)などのための、3D仮想シーンに関連したメディアデータを取得することができる。ユーザは、コントローラなど、クライアントデバイス40と通信する1つまたは複数のデバイスを使って、3D仮想シーンの中をナビゲートすることができる。追加または代替として、クライアントデバイス40は、ユーザが現実世界空間の中で動いたと判断するためのセンサー、カメラなどを含んでよく、クライアントデバイス40は、そのような現実世界移動を仮想空間移動に翻訳し得る。
【0067】
3D仮想シーンは、1つまたは複数の仮想固体オブジェクトを含み得る。そのようなオブジェクトは、たとえば、壁、窓、テーブル、椅子、または仮想シーンの中で出現し得る、どの他のそのようなオブジェクトも含み得る。本開示の技法によると、取出しユニット52によって取り出されたメディアデータは、そのような仮想固体オブジェクトを記述するシーン記述を含み得る。シーン記述は、たとえば、glTF2.0のMPEGシーン記述要素に準拠し得る。
【0068】
いくつかの例では、シーン記述は、許容カメラ移動の記述を含み得る。たとえば、シーン記述は、仮想カメラがその中で動くことを許可される1つまたは複数の境界ボリュームを(たとえば、球、立方体、円錐体、錐体などのような形状のボリュームに従って)、仮想カメラが形状の限界を超えて動くことを許可されないように記述し得る。つまり、境界ボリュームは、仮想カメラがその中で動くことを許可される許容カメラ移動ボリュームを記述し得る。追加または代替として、シーン記述は、1つまたは複数の頂点またはアンカーポイント、ならびに頂点またはアンカーポイントの間の許可された経路(たとえば、セグメント)を記述し得る。クライアントデバイス40は、仮想カメラが、許可された経路に沿って、および/または境界ボリューム内を動くことだけを許可し得る。
【0069】
いくつかの例では、追加または代替として、シーン記述は、仮想カメラが通ることができない、シーンの中の1つまたは複数の仮想固体オブジェクトを記述し得る。
【0070】
図2は、図1の取出しユニット52の構成要素の例示的なセットをより詳細に示すブロック図である。この例では、取出しユニット52は、eMBMSミドルウェアユニット100、DASHクライアント110、メディアアプリケーション112、およびプレゼンテーションエンジン114を含む。
【0071】
この例では、eMBMSミドルウェアユニット100は、eMBMS受信ユニット106、キャッシュ104、およびプロキシサーバ102をさらに含む。この例では、eMBMS受信ユニット106は、たとえば、tools.ietf.org/html/rfc6726において入手可能な、T. Paila他、「FLUTE-File Delivery over Unidirectional Transport」、Network Working Group、RFC 6726、2012年11月に記述されたFile Delivery over Unidirectional Transport(FLUTE)に従って、eMBMSによりデータを受信し得る。つまり、eMBMS受信ユニット106は、たとえば、ブロードキャスト/マルチキャストサービスセンター(BM-SC)として作用し得るサーバデバイス60から、ブロードキャストによりファイルを受信し得る。
【0072】
eMBMSミドルウェアユニット100がファイルについてのデータを受信すると、eMBMSミドルウェアユニットは、受信されたデータをキャッシュ104中に記憶してよい。キャッシュ104は、フラッシュメモリ、ハードディスク、RAM、または任意の他の適切な記憶媒体などのコンピュータ可読記憶媒体を含み得る。
【0073】
プロキシサーバユニット102は、DASHクライアント110のためのサーバとして作用し得る。たとえば、プロキシサーバユニット102は、MPDファイルまたは他のマニフェストファイルをDASHクライアント110に与えてよい。プロキシサーバユニット102は、MPDファイル内、ならびにセグメントを取り出すことができるハイパーリンク内のセグメントに関する利用可能性時間を広告することができる。これらのハイパーリンクは、クライアントデバイス40に対応するローカルホストアドレスプレフィックス(たとえば、IPv4に関する127.0.0.1)を含み得る。このようにして、DASHクライアント110は、HTTP GETまたは部分GET要求を使って、プロキシサーバユニット102に対してセグメントを要求し得る。たとえば、リンクhttp://127.0.0.1/rep1/seg3から入手可能なセグメントに関して、DASHクライアント110は、http://127.0.0.1/rep1/seg3に関する要求を含むHTTP GET要求を構築し、その要求をプロキシサーバユニット102に提出することができる。プロキシサーバユニット102は、要求されたデータをキャッシュ104から取り出し、そのような要求に応答して、そのデータをDASHクライアント110に提供することができる。
【0074】
DASHクライアント110は、取り出されたメディアデータをメディアアプリケーション112に与える。メディアアプリケーション112は、たとえば、メディアデータを受信し、提示するウェブブラウザ、ゲームエンジン、または別のアプリケーションであってよい。さらに、プレゼンテーションエンジン114は、取り出されたメディアデータを3D仮想環境の中で提示するために、メディアアプリケーション112と対話するアプリケーションを表す。プレゼンテーションエンジン114は、たとえば、2次元メディアデータを3D投射上にマップし得る。プレゼンテーションエンジン114はまた、クライアントデバイス40の他の要素から入力を受信して、3D仮想環境の中でのユーザの位置、およびその位置でユーザが向いている配向を判断し得る。たとえば、プレゼンテーションエンジン114は、ユーザに対して表示するべき適切なメディアデータを判断するために、ユーザの位置についてのX、Y、およびZ座標、ならびにユーザが見ている配向を判断し得る。その上、プレゼンテーションエンジン114は、現実世界ユーザ移動データを表すカメラ移動データを受信し、現実世界ユーザ移動データを3D仮想空間移動データに翻訳し得る。
【0075】
本開示の技法によると、eMBMSミドルウェアユニット100は、ブロードキャストまたはマルチキャストにより、(たとえば、glTF2.0による)メディアデータを受信する場合があり、次いで、DASHクライアント110は、eMBMSミドルウェアユニット100からメディアデータを取り出し得る。メディアデータは、仮想カメラが仮想シーンの中をどのように動くことができるかを示すカメラ制御情報を含むシーン記述を含み得る。たとえば、シーン記述は、たとえば、アンカーポイントの間の定義された経路に沿って、仮想シーンを通る許容経路を記述するデータを含み得る。追加または代替として、シーン記述は、仮想カメラがその中で動くことを許可されるボリュームを表す境界ボリュームを記述するデータを含み得る。追加または代替として、シーン記述は、壁、テーブル、椅子などのような、3D仮想環境の中の1つまたは複数の固体仮想オブジェクトを記述するデータを含み得る。たとえば、シーン記述のデータは、3D仮想オブジェクトの衝突境界を定義し得る。シーン記述は、オブジェクトが静的(たとえば、壁の場合のように)であろうとも動的(たとえば、椅子の場合のように)であろうとも、オブジェクトを使ってアニメーションが再生されるなど、そのようなオブジェクトとの衝突が起きた場合に何が起こるかを表すデータをさらに含み得る。
【0076】
プレゼンテーションエンジン114は、シーン記述を使って、3D仮想オブジェクトとの衝突が起きた場合に何を提示するか、および/または許容経路もしくはボリュームの外に出るための試みを判断し得る。たとえば、シーン記述が、許容経路または境界ボリュームについてのデータを含み、ユーザが、許容経路または境界ボリュームを超えて動くことを試みる場合、プレゼンテーションエンジン114は、ディスプレイの更新を回避するだけでよく、そうすることによって、そのような移動が許可されないことを示す。別の例として、シーン記述が、3D仮想固体オブジェクトについてのデータを含み、ユーザが、3D仮想固体オブジェクトの中を動くことを試みる場合、3D仮想固体オブジェクトが静的である場合は、プレゼンテーションエンジン114は、ディスプレイの更新を回避してよい。3D仮想固体オブジェクトが静的でない場合、プレゼンテーションエンジン114は、オブジェクト用に表示するべきアニメーション、たとえば、オブジェクトに適用されるべき並進移動および/または回転移動を判断してよい。たとえば、3D仮想固体オブジェクトが椅子である場合、アニメーションデータは、椅子が床に沿って押されることになるか、または衝突が起きた場合は倒れることになることを示し得る。
【0077】
図3は、例示的なマルチメディアコンテンツ120の要素を示す概念図である。マルチメディアコンテンツ120は、マルチメディアコンテンツ64(図1)、または記憶媒体62に記憶された別のマルチメディアコンテンツに対応し得る。図3の例では、マルチメディアコンテンツ120は、メディアプレゼンテーション記述(MPD)122と複数の表現124A~124N(表現124)とを含む。表現124Aは、任意選択のヘッダデータ126とセグメント128A~128N(セグメント128)とを含む一方、表現124Nは、任意選択のヘッダデータ130とセグメント132A~132N(セグメント132)とを含む。文字Nが、便宜的に、表現124の各々の最後のムービーフラグメントを指定するために使用される。いくつかの例では、表現124同士の間で異なる数のムービーフラグメントが存在し得る。
【0078】
MPD122は、表現124とは別個のデータ構造を含んでよい。MPD122は、図1のマニフェストファイル66に対応し得る。同様に、表現124は、図1の表現68に対応し得る。一般に、MPD122は、コーディングおよびレンダリング特性、適応セット、MPD122が対応するプロファイル、テキストタイプ情報、カメラ角度情報、レーティング情報、トリックモード情報(たとえば、時間的サブシーケンスを含む表現を示す情報)、および/または離れた期間を検索するための情報(たとえば、再生中のメディアコンテンツへのターゲティング広告の挿入のため)のような、表現124の特性を一般に表すデータを含んでよい。
【0079】
ヘッダデータ126は、存在するとき、セグメント128の特性、たとえば、ランダムアクセスポイント(RAP、ストリームアクセスポイント(SAP)とも呼ばれる)の時間的ロケーション、セグメント128のうちのどれがランダムアクセスポイントを含むのか、セグメント128内のランダムアクセスポイントへのバイトオフセット、セグメント128のユニフォームリソースロケータ(URL)、またはセグメント128の他の態様を記述し得る。ヘッダデータ130は、存在するとき、セグメント132の同様の特性を記述し得る。追加または代替として、そのような特性はMPD122内に完全に含まれ得る。
【0080】
セグメント128、132は、1つまたは複数のコード化ビデオサンプルを含み、ビデオサンプルの各々が、ビデオデータのフレームまたはスライスを含み得る。セグメント128のコード化ビデオサンプルの各々は、同様の特性、たとえば、高さ、幅、および帯域幅要件を有し得る。そのような特性は、MPD122のデータによって記述され得るが、そのようなデータは図3の例には示されていない。MPD122は、本開示で説明するシグナリングされた情報のいずれかまたはすべてが加えられた、3GPP仕様によって記述されるような特性を含み得る。
【0081】
セグメント128、132の各々は、固有のユニフォームリソースロケータ(URL)に関連付けられ得る。したがって、セグメント128、132の各々は、DASHのようなストリーミングネットワークプロトコルを使用して、別個に取出し可能であり得る。このようにして、クライアントデバイス40のような宛先デバイスは、HTTP GET要求を使用して、セグメント128または132を取り出すことができる。いくつかの例では、クライアントデバイス40は、HTTP部分GET要求を使用して、セグメント128または132の特定のバイト範囲を取り出すことができる。
【0082】
図4は、図3のセグメント128、132のうちの1つのような表現のセグメントに対応し得る、例示的なビデオファイル150の要素を示すブロック図である。セグメント128、132の各々は、図4の例で示されるデータの構成に実質的に準拠するデータを含み得る。ビデオファイル150は、セグメントをカプセル化すると言われ得る。上記で説明したように、ISOベースのメディアファイルフォーマットおよびその拡張によるビデオファイルは、「ボックス」と呼ばれる一連のオブジェクト内にデータを記憶する。図4の例では、ビデオファイル150は、ファイルタイプ(FTYP)ボックス152と、ムービー(MOOV)ボックス154と、セグメントインデックス(sidx)ボックス162と、ムービーフラグメント(MOOF)ボックス164と、ムービーフラグメントランダムアクセス(MFRA)ボックス166とを含む。図4は、ビデオファイルの例を表すが、他のメディアファイルは、ISOベースのメディアファイルフォーマットおよびその拡張に従ってビデオファイル150のデータと同様に構成される他のタイプのメディアデータ(たとえば、オーディオデータ、時限のテキストデータなど)を含み得ることを理解されたい。
【0083】
ファイルタイプ(FTYP)ボックス152は一般に、ビデオファイル150のファイルタイプを表す。ファイルタイプボックス152は、ビデオファイル150の最良の使用法を表す仕様を特定するデータを含み得る。ファイルタイプボックス152は、代替的には、MOOVボックス154、ムービーフラグメントボックス164、および/またはMFRAボックス166の前に配置され得る。
【0084】
いくつかの例では、ビデオファイル150などのセグメントは、FTYPボックス152の前にMPD更新ボックス(図示せず)を含み得る。MPD更新ボックスは、ビデオファイル150を含む表現に対応するMPDが更新されるべきであることを示す情報を、MPDを更新するための情報とともに含み得る。たとえば、MPD更新ボックスは、MPDを更新するために使用されるリソースのURIまたはURLを提供することができる。別の例として、MPD更新ボックスは、MPDを更新するためのデータを含み得る。いくつかの例では、MPD更新ボックスは、ビデオファイル150のセグメントタイプ(STYP)ボックス(図示せず)の直後にくることがあり、このSTYPボックスは、ビデオファイル150のセグメントタイプを定義し得る。
【0085】
図4の例では、MOOVボックス154は、ムービーヘッダ(MVHD)ボックス156と、トラック(TRAK)ボックス158と、1つまたは複数のムービー延長(MVEX)ボックス160とを含む。一般に、MVHDボックス156は、ビデオファイル150の一般的な特性を記述し得る。たとえば、MVHDボックス156は、ビデオファイル150がいつ最初に作成されたかを表すデータ、ビデオファイル150がいつ最後に修正されたかを表すデータ、ビデオファイル150のタイムスケールを表すデータ、ビデオファイル150の再生の長さを表すデータ、または、ビデオファイル150を全般に表す他のデータを含み得る。
【0086】
TRAKボックス158は、ビデオファイル150のトラックのためのデータを含み得る。TRAKボックス158は、TRAKボックス158に対応するトラックの特性を記述するトラックヘッダ(TKHD)ボックスを含み得る。いくつかの例では、TRAKボックス158は、コード化ビデオピクチャを含み得るが、他の例では、トラックのコード化ビデオピクチャは、TRAKボックス158のデータおよび/またはsidxボックス162のデータによって参照され得るムービーフラグメント164内に含まれ得る。
【0087】
いくつかの例では、ビデオファイル150は、2つ以上のトラックを含み得る。したがって、MOOVボックス154は、ビデオファイル150中のトラックの数と等しい数のTRAKボックスを含み得る。TRAKボックス158は、ビデオファイル150の対応するトラックの特性を記述し得る。たとえば、TRAKボックス158は、対応するトラックの時間情報および/または空間情報を記述し得る。MOOVボックス154のTRAKボックス158と同様のTRAKボックスは、カプセル化ユニット30(図3)がビデオファイル150のようなビデオファイル中にパラメータセットトラックを含める場合、パラメータセットトラックの特性を記述し得る。カプセル化ユニット30は、パラメータセットトラックを記述するTRAKボックス内で、パラメータセットトラックにシーケンスレベルSEIメッセージが存在することをシグナリングすることができる。
【0088】
MVEXボックス160は、たとえば、もしあれば、MOOVボックス154内に含まれるビデオデータに加えて、ビデオファイル150がムービーフラグメント164を含むことをシグナリングするために、対応するムービーフラグメント164の特性を記述し得る。ストリーミングビデオデータのコンテキストでは、コード化ビデオピクチャは、MOOVボックス154の中ではなくムービーフラグメント164の中に含まれ得る。したがって、すべてのコード化ビデオサンプルは、MOOVボックス154の中ではなくムービーフラグメント164の中に含まれ得る。
【0089】
MOOVボックス154は、ビデオファイル150の中のムービーフラグメント164の数に等しい数のMVEXボックス160を含み得る。MVEXボックス160の各々は、ムービーフラグメント164のうちの対応する1つの特性を記述し得る。たとえば、各MVEXボックスは、ムービーフラグメント164のうちの対応する1つの持続時間を記述するムービー延長ヘッダボックス(MEHD)ボックスを含み得る。
【0090】
上述のように、カプセル化ユニット30は、実際のコード化ビデオデータを含まないビデオサンプル内にシーケンスデータセットを記憶し得る。ビデオサンプルは、一般にアクセスユニットに対応してよく、アクセスユニットは、特定の時間インスタンスにおけるコード化ピクチャの表現である。AVCのコンテキストでは、アクセスユニットと、SEIメッセージのような他の関連する非VCL NALユニットとのすべてのピクセルを構築するための情報を包含する、1つまたは複数のVCL NALユニットをコード化ピクチャは含む。したがって、カプセル化ユニット30は、シーケンスレベルSEIメッセージを含み得るシーケンスデータセットを、ムービーフラグメント164のうちの1つの中に含め得る。カプセル化ユニット30はさらに、シーケンスデータセットおよび/またはシーケンスレベルSEIメッセージの存在を、ムービーフラグメント164のうちの1つに対応するMVEXボックス160のうちの1つの中のムービーフラグメント164のうちの1つの中に存在するものとして、シグナリングすることができる。
【0091】
SIDXボックス162は、ビデオファイル150の任意選択の要素である。すなわち、3GPPファイルフォーマットまたは他のそのようなファイルフォーマットに準拠するビデオファイルは、必ずしもSIDXボックス162を含むとは限らない。3GPPファイルフォーマットの例によれば、SIDXボックスは、セグメント(たとえば、ビデオファイル150内に含まれるセグメント)のサブセグメントを識別するために使用され得る。3GPPファイルフォーマットは、「対応するメディアデータボックスを有する1つまたは複数の連続するムービーフラグメントボックスの自己完結型セットであって、ムービーフラグメントボックスによって参照されるデータを包含するメディアデータボックスが、そのムービーフラグメントボックスに続き、同じトラックについての情報を包含する次のムービーフラグメントボックスに先行しなければならない」としてサブセグメントを定義する。3GPPファイルフォーマットはまた、SIDXボックスが、「ボックスによって文書化された(サブ)セグメントのサブセグメントへの一連の参照を包含する。参照されるサブセグメントは、プレゼンテーション時間において連続する。同様に、セグメントインデックスボックスによって参照されるバイトは、セグメント内で常に連続する。参照されるサイズは、参照される材料におけるバイトの数のカウントを与える」ことを示す。
【0092】
SIDXボックス162は、一般に、ビデオファイル150内に含まれるセグメントの1つまたは複数のサブセグメントを表す情報を提供する。たとえば、そのような情報は、サブセグメントが開始および/または終了する再生時間、サブセグメントに関するバイトオフセット、サブセグメントがストリームアクセスポイント(SAP)を含む(たとえば、それによって開始する)かどうか、SAPのタイプ(たとえば、SAPが、瞬時デコーダリフレッシュ(IDR)ピクチャ、クリーンランダムアクセス(CRA)ピクチャ、ブロークンリンクアクセス(BLA)ピクチャなどのいずれであるか)、サブセグメント内の(再生時間および/またはバイトオフセットに関する)SAPの位置、などを含み得る。
【0093】
ムービーフラグメント164は、1つまたは複数のコード化ビデオピクチャを含み得る。いくつかの例では、ムービーフラグメント164は、1つまたは複数のピクチャグループ(GOP)を含んでよく、GOPの各々は、多数のコード化ビデオピクチャ、たとえばフレームまたはピクチャを含み得る。加えて、上記で説明したように、ムービーフラグメント164は、いくつかの例ではシーケンスデータセットを含み得る。ムービーフラグメント164の各々は、ムービーフラグメントヘッダボックス(MFHD、図4には示されない)を含み得る。MFHDボックスは、ムービーフラグメントのシーケンス番号などの、対応するムービーフラグメントの特性を記述し得る。ムービーフラグメント164は、ビデオファイル150の中でシーケンス番号の順序に含まれ得る。
【0094】
MFRAボックス166は、ビデオファイル150のムービーフラグメント164内のランダムアクセスポイントを記述し得る。これは、ビデオファイル150によってカプセル化されたセグメント内の特定の時間的ロケーション(すなわち、再生時間)の探索を実施することなど、トリックモードを実施することを支援し得る。MFRAボックス166は、いくつかの例では、一般に任意選択であり、ビデオファイル中に含まれる必要はない。同様に、クライアントデバイス40のようなクライアントデバイスは、ビデオファイル150のビデオデータを正確に復号し表示するために、MFRAボックス166を必ずしも参照する必要はない。MFRAボックス166は、ビデオファイル150のトラックの数と等しい数のトラックフラグメントランダムアクセス(TFRA)ボックス(図示せず)を含んでよく、またはいくつかの例では、ビデオファイル150のメディアトラック(たとえば、非ヒントトラック)の数と等しい数のTFRAボックスを含んでよい。
【0095】
いくつかの例では、ムービーフラグメント164は、IDRピクチャなどの1つまたは複数のストリームアクセスポイント(SAP)を含み得る。同様に、MFRAボックス166は、SAPのビデオファイル150内の位置の指示を提供し得る。したがって、ビデオファイル150の時間的サブシーケンスは、ビデオファイル150のSAPから形成され得る。時間的サブシーケンスはまた、SAPに従属するPフレームおよび/またはBフレームなどの他のピクチャを含み得る。時間的サブシーケンスのフレームおよび/またはスライスは、サブシーケンスの他のフレーム/スライスに依存する時間的サブシーケンスのフレーム/スライスが適切に復号され得るように、セグメント内に並べられ得る。たとえば、データの階層的構成において、他のデータのための予測に使用されるデータはまた、時間的サブシーケンス内に含まれ得る。
【0096】
図5は、本開示の技法による、境界ボリュームをもつ例示的なカメラ経路セグメント212を示す概念図である。特に、3Dシーン200において、カメラ202は、ユーザが3Dシーン200の部分をそこから閲覧することができる視点を表す。この例では、経路セグメント212は、点204と点206との間に定義される。その上、境界ボリュームが、経路セグメント212に沿った、境界ボックス208から境界ボックス210への点の押出によって定義される。したがって、この例では、カメラ202は、経路セグメント212に沿って境界ボリューム内を動くことは許可されるが、境界ボリュームを超えて動くことは制限される。
【0097】
シーン記述は、カメラ202などのカメラが、それに沿って動くことを許可される経路のセットを記述し得る。経路は、経路セグメント212などの経路セグメントによって接続される、点204、206などのアンカーポイントのセットとして記述され得る。図5の例など、いくつかの例では、各経路セグメントは、経路に沿って、ある程度の運動の自由を認める境界ボリュームで強化され得る。
【0098】
シーンカメラ、および結果的に閲覧者は、経路セグメントに沿って境界ボリューム内で自由に動くことができるようになる。経路セグメントは、経路のより細かい制御を認めるための、より複雑な幾何学的形態を使って記述され得る。
【0099】
さらに、カメラパラメータは、経路沿いの各点において制約を受け得る。パラメータは、あらゆるアンカーポイントについて提供され、次いで、経路セグメント沿いのあらゆる点についての対応するパラメータを算出するために、補間関数と一緒に使われ得る。補間関数は、境界ボリュームを含むすべてのパラメータに適用することができる。
【0100】
本開示のカメラ制御拡張機構は、シーン用のカメラ制御を定義するglTF2.0拡張として実現されてよい。カメラ制御拡張は、「MPEG_camera_control」タグによって識別されてよく、このタグは、extensionsUsed要素に含まれてよく、3Dシーン用のextensionsRequired要素に含まれてよい。
【0101】
例示的な「MPEG_camera_control」拡張が、以下でTable 1(表1)に示され、シーン記述の「カメラ」要素において定義され得る。
【表1】
カメラ制御情報は、以下のように構造化され得る。
・各アンカーポイントについて、アンカーポイントの(x,y,z)座標は、浮動小数点値を使って表され得る
・各経路セグメントについて、経路セグメントの第1および第2のアンカーポイントの(i,j)インデックスは、整数値として表され得る
・境界ボリュームについて、
○boundingVolumeがBV_CONEである場合、第1のアンカーポイントおよび第2のアンカーポイントの円の(r1,r2)半径が与えられ得る。
○boundingVolumeがBV_FRUSTUMである場合、経路セグメントの各アンカーポイントについて((x,y,z)_topleft,w,h)が与えられ得る。
○boundingVolumeがBV_SPHEREである場合、経路セグメントの各アンカーポイントについて、球の半径としてのrが与えられ得る。
・intrinsicParametersが真である場合、内部パラメータオブジェクトは修正されてよい。
【0102】
プレゼンテーションエンジン(たとえば、図2のプレゼンテーションエンジン114または図1および図2に示す構成要素とは異なり得る、クライアントデバイス40の別の要素)は、MPEG_camera_control拡張または他のそのようなデータ構造をサポートし得る。シーンがカメラ制御情報を提供する場合、プレゼンテーションエンジンは、カメラの(x,y,z)座標が常に経路セグメント上に、または経路セグメントの境界ボリューム内にあるように、カメラ移動を、示される経路に制限してよい。プレゼンテーションエンジンは、境界ボリュームの境界に閲覧者が近づくと、視覚、音響、および/または触覚フィードバックを閲覧者に与え得る。
【0103】
図6は、この例では椅子である例示的な仮想オブジェクト220を示す概念図である。没入型エクスペリエンスを閲覧者に提供するために、閲覧者が、シーンの中のオブジェクトと適切に相互作用することが重要である。閲覧者は、壁、椅子、およびテーブルなど、シーン中の固体オブジェクト、または他のそのような固体オブジェクトの中を歩くことができるべきでない。
【0104】
図6は、直方体のセットとして定義される、椅子の3Dメッシュ表現を、衝突境界とともに示す。そのような3Dメッシュの衝突境界の記述を与えるために、MPEG_mesh_collision拡張データ構造が定義されてよい。拡張データ構造は、メッシュジオメトリの周りの直方体のセットとして、メッシュオブジェクト上に定義されてよい。以下のTable 2(表2)は、そのような拡張データ構造に含まれ得るプロパティの例示的なセットを表す。
【表2】
【0105】
メッシュ衝突情報は、直方体境界についての直方体頂点座標(x,y,z)または球状境界についての球中心および半径を含み得る。値は、浮動小数点数として与えられ得る。
【0106】
プレゼンテーションエンジンは、MPEG_mesh_collision拡張または他のそのようなデータ構造をサポートし得る。プレゼンテーションエンジンは、カメラ位置(x,y,z)が、どの時点でも、定義されたメッシュ直方体のうちの1つに含まれることにはならないことを保証し得る。衝突は、視覚、音響、および/または触覚フィードバックを通して閲覧者に対してシグナリングされ得る。プレゼンテーションエンジンは、ノード用の境界についての情報を、衝突を検出する3D物理エンジンを初期化し、構成するのに使い得る。
【0107】
図7は、本開示の技法による、メディアデータを取り出す例示的な方法を示すフローチャートである。図7の方法は、図1のクライアントデバイス40および図2の取出しユニット52に関して説明される。他のそのようなデバイスが、この方法または同様の方法を実施するように構成されてもよい。
【0108】
最初に、クライアントデバイス40がメディアデータを取り出し得る(250)。たとえば、取出しユニット52が、たとえば、glTF2.0に準拠するメディアデータを取り出し得る。いくつかの例では、取出しユニット52は、たとえば、DASHを使うなど、ユニキャストにより、メディアデータを直接取り出し得る。いくつかの例では、図2のeMBMSミドルウェア100など、取出しユニット52のミドルウェアユニットが、ブロードキャストまたはマルチキャストによりメディアデータを受信してよく、次いでDASHクライアント、たとえば、図2のDASHクライアント110が、ミドルウェアユニットからメディアデータを取り出してよい。
【0109】
メディアデータは、シーン記述を含み得る。したがって、取出しユニット52またはクライアントデバイス40の別の構成要素が、メディアデータからシーン記述を抽出し得る(252)。シーン記述は、本開示の技法による、カメラ制御データを含むMPEGシーン記述であってよい。取出しユニット52は、シーン記述をプレゼンテーションエンジン114に与えてよい。プレゼンテーションエンジン114はこのように、シーン記述を受信し、シーン記述から、3次元シーン用のカメラ制御データを判断し得る(254)。カメラ制御データは、上のTable 1(表1)に準拠し得る。つまり、たとえば、カメラ制御データは、カメラ経路用の1つもしくは複数のアンカーポイント、カメラ経路用のアンカーポイントの間の1つもしくは複数のセグメント、円錐体、錐体、もしくは球などの境界ボリューム、各アンカーポイントにおいて修正され得る内部パラメータ、および/またはカメラ制御情報を提供するアクセッサを含み得る。
【0110】
プレゼンテーションエンジン114は、カメラ制御データから移動制約をさらに判断し得る(256)。たとえば、プレゼンテーションエンジン114は、2つ以上のアンカーポイントおよびアンカーポイントの間の容認経路を、カメラ制御データの移動制約から判断し得る。追加または代替として、プレゼンテーションエンジン114は、立方体、球、錐体、円錐体などのような境界ボリュームを、カメラ制御データの移動制約から判断し得る。プレゼンテーションエンジン114は、仮想カメラがそれに沿って動くことを許可される、および/または仮想カメラが境界ボリューム内で動くことを許可されるが境界ボリュームの外に出ることは許可されない経路を判断するのに、容認経路を使い得る。容認経路および/または境界ボリュームは、仮想カメラが、壁などの3D固体仮想オブジェクトを超えないことを保証するように定義されてよい。つまり、境界ボリュームまたは容認経路は、壁、床、天井、または3D仮想シーン内の他のオブジェクトなど、1つまたは複数の3D固体仮想オブジェクト内にあるように定義されてよい。
【0111】
プレゼンテーションエンジン114は次いで、カメラ移動データを受信し得る(258)。たとえば、プレゼンテーションエンジン114は、ハンドヘルドコントローラおよび/またはディスプレイを含むヘッドセットなど、1つまたは複数のコントローラから、ヘッドセットの配向と、方向性移動および/または回転移動など、ヘッドセットおよび/または仮想カメラの移動とを表すデータを受信し得る。プレゼンテーションエンジン114は、カメラ移動データが、境界ボリュームの限界を超えるか、または定義された容認経路のうちの1つではない経路に沿うなど、3D固体仮想オブジェクトを通るカメラ移動を要求すると判断する場合がある(260)。それに応答して、プレゼンテーションエンジン114は、仮想カメラが3D固体仮想オブジェクトの中を通るのを防止してよい(262)。
【0112】
このように、図7の方法は、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、3次元シーン用のカメラ制御データを受信するステップであって、カメラ制御データは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するための制約を定義するデータを含む、ステップと、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するステップと、カメラ移動データに応答して、カメラ制御データを使って、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップとを含む、メディアデータを取り出す方法の例を表す。
【0113】
図8は、本開示の技法による、メディアデータを取り出す例示的な方法を示すフローチャートである。図8の方法は、図1のクライアントデバイス40および図2の取出しユニット52に関して説明される。他のそのようなデバイスが、この、または同様の方法を実施するように構成されてもよい。
【0114】
最初に、クライアントデバイス40がメディアデータを取り出し得る(280)。たとえば、取出しユニット52が、たとえば、glTF2.0に準拠するメディアデータを取り出し得る。いくつかの例では、取出しユニット52は、たとえば、DASHを使うなど、ユニキャストにより、メディアデータを直接取り出し得る。いくつかの例では、図2のeMBMSミドルウェア100など、取出しユニット52のミドルウェアユニットが、ブロードキャストまたはマルチキャストによりメディアデータを受信してよく、次いでDASHクライアント、たとえば、図2のDASHクライアント110が、ミドルウェアユニットからメディアデータを取り出してよい。
【0115】
メディアデータは、シーン記述を含み得る。したがって、取出しユニット52またはクライアントデバイス40の別の構成要素が、メディアデータからシーン記述を抽出し得る(282)。シーン記述は、本開示の技法による、オブジェクト衝突データを含むMPEGシーン記述であってよい。取出しユニット52は、シーン記述をプレゼンテーションエンジン114に与えてよい。プレゼンテーションエンジン114はこのように、シーン記述を受信し、1つまたは複数の3D固体仮想オブジェクトについてのオブジェクト衝突データをシーン記述から判断し得る(284)。オブジェクト衝突データは、上のTable 2(表2)に準拠し得る。つまり、オブジェクト衝突データは、たとえば、メッシュ(3D仮想固体)オブジェクトの衝突境界を定義する境界形状のアレイを表す境界を表すデータ、オブジェクトが静的(つまり、可動)であるかどうかを示すデータ、オブジェクト用の衝突材料を表す材料、および/または衝突が起きた場合にオブジェクト用に提示されるべきアニメーションを含み得る。
【0116】
プレゼンテーションエンジン114は、カメラ制御データからオブジェクト衝突データをさらに判断し得る(286)。たとえば、プレゼンテーションエンジン114は、メッシュ(3D仮想固体)オブジェクトの衝突境界を定義する境界形状のアレイを表す境界、オブジェクトが静的(つまり、可動)であるかどうかを示すデータ、オブジェクト用の衝突材料を表す材料、および/または衝突が起きた場合にオブジェクト用に提示されるべきアニメーションを判断し得る。プレゼンテーションエンジン114は、3D固体仮想オブジェクトとの衝突が起きた場合にどのように反応するかを判断するのに、オブジェクト衝突データを使い得る。
【0117】
プレゼンテーションエンジン114は次いで、カメラ移動データを受信し得る(288)。たとえば、プレゼンテーションエンジン114は、ハンドヘルドコントローラおよび/またはディスプレイを含むヘッドセットなど、1つまたは複数のコントローラから、ヘッドセットの配向と、方向性移動および/または回転移動など、ヘッドセットおよび/または仮想カメラの移動とを表すデータを受信し得る。プレゼンテーションエンジン114は、カメラ移動データが、オブジェクト衝突データによって定義される、3D固体仮想オブジェクトの中などへの、3D固体仮想オブジェクトを通るカメラ移動を要求すると判断し得る(290)。それに応答して、プレゼンテーションエンジン114は、仮想カメラが3D固体仮想オブジェクトの中を通るのを防止してよい(292)。たとえば、オブジェクトが、オブジェクト衝突データによって示されるように静的である場合、プレゼンテーションエンジン114は、仮想カメラがオブジェクトの中へ、およびその中を動くのを防止してよい。別の例として、オブジェクトが静的でない(たとえば、可動)場合、プレゼンテーションエンジン114は、オブジェクトとの衝突に応答して、オブジェクトが転倒するかまたは動くことになっている場合は、たとえば、オブジェクトに対して再生するべきアニメーションなど、オブジェクト衝突データからの反応を判断してよい。
【0118】
このように、図8の方法は、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信するステップと、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するステップと、カメラ移動データに応答して、オブジェクト衝突データを使って、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップとを含む、メディアデータを取り出す方法の例を表す。
【0119】
本開示の技法のいくつかの例が、以下の条項において要約される。
【0120】
条項1:メディアデータを取り出す方法であって、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、3次元シーン用のカメラ制御データを受信するステップであって、カメラ制御データは、仮想カメラについての許容ロケーションを定義するデータを含む、ステップと、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するステップと、カメラ制御データを使って、仮想カメラが許容ロケーション内に留まることを保証するように、プレゼンテーションエンジンによって、仮想カメラのロケーションを更新するステップとを含む方法。
【0121】
条項2:仮想カメラのロケーションを更新するステップは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップを含む、条項1の方法。
【0122】
条項3:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項1の方法。
【0123】
条項4:ストリーミングされるメディアデータを受信するステップは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するステップを含む、条項1の方法。
【0124】
条項5:カメラ制御データは、MPEGシーン記述の中に含まれる、条項1の方法。
【0125】
条項6:カメラ制御データは、2つ以上のアンカーポイントと、アンカーポイントの間の1つまたは複数のセグメントとを定義するデータを含み、セグメントは、仮想カメラについての許容カメラ移動ベクトルを表し、仮想カメラのロケーションを更新するステップは、仮想カメラが、アンカーポイントの間のセグメントのみを横断することを認めるステップを含む、条項1の方法。
【0126】
条項7:カメラ制御データは、仮想カメラ用の許容カメラ移動ボリュームを表す境界ボリュームを定義するデータを含み、仮想カメラのロケーションを更新するステップは、仮想カメラが、許容カメラ移動ボリュームのみを横断することを認めるステップを含む、条項1の方法。
【0127】
条項8:境界ボリュームを定義するデータは、円錐体、錐体、または球のうちの少なくとも1つを定義するデータを含む、条項7の方法。
【0128】
条項9:カメラ制御データはMPEG_camera_control拡張の中に含まれる、条項1の方法。
【0129】
条項10:MPEG_camera_control拡張は、仮想カメラのための許容経路用のアンカーポイントの数を表すアンカーデータ、アンカーポイントの間の許容経路用の経路セグメントの数を表すセグメントデータ、仮想カメラのための境界ボリュームを表す境界ボリュームデータ、カメラパラメータがアンカーポイントの各々において修正されるかどうかを示す内部パラメータ、およびカメラ制御データを提供するアクセサのインデックスを表すアクセサデータのうちの1つまたは複数を含む、条項9の方法。
【0130】
条項11:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項1の方法。
【0131】
条項12:カメラ制御データから、仮想カメラのための許容経路を判断するステップをさらに含み、仮想カメラのロケーションを更新するステップは、仮想カメラが、カメラ制御データの中で定義される許容経路内にある仮想経路のみに沿って動くことを保証するステップを含む、条項1の方法。
【0132】
条項13:カメラ制御データはMPEG_mesh_collision拡張の中に含まれる、条項1の方法。
【0133】
条項14:メディアデータを取り出すためのデバイスであって、メディアデータを記憶するように構成されたメモリと、回路機構で実装されるとともに、プレゼンテーションエンジンを実行するように構成された1つまたは複数のプロセッサとを備え、プレゼンテーションエンジンは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、3次元シーン用のカメラ制御データを受信することであって、カメラ制御データは、仮想カメラについての許容ロケーションを定義するデータを含む、ことと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ制御データを使って、仮想カメラが許容ロケーション内に留まることを保証するように、仮想カメラのロケーションを更新することとを行うように構成される、デバイス。
【0134】
条項15:プレゼンテーションエンジンは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するように構成される、条項14のデバイス。
【0135】
条項16:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項14のデバイス。
【0136】
条項17:プレゼンテーションエンジンは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するように構成される、条項14のデバイス。
【0137】
条項18:カメラ制御データは、MPEGシーン記述の中に含まれる、条項14のデバイス。
【0138】
条項19:カメラ制御データは、2つ以上のアンカーポイントと、アンカーポイントの間の1つまたは複数のセグメントとを定義するデータを含み、セグメントは、仮想カメラについての許容カメラ移動ベクトルを表し、仮想カメラのロケーションを更新するために、プレゼンテーションエンジンは、仮想カメラが、アンカーポイントの間のセグメントのみを横断することを認めるように構成される、条項14のデバイス。
【0139】
条項20:カメラ制御データは、仮想カメラ用の許容カメラ移動ボリュームを表す境界ボリュームを定義するデータを含み、仮想カメラのロケーションを更新するために、プレゼンテーションエンジンは、仮想カメラが、許容カメラ移動ボリュームのみを横断することを認めるように構成される、条項14のデバイス。
【0140】
条項21:境界ボリュームを定義するデータは、円錐体、錐体、または球のうちの少なくとも1つを定義するデータを含む、条項20のデバイス。
【0141】
条項22:カメラ制御データはMPEG_camera_control拡張の中に含まれる、条項14のデバイス。
【0142】
条項23:MPEG_camera_control拡張は、仮想カメラのための許容経路用のアンカーポイントの数を表すアンカーデータ、アンカーポイントの間の許容経路用の経路セグメントの数を表すセグメントデータ、仮想カメラのための境界ボリュームを表す境界ボリュームデータ、カメラパラメータがアンカーポイントの各々において修正されるかどうかを示す内部パラメータ、およびカメラ制御データを提供するアクセサのインデックスを表すアクセサデータのうちの1つまたは複数を含む、条項22のデバイス。
【0143】
条項24:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項14のデバイス。
【0144】
条項25:プレゼンテーションエンジンは、カメラ制御データから、仮想カメラのための許容経路を判断するようにさらに構成され、仮想カメラのロケーションを更新するために、プレゼンテーションエンジンは、仮想カメラが、カメラ制御データの中で定義される許容経路内にある仮想経路のみに沿って動くことを保証するように構成される、条項14のデバイス。
【0145】
条項26:カメラ制御データはMPEG_mesh_collision拡張の中に含まれる、条項14のデバイス。
【0146】
条項27:命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されると、プレゼンテーションエンジンを実行するプロセッサに、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、3次元シーン用のカメラ制御データを受信することであって、カメラ制御データは、仮想カメラについての許容ロケーションを定義するデータを含む、ことと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ制御データを使って、仮想カメラが許容ロケーション内に留まることを保証するように、仮想カメラのロケーションを更新することとを行わせる。
【0147】
条項28:プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止させる命令を含む、条項27のコンピュータ可読記憶媒体。
【0148】
条項29:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項27のコンピュータ可読媒体。
【0149】
条項30:プロセッサに、ストリーミングされるメディアデータを受信させる命令は、プロセッサに、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求させる命令を含む、条項27のコンピュータ可読媒体。
【0150】
条項31:カメラ制御データは、MPEGシーン記述の中に含まれる、条項27のコンピュータ可読媒体。
【0151】
条項32:カメラ制御データは、2つ以上のアンカーポイントと、アンカーポイントの間の1つまたは複数のセグメントとを定義するデータを含み、セグメントは、仮想カメラについての許容カメラ移動ベクトルを表し、プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが、アンカーポイントの間のセグメントのみを横断することを認めさせる命令を含む、条項27のコンピュータ可読媒体。
【0152】
条項33:カメラ制御データは、仮想カメラ用の許容カメラ移動ボリュームを表す境界ボリュームを定義するデータを含み、プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが、許容カメラ移動ボリュームのみを横断することを認めさせる命令を含む、条項27のコンピュータ可読媒体。
【0153】
条項34:境界ボリュームを定義するデータは、円錐体、錐体、または球のうちの少なくとも1つを定義するデータを含む、条項20のコンピュータ可読媒体。
【0154】
条項35:カメラ制御データはMPEG_camera_control拡張の中に含まれる、条項27のコンピュータ可読媒体。
【0155】
条項36:MPEG_camera_control拡張は、仮想カメラのための許容経路用のアンカーポイントの数を表すアンカーデータ、アンカーポイントの間の許容経路用の経路セグメントの数を表すセグメントデータ、仮想カメラのための境界ボリュームを表す境界ボリュームデータ、カメラパラメータがアンカーポイントの各々において修正されるかどうかを示す内部パラメータ、およびカメラ制御データを提供するアクセサのインデックスを表すアクセサデータのうちの1つまたは複数を含む、条項22のコンピュータ可読媒体。
【0156】
条項37:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項27のコンピュータ可読媒体。
【0157】
条項38:プロセッサに、カメラ制御データから、仮想カメラのための許容経路を判断させる命令をさらに含み、プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが、カメラ制御データの中で定義される許容経路内にある仮想経路のみに沿って動くことを保証させる命令を含む、条項27のコンピュータ可読媒体。
【0158】
条項39:カメラ制御データはMPEG_mesh_collision拡張の中に含まれる、条項27のコンピュータ可読媒体。
【0159】
条項40:メディアデータを取り出すためのデバイスであって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するための手段と、3次元シーン用のカメラ制御データを受信するための手段であって、カメラ制御データは、仮想カメラについての許容ロケーションを定義するデータを含む、手段と、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するための手段と、カメラ制御データを使って、仮想カメラが許容ロケーション内に留まることを保証するように、仮想カメラのロケーションを更新するための手段とを備えるデバイス。
【0160】
条項41:メディアデータを取り出す方法であって、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信するステップと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、プレゼンテーションエンジンによって、ユーザから受信するステップと、カメラ移動データに応答して、オブジェクト衝突データを使って、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように、仮想カメラのロケーションを更新するステップとを含む方法。
【0161】
条項42:仮想カメラのロケーションを更新するステップは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップを含む、条項41の方法。
【0162】
条項43:オブジェクト衝突データを受信するステップは、MPEG_mesh_collision拡張を受信するステップを含む、条項41の方法。
【0163】
条項44:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、条項43の方法。
【0164】
条項45:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、3Dメッシュ用の材料、または仮想カメラが3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、条項44の方法。
【0165】
条項46:オブジェクト衝突データを受信するステップは、少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、衝突するオブジェクトが少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信するステップを含む、条項41の方法。
【0166】
条項47:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項41の方法。
【0167】
条項48:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項41の方法。
【0168】
条項49:ストリーミングされるメディアデータを受信するステップは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するステップを含む、条項41の方法。
【0169】
条項50:オブジェクト衝突データはMPEGシーン記述の中に含まれる、条項41の方法。
【0170】
条項51:メディアデータを取り出すためのデバイスであって、メディアデータを記憶するように構成されたメモリと、回路機構で実装されるとともに、プレゼンテーションエンジンを実行するように構成された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、オブジェクト衝突データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように仮想カメラのロケーションを更新することとを行うように構成される、デバイス。
【0171】
条項52:仮想カメラのロケーションを更新するために、プレゼンテーションエンジンは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するように構成される、条項51のデバイス。
【0172】
条項53:オブジェクト衝突データを受信するために、プレゼンテーションエンジンは、MPEG_mesh_collision拡張を受信するように構成される、条項51のデバイス。
【0173】
条項54:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、条項53のデバイス。
【0174】
条項55:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、3Dメッシュ用の材料、または仮想カメラが3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、条項54のデバイス。
【0175】
条項56:オブジェクト衝突データを受信するために、プレゼンテーションエンジンは、少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、衝突するオブジェクトが少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信するように構成される、条項51のデバイス。
【0176】
条項57:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項51のデバイス。
【0177】
条項58:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項51のデバイス。
【0178】
条項59:ストリーミングされるメディアデータを受信するために、プレゼンテーションエンジンは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するように構成される、条項51のデバイス。
【0179】
条項60:オブジェクト衝突データはMPEGシーン記述の中に含まれる、条項51のデバイス。
【0180】
条項61:命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されると、プロセッサに、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、オブジェクト衝突データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように仮想カメラのロケーションを更新することとを行わせる、コンピュータ可読記憶媒体。
【0181】
条項62:プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止させる命令を含む、条項61のコンピュータ可読媒体。
【0182】
条項63:プロセッサに、オブジェクト衝突データを受信させる命令は、プロセッサに、MPEG_mesh_collision拡張を受信させる命令を含む、条項61のコンピュータ可読媒体。
【0183】
条項64:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、条項62のコンピュータ可読媒体。
【0184】
条項65:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、3Dメッシュ用の材料、または仮想カメラが3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、条項63のコンピュータ可読媒体。
【0185】
条項66:プロセッサに、オブジェクト衝突データを受信させる命令は、プロセッサに、少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、衝突するオブジェクトが少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信させる命令を含む、条項61のコンピュータ可読媒体。
【0186】
条項67:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項61のコンピュータ可読媒体。
【0187】
条項68:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項61のコンピュータ可読媒体。
【0188】
条項69:プロセッサに、ストリーミングされるメディアデータを受信させる命令は、プロセッサに、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求させる命令を含む、条項61のコンピュータ可読媒体。
【0189】
条項70:オブジェクト衝突データはMPEGシーン記述の中に含まれる、条項61のコンピュータ可読媒体。
【0190】
条項71:メディアデータを取り出すためのデバイスであって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するための手段と、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信するための手段と、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するための手段と、カメラ移動データに応答して、仮想カメラが少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように仮想カメラのロケーションを更新するための手段とを備えるデバイス。
【0191】
条項72:メディアデータを取り出す方法であって、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、3次元シーン用のカメラ制御データを受信するステップであって、カメラ制御データは、仮想カメラについての許容ロケーションを定義するデータを含む、ステップと、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するステップと、カメラ制御データを使って、仮想カメラが許容ロケーション内に留まることを保証するように、プレゼンテーションエンジンによって、仮想カメラのロケーションを更新するステップとを含む方法。
【0192】
条項73:仮想カメラのロケーションを更新するステップは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップを含む、条項72の方法。
【0193】
条項74:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項72および73のいずれかの方法。
【0194】
条項75:ストリーミングされるメディアデータを受信するステップは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するステップを含む、条項72から74のいずれかの方法。
【0195】
条項76:カメラ制御データは、MPEGシーン記述の中に含まれる、条項72から75のいずれかの方法。
【0196】
条項77:カメラ制御データは、2つ以上のアンカーポイントと、アンカーポイントの間の1つまたは複数のセグメントとを定義するデータを含み、セグメントは、仮想カメラについての許容カメラ移動ベクトルを表し、仮想カメラのロケーションを更新するステップは、仮想カメラが、アンカーポイントの間のセグメントのみを横断することを認めるステップを含む、条項72から76のいずれかの方法。
【0197】
条項78:カメラ制御データは、仮想カメラ用の許容カメラ移動ボリュームを表す境界ボリュームを定義するデータを含み、仮想カメラのロケーションを更新するステップは、仮想カメラが、許容カメラ移動ボリュームのみを横断することを認めるステップを含む、条項72から77のいずれかの方法。
【0198】
条項79:境界ボリュームを定義するデータは、円錐体、錐体、または球のうちの少なくとも1つを定義するデータを含む、条項78の方法。
【0199】
条項80:カメラ制御データはMPEG_camera_control拡張の中に含まれる、条項72から79のいずれかの方法。
【0200】
条項81:MPEG_camera_control拡張は、仮想カメラのための許容経路用のアンカーポイントの数を表すアンカーデータ、アンカーポイントの間の許容経路用の経路セグメントの数を表すセグメントデータ、仮想カメラのための境界ボリュームを表す境界ボリュームデータ、カメラパラメータがアンカーポイントの各々において修正されるかどうかを示す内部パラメータ、およびカメラ制御データを提供するアクセサのインデックスを表すアクセサデータのうちの1つまたは複数を含む、条項80の方法。
【0201】
条項82:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項72から81のいずれかの方法。
【0202】
条項83:カメラ制御データから、仮想カメラのための許容経路を判断するステップをさらに含み、仮想カメラのロケーションを更新するステップは、仮想カメラが、カメラ制御データの中で定義される許容経路内にある仮想経路のみに沿って動くことを保証するステップを含む、条項72の方法。
【0203】
条項84:カメラ制御データはMPEG_mesh_collision拡張の中に含まれる、条項72から83のいずれかの方法。
【0204】
条項85:メディアデータを取り出すためのデバイスであって、メディアデータを記憶するように構成されたメモリと、回路機構で実装されるとともに、プレゼンテーションエンジンを実行するように構成された1つまたは複数のプロセッサとを備え、プレゼンテーションエンジンは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、3次元シーン用のカメラ制御データを受信することであって、カメラ制御データは、仮想カメラについての許容ロケーションを定義するデータを含む、ことと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ制御データを使って、仮想カメラが許容ロケーション内に留まることを保証するように、仮想カメラのロケーションを更新することとを行うように構成される、デバイス。
【0205】
条項86:プレゼンテーションエンジンは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するように構成される、条項85のデバイス。
【0206】
条項87:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項85および86のいずれかのデバイス。
【0207】
条項88:プレゼンテーションエンジンは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するように構成される、条項85から87のいずれかのデバイス。
【0208】
条項89:カメラ制御データは、MPEGシーン記述の中に含まれる、条項85から88のいずれかのデバイス。
【0209】
条項90:カメラ制御データは、2つ以上のアンカーポイントと、アンカーポイントの間の1つまたは複数のセグメントとを定義するデータを含み、セグメントは、仮想カメラについての許容カメラ移動ベクトルを表し、仮想カメラのロケーションを更新するために、プレゼンテーションエンジンは、仮想カメラが、アンカーポイントの間のセグメントのみを横断することを認めるように構成される、条項85から89のいずれかのデバイス。
【0210】
条項91:カメラ制御データは、仮想カメラ用の許容カメラ移動ボリュームを表す境界ボリュームを定義するデータを含み、仮想カメラのロケーションを更新するために、プレゼンテーションエンジンは、仮想カメラが、許容カメラ移動ボリュームのみを横断することを認めるように構成される、条項85から90のいずれかのデバイス。
【0211】
条項92:境界ボリュームを定義するデータは、円錐体、錐体、または球のうちの少なくとも1つを定義するデータを含む、条項91のデバイス。
【0212】
条項93:カメラ制御データはMPEG_camera_control拡張の中に含まれる、条項85から92のいずれかのデバイス。
【0213】
条項94:MPEG_camera_control拡張は、仮想カメラのための許容経路用のアンカーポイントの数を表すアンカーデータ、アンカーポイントの間の許容経路用の経路セグメントの数を表すセグメントデータ、仮想カメラのための境界ボリュームを表す境界ボリュームデータ、カメラパラメータがアンカーポイントの各々において修正されるかどうかを示す内部パラメータ、およびカメラ制御データを提供するアクセサのインデックスを表すアクセサデータのうちの1つまたは複数を含む、条項93のデバイス。
【0214】
条項95:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項85から94のいずれかのデバイス。
【0215】
条項96:プレゼンテーションエンジンは、カメラ制御データから、仮想カメラのための許容経路を判断するようにさらに構成され、仮想カメラのロケーションを更新するために、プレゼンテーションエンジンは、仮想カメラが、カメラ制御データの中で定義される許容経路内にある仮想経路のみに沿って動くことを保証するように構成される、条項85から95のいずれかのデバイス。
【0216】
条項97:カメラ制御データはMPEG_mesh_collision拡張の中に含まれる、条項85から96のいずれかのデバイス。
【0217】
条項98:命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されると、プレゼンテーションエンジンを実行するプロセッサに、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、3次元シーン用のカメラ制御データを受信することであって、カメラ制御データは、仮想カメラについての許容ロケーションを定義するデータを含む、ことと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ制御データを使って、仮想カメラが許容ロケーション内に留まることを保証するように、仮想カメラのロケーションを更新することとを行わせる。
【0218】
条項99:プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止させる命令を含む、条項98のコンピュータ可読記憶媒体。
【0219】
条項100:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項98および99のいずれかのコンピュータ可読媒体。
【0220】
条項101:プロセッサに、ストリーミングされるメディアデータを受信させる命令は、プロセッサに、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求させる命令を含む、条項98から100のいずれかのコンピュータ可読媒体。
【0221】
条項102:カメラ制御データは、MPEGシーン記述の中に含まれる、条項98から101のいずれかのコンピュータ可読媒体。
【0222】
条項103:カメラ制御データは、2つ以上のアンカーポイントと、アンカーポイントの間の1つまたは複数のセグメントとを定義するデータを含み、セグメントは、仮想カメラについての許容カメラ移動ベクトルを表し、プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが、アンカーポイントの間のセグメントのみを横断することを認めさせる命令を含む、条項98から102のいずれかのコンピュータ可読媒体。
【0223】
条項104:カメラ制御データは、仮想カメラ用の許容カメラ移動ボリュームを表す境界ボリュームを定義するデータを含み、プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが、許容カメラ移動ボリュームのみを横断することを認めさせる命令を含む、条項103のコンピュータ可読媒体。
【0224】
条項105:境界ボリュームを定義するデータは、円錐体、錐体、または球のうちの少なくとも1つを定義するデータを含む、条項98から104のいずれかのコンピュータ可読媒体。
【0225】
条項106:カメラ制御データはMPEG_camera_control拡張の中に含まれる、条項105のコンピュータ可読媒体。
【0226】
条項107:MPEG_camera_control拡張は、仮想カメラのための許容経路用のアンカーポイントの数を表すアンカーデータ、アンカーポイントの間の許容経路用の経路セグメントの数を表すセグメントデータ、仮想カメラのための境界ボリュームを表す境界ボリュームデータ、カメラパラメータがアンカーポイントの各々において修正されるかどうかを示す内部パラメータ、およびカメラ制御データを提供するアクセサのインデックスを表すアクセサデータのうちの1つまたは複数を含む、条項98から106のいずれかのコンピュータ可読媒体。
【0227】
条項108:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項98から107のいずれかのコンピュータ可読媒体。
【0228】
条項109:プロセッサに、カメラ制御データから、仮想カメラのための許容経路を判断させる命令をさらに含み、プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが、カメラ制御データの中で定義される許容経路内にある仮想経路のみに沿って動くことを保証させる命令を含む、条項98から108のいずれかのコンピュータ可読媒体。
【0229】
条項110:カメラ制御データはMPEG_mesh_collision拡張の中に含まれる、条項98から109のいずれかのコンピュータ可読媒体。
【0230】
条項111:メディアデータを取り出すためのデバイスであって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するための手段と、3次元シーン用のカメラ制御データを受信するための手段であって、カメラ制御データは、仮想カメラについての許容ロケーションを定義するデータを含む、手段と、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するための手段と、カメラ制御データを使って、仮想カメラが許容ロケーション内に留まることを保証するように、仮想カメラのロケーションを更新するための手段とを備えるデバイス。
【0231】
条項112:メディアデータを取り出す方法であって、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信するステップと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、プレゼンテーションエンジンによって、ユーザから受信するステップと、カメラ移動データに応答して、オブジェクト衝突データを使って、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように、仮想カメラのロケーションを更新するステップとを含む方法。
【0232】
条項113:条項72から84のいずれかの方法と条項112の方法の組合せを含む方法。
【0233】
条項114:仮想カメラのロケーションを更新するステップは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップを含む、条項112および113のいずれかの方法。
【0234】
条項115:オブジェクト衝突データを受信するステップは、MPEG_mesh_collision拡張を受信するステップを含む、条項112から114のいずれかの方法。
【0235】
条項116:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、条項115の方法。
【0236】
条項117:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、3Dメッシュ用の材料、または仮想カメラが3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、条項116の方法。
【0237】
条項118:オブジェクト衝突データを受信するステップは、少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、衝突するオブジェクトが少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信するステップを含む、条項112から117のいずれかの方法。
【0238】
条項119:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項112から118のいずれかの方法。
【0239】
条項120:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項112から119のいずれかの方法。
【0240】
条項121:ストリーミングされるメディアデータを受信するステップは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するステップを含む、条項112から120のいずれかの方法。
【0241】
条項122:オブジェクト衝突データはMPEGシーン記述の中に含まれる、条項112から121のいずれかの方法。
【0242】
条項123:メディアデータを取り出すためのデバイスであって、メディアデータを記憶するように構成されたメモリと、回路機構で実装されるとともに、プレゼンテーションエンジンを実行するように構成された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、オブジェクト衝突データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように仮想カメラのロケーションを更新することとを行うように構成される、デバイス。
【0243】
条項124:条項85から97のいずれかのデバイスと条項123のデバイスの組合せを備えるデバイス。
【0244】
条項125:仮想カメラのロケーションを更新するために、プレゼンテーションエンジンは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するように構成される、条項123および124のいずれかのデバイス。
【0245】
条項126:オブジェクト衝突データを受信するために、プレゼンテーションエンジンは、MPEG_mesh_collision拡張を受信するように構成される、条項123から125のいずれかのデバイス。
【0246】
条項127:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、条項126のデバイス。
【0247】
条項128:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、3Dメッシュ用の材料、または仮想カメラが3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、条項127のデバイス。
【0248】
条項129:オブジェクト衝突データを受信するために、プレゼンテーションエンジンは、少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、衝突するオブジェクトが少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信するように構成される、条項123から128のいずれかのデバイス。
【0249】
条項130:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項123から129のいずれかのデバイス。
【0250】
条項131:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項123から130のいずれかのデバイス。
【0251】
条項132:ストリーミングされるメディアデータを受信するために、プレゼンテーションエンジンは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するように構成される、条項123から131のいずれかのデバイス。
【0252】
条項133:オブジェクト衝突データはMPEGシーン記述の中に含まれる、条項123から132のいずれかのデバイス。
【0253】
条項134:命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されると、プロセッサに、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信することと、少なくとも1つの仮想固体オブジェクトの境界を表すオブジェクト衝突データを受信することと、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信することと、カメラ移動データに応答して、オブジェクト衝突データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの外に留まることを保証するように仮想カメラのロケーションを更新することとを行わせる、コンピュータ可読記憶媒体。
【0254】
条項135:条項98~110のいずれかのコンピュータ可読記憶媒体と、条項134のコンピュータ可読記憶媒体の組合せを含むコンピュータ可読記憶媒体。
【0255】
条項136:プロセッサに仮想カメラのロケーションを更新させる命令は、プロセッサに、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止させる命令を含む、条項134および135のいずれかのコンピュータ可読媒体。
【0256】
条項137:プロセッサに、オブジェクト衝突データを受信させる命令は、プロセッサに、MPEG_mesh_collision拡張を受信させる命令を含む、条項134から136のいずれかのコンピュータ可読媒体。
【0257】
条項138:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、条項134から137のいずれかのコンピュータ可読媒体。
【0258】
条項139:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の3Dメッシュの境界、3Dメッシュ用の材料、または仮想カメラが3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、条項134から138のいずれかのコンピュータ可読媒体。
【0259】
条項140:プロセッサに、オブジェクト衝突データを受信させる命令は、プロセッサに、少なくとも1つの仮想固体オブジェクトの1つもしくは複数の衝突境界を表す境界データ、少なくとも1つの仮想固体オブジェクトが衝突によって影響されるかどうかを表す静的データ、衝突するオブジェクトが少なくとも1つの仮想固体オブジェクトとどのように相互作用するかを表す材料データ、または少なくとも1つの仮想固体オブジェクトとの衝突によってトリガされるアニメーションを表すアニメーションデータのうちの1つまたは複数を含むデータを受信させる命令を含む、条項134から139のいずれかのコンピュータ可読媒体。
【0260】
条項141:少なくとも1つの仮想固体オブジェクトは、仮想壁、仮想椅子、または仮想テーブルのうちの1つを含む、条項134から140のいずれかのコンピュータ可読媒体。
【0261】
条項142:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項134から141のいずれかのコンピュータ可読媒体。
【0262】
条項143:プロセッサに、ストリーミングされるメディアデータを受信させる命令は、プロセッサに、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求させる命令を含む、条項134から142のいずれかのコンピュータ可読媒体。
【0263】
条項144:オブジェクト衝突データはMPEGシーン記述の中に含まれる、条項134から143のいずれかのコンピュータ可読媒体。
【0264】
条項145:メディアデータを取り出す方法であって、プレゼンテーションエンジンによって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するステップと、プレゼンテーションエンジンによって、3次元シーン用のカメラ制御データを受信するステップであって、カメラ制御データは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するための制約を定義するデータを含む、ステップと、プレゼンテーションエンジンによって、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するステップと、カメラ移動データに応答して、カメラ制御データを使って、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップとを含む方法。
【0265】
条項146:ストリーミングされるメディアデータは、glTF2.0メディアデータを含む、条項145の方法。
【0266】
条項147:ストリーミングされるメディアデータを受信するステップは、アプリケーションプログラミングインターフェース(API)を介して、取出しユニットに対して、ストリーミングされるメディアデータを要求するステップを含む、条項145および146のいずれかの方法。
【0267】
条項148:カメラ制御データは、MPEGシーン記述の中に含まれる、条項145から147のいずれかの方法。
【0268】
条項149:カメラ制御データはMPEG_camera_control拡張の中に含まれる、条項145から148のいずれかの方法。
【0269】
条項150:MPEG_camera_control拡張は、2つ以上のアンカーポイントと、アンカーポイントの間の1つまたは複数のセグメントとを定義するデータを含み、セグメントは許容カメラ移動ベクトルを表す、条項149の方法。
【0270】
条項151:MPEG_camera_control拡張は、許容カメラ移動ボリュームを表す境界ボリュームを定義するデータを含む、条項149および150のいずれかの方法。
【0271】
条項152:境界ボリュームを定義するデータは、円錐体、錐体、または球のうちの少なくとも1つを定義するデータを含む、条項151の方法。
【0272】
条項153:MPEG_camera_control拡張は、上のTable 1(表1)のデータに準拠する、条項149から152のいずれかの方法。
【0273】
条項154:少なくとも1つの仮想固体オブジェクトは仮想壁を含む、条項149から153のいずれかの方法。
【0274】
条項155:仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップは、MPEG_camera_control拡張において定義される許容経路を超える仮想経路に沿って仮想カメラが動くのを防止するステップを含む、条項149から154のいずれかの方法。
【0275】
条項156:カメラ制御データはMPEG_mesh_collision拡張の中に含まれる、条項145から155のいずれかの方法。
【0276】
条項157:MPEG_mesh_collision拡張は、少なくとも1つの仮想固体オブジェクト用の少なくとも1つの3Dメッシュを定義するデータを含む、条項156の方法。
【0277】
条項158:MPEG_mesh_collision拡張は、3Dメッシュの境界、3Dメッシュ用の材料、または仮想カメラが3Dメッシュに接触したことに応答して提示されるべきアニメーションのうちの少なくとも1つを定義するデータを含む、条項157の方法。
【0278】
条項159:MPEG_mesh_collision拡張は上のTable 2(表2)に準拠する、条項156から158のいずれかの方法。
【0279】
条項160:仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するステップは、MPEG_mesh_collision拡張を使って、仮想カメラが少なくとも1つの仮想固体オブジェクトに入るのを防止するステップを含む、条項156から159のいずれかの方法。
【0280】
条項161:メディアデータを取り出すためのデバイスであって、条項145から160のいずれかの方法を実施するための1つまたは複数の手段を備えるデバイス。
【0281】
条項162:1つまたは複数の手段が、回路機構において実装された1つまたは複数のプロセッサを備える、条項161のデバイス。
【0282】
条項163:装置は、集積回路、マイクロプロセッサ、およびワイヤレス通信デバイスのうちの少なくとも1つを含む、条項161のデバイス。
【0283】
条項164:メディアデータを取り出すためのデバイスであって、少なくとも1つの仮想固体オブジェクトを含む仮想3次元シーンを表す、ストリーミングされるメディアデータを受信するための手段と、3次元シーン用のカメラ制御データを受信するための手段であって、カメラ制御データは、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するための制約を定義するデータを含む、手段と、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を動くことを要求するカメラ移動データを、ユーザから受信するための手段と、カメラ移動データに応答して、仮想カメラが少なくとも1つの仮想固体オブジェクトの中を通るのを防止するのにカメラ制御データを使うための手段とを備えるデバイス。
【0284】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は、一般に、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品が、コンピュータ可読媒体を含む場合がある。
【0285】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。ディスク(disk)およびディスク(disc)は、本明細書で使用するとき、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【0286】
命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路機構もしくは個別論理回路機構などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明された機能性は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供され得、または複合コーデックに組み込まれ得る。また、技法は、1つまたは複数の回路または論理要素で完全に実装され得る。
【0287】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示された技法を実施するように構成されたデバイスの機能的側面を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されているが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合体によって与えられ得る。
【0288】
様々な例について述べた。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【0289】
10 システム
20 コンテンツ準備デバイス
22 オーディオソース
24 ビデオソース
26 オーディオエンコーダ
28 ビデオエンコーダ
30 カプセル化ユニット
32 出力インターフェース
40 クライアントデバイス
42 オーディオ出力
44 ビデオ出力
46 オーディオデコーダ
48 ビデオデコーダ
50 カプセル化解除ユニット
52 取出しユニット
54 ネットワークインターフェース
60 サーバデバイス
62 記憶媒体
64 マルチメディアコンテンツ
66 マニフェストファイル
68 表現
68A~68N 表現
70 要求処理ユニット
72 ネットワークインターフェース
74 ネットワーク
100 eMBMSミドルウェアユニット
102 プロキシサーバユニット
104 キャッシュ
106 eMBMS受信ユニット
110 DASHクライアント
112 メディアアプリケーション
114 プレゼンテーションエンジン
120 マルチメディアコンテンツ
122 メディアプレゼンテーション記述(MPD)
124 表現
124A 表現
124N 表現
126 ヘッダデータ
128 セグメント
128A~128N セグメント
130 ヘッダデータ
132 セグメント
132A~132N セグメント
150 ビデオファイル
152 ファイルタイプ(FTYP)ボックス
154 ムービー(MOOV)ボックス
156 ムービーヘッダ(MVHD)ボックス
158 トラック(TRAK)ボックス
160 ムービー延長(MVEX)ボックス
162 セグメントインデックス(sidx)ボックス
164 ムービーフラグメント(MOOF)ボックス
166 ムービーフラグメントランダムアクセス(MFRA)ボックス
202 カメラ
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】