(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-08
(45)【発行日】2023-12-18
(54)【発明の名称】メディアシーン記述のための方法および装置
(51)【国際特許分類】
G06T 19/00 20110101AFI20231211BHJP
G06F 16/56 20190101ALI20231211BHJP
【FI】
G06T19/00 A
G06F16/56
(21)【出願番号】P 2022558542
(86)(22)【出願日】2021-10-13
(86)【国際出願番号】 US2021054746
(87)【国際公開番号】W WO2022150080
(87)【国際公開日】2022-07-14
【審査請求日】2022-09-27
(32)【優先日】2021-01-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-10-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シュアイ・ジャオ
(72)【発明者】
【氏名】ステファン・ヴェンガー
(72)【発明者】
【氏名】シャン・リュウ
【審査官】早川 学
(56)【参考文献】
【文献】特許第6746024(JP,B1)
【文献】米国特許出願公開第2020/0066022(US,A1)
【文献】特開2019-152902(JP,A)
【文献】特表2018-525722(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00-19/20
G06F 16/56
(57)【特許請求の範囲】
【請求項1】
メディアのストレージおよび配信を管理する方法であって、前記方法は、少なくとも1つのプロセッサによって実装され、
メディアアクセス機能(MAF)によって、シーンに対応するグラフィックス・ランゲージ・トランスミッション・フォーマット(glTF)ファイルを取得するステップと、
前記glTFファイルから、バイナリデータブロブを示すユニフォームリソースロケータ(URL)パラメータを取得するステップと、
前記バイナリデータブロブがコンサイスバイナリオブジェクト表現(CBOR)フォーマットを有すると決定するステップと、
前記MAFによって実装されるCBORパーサ機能を使用して、前記バイナリデータブロブを、JavaScriptオブジェクトノーテーション(JSON)フォーマットを有するオブジェクトに変換するステップと、
前記オブジェクトに基づいて前記シーンに対応するメディアコンテンツを取得するステップと
を含む、方法。
【請求項2】
前記JSONフォーマットを有する前記オブジェクトは、前記CBORフォーマットを有する前記バイナリデータブロブよりも大きい、請求項1に記載の方法。
【請求項3】
前記バイナリデータブロブは、前記glTFファイルでシグナリングされる多目的インターネットメール拡張(MIME)タイプに基づいて前記CBORフォーマットを有すると決定される、請求項1に記載の方法。
【請求項4】
前記バイナリデータブロブは、前記バイナリデータブロブの先頭に含まれるプレフィックスに基づいて前記CBORフォーマットを有すると決定される、請求項1に記載の方法。
【請求項5】
前記バイナリデータブロブは、前記glTFファイルでシグナリングされる多目的インターネットメール拡張(MIME)タイプおよび前記バイナリデータブロブの先頭に含まれるプレフィックスに基づいて前記CBORフォーマットを有すると決定される、請求項1に記載の方法。
【請求項6】
前記MAFは、ムービングピクチャエクスパーツグループ(MPEG)シーン記述アーキテクチャに含まれる、請求項1に記載の方法。
【請求項7】
前記CBORパーサ機能は、前記MAFに関連付けられたアプリケーションプログラミングインターフェースを使用して実装される、請求項1に記載の方法。
【請求項8】
メディアのストレージおよび配信を管理するためのデバイスであって、前記デバイスが、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードによって命令されると動作するように構成された少なくとも1つのプロセッサであって、前記プログラムコードは、
前記少なくとも1つのプロセッサに、メディアアクセス機能(MAF)によって、シーンに対応するグラフィックス・ランゲージ・トランスミッション・フォーマット(glTF)ファイルを取得させるように構成された第1の取得コードと、
前記少なくとも1つのプロセッサに、前記glTFファイルから、バイナリデータブロブを示すユニフォームリソースロケータ(URL)パラメータを取得させるように構成された第2の取得コードと、
前記少なくとも1つのプロセッサに、前記バイナリデータブロブはコンサイスバイナリオブジェクト表現(CBOR)フォーマットを有すると決定させるように構成された決定コードと、
前記少なくとも1つのプロセッサに、前記MAFによって実装されるCBORパーサ機能を使用して、前記バイナリデータブロブを、JavaScriptオブジェクトノーテーション(JSON)フォーマットを有するオブジェクトに変換させるように構成された変換コードと、
前記少なくとも1つのプロセッサに、前記オブジェクトに基づいて前記シーンに対応するメディアコンテンツを取得させるように構成された第3の取得コードと
を含む、少なくとも1つのプロセッサと
を備える、デバイス。
【請求項9】
前記JSONフォーマットを有する前記オブジェクトは、前記CBORフォーマットを有する前記バイナリデータブロブよりも大きい、請求項8に記載のデバイス。
【請求項10】
前記バイナリデータブロブは、前記glTFファイルでシグナリングされる多目的インターネットメール拡張(MIME)タイプに基づいて前記CBORフォーマットを有すると決定される、請求項8に記載のデバイス。
【請求項11】
前記バイナリデータブロブは、前記バイナリデータブロブの先頭に含まれるプレフィックスに基づいて前記CBORフォーマットを有すると決定される、請求項8に記載のデバイス。
【請求項12】
前記バイナリデータブロブは、前記glTFファイルでシグナリングされる多目的インターネットメール拡張(MIME)タイプおよび前記バイナリデータブロブの先頭に含まれるプレフィックスに基づいて前記CBORフォーマットを有すると決定される、請求項8に記載のデバイス。
【請求項13】
前記MAFは、ムービングピクチャエクスパーツグループ(MPEG)シーン記述アーキテクチャに含まれる、請求項8に記載のデバイス。
【請求項14】
前記CBORパーサ機能は、前記MAFに関連付けられたアプリケーションプログラミングインターフェースを使用して実装される、請求項8に記載のデバイス。
【請求項15】
メディアのストレージおよび配信を管理するためのデバイスの少なくとも1つのプロセッサに
、請求項1から7のいずれか一項に記載の方法を実行さ
せるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、3Dモデリング構文を使用してメディアオブジェクトをサポートし、様々なメディアコーデック、コンテナ、およびフォーマットをサポートするためにメディア構文を実装し、所定のプログラミングインターフェースを介してメディアのストレージおよび配信方法を管理し、メディアのバッファ制御およびレンダリング機能を提供するためのシステム設計に関する。
【背景技術】
【0002】
グラフィックス・ランゲージ・トランスミッション・フォーマット(Graphics Language Transmission Format、glTF)は、APIに中立なランタイムアセット3Dモデリング配信フォーマットである。従来の3Dモデリングツールと比べて、glTFは、3Dコンテンツの伝送およびロードのためのより効率的で拡張可能かつ相互運用可能なフォーマットを提供する。glTF 2.0は、Khronos 3D Groupによって書かれたglTF仕様の最新バージョンである。このフォーマットは、「png」および「jpeg」画像フォーマットを含む、一般にシーン内の静的(非時限)オブジェクトをサポートすることができる単純なシーングラフフォーマットをサポートする。glTF 2.0は、単純なアニメーションをサポートし、glTFプリミティブを使用して記述された基本形状、すなわち幾何学的オブジェクトの並進、回転、およびスケーリングをサポートする。glTF 2.0は時限メディアをサポートしておらず、したがって、ビデオもオーディオもサポートしていない。
【0003】
‘‘Information technology-Coding of audiovisual objects-Part 12:ISO base media file format’’、ISO/IEC 14496-12(2015年12月)、‘‘Draft of FDIS of ISO/IEC 23000-19 Common Media Application Format for Segmented Media’’、ISO/IEC JTC1/SC29/WG11 MPEG117/16819(2017年4月)、および‘‘Text of ISO/IEC FDIS 23009-1 4th edition’’、ISO/IEC JTC 1/SC 29/WG 11 N18609(2019年8月)、ならびにglTF 2.0仕様は、その全体が参照により本明細書に組み込まれる。
【発明の概要】
【課題を解決するための手段】
【0004】
一実施形態によれば、メディアのストレージおよび配信を管理する方法は、少なくとも1つのプロセッサによって実装され、メディアアクセス機能(media access function、MAF)によって、シーンに対応するグラフィックス・ランゲージ・トランスミッション・フォーマット(glTF)ファイルを取得するステップと、glTFファイルから、バイナリデータブロブを示すユニフォームリソースロケータ(uniform resource locator、URL)パラメータを取得するステップと、バイナリデータブロブはコンサイスバイナリオブジェクト表現(Concise Binary Object Representation、CBOR)フォーマットを有すると決定するステップと、MAFによって実装されるCBORパーサ機能を使用して、バイナリデータブロブを、JavaScriptオブジェクトノーテーション(JavaScript Object Notation、JSON)フォーマットを有するオブジェクトに変換するステップと、オブジェクトに基づいてシーンに対応するメディアコンテンツを取得するステップとを含む。
【0005】
一実施形態によれば、メディアのストレージおよび配信を管理するためのデバイスは、プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードによって命令されると動作するように構成された少なくとも1つのプロセッサであって、プログラムコードは、少なくとも1つのプロセッサに、メディアアクセス機能(MAF)によって、シーンに対応するグラフィックス・ランゲージ・トランスミッション・フォーマット(glTF)ファイルを取得させるように構成された第1の取得コードと、少なくとも1つのプロセッサに、glTFファイルから、バイナリデータブロブを示すユニフォームリソースロケータ(URL)パラメータを取得させるように構成された第2の取得コードと、少なくとも1つのプロセッサに、バイナリデータブロブはコンサイスバイナリオブジェクト表現(CBOR)フォーマットを有すると決定させるように構成された決定コードと、少なくとも1つのプロセッサに、MAFによって実装されるCBORパーサ機能を使用して、バイナリデータブロブを、JavaScriptオブジェクトノーテーション(JSON)フォーマットを有するオブジェクトに変換させるように構成された変換コードと、少なくとも1つのプロセッサに、オブジェクトに基づいてシーンに対応するメディアコンテンツを取得させるように構成された第3の取得コードとを含む、少なくとも1つのプロセッサとを備える。
【0006】
一実施形態によれば、非一時的コンピュータ可読媒体は、メディアのストレージおよび配信を管理するためのデバイスの少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、メディアアクセス機能(MAF)によって、シーンに対応するグラフィックス・ランゲージ・トランスミッション・フォーマット(glTF)ファイルを取得させ、glTFファイルから、バイナリデータブロブを示すユニフォームリソースロケータ(URL)パラメータを取得させ、バイナリデータブロブはコンサイスバイナリオブジェクト表現(CBOR)フォーマットを有すると決定させ、MAFによって実装されるCBORパーサ機能を使用して、バイナリデータブロブを、JavaScriptオブジェクトノーテーション(JSON)フォーマットを有するオブジェクトに変換させ、オブジェクトに基づいてシーンに対応するメディアコンテンツを取得させるように構成された1つまたは複数の命令を含む、命令を記憶する。
【0007】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【図面の簡単な説明】
【0008】
【
図1】実施形態による、本明細書に記載された方法、装置、およびシステムがその中で実現され得る環境の図である。
【
図2】実施形態による、
図1の1つまたは複数のデバイスの例示的な構成要素のブロック図である。
【
図3】実施形態による、glTFシーン記述オブジェクトの概略図である。
【
図4】実施形態による、メディアシーン記述システムリファレンスアーキテクチャの概略図である。
【
図5】実施形態による、glTF JavaScriptオブジェクトノーテーション(JSON)フォーマット表現の一例である。
【
図6】実施形態による、MPEG glTF拡張の一例である。
【
図7A】実施形態による、JSONフォーマットを有するファイルを示す図である。
【
図7B】実施形態による、CBORフォーマットを有するファイルを示す図である。
【
図8】実施形態による、glTF構文の一例を示す図である。
【
図9A】実施形態による、メディアのストレージおよび配信を管理するための例示的なプロセスの図である。
【
図9B】実施形態による、メディアのストレージおよび配信を管理するための例示的なプロセスの図である。
【
図9C】実施形態による、メディアのストレージおよび配信を管理するための例示的なプロセスの図である。
【発明を実施するための形態】
【0009】
図1は、実施形態による、本明細書に記載された方法、装置、およびシステムがその中で実現され得る環境100の図である。
図1に示されたように、環境100は、ユーザデバイス110、プラットフォーム120、およびネットワーク130を含んでもよい。環境100のデバイスは、有線接続、無線接続、または有線接続と無線接続との組合せを介して相互接続してもよい。
【0010】
ユーザデバイス110は、プラットフォーム120に関連付けられた情報を受信、生成、記憶、処理、および/または提供することが可能な1つまたは複数のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、一対のスマートグラスもしくはスマートウォッチ)、または同様のデバイスを含んでもよい。いくつかの実施態様では、ユーザデバイス110は、プラットフォーム120から情報を受信し、かつ/または情報をプラットフォームに送信してもよい。
【0011】
プラットフォーム120は、本明細書の他の箇所に記載されるような1つまたは複数のデバイスを含む。いくつかの実装形態では、プラットフォーム120は、クラウドサーバまたはクラウドサーバのグループを含んでもよい。いくつかの実装形態では、プラットフォーム120は、特定の要求に応じてソフトウェアコンポーネントを入れ替えできるように、モジュール式に設計されてもよい。これにより、プラットフォーム120は、異なる用途向けに、容易かつ/または迅速に復元され得る。
【0012】
いくつかの実装形態では、図示されたように、プラットフォーム120は、クラウドコンピューティング環境122内でホストされてもよい。特に、本明細書に記載された実装形態は、クラウドコンピューティング環境122内でホストされるものとしてプラットフォーム120を記載するが、いくつかの実装形態では、プラットフォーム120は、クラウドベースでなくてもよい(すなわち、クラウドコンピューティング環境の外部に実装されてもよい)し、部分的にクラウドベースであってもよい。
【0013】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステムおよび/またはデバイスの物理的な位置および構成のエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供することができる。図示されたように、クラウドコンピューティング環境122は、(まとめて「コンピューティングリソース124」と呼ばれ、個別に「コンピューティングリソース124」と呼ばれる)コンピューティングリソース124のグループを含んでもよい。
【0014】
コンピューティングリソース124は、1つまたは複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他のタイプの計算デバイスおよび/もしくは通信デバイスを含む。いくつかの実装形態では、コンピューティングリソース124は、プラットフォーム120のホストすることができる。クラウドリソースは、コンピューティングリソース124内で実行される計算インスタンス、コンピューティングリソース124内で提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含んでもよい。いくつかの実装形態では、コンピューティングリソース124は、有線接続、無線接続、または有線接続と無線接続との組合せを介して他のコンピューティングリソース124と通信することができる。
【0015】
図1にさらに示されたように、コンピューティングリソース124は、1つまたは複数のアプリケーション(「APP」)124-1、1つまたは複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つまたは複数のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含む。
【0016】
アプリケーション124-1は、ユーザデバイス110および/もしくはプラットフォーム120に提供され得る、またはユーザデバイス110および/もしくはプラットフォーム120によってアクセスされ得る1つまたは複数のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110上でソフトウェアアプリケーションをインストールし実行する必要性を排除することができる。例えば、アプリケーション124-1は、プラットフォーム120に関連付けられたソフトウェアおよび/またはクラウドコンピューティング環境122を介して提供されることが可能な任意の他のソフトウェアを含んでもよい。いくつかの実装形態では、1つのアプリケーション124-1は、仮想マシン124-2を介して1つまたは複数の他のアプリケーション124-1との間で情報を送受信することができる。例えば、アプリケーション124-1は、オーディオストリーミング、ビジュアルストリーミング、オブジェクト記述ストリーム、シーン記述ストリームなどを含むがこれらに限定されないメディアストリーミングを提供することができる。シーン記述は、一般に、シーンを記述する記述子を指す。シーンは、一般に、任意の2D、3D、および/または没入オブジェクト、ならびにそれらの関連するプロパティ、コマンド、および/または挙動を指すことができる。シーン記述は、オーディオ、ビデオ、およびグラフィックオブジェクトの階層表現であるシーングラフの形態で送信され得る。シーン記述は、他のタイプのストリーム、例えば、オーディオストリーム、ビジュアルストリーム、オブジェクト記述ストリームなどから独立して送信され得ることに留意されたい。
【0017】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装形態を含む。仮想マシン124-2は、仮想マシン124-2による用途および任意の実マシンとの対応関係の程度に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供することができる。プロセス仮想マシンは、単一のプログラムを実行することができ、単一のプロセスをサポートすることができる。いくつかの実装形態では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)の代わりに実行することができ、データ管理、同期、または長い期間のデータ転送などのクラウドコンピューティング環境122の基盤を管理することができる。
【0018】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステムまたはデバイス内で仮想化技法を使用する1つもしくは複数のストレージシステムおよび/または1つもしくは複数のデバイスを含む。いくつかの実装形態では、ストレージシステムのコンテキストにおいて、仮想化のタイプは、ブロック仮想化およびファイル仮想化を含んでもよい。ブロック仮想化は、ストレージシステムが物理ストレージまたは異種構造に関係なくアクセスされ得るような、物理ストレージからの論理ストレージの抽象化(または分離)を指すことができる。分離により、ストレージシステムの管理者がエンドユーザのためにストレージを管理する方法の柔軟性が可能になり得る。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に記憶された場所との間の依存関係を排除することができる。これにより、ストレージ使用の最適化、サーバ統合、および/またはスムーズなファイル移行の実行が可能になり得る。
【0019】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)をコンピューティングリソース124などのホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技法を提供することができる。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示することができ、ゲストオペレーティングシステムの実行を管理することができる。様々なオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共有することができる。
【0020】
ネットワーク130は、1つまたは複数の有線および/または無線のネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公的地域モバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはそれらもしくは他のタイプのネットワークの組合せを含んでもよい。
【0021】
図1に示されたデバイスおよびネットワークの数および配置は、一例として提供されている。実際には、
図1に示されたものに比べて、さらなるデバイスおよび/もしくはネットワーク、少ないデバイスおよび/もしくはネットワーク、異なるデバイスおよび/もしくはネットワーク、または異なる配置のデバイスおよび/もしくはネットワークが存在してもよい。さらに、
図1に示された2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または
図1に示された単一のデバイスは、複数の分散型デバイスとして実装されてもよい。追加または代替として、環境100のデバイスのセット(例えば、1つまたは複数のデバイス)は、環境100のデバイスの別のセットによって行われるものとして記述された1つまたは複数の機能を行うことができる。
【0022】
図2は、
図1の1つまたは複数のデバイスの例示的な構成要素のブロック図である。デバイス200は、ユーザデバイス110および/またはプラットフォーム120に対応し得る。
図2に示されるように、デバイス200は、バス210と、プロセッサ220と、メモリ230と、ストレージコンポーネント240と、入力コンポーネント250と、出力コンポーネント260と、通信インターフェース270とを備えてもよい。
【0023】
バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せに実装される。プロセッサ220は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理構成要素である。いくつかの実装形態では、プロセッサ220は、機能を行うようにプログラムされることが可能な1つまたは複数のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、ならびに/またはプロセッサ220が使用するための情報および/もしくは命令を記憶する別のタイプの動的もしくは静的なストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、および/もしくは光メモリ)を含む。
【0024】
ストレージコンポーネント240は、デバイス200の動作および使用に関連する情報および/またはソフトウェアを記憶する。例えば、ストレージコンポーネント240は、対応するドライブとともに、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/またはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的コンピュータ可読媒体を含んでもよい。
【0025】
入力コンポーネント250は、デバイス200がユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイクロフォン)などを介して情報を受信することを可能にする構成要素を含む。追加または代替として、入力コンポーネント250は、情報を検知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含んでもよい。出力コンポーネント260は、デバイス200(例えば、ディスプレイ、スピーカ、および/または1つもしくは複数の発光ダイオード(LED))からの出力情報を提供する構成要素を含む。
【0026】
通信インターフェース270は、デバイス200が有線接続、無線接続、または有線接続と無線接続との組合せなどを介して他のデバイスと通信することを可能にする、送受信機様の構成要素(例えば、送受信機ならびに/または別個の受信機および送信機)を含む。通信インターフェース270は、デバイス200が別のデバイスから情報を受信し、かつ/または別のデバイスに情報を提供することを可能にすることができる。例えば、通信インターフェース270は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェースなどを含んでもよい。
【0027】
デバイス200は、本明細書に記載された1つまたは複数のプロセスを行うことができる。デバイス200は、プロセッサ220がメモリ230および/またはストレージコンポーネント240などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令を実行することに応答して、これらのプロセスを行うことができる。コンピュータ可読媒体は、本明細書では非一時的メモリデバイスと定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリ空間、または複数の物理ストレージデバイスにわたって広がるメモリ空間を含む。
【0028】
ソフトウェア命令は、別のコンピュータ可読媒体から、または通信インターフェース270を介して別のデバイスから、メモリ230および/またはストレージコンポーネント240に読み込まれてもよい。メモリ230および/またはストレージコンポーネント240に記憶されたソフトウェア命令は、実行されると、本明細書に記載された1つまたは複数のプロセスをプロセッサ220に行わせることができる。追加または代替として、ハードワイヤード回路は、本明細書に記載された1つまたは複数のプロセスを行うために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用されてもよい。このように、本明細書に記載された実装形態は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されない。
【0029】
図2に示された構成要素の数および配置は、一例として提供されている。実際には、デバイス200は、
図2に示された構成要素に比べて、さらなる構成要素、少ない構成要素、異なる構成要素、または異なる配置の構成要素を含んでもよい。追加または代替として、デバイス200のコンポーネントのセット(例えば、1つまたは複数のコンポーネント)は、デバイス200のコンポーネントの別のセットによって行われるものとして記載された1つまたは複数の機能を行うことができる。
【0030】
図3を参照すると、グラフィックス・ランゲージ・トランスミッション・フォーマット(glTF)は、アプリケーションプログラミングインターフェース(API)に中立なランタイムアセット3Dモデリング配信フォーマットである。従来の3Dモデリングツールと比較して、glTFは、3Dコンテンツの伝送およびロードのためのより効率的で拡張可能かつ相互運用可能なフォーマットを提供する。
【0031】
glTFシーンは、複数のglTFアセットの組合せであり得る。glTFアセットは、例えば、シーンオブジェクト301、ノード302、カメラ303、メッシュ304、照明305、アニメーション306、アクセサ307、マテリアル308、スキン309、バッファビュー310、技法311、テクスチャ312、バッファ313、プログラム314、画像315、サンプラ316、シェーダ317、およびサポートする外部データを含み得るフルシーン記述を含むJavaScriptオブジェクトノーテーション(JSON)フォーマットのファイルであり得る。
【0032】
glTFはまた、任意の上述のシーンオブジェクトにおいて参照され得る外部データソースをサポートする。実施形態では、バイナリファイルがアニメーション306または他のバッファベースのデータ313に使用され得る。画像ファイルは、オブジェクトテクスチャ312に使用され得る。
【0033】
図5を参照すると、上述のように、glTFシーンがJSONフォーマットで編成され得る。glTFアセットは、レンダリングすべきビジュアルオブジェクトのセットであり得るゼロ以上のシーン503を含み得る。シーンは、シーン配列で定義され得る。
図5に示された例では、単一ノード501に単一シーン506が存在するが、実施形態はこれに限定されない。
様々なパラメータは、各ノードオブジェクトに関連付けられ得
る。例えば、名称502は、ノードオブジェクトの名称を指定してもよく、シーン名504は、単一シーンの名称を指定してもよい。
【0034】
glTFシーンアセットは、3Dまたは没入シーンをユーザにレンダリングするためにプレゼンテーションエンジンによって消費されてもよい。既存のglTF構文は、静的またはコンピュータ生成アニメーションを含む3Dオブジェクトのみをサポートする。ビデオ/オーディオメディアタイプをレンダリングすることはもちろん、ビデオまたはオーディオなどのメディアタイプに対するサポートはない。
【0035】
一方、既存のglTFは、地理的座標系を使用してシーンを記述することができず、いくつかのメディア提示シナリオではそのような特徴が望まれる。
【0036】
したがって、従来の2D平面映像、仮想現実(VR)、拡張現実(AR)、エクステンデッドリアリティ(XR)などの没入メディアコンテンツ、および空間オーディオを含むメディアタイプをサポートするようにglTFを拡張することが必要とされている。このことは、ビデオ/オーディオ構文をサポートするための拡張およびメディアの配信およびレンダリングのためのシステムを必要とし得る。
【0037】
ムービングピクチャエクスパーツグループ(Moving Picture Experts Group、MPEG)は、没入型メディアコンテンツをサポートするためにglTF仕様に加えていくつかの拡張を定義している。
図3を参照すると、新たな拡張は、MPEG_media 330、MPEG_scene_dynamic 331、MPEG_texture_video 333、MEPG_animation_timing 332、MPEG_audio_spatial 334、MPEG_accessor_timed 335、MPEG_buffer_circular 336である。
図3において、一般に、丸みを帯びた輪郭を有する要素、例えば要素301~317は、glTF要素であってもよく、四角い輪郭を有する要素、例えば要素330~336は、glTF仕様のMPEGベースの拡張に対応してもよいが、実施形態はこれに限定されない。
【0038】
ルート識別子としてMPEG_media 330が指定される場合、MPEG_mediaがサポートされ得る。
図6を参照すると、MPEGメディアをサポートする構文は、上位のJSON構文として宣言され得る。
図6の601から604までの構文は、サポートされている場合、示されているように正確に提示され得る。
【0039】
シーン更新は、JSONパッチプロトコルを使用して表現されてもよく、MPEG_scene_dynamic 331は、JSONパッチプロトコルをサポートするために使用されてもよい。
【0040】
MPEG_texture_video 333によって識別されるMPEGテクスチャビデオ拡張は、MPEG_mediaオブジェクトによってリストされたMPEGメディアおよびその対応するトラックにglTFテクスチャオブジェクトをリンクする可能性を提供することができる。MPEGテクスチャビデオ拡張はまた、MPEG_accessor_timed 335への参照を提供してもよく、復号された時限テクスチャが利用可能にされる。
【0041】
MPEG_audio_spatial 334拡張は、複数のオーディオタイプをサポートし得る。
【0042】
時限データアクセスをサポートするために、バッファ要素は、循環バッファ機能を提供するように拡張され得る。この拡張は、MPEG_buffer_circular 336と名付けられ、例えばバッファ313のようなglTF「バッファ」オブジェクトの一部として含まれてもよい。
【0043】
上記のMEPG拡張は、glTFを使用した没入型体験の作成を可能にし得る。最終的に、MPEG拡張によるglTFアセットを使用して、視覚化のためにレンダリングエンジンにロードすることができる。
【0044】
図4を参照すると、リファレンスメディアシーン記述アーキテクチャ400が、オーディオ/ビデオなどのメディアタイプをサポートするためにMPEG拡張がどのように使用され得るかの例を例示する。メディアコンテンツは、メディアクラウド401などの外部ソースからメディア検索エンジンおよびメディアアクセス機能(MAF)402を使用して検索され、ビデオデコーダ403、オーディオデコーダ404、および他のデータ圧縮器405を使用して処理され、ビデオバッファ406、オーディオバッファ407、および他のバッファ408にバッファされ、プレゼンテーションエンジン409によってレンダリングされ得る。場合によっては、メディアコンテンツはローカルストレージ410に記憶されてもよい。MAFは、いくつかのMPEG規格からの要素を、特定アプリケーションであるが広く使用可能なアプリケーションに適した単一の仕様に統合するためのフレームワークを提供する。例えば、MAFは、メディアの交換、管理、編集、および提示を容易にする明確に定義されたフォーマットでの提示のためにメタデータを時限メディア情報とどのように組み合わせるかを指定することができる。提示は、システムに対して「ローカル」であってもよいし、ネットワークまたは他のストリーム配信機構を介してアクセス可能であってもよい。
【0045】
図4を参照すると、MPEGシーン記述拡張は、プレゼンテーションエンジン409をメディア検索エンジン402から分離し得る。プレゼンテーションエンジン409およびメディア検索エンジン402は、プレゼンテーションエンジン409がシーンのレンダリングに必要なメディアデータを要求することを可能にする所定のプログラミングインターフェースを介して通信し得る。メディア検索エンジン402は、要求されたメディアを検索し、それを適時に、かつプレゼンテーションエンジン409によって直ちに処理され得るフォーマットで利用可能にし得る。例えば、要求されたメディアアセットは、圧縮されてネットワークに存在することができ、そのため、メディア検索エンジン402は、アセットを検索して復号し、結果として得られたメディアデータをレンダリングのためにプレゼンテーションエンジン409に渡す。メディアデータは、バッファの形態でメディア検索エンジン402からプレゼンテーションエンジン409に渡されてもよい。メディアデータの要求は、メディア検索APIを介してプレゼンテーションエンジン409からメディア検索エンジン402に渡されてもよい。ビデオ復号リソースの柔軟な使用のために、ビデオデコーダ403が使用され得る。ビデオデコーダ403が使用されるとき、プレゼンテーションエンジン409は、アプリケーション構成APIを介してビデオデコーダ403に入力フォーマットおよび出力フォーマットに関する情報を提供し得る。
【0046】
上述のように、glTF構文はJSONファイルで表現されてもよい。インターネット技術タスクフォース(Internet Engineering Task Force、IETF)のコンサイスバイナリオブジェクト表現(CBOR)は、従来のJSONフォーマットと比較して簡潔なデータフォーマットを表し得る。CBORは、名称/値ペアフォーマットのJSONのようなデータオブジェクトに関連するが、バイナリかつコンパクトな仕方で表現され、またキー値型によるはるかに多くのサポートを有する。CBORフォーマットにおけるファイルのサイズは、JSONフォーマットの対応するファイルよりも小さくてもよい。場合によっては、CBORファイルは、対応するJSONファイルよりも50%超小さくてもよい。CBORは、インターネット番号割当て機関(Internet Assigned Numbers Authority、IANA)において「application/cbor」として登録されている。
【0047】
CBORは、そのコンパクトなデータサイズおよびJSONとの互換性のために同様に広くサポートされているglTF交換可能圧縮ファイルフォーマットの1つとして使用され得る。
【0048】
CBORにおける情報は、バイナリ形式で記憶される。情報の多くのユースケースはデータを理解するためのマシンを含むため、バイナリデータフォーマットは、コンピュータまたはマシンが記憶されたデータを理解するために使用されるたびに解析される必要があり得るJSONまたはXMLのような人間が読み取り可能なデータフォーマットを超える速度上の利点を有し得る。
【0049】
図7Aは、JSONフォーマットのファイルの一例を示し、
図7Bは、CBORフォーマットの対応するファイルの一例を示している。例えば、
図7AのJSONフォーマットのファイルの文字「a」(711)は、
図7BのCBORフォーマットのファイルの0x61(721)に対応し得る。同様に、
図7AのJSONフォーマットのファイルの文字「b」(712)は、
図7BのCBORフォーマットのファイルの0x62(722)に対応し、
図7AのJSONフォーマットのファイルの文字「c」(713)は、
図7BのCBORフォーマットのファイルの0x63(723)に対応し得る。
【0050】
JSONと比較して、シーン記述のためにCBORを使用することは、データサイズが小さく、JSONにおける単なる文字列オブジェクトではなく複数のキー値型のサポートという点で利点をもたらし得る。機能プログラミングインターフェースが、提示されたメディアシーン記述リファレンスアーキテクチャにおいて、より正確にはメディアアクセス機能モジュールにおいて使用されてもよい。
【0051】
glTFによるCBORのサポートが普及してきているため、そのようなサポートが、例えば、glTFファイルフォーマットの相互運用性を高め、ローカルストレージまたはキャッシュのファイルサイズを減らし、MAF 402における最小処理能力でglTFファイル転送待ち時間を減らすために、MPEGシーン記述に追加されてもよい。
【0052】
実施形態によるCBORパーサ機能が、CBOR入力をglTFネイティブサポートJSONフォーマットに変換するためにMAF 402によって実装されてもよく、また、大きなglTFファイルをローカルストレージまたはキャッシュ410に保存するためのファイル圧縮器として使用されてもよい。
【0053】
CBORパーサAPIは、以下の表1に示されたように、cbor2Json()、json2Cbor、およびsave()などの方法の1つを提供する。
【0054】
【0055】
詳細なインターフェース記述は以下の通りであり得る。
interface InputFileParser{
readonly attribute FILE inputFileName;
readonly attribute FILE outputFileName;
readonly attribute CBOR cborDataBlob;
FILE cbor2Json()(FILE cborInput);
FILE json2Cbor(FILE jsonInput);
FILE cbor2Json(CBOR cborDataBlob);
bool save();
};
【0056】
上で提案された機能は、例えば以下のような様々なシナリオで使用され得る。
【0057】
図8を参照すると、glTF「url」または「uri」構文が、CBORバイナリデータブロブ(802)を指し得る。実施形態では、バイナリが実際にCBORデータフォーマットであるか否かを特定する2つの仕方が存在し得る。例1によれば、「application/cbor」(801)で「mimeTypes」を指定する多目的インターネットメール拡張(MIME)タイプがシグナリングされ得る。
例2によれば、プレフィックス「application/cbor」が、実際のバイナリデータの前に含まれ得る。例1および例2は一緒に使用されてもよい。いずれの場合も、CBORバイナリデータを取る「cbor2Json(Object)」と呼ばれる関数を呼び出して、CBORファイルフォーマットをJSONへとパースしてもよい。
【0058】
入力glTFがCBORフォーマットである場合、出力は、cbor2Json()APIを使用することによるglTFであってもよい。
【0059】
入力がネイティブglTFフォーマットである場合、変換は不要であり得る。
【0060】
ローカルストレージまたはキャッシュの目的のために、glTFファイルが、json2Cbor()およびsave()インターフェースを使用してCBORとして保存されてもよい。
【0061】
したがって、実施形態は、CBORとのglTFファイルフォーマット相互運用性を提供し、ローカルストレージまたはキャッシュのためのファイルサイズを低減し、データ転送速度を高め、ファイル転送待ち時間を低減する方法に関し得る。
【0062】
図9A~
図9Cを参照して、メディアのストレージおよび配信を管理するためのプロセス900A、900B、および900Cが以下に説明される。
【0063】
図9Aは、メディアのストレージおよび配信を管理するための例示的なプロセス900Aのフローチャートである。
【0064】
図9Aに示されるように、プロセス900Aは、メディアアクセス機能(MAF)によって、シーンに対応するglTFファイルを取得すること(ブロック911)を含み得る。実施形態では、MAFはMAF 402に対応し得る。
【0065】
図9Aにさらに示されるように、プロセス900Aは、glTFファイルから、バイナリデータブロブを示すユニフォームリソースロケータ(URL)パラメータを取得すること(ブロック912)を含み得る。
【0066】
図9Aにさらに示されるように、プロセス900Aは、バイナリデータブロブがCBORフォーマットを有すると決定すること(ブロック913)を含み得る。
【0067】
図9Aにさらに示されるように、プロセス900Aは、MAFによって実装されたCBORパーサ機能を使用して、バイナリデータブロブを、JSONフォーマットを有するオブジェクトに変換すること(ブロック914)を含み得る。
【0068】
図9Aに示されるように、プロセス900Aは、オブジェクトに基づいてシーンに対応するメディアコンテンツを取得すること(ブロック
915)を含み得る。
【0069】
実施形態では、JSONフォーマットを有するオブジェクトは、CBORフォーマットを有するバイナリデータブロブよりも大きくてもよい。
【0070】
実施形態では、バイナリデータブロブは、glTFファイルでシグナリングされる多目的インターネットメール拡張(MIME)タイプに基づいてCBORフォーマットを有すると決定されてもよい。
【0071】
実施形態では、バイナリデータブロブは、バイナリデータブロブの先頭に含まれるプレフィックスに基づいてCBORフォーマットを有すると決定されてもよい。
【0072】
実施形態では、バイナリデータブロブは、glTFファイルでシグナリングされる多目的インターネットメール拡張(MIME)タイプおよびバイナリデータブロブの先頭に含まれるプレフィックスに基づいてCBORフォーマットを有すると決定されてもよい。
【0073】
実施形態では、MAFは、ムービングピクチャエクスパーツグループ(MPEG)シーン記述アーキテクチャに含まれてもよい。
【0074】
実施形態では、CBORパーサ機能は、MAFに関連付けられたアプリケーションプログラミングインターフェースを使用して実装されてもよい。
【0075】
図9Bは、メディアのストレージおよび配信を管理するための例示的なプロセス900Bのフローチャートである。実施形態では、プロセス900Bの1つまたは複数のブロックが、プロセス900Aの1つまたは複数のブロックと組み合わされて行われてもよい。例えば、プロセス900Bの1つまたは複数のブロックが、プロセス900Aの1つまたは複数のブロックの後に行われてもよい。
【0076】
図9Bにさらに示されるように、プロセス900Bは、glTFファイルがCBORフォーマットを有すると決定すること(ブロック921)を含み得る。
【0077】
図9Bに示されるように、プロセス900Bは、MAFによって実装されたCBORパーサ機能を使用して、glTFファイルを、JSONフォーマットを有する変換されたglTFファイルに変換すること(ブロック922)を含み得る。実施形態では、このCBORパーサ機能は、ブロック914で使用されるCBORパーサ機能とは異なってもよい。
【0078】
実施形態では、JSONフォーマットを有する変換されたglTFファイルは、CBORフォーマットを有するglTFファイルよりも大きくてもよい。
【0079】
図9Cは、メディアのストレージおよび配信を管理するための例示的なプロセス900Cのフローチャートである。実施形態では、プロセス900Cの1つまたは複数のブロックが、プロセス900Aおよび/またはプロセス900Bの1つまたは複数のブロックと組み合わされて行われてもよい。例えば、プロセス900Cの1つまたは複数のブロックが、プロセス900Aの1つまたは複数のブロックの後に行われてもよいし、プロセス900Bの1つまたは複数のブロックの後に行われてもよい。
【0080】
図9Cに示されるように、プロセス900Cは、MAFによって実装されたJSONパーサ機能を使用して、変換されたglTFファイルを、CBORフォーマットを有する再変換されたglTFに再変換すること(ブロック931)を含み得る。
【0081】
図9Cにさらに示されるように、プロセス900Cは、ローカルストレージまたはキャッシュの少なくとも一方に、再変換されたglTFファイルを記憶すること(ブロック932)を含み得る。
【0082】
図9A~
図9Cは、プロセス900A、900B、および900Cの例示的なブロックを示しているが、いくつかの実装形態では、プロセス900A、900B、および900Cのブロックは、
図9A~
図9Cに示されたものよりもさらなるブロック、少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。追加または代替として、プロセス900A、900B、および900Cのプロセスのブロックのうちの2つ以上が並列に行われてもよい。実施形態では、プロセス900A、900B、および900Cの任意の1つまたは複数のブロックが、任意の順序でプロセス900A、900B、および900Cの任意の他の1つまたは複数のブロックと組み合わされてもよく、プロセス900A、900B、および900Cの任意のブロックの任意の1つまたは複数が、必要に応じて分割または組み合わされてもよい。
【0083】
さらに、提案された方法は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されているプログラムを実行して、提案された方法の1つまたは複数を行う。
【0084】
前述の開示は例示および説明を提供しているが、網羅的なものではなく、開示されたまさにその形態に実装形態を限定するものではない。修正形態および変形形態は、上記の開示に照らして実現可能であり、または実装形態の実践から取得されてもよい。
【0085】
本明細書に記載されたシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実施態様を限定するものではない。したがって、ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実装するように設計され得ることを理解されたい。
【0086】
特徴の特定の組合せが、特許請求の範囲に記載され、および/または本明細書に開示されていても、これらの組合せは、可能な実施態様の開示を限定することを意図されていない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または本明細書に開示されていない方法で組み合わされ得る。以下に列挙される各従属請求項は1つの請求項のみに直接従属してもよいが、可能な実装形態の開示は、各従属請求項を請求項セット内のあらゆる他の請求項と組み合わせて含む。
【0087】
本明細書で使用される要素、動作、または命令は、不可欠なまたは必須のものとして明示的に記載されていない限り、不可欠なまたは必須のものとして解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つ以上のものを含むことを意図されており、「1つ以上」と交換可能に使用され得る。さらに、本明細書で使用される「セット」という用語は、1つまたは複数の項目(例えば、関連項目、非関連項目、関連項目と非関連項目との組合せなど)を含むものであり、「1つまたは複数」と同じ意味で使用され得る。1つの項目のみが対象とされる場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることが意図される。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味するものである。
【符号の説明】
【0088】
100 環境
110 ユーザデバイス
120 プラットフォーム
122 クラウドコンピューティング環境
124 コンピューティングリソース
124-1 アプリケーション
124-2 仮想マシン
124-3 仮想化ストレージ
124-4 ハイパーバイザ
130 ネットワーク
200 デバイス
210 バス
220 プロセッサ
230 メモリ
240 ストレージコンポーネント
250 入力コンポーネント
260 出力コンポーネント
270 通信インターフェース
301 シーンオブジェクト、要素
302 ノード、要素
303 カメラ、要素
304 メッシュ、要素
305 照明、要素
306 アニメーション、要素
307 アクセサ、要素
308 マテリアル、要素
309 スキン、要素
310 バッファビュー、要素
311 技法、要素
312 オブジェクトテクスチャ、要素
313 バッファ、要素
314 プログラム、要素
315 画像、要素
316 サンプラ、要素
317 シェーダ、要素
330 MPEG_media、要素
331 MPEG_scene_dynamic、要素
332 MPEG_animation_timing、要素
333 MPEG_texture_video、要素
334 MPEG_audio_spatial、要素
335 MPEG_accessor_timed、要素
336 MPEG_buffer_circular、要素
400 リファレンスメディアシーン記述アーキテクチャ
401 メディアクラウド
402 メディア検索エンジンおよびメディアアクセス機能(MAF)
403 ビデオデコーダ
404 オーディオデコーダ
405 他のデータ圧縮器
406 ビデオバッファ
407 オーディオバッファ
408 他のバッファ
409 プレゼンテーションエンジン
410 ローカルストレージ、キャッシュ
501 単一ノード
502 名称
503 シーン
504 シーン名
506 単一シーン
601 構文
602 構文
603 構文
604 構文
711 文字
712 文字
713 文字
721 0x61
722 0x62
723 0x63
801 application/cbor
802 CBORバイナリデータブロブ
900A プロセス
900B プロセス
900C プロセス