(57)【特許請求の範囲】
【請求項１】
ビデオデータに基づいてメディアファイルを生成する方法であって、前記ビデオデータは複数の異なる画像を含み、前記方法は、
前記ビデオデータに基づいて複数のビデオトラックを生成することと、
前記複数のビデオトラックおよび記述メタデータを含む前記メディアファイルを生成することであって、
前記記述メタデータは、
(i)前記複数のビデオトラックのそれぞれに対応する複数の異なる画像に関連する空間情報を記述するためのボックスであって、前記複数の異なる画像のグループ化に関する情報を含む第1のボックスと、
(ii)前記複数のビデオトラックのそれぞれに対応する複数の異なる画像を合成した合成画像に関連する空間情報を記述するための前記第1のボックスとは異なる第2のボックスとの両方を含む。
【請求項２】
請求項1に記載の方法であって、前記第1のボックスに記述された前記空間情報は、前記複数の異なる画像の空間幅および空間高さを表し、前記第2のボックスに記述された前記空間情報は、前記合成画像の空間幅および空間高さを表す、方法。
【請求項３】
請求項1に記載の方法であって、前記第1のボックスに記述された前記空間情報は、前記複数の異なる画像の空間幅および空間高さを表す、方法。
【請求項４】
請求項1または3に記載の方法であって、前記第2のボックスに記述された前記空間情報は、前記合成画像の空間幅および空間高さを表す、方法。
【請求項５】
請求項1に記載の方法であって、前記第1のボックスに記述された前記空間情報は、前記合成画像における前記複数の異なる画像の空間位置を表す、方法。
【請求項６】
請求項1に記載の方法であって、前記第1のボックスに記載された前記空間情報は、前記合成画像の左上座標に対する前記複数の異なる画像の空間オフセットを表す、方法。
【請求項７】
請求項1に記載の方法であって、前記複数の異なる画像は、全方向性の映像を構成する画像である、方法。
【請求項８】
複数の異なる画像を含むビデオデータに基づくメディアファイルを再生する方法であって、
前記ビデオデータに基づく複数のビデオトラックおよび記述メタデータを含む前記メディアファイルを取得するステップと、
前記記述メタデータに基づいて前記複数のビデオトラックを再生するステップと、
を有し、
前記記述メタデータは、
(i)前記複数のビデオトラックのそれぞれに対応する複数の異なる画像に関連する空間情報を記述するためのボックスであって、前記複数の異なる画像のグループ化に関する情報を含む第1のボックスと、
(ii)前記複数のビデオトラックのそれぞれに対応する複数の異なる画像を合成した合成画像に関連する空間情報を記述するための前記第1のボックスとは異なる第2のボックスと、
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、メディアデータの交換、管理、編集、および提示を容易にし、ストリーム管理を改善する柔軟かつ拡張可能なフォーマットを提供するための、例えばMPEG標準化機構によって定義されるISOベースメディアファイルフォーマットによる、時限メディアデータのカプセル化および構文解析の分野に関する。 
【背景技術】
【０００２】
国際標準化機構ベースメディアファイルフォーマット(ISO BMFF、ISO/IEC 14496-12)は、ローカル記憶またはネットワークを介するかまたは別のビットストリーム配信メカニズムを介する伝送のいずれかのための符号化された時限メディアデータビットストリームを記述する周知のフレキシブルかつ拡張可能なフォーマットである。このファイルフォーマットはオブジェクト指向である。これは、順次または階層的に編成され、タイミングおよび構造パラメータなどの符号化された時限メディアデータビットストリームのパラメータを定義するボックスと呼ばれるビルディングブロックから構成される。ファイルフォーマットでは、プレゼンテーション全体をムービーと呼ぶ。それは論理的にトラック（Track）に分割される。各トラックはメディアデータ（例えば、ビデオのフレーム）の時限シーケンスを表す。各トラック内で、データの各時間単位はサンプルと呼ばれ、これはビデオまたはオーディオのフレームとすることができる。サンプルは、暗黙のうちに順番に番号付けされる。ムービーは、ムービーおよびトラックフラグメントのリストとして編成することができる。ムービーフラグメントは、プレゼンテーションを時間的に延長する。それらは、以前はMovieBox（メディアボックス）と呼ばれるボックス内にあったものであろう情報を提供する。実際のサンプルは、MediaDataBoxesと呼ばれるボックス内にある。ムービーフラグメント内には、トラック毎に0以上のトラックフラグメントのセットがある。トラックフラグメントは次に、0個以上のトラックランを含み、各トラックランは、そのトラックに対するサンプルの連続したランを文書化する。
【０００３】
ファイルフォーマットは、各種NAL（ネットワーク抽象化レイヤ）ユニットベースのビデオ符号化フォーマットのためのカプセル化ツールを記述する別の部分（パート5、ISO/IEC 14496-15）を有する。そのような符号化フォーマットの例は、AVC（Advanced Video Coding）、SVC（Scalable Video Coding）、HEVC（High Efficiency Video Coding）、またはL-HEVC（Layered HEVC）である。
【０００４】
HEVCおよび同様のビデオ符号化フォーマットはサンプルの異なる空間的細分、例えば、ピクチャ、すなわちタイル（tile）、スライス（slice）、およびスライスセグメント（slice segment）を定義する。タイルは整数個のコーディングツリーユニット（CTU）またはコーディングブロックを含むピクチャの矩形領域を定義し、これらはすべて、以下でコーディングユニットと呼ばれる。したがって、タイルは、関心領域（ROI）を表す良好な候補である。しかしながら、構文（シンタックス）およびNALユニット（またはNALU）へのそのカプセル化に関する符号化ビデオデータ（ビットストリーム）編成は、（AVCにおけるように）むしろスライスおよびスライスセグメントに基づく。
【０００５】
HEVC内のスライスはスライスセグメントのセットであり、少なくとも第1のスライスセグメントは独立したスライスセグメントであり、もしあれば、他のスライスセグメントは従属スライスセグメントである。スライスセグメントは、整数個の連続する（ラスタスキャン順の）CTUを含む。スライスは、必ずしも長方形の形状を有する必要はない（したがって、ROI表現のためのタイルよりも適切ではない）。スライスセグメントは、HEVCビットストリームにおいて、slice_segment_headerの後にslice_segment_dataが続くように符号化される。非依存スライスセグメント（ISS）および従属スライスセグメント（DSS）はそれらのヘッダによって異なり、従属スライスセグメントは、非依存スライスセグメントのヘッダからの情報を再利用するため、より短いヘッダを有する。非依存スライスセグメントと従属スライスセグメントの両方は、ビットストリーム内のエントリポイントのリストを含む。
【０００６】
ビデオビットストリームがタイルで符号化されるとき、NALユニットのタイルへのマッピングを記述するための記述ツールがMPEGファイルフォーマットのパート15に存在する。このパート15では、次のいずれかの方法でタイルをカプセル化するツールについて説明する。
・単一のビデオトラック内の全てのタイル、または
・タイルベーストラック内に記憶されたタイルトラック間で共通の情報を有するタイルトラック内の各HEVCタイル、
・または、タイルベーストラックに格納されたタイルトラック間で共通の情報を有するタイルトラック内の矩形領域を形成するHEVCタイルのセット。
【０００７】
メディアコンテンツ作成者は、異なるバージョンのビデオ、すなわち、合成（コンポジション）、画像効果、または記録されたビデオサンプルに適用される演算によって同じオリジナルビデオから生成されるいくつかのビデオを提供することを望む。問題は、結果として得られるメディアファイルのサイズを大きくしすぎることなく、メディアコンテンツのこれらの異なるプレゼンテーションを提供することである。
【発明の概要】
【０００８】
本発明は、前述の問題のうちの1つまたは複数に対処するように考案された。提案されたスキームはメディアトラックの標準的なカプセル化を実行し、さらに、入力メディアトラックからの生成規則およびパラメータのみを含む生成トラックと呼ばれる1つまたは複数の特定のトラックを構築する。したがって、メディアデータは、一度記憶され、生成されたトラックから参照される。生成された各トラックは、使用されたオリジントラック上のポインタを有するトラックヘッダに記述された変換演算子およびパラメータのセットからなる。変換パラメータが静的（すべてのサンプルに対して同じ）であるか、動的（サンプルベースで変化する）であるかに応じて、変換パラメータのための代替処理の説明および記憶がある。例えば、1つの可能性は、‘mdat’ボックス（Media Data Box）内のサンプルレベルで演算子または変換パラメータを記憶することである。
【０００９】
本発明の第1の態様によれば、複数のサンプルから構成されるメディアデータを符号化する方法が提供される。当該方法は、サーバデバイスにより、
・符号化されたメディアデータを取得するためにメディアデータを符号化することと、
・符号化されたメディアデータを少なくとも1つの第1のトラックのセットにカプセル化することと、
・第2のトラックを生成することを含み、
ここで、
・第2のトラックは、少なくとも1つの変換演算子のセットを少なくとも1つの第1のトラックのサンプルに適用した結果を表すサンプルを記述し、
・第2のトラックは第1のトラックのうちの少なくとも1つへの参照を含み、
・第2のトラックは、メタデータ部分において、変換演算子のセットの記述を含む。
【００１０】
一実施形態では、方法は更に、
・第2のトラックのメタデータ部分に、少なくとも1つの変換演算子を特徴付けるための1つまたは複数のパラメータをカプセル化することを含む。
【００１１】
本発明の別の態様によれば、複数のサンプルから構成されるメディアデータを復号する方法が提供される。当該方法は、クライアントデバイスにより、
・少なくとも1つの第2のトラックへの参照と、少なくとも1つの変換演算子のセットの記述とを含む第1のトラックを受信することと、
・少なくとも1つの第2のトラックを受信することと、
・少なくとも1つの第2のトラックで受信したサンプルに変換演算子のセットを適用することにより、メディアデータのサンプルを生成することを含む。
【００１２】
本発明の別の態様によれば、複数のサンプルから構成されるメディアデータを符号化するサーバデバイスが提供される。当該サーバデバイスは、
・符号化されたメディアデータを取得するためにメディアデータを符号化し、
・符号化されたメディアデータを少なくとも1つの第1のトラックのセットにカプセル化し、
・第2のトラックを生成する、ように適合化されたプロセッサを備え、
ここで、
・第2のトラックは、少なくとも1つの変換演算子のセットを少なくとも1つの第1のトラックのサンプルに適用した結果を表すサンプルを記述し、
・第2のトラックは第1のトラックのうちの少なくとも1つへの参照を含み、
・第2のトラックは、メタデータ部分において、変換演算子のセットの記述を含む。
【００１３】
本発明の別の態様によれば、複数のサンプルから構成されるメディアデータを復号するクライアントデバイスデバイスが提供される。当該クライアントデバイスは、
・少なくとも1つの第2のトラックへの参照と、少なくとも1つの変換演算子のセットの記述とを含む第1のトラックを受信し、
・少なくとも1つの第2のトラックを受信し、
・少なくとも１つの第2のトラックで受信したサンプルに変換演算子のセットを適用することにより、メディアデータのサンプルを生成する、ように適合化されたプロセッサを備える。
【００１４】
本発明の別の態様によれば、プログラマブル装置のためのコンピュータプログラム製品が提供され、コンピュータプログラム製品はプログラマブル装置にロードされ、プログラマブル装置によって実行されるときに、本発明による方法を実施するための命令のシーケンスを含む。
【００１５】
本発明の別の態様によれば、本発明による方法を実施するためのコンピュータプログラムの命令を記憶するコンピュータ可読記憶媒体が提供される。
【００１６】
前述のように、HEVCおよび同様のビデオ符号化フォーマットはサンプルの異なる空間的細分、例えば、ピクチャ、すなわち、タイル、スライス、およびスライスセグメントを定義する。HEVCは、クライアントが表示したいタイルを構成するための暗黙の規則を提供する。（AVCまたはOMAFのような）他の同様のビデオ符号化フォーマットは、これらの暗黙の規則から利益を得ず、クライアントがサブパートで作られたビデオを表示できるように合成情報（構成情報）を提供する必要がある。合成情報は、合成するサブパートに関する空間情報（位置及びサイズ）と結合される。
【００１７】
しかしながら、従来技術で提供される方法及び装置は静的であり、時間に沿って空間情報を所望の頻度で適応させることができない。いくつかのアプリケーション、特に、空間ビデオパーツの組み合わせを可能にするアプリケーションでは、ビデオパーツの位置およびサイズが変化するとき（例えば、ビデオシーケンス内の移動オブジェクトを追跡するとき）、非常に問題となり得る。
【００１８】
本発明はまた、前述の問題に対処するために考案された。
【００１９】
本発明の別の態様によれば、ビデオシーケンスからメディアファイルを生成する方法が提供される。当該方法は、サーバにより、
・ビデオシーケンスから、複数のサンプルから構成されるビデオデータを取得することと、
・取得されたビデオデータに基づいてビデオトラックを生成することであって、各ビデオトラックはビデオシーケンスのサンプルを含み、ビデオトラックは記述メタデータに関連付けられ、記述メタデータは、
関連するビデオトラックの1つまたは複数のサンプルに関連する空間情報と、
クライアントによって表示されたときにフルピクチャを取得するように生成されたビデオトラックを編成するための合成情報、とを含むことと、
・生成されたビデオトラックを含むメディアファイルを生成することを含む。
【００２０】
言い換えれば、本発明は空間情報が1つまたは複数のサンプルに関連付けられることができるように、空間情報を実装することを提案する。関係するサンプルの数は状況に適応させることができ、より柔軟性を提供する。さらに、符号化フォーマットが1つまたは複数のサンプルに関連する空間情報を既に提供している場合、本発明は、ビデオサブパートを構成するためにそれを再使用することによって、この空間情報の重複を回避することを可能にする。
【００２１】
本発明の別の態様によれば、ビデオシーケンスに対応するビデオデータを含むメディアファイルを解析する方法が提供される。当該ビデオデータは複数のサンプルから構成され、当該方法はクライアントにより、
・ビデオデータからビデオトラックを取得することであって、各ビデオトラックはビデオシーケンスのサンプルを含み、ビデオトラックは記述メタデータに関連付けられ、記述メタデータは、
関連するビデオトラックの1つまたは複数のサンプルに関連する空間情報と、
クライアントによって表示されたときにフルピクチャを取得するように生成されたビデオトラックを編成するための合成情報とを含むことを含む。
【００２２】
本発明の別の態様によれば、コンピュータまたはプロセッサによって実行されると、コンピュータまたはプロセッサに上述の方法を実行させるプログラムが提供される。
【００２３】
本発明の他の態様によれば、上記プログラムを記憶したコンピュータ読み取り可能な記憶媒体が提供される。
【００２４】
本発明の別の態様によれば、ビデオシーケンスからメディアファイルを生成するデバイスが提供される。当該デバイスは、
・ビデオシーケンスから、複数のサンプルから構成されるビデオデータを取得する手段と、
・取得されたビデオデータに基づいてビデオトラックを生成するための手段であって、それぞれのビデオトラックはビデオ系列のサンプルを含み、ビデオトラックは記述メタデータに関連付けられ、記述メタデータは、
関連するビデオトラックの1つまたは複数のサンプルに関連する空間情報と、
クライアントによって表示されたときにフルピクチャを取得するように生成されたビデオトラックを編成するための合成情報とを含む、手段と、
・生成されたビデオトラックを含むメディアファイルを生成するための手段を備える。
【００２５】
本発明の別の態様によれば、ビデオシーケンスに対応するビデオデータを含むメディアファイルを解析するためのデバイスが提供される。当該ビデオデータは複数のサンプルから構成され、当該デバイスは、
・ビデオデータからビデオトラックを取得するための手段であって、それぞれのビデオトラックはビデオ系列のサンプルを含み、ビデオトラックは記述メタデータに関連付けられ、記述メタデータは、
関連するビデオトラックの1つまたは複数のサンプルに関連する空間情報と、
クライアントによって表示されたときにフルピクチャを取得するように生成されたビデオトラックを編成するための合成情報とを含む、手段を備える。
【００２６】
本発明による方法の少なくとも一部は、コンピュータで実施することができる。したがって、本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または本明細書ではすべて一般に「回路」、「モジュール」、または「システム」と呼ばれることがあるソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとることができる。さらに、本発明は、媒体に具現化されたコンピュータ使用可能プログラムコードを有する任意の有形の表現媒体に具現化されたコンピュータプログラム製品の形成をとることができる。
【００２７】
本発明はソフトウェアで実施することができるので、本発明は、任意の適切なキャリア媒体上のプログラマブル装置に提供するためのコンピュータ可読コードとして実施することができる。有形の非一時的キャリア媒体は、フロッピーディスク、CD-ROM、ハードディスクドライブ、磁気テープ装置、またはソリッドステートメモリ装置などの記憶媒体を含むことができる。過渡搬送媒体は、電気信号、電子信号、光信号、音響信号、磁気信号、または電磁信号、例えばマイクロ波またはRF信号などの信号を含むことができる。
【図面の簡単な説明】
【００２８】
本発明の実施形態を、単なる例として、以下の図面を参照して説明する:
【図１】図1は、本発明を使用することができる典型的なクライアント・サーバ・システムを示す。
【図２】図2は、本発明の一実施形態による、ビジュアルトラックからトラックを生成する異なる方法を示す。
【図３】図3は、本発明の一実施形態による、生成されたビジュアルトラック設計を示す。
【図４】図4は、本発明の一実施形態による、1つまたは複数の生成されたビジュアルトラックを含むメディアファイルをカプセル化するための方法を表すフローチャートを示す。
【図５】図5は、本発明の一実施形態によるメディアファイルまたはメディアセグメントの構文解析を示す。
【図６】図6は、本発明の一実施形態におけるサンプルの生成を示す。
【図７】図7は、1つまたは複数の実施形態のステップを実施することができるサーバまたはクライアントデバイスのブロック図を表す。
【図８】図8は、本発明の一実施形態における、シーンのワイドビューに対応するビデオのカプセル化プロセスを、シーンのこのワイドビューの抽出と共に示す。
【図８ｂ】図8bは、本発明の一実施形態における、シーンのワイドビューに対応するビデオのカプセル化プロセスを、シーンのこのワイドビューの抽出と共に示す。
【図９】図9は、本発明によるトラックグループを形成するサブピクチャトラックのカプセル化を示す。
【図１０】図10は、空間合成のための異なるタイプのトラックグループを示す。
【図１１】図11は、暗黙的および明示的な合成を示す。
【図１２】図12は、暗黙的合成を有するメディアファイルの構文解析プロセスを示す。
【図１３】図13は、本発明によるトラックグループおよび重なり合うトラックグループのサブセットを示す。
【発明を実施するための形態】
【００２９】
図1は、本発明を使用することができる典型的なクライアント・サーバ・システムを示す。本発明は、通信ネットワークを介してストリーミングするだけでなく、いかなる方法で配布されてもよいメディアファイルの生成に関係し得るようなシステムに限定されない。
【００３０】
このシステムはサーバ側に、メディアエンコーダ100、特にビデオエンコーダ、メディアパッケージャ110、およびメディアサーバ120を備える。メディアパッケージャ110は、NALUパーサ111と、メモリ112と、ISOBMFF（ISOBMFF）ライタ113とを備える。メディアサーバ120は、マニフェストファイル（MPD）121およびメディアセグメント122を生成することができる。システムはクライアント側に、異なるモジュールを有するメディアクライアント150、すなわち、ISOMBFFパーサ152、メディアデコーダ153、特にビデオデコーダ、ディスプレイ154、および適応HTTPストリーミング、特にメディアセグメント190のストリーミングを制御するためのストリーミングマニフェスト159の構文解析をサポートするHTTPクライアント151をさらに備える。それはまた、符号化されたビットストリームおよび／または復号化されたピクチャに対して演算を実行することができるモジュール、すなわち変換モジュール155を含む。
【００３１】
典型的には、メディアクライアント150がメディアサーバ120上で利用可能な異なるメディア表現の記述を得るために、マニフェストファイル121を要求する。したがって、メディアクライアント150は、関心のあるメディアセグメント122を要求する。これらの要求は、HTTPモジュール151を介して行われる。次に、受信されたメディアセグメントは、ISOBMFFパーサ152によって構文解析され、ビデオデコーダ153によって復号され、任意選択で、ディスプレイ154上で再生されるように変換部155を介して変換される。
【００３２】
ビデオシーケンスは、通常、ビデオエンコーダ100によって符号化され、メディアパッケージャ110によって1つまたは複数のファイルにカプセル化される。生成されたファイルは、メディアサーバ120によってクライアントに利用可能にされる。
【００３３】
本発明のいくつかの実施形態によれば、別のモジュールがメディアパッケージャの一部として、またはメディアパッケージャの外側に、システムに含まれる：生成部130。このユニットにより、ユーザはカプセル化されたメディアトラックを見ることができ、様々な画像演算をサンプルに適用することによって編集および修正することができる。この生成部は、ユーザがISOBMFFライタによって生成されたメディアファイル内の追加トラックとして、ユーザの合成（コンポジション）の結果を挿入することを望むときに、メディアパッケージャと相互作用（インタラクト）する。
【００３４】
メディアサーバは、本発明が主に、1つまたは複数のメディアトラックの合成、導出、組み合わせ、変換、または集約から生じるトラックのメディアカプセル化および構成／記述を扱うという意味で、任意選択である。メディアサーバに関しては、伝送部分（HTTPモジュールおよびマニフェストパーサ）が、本発明がレンダリングのためにカプセル化されたメディアファイルが提供される単純なメディアプレーヤからなるメディアクライアントにも適用されるという意味で、オプションである。メディアファイルは、フルダウンロード、プログレッシブダウンロード、アダプティブストリーミング、またはディスク上またはメモリからメディアファイルを読み取ることによって提供することができる。
【００３５】
本発明による方法は図7に示すように、サーバ装置のCPU 704によって実行されるとき、メディアパッケージャモジュール110によって、より具体的には、ソフトウェアコードを含む合成部130と協働するISOBMFFライタモジュール113によって実行される。
【００３６】
典型的には、カプセル化モジュールが異なるNALユニットを抽出し識別し、ISOBMFFボックス階層に従って記述メタデータを有する1つ以上のトラックとしてビデオビットストリームを含むISOBMFFファイル又はISOBMFFセグメント122に符号化されたデータを編成するために、圧縮されたビデオから構成されるビデオビットストリームの高レベル構文（シンタックス）を読み出すことを担当する。ISOBMFFファイルまたはISOBMFFセグメント122は潜在的に、1つまたは複数の他の同期メディアトラック、例えば、オーディオ、サブタイトル、テキスト、メタデータなども含む。本発明の一態様によれば、ISOBMFFライタは、合成部130によってメディアトラックに適用された合成、変換、派生、または効果から生じる追加のトラックをメディアトラックに生成する。データ、すなわち元のデータに生成されたデータを加えたもの複製を回避するために、ISOBMFFライタ113は変換の結果を提供する代わりに、生成されたトラックを構築するための変換規則およびパラメータを記述する、生成されたトラックと呼ばれる1つまたは複数の特定のトラックを構築する。1つの生成されたトラックは、合成または派生ごとに作成される。これは、原稿及び変換されたトラックの両方を同じメディアファイルに保持するという利点を有する。カプセル化プロセスは図4を参照してさらに詳細に説明される。メディアファイルまたはメディアセグメントの構文解析プロセス、読み取り、およびレンダリングは、図5および図6を参照して詳細に説明される。
【００３７】
図2は、ビジュアル（視覚）トラックからトラックを生成する異なる方法を示す。生成されたビジュアルトラックは、1つまたは複数のビデオトラックに適用される1つまたは複数の演算から生じることができる。
【００３８】
図2(a)は、単一の変換演算（子）201を介して単一の入力ビデオトラック200から得られた生成されたビジュアルトラック202を示す。
【００３９】
図2(b)は、複数の変換演算（子）211を介して単一の入力ビデオトラック210から得られる生成されたビジュアルトラック212を示す。
【００４０】
図2(c)は、単一の演算221を通して複数のビデオトラック220から得られた生成されたビジュアルトラック222を示す。
【００４１】
図2(d)は、複数の演算231を通して複数のビデオトラック230から得られた生成されたビジュアルトラック232を示す。
【００４２】
生成されたトラックのサンプルは、全てのサンプルに対して同じ変換演算子及び同じ変換演算子パラメータを用いて計算される場合がある。この種の変換を静的変換と呼ぶ。反対に、各サンプルが互いに異なる変換演算子パラメータを有することができる場合がある。ここでは、動的変換について述べる。生成されたビジュアルトラックのための現在の設計は動的変換に適応されるが、静的変換（生成された各サンプルにおける変換演算子およびパラメータを繰り返す）のための何らかの記述オーバーヘッドをもたらす。さらに、現在の設計は、変換がメディアデータボックスに記述されることを意味する。これは、トラック編集に敏感であり得、例えば、メディアファイルにトラックを追加またはメディアファイルからトラックを除去するとき、生成されたサンプルへのオフセットが影響を受け得る。本発明は、メディアデータとの混合を回避して、メタデータボックスにおける変換を可能な限り記述することを提案する。そのために、図3に示す設計は生成されたトラックのメタデータに変換規則を定義し、可能な場合には、少なくとも静的変換のために、トラックのメタデータ内のパラメータも宣言することを提案する。動的変換の場合、変換パラメータは外部トラック、例えば、時限メタデータトラック、または生成されたサンプルに格納することができる。外部トラックはカプセル化されたメディアファイル内にあってもよいが、別のメディアファイル内に含まれていてもよい。本発明による設計は、静的変換パラメータ宣言および動的変換パラメータ宣言の両方をサポートする。
【００４３】
図3は、本発明の一実施形態による、生成されたビジュアルトラック設計を示す。
【００４４】
生成されたビジュアルトラック（GVT）（または導出されたビジュアルトラック）（DVT）は、ビデオトラックとして記述される。そのハンドラは、予約された4文字コード‘vide’に設定される。GVT 310が生成されるトラックは値‘gtrk’または（‘dtrk’）がGVTから進み、入力ビデオトラックのそれぞれを指すトラック参照（基準）タイプを介して参照される。例えば、GVT 310は入力ビデオトラック301及び309から生成され、トラック305は生成処理において使用されない。任意のトラックに関して、GVT 310は、データがファイル内にあるかリモートファイル内にあるかを示すデータ参照ボックス312を含む。図3の例では、GVTに関連するサンプルを意味するデータがメディアデータボックス‘mdat’320内にある。データリファレンスボックス312はまた、例えば、他のメディアファイルに格納される変換パラメータを提供するメタデータトラックを参照するために使用され得る。GVT 310は、サンプルを記述するSampleTableBox‘stbl’313を含む。
【００４５】
生成されたビジュアルトラックはその記述メタデータボックス内に、入力トラックから、生成されたビジュアルトラックを導出するための変換または演算341〜344のリストを含むTransformPropertyContainer 314を含む。これらの変換または演算の各々は、それが静的変換であるか動的変換であるかを示すパラメータで宣言される。それはまた、それが単一の入力メディアトラックに適用されるか、または入力メディアトラックのリストに適用されるかを示すパラメータを含む。TransformPropertyの別のパラメータは、入力サンプルの復号の後または前に演算または変換が適用されるかどうかを示す。
【００４６】
例えば、図2(a)を参照すると、生成されたビジュアルトラック310は、トラック参照タイプ311を介して1つのビデオトラックのみを参照する。次いで、TransformPropertyContainer 314は、単一のTransformPropertyタイプを含む。図2(b)を参照すると、生成されたビジュアルトラック310は、トラック参照タイプ311を介して単一のビデオトラックを参照する。次いで、TransformPropertyContainer 314は、TransformPropertyタイプのリストを含む。図2(c)を参照すると、生成されたビジュアルトラック310は、トラック参照タイプ311を介して複数のビデオトラックを参照する。TransformPropertyContainer 314は、単一のTransformPropertyタイプを含む。図2(d)を参照すると、生成されたビジュアルトラック310は、トラック参照タイプ311を介して複数のビデオトラックを参照する。次いで、TransformPropertyContainer 314は、TransformPropertyタイプのリストを含む。
【００４７】
TransformPropertyボックスは、単一の入力トラックTransformPropertyボックスおよびマルチトラックTransformPropertyボックスに特化され得る。これは、好ましい実施形態ではその“version（バージョン）”パラメータの異なる値を指定することによって行われる。TransformPropertyボックスの“version”パラメータが値1を取るとき、単一の入力トラックが変換オペランドとして提供されることが手段である。TransformPropertyボックスの“version”パラメータが値2をとる場合、多数の入力トラックが変換オペランドと見なされること、すなわち、生成されたサンプルが多数の入力映像サンプルから計算されることを意味する。 
【００４８】
次に、変換コンテナボックス314を導入し、以下のように変換特性ボックスを定義する、生成されたビジュアルトラックの設計を提案する。
【００４９】
トラックを生成するために使用される変換の宣言。
0006865842.tif 000002
【００５０】
このボックスは、トラックが生成するサンプルに適用される変換のリストを、提供する。
0006865842.tif 000003
以下のセマンティクスで。
【００５１】
このボックスのflags（フラグ）パラメータは、変換の種類を記述するために使用される。それはまた、これらの変換の複雑さに関する指標を提供する。flags values（フラグの値）（例として以下の名前と値を提供する）は図2に示したさまざまな構成のファイル内で高レベルでの記述を可能にする。そうすることによって、ISOBMFFパーサまたは読取は、生成されたトラックを扱うことができるかどうかを容易にチェックすることができる。
【００５２】
All_static：含まれるすべてのTransformPropertyボックスが静的変換に対応することを示す。フラグ値は0x000001である。これは、生成されたトラックが生成されたサンプルを含まないことを意味する。それは、それらがすべてTransformPropertyインジケーションから生成されることができるからである。
【００５３】
All_single_input：含まれるすべてのTransformPropertyボックスが単一の入力トラックを含むことを示す。フラグ値は0x000002である。all_singleフラグ値が設定されると、TransformPropertyContainerは、version=1のTransformPropertyボックスのみを含む。all_singleフラグ値が設定されていない場合、含まれているTransformPropertyボックスのタイプについて結論を導くことはできない。これらは、すべての動的なTransformPropertyボックス（version=2）または静的変換と動的変換の混合とすることができる。
【００５４】
num_entriesパラメータは、生成されたトラックの生成されたサンプルを構築するために入力トラックサンプルに適用される連続変換の数を示す。
【００５５】
代替実施形態では、TransformPropertyContainerのバージョンパラメータを使用して、図2とは異なる構成を示すことができる。例えば、
version =1の場合、TransformPropertyContainerボックスは、1つのTransformPropertyボックスのみを宣言する。したがって、エントリの数を提供する必要はない。
【００５６】
version=1をall_single_inputフラグと組み合わせることは、図2の構成(a)が使用中であることを示す。all_single_inputフラグが設定されていない場合、この信号は、図2の構成(a)または(c)を示す。
【００５７】
version=2の場合、TransformPropertyContainerボックスは、複数のTransformPropertyボックスを宣言する。したがって、エントリの数（生成されたトラックを構築するために使用されるTransformPropertyの数）が提供される。flagsの値all_single_inputと組み合わせた場合、これは図2の構成(b)を示す。all_single_inputフラグが設定されていない場合、この信号は、図2の構成(a)または(c)を示す。
【００５８】
次に、ボックスは次のように書き直される。
0006865842.tif 000004
【００５９】
代替実施形態では、フラグ値“all_static”に含まれる情報がこのトラックのサンプルが実際に空のサンプルであることを示す、生成されたトラックのSampleTableBox内の特定のVisualSampleEntryとして与えることができる。例えば、生成されたトラックサンプルが空である場合には、予約コード: ‘gtse'を使用する。メディアサンプルに適用する各変換は、以下のようにTransformPropertyボックスによって記述される（TransformPropertyがすべての特定の種類の変換に対する共通パラメータの宣言のための汎用ボックスである（この汎用TransformPropertyボックスを拡張する他のTransformPropertyボックスが変換パラメータを提供することができる））。
0006865842.tif 000005
【００６０】
TransformPropertyがサンプル内で宣言された動的パラメータを有する場合（TransformPropertyボックス内の専用パラメータ“params_in_samples”が1に設定される場合）、変換パラメータは、生成されたサンプル内で宣言され、メディアデータボックス内に格納される。
0006865842.tif 000006
以下のセマンティクスで、
【００６１】
num_inputsは、変換の入力サンプル数を指定する。
【００６２】
input_trackIDは、入力サンプルが変換に到来するソーストラックのtrack_IDを示す。0に設定されると、先行する変換または演算の出力を示す。
【００６３】
params_in_samplesは、派生サンプルにおいて変換パラメータが宣言されているかどうかを示す。
【００６４】
任意選択で、追加のフラグは、変換パラメータが同じメディアファイル内の別のトラック内にあるか、またはリモートメディアファイル内の別のトラック内にあるかを、params_in_samples =0のときに示すことができる。後者の場合、このトラックは例えば、生成された視覚トラックのDataEntryBox内のデータURLボックスを介して到達することができる。
【００６５】
param_track_IDは、変換パラメータ（例示的なパラメータトラック340）を宣言するトラックのtrack_IDを示す。このトラックは生成されたビジュアルトラックによって、特定の値を有するトラック参照タイプ、例えば、派生トラックパラメータのための‘dtrp’を介して参照することができる。（ここでの名前およびコードは単に、例えば、他のトラック参照タイプと競合しない任意の予約コードが便利である）。
【００６６】
代替実施形態ではtrack_IDを直接参照する代わりに、track_ref_index_or_zeroパラメータを使用することができ、これはタイプ‘gtrk’のTrackReferenceTypeBoxに対する1ベースのインデックスか、または先行するImageOperationの出力を示す値0のいずれかである。入力トラックを参照するこの方法を使用する場合、バージョン=1の汎用TransformPropertyはバージョン=1の場合、1つの入力トラックしかなく、このトラックは生成されたトラックのトラック参照ボックスから容易に取り出すことができるので、空でさえあり得る。次に、TransformPropertyボックスは、次のように書き換える。
0006865842.tif 000007
【００６７】
同様に、param_track_IDパラメータは、変換パラメータを提供するトラックを参照する値‘dtrp’を有するトラック参照タイプ341のインデックスとすることができる。8ビットで符号化されたトラック参照タイプを使用すると、track_IDよりも短い記述が得られる。track_IDの1つの利点は、トラックが外部またはリモートメディアファイルに含まれる場合である。
【００６８】
transfo_IDは、宣言されたTransformPropertyを参照するために使用することができるすべての変換の中で一意の識別子である。
【００６９】
さらに、本発明の一実施形態によれば、TransformPropertyのフラグは生成されたビジュアルトラックを構築するための変換に関するより多くの情報を与えるために、以下の値をとることができる。
【００７０】
Transform_is_static：TransformPropertyが所与のトラックまたはトラックフラグメントに対して固定パラメータを有することを示す。フラグ値は0x000001である。static（静的）TransformPropertyは、入力サンプルに適用する変換のパラメータの値を含む。これらは、TransformationParameterと呼ばれる特定のTransformatPropertyボックスの1つによって指定される。フラグ値がこの値セットを有していない場合、TransformPropertyボックスは変換パラメータが定義されている場所、すなわち、生成されたサンプル内、メディアファイル内のトラック内、またはメディアファイル外のトラック内、を示すものとする。
【００７１】
Transform_post_decoding：生成するサンプルの復号（デコーディング）後にTransformPropertyが適用されることを示す。フラグ値は 0x000002である。ポストデコーディングTransformPropertyは変換を適用する前に、入力サンプルがデコードされることを必要とする。このフラグがセットされていない場合、TransformPropertyは圧縮サンプルに適用される。
【００７２】
Transform_preserve_samples：（TransformPropertyの適用後に）生成されたトラックで取得されたサンプルの数が入力トラックと同じであることを示す。フラグ値は0x000004である。このフラグがセットされていない場合、生成されたトラックは、入力トラックとは異なる数のサンプルを含むことになる。
【００７３】
“version”パラメータの使用に対する代替実施形態では、抽象TransformPropertyボックスから継承する、いくつかの種類のTransformPropertyボックスが定義される。例えば、StaticTransformPropertyボックスおよびDynamicTransformPropertyボックスは、それぞれ、変換オペランドのための1つのトラックID（track_IDが入力トラックを参照するために使用されるとき）または何も定義しない（入力トラックが生成されたトラックのトラック参照ボックスを通して暗黙的に参照されるとき）、および変換オペランドのためのトラックIDの順序付けられたリスト（それぞれ、タイプ‘gtrk’のTrackReferenceTypeBoxに対する1ベースのインデックス、またはtrack_referenceボックスが使用されるときに先行するImageOperationの出力を示すための値0）を定義する。
【００７４】
ビジュアルトラックを生成するための変換が静的変換である場合、生成されたビジュアルトラックは、生成されたサンプルを含まないか、または少なくとも空のサンプルを含むことができる。このような場合、SampleTableBox‘stbl’313は任意になり、生成されたビジュアルトラックは最小セットのメタデータボックスを有し、したがって、よりコンパクトになる。好ましい実施形態では、生成されたビジュアルトラックがmoovおよびトラックボックスに初期化データのみを含み、データは含まず、変換はこれらのボックスに記載される。この好ましい実施形態では、トラックヘッダが、トラックが空トラック（サンプルデータなし）であることを示すために、“flags”パラメータの特定の値を含む。この情報は例えば、TransformPropertyボックスのセマンティクスで記述したall_static値のようなトラックヘッダボックスまたはサブボックス内の任意の専用パラメータによって提供することもできる。代替の実施形態は例えば、以下のように、トラックヘッダボックスのより明示的かつ決定されたフラグ値を定義することである。
【００７５】
empty_samples ：トラックがメディアデータボックスにサンプルデータを含まないことを示す。フラグ値は、（既存のフラグ値と競合しない）フラグパラメータの24ビット内の未使用ビット上に表される。例えば、フラグ値は、0x000016とすることができる。この未使用ビットが1に設定されると、トラックがメディアデータボックス内にサンプルデータを含まないことが手段される。このビットのデフォルト値は0である。この値が設定されると、トラックは、そのSampleTableBoxにおいて、サンプルが実際に空であることを示す特定のVisualSampleEntryを宣言することができる。
【００７６】
例えば、生成されたトラックが入力メディアトラックからの全てのサンプルを考慮しない場合、又は送信中に1つ以上のサンプルが失われ又は破損し、次いでこれらのサンプルについてデータが記憶されない場合に、トラック（トラックが何であれ、生成されたトラックのみならず）が空である幾つか（全てではない）のサンプルを有する場合があり得る。このような構成をトラックヘッダレベルで知らせるために、以下のフラグ値が定義される（値の名前は単なる例）：
Partial_samples：トラックのいくつかのサンプルが空であるか、または破損している可能性があることを示す。フラグ値は、（既存のフラグ値と競合しない）フラグパラメータの24ビット内の未使用ビット上に表される。例えば、フラグ値は、0x000032とすることができる。この未使用ビットが1に設定されると、トラックがメディアデータボックス内にデータのないサンプルを含むことが手段される。このビットのデフォルト値は0である。この情報をトラックレベルでシグナリングすることはメディアプレーヤにとって有用であり、このフラグ値を有するトラックを有するメディアファイルを正しく処理するためにはいくつかのサンプルの欠落データに対してロバストでなければならない。
【００７７】
これらのフラグは、生成されたトラックに限定されない。これらのフラグはトラックの構成が時間と共に変更するときに、例えば、TrackFragmentHeaderBox‘tfhd'のtf_flags値において、トラックフラグメントにおいて再定義することもできる。
【００７８】
それは、TransformationPropertyContainer 314およびそのTransformPropertyボックスのリスト（341〜344）生成されたサンプルを構築するのに十分であることをメディアプレーヤに通知する。次に、図3では、メディアデータボックス320が生成されたサンプルについてのデータを有していない。
【００７９】
代替実施形態では、静的変換を伴う生成された視覚トラック310が依然として‘stbl’ボックス313を有する。この‘stbl’ボックスはサンプルが空であることを示すVisualSampleEntryを含むことができ、すなわち、それらは、メディアデータボックス320内にデータを有さない。この実施形態では、stblボックスがデコーダ構成レコードも含む。
【００８０】
別の代替実施形態では、生成されたビジュアルトラック310がサンプル記述のために存在するすべての必須ボックスを有するstblボックス313を含む（これは欠落している必須（mandatory）ボックスに対してロバストではないプレーヤに準拠する）。この場合、生成されたサンプルは、特定のVisualSampleEntryを参照するように宣言される。各特定のVisualSampleEntryはそれ自体の4文字コードを用いて、生成されたサンプルが実際に空のサンプル(‘dtre’)であり、変換パラメータ(‘dtrf’)サンプルをそれらのデータに含むフルサンプルであり、変換パラメータが、メディアファイル(‘dtri’)またはリモートトラック(‘dtro’)内の入力メディアファイルとは別のトラック内で宣言されるサンプルであることを示す。
【００８１】
生成されたビジュアルトラックが‘dtre’VisualSampleEntryを有するSampleDescriptionボックスを含む場合、この手段は導出されたサンプルについてのデータがないこと、すなわち、すべてのパラメータが静止しており、導出されたまたは生成されたビジュアルトラックのメタデータボックス内で宣言されることである。したがって、これらのサンプルのサイズは0に設定される。transform_preserve_samplesフラグ値が1に設定されている場合、復号および合成タイムスタンプは、入力トラックからのタイムスタンプである。この特定のVisualSampleEntryは、以下のように宣言される。
0006865842.tif 000008
【００８２】
ここで、derived_config_recパラメータは次のボックスである。
0006865842.tif 000009
ここで、transfo_listは、静的TransformPropertyボックスのリストをそれらのタイプおよびパラメータで宣言するTransformPropertyContainerボックスである。
【００８３】
このVisualSampleEntryを参照するサンプルは、このEmptyDerivedTrackConfigRecordで宣言された変換のリストを使用して構築される。あるいは、トランスフォリストが中間のEmptyDerivedTrackConfigRecordなしに、ビジュアルサンプルエントリレベルで直接宣言することができる。TransformPropertyContainerボックスがVisualSampleEntryレベルで宣言されるとき、それをメディアハンドラまたはトラックヘッダレベルで宣言する必要もはやない。
【００８４】
生成されたビジュアルトラックが‘dtrf’、VisualSampleEntryを有するSampleDescriptionボックスを含む場合、このトラックのサンプルがその本文またはデータに含むこの手段は、インプットサンプルに適用してそれらを生成するためのすべての変換パラメータの宣言である。これらのサンプルデータは、トラックのメディアデータボックスに格納される。サンプルからバイトへのオフセットおよびサンプルからチャンクへのオフセットは、SampleTableBoxの適切なボックスに適切に設定される。
この特定のVisualSampleEntryは、以下のように宣言される:
0006865842.tif 000010
【００８５】
ここで、config_recordパラメータは以下のボックスである。
0006865842.tif 000011
ここで、transfo_listはTransformPropertyボックスの配列であり、それらは動的であるため、パラメータを持たない。これらのTransformPropertyボックスの少なくとも1つは動的である。静的変換パラメータはそれらの変換パラメータを埋め込み、動的変換パラメータはサンプルデータ内にそれらの変換パラメータを有し、次にメディアデータボックス内に格納される。
0006865842.tif 000012
【００８６】
このVisualSampleEntryを参照するサンプルはこのFullDerivedTrackConfigRecordで宣言された変換のリストを使用して構築されるが、変換パラメータはサンプル本体で宣言される。この場合、導出されたサンプルは、静的および動的変換を混合することができることに留意されたい。静的なものは、一意のtransform_IDと、適用する適切なパラメータが後に続く動的なものとを介して参照することができる。
【００８７】
生成されたビジュアルトラックが‘dtri’VisualSampleEntryを有するSampleDescriptionボックスを含む場合、このトラックのこれらのサンプルを構築または生成するための変換パラメータがメディアファイル内に存在するトラック内に含まれるという手段がある。構築する各サンプルについて、変換パラメータは、（track_ID、または変換パラメータのトラック参照を示すトラック参照タイプ341内のトラックのインデックスを介して）示されたトラック内の対応するサンプル内で見つけることができる。
【００８８】
この特定のVisualSampleEntryは、以下のように宣言される。
0006865842.tif 000013
【００８９】
ここで、config_recordパラメータは以下のボックスである。
0006865842.tif 000014
ここで、transfo_listはTransformPropertyボックスの配列であり、動的であるため、それらのタイプおよび最終的にはいくつかのパラメータを有する。これらのTransformPropertyボックスの少なくとも1つは動的であり、パラメータがサンプル内にあることを示すパラメータは常に偽であり、これは、変換パラメータがメディアファイル内のトラックから取り出されるべきであることを意味する。このトラックのIdは、TransformPropertyに含めることができる。サンプルを生成または導出するこの手段は、入力サンプルがパラメータトラック内の対応するサンプル（同じ復号時刻）の変換パラメータで変換される。
【００９０】
生成されたビジュアルトラックが‘dtro’VisualSampleEntryを有するSampleDescriptionボックスを含む場合、このトラックのこれらのサンプルを構築発明生成するための変換パラメータがリモートファイルに存在する帯域外トラックに含まれるという手段がある。構築する各サンプルについて、変換パラメータは、（リモートメディアファイル内のtrack_IDを介して）指示されたトラックの対応するサンプル内で見つけることができる。あるいは識別子を有するメディアデータボックスが利用可能である場合、この識別子は遠隔トラックにおける変換パラメータ値を参照するためにサンプルデータにおいて使用され得る。
【００９１】
この特定のVisualSampleEntryは、以下のように宣言される。
0006865842.tif 000015
【００９２】
ここで、config_recordパラメータは以下のボックスである。
0006865842.tif 000016
ここで、transfo_listはTransformPropertyボックスの配列であり、そのタイプと、最終的にはいくつかのパラメータを含む。これらのTransformPropertyボックスのうちの少なくとも1つは動的であり、パラメータがサンプル内にあることを示すパラメータは常に偽であり、これは、変換パラメータがメディアファイルの外部にあるトラックから取り出されるべきであることを意味する。このトラックのIdは、TransformPropertyに含めることができる。サンプルを生成入力導出するこの手段は、外部パラメータトラック内の対応するサンプル（同じ復号時刻）の変換パラメータで変換される。
【００９３】
最後のアプローチは静的および動的変換の両方をサポートするという利点を有し、特に、いくつかの生成されたサンプルが空である場合、すなわち、生成されたビジュアルトラックが入力サンプルと1対1のマッピングを有さない場合(生成されたビジュアルトラックは、変換された入力サンプルのサブセットのみを有し得る)、動的変換の場合に有益である。そのような場合、生成されたビジュアルトラック310は少なくとも2つの異なるVisualSampleEntryを定義するSampleTableBox 313を有する。1つは例えば、予約された‘gtrk’コードを用いて生成されたサンプルを宣言するためであり、1つは、上述のように空のサンプルを宣言するためである。次いで、生成された各サンプルは、これらの少なくとも2つの異なるVisualSampleEntryのうちの1つを参照することによって、320においてデータを含むものとして、または空であるものとして宣言される。この種の構成は、TransformPropertyボックスのフラグ値： Transform_preserve_samplesによってシグナリングすることができる。生成されたビジュアルサンプル内のサンプルをスキップするために、特定のTransformationParameter「no-op」が定義され、これは、単に、所与の時間に空のサンプルを入れることからなる。
【００９４】
「No-operation（無演算）変換型（“No-operation transform type”）」
0006865842.tif 000017
【００９５】
「no-op」変換は、空のサンプルの生成にある。no-op変換プロパティがサンプルに存在する場合、他の変換プロパティは無視される。
構文：
0006865842.tif 000018
【００９６】
最後に、静的変換との組み合わせの有無にかかわらず、動的変換の場合、変換記述の部分的相互化のための以下の代替処理がある。
・全ての変換規則及びパラメータはトラックの1つのメタデータボックス内で静的であり、トラックは、生成されたサンプルを有さない（トラックが空のサンプルを有するものとしてマークされる）。
・変換パラメータはSampleTableBox 313にリストされた特定のVisualSampleEntryに反映され、各生成されたサンプルはこれらのVisualSampleEntryの1つを参照する。 
・変換パラメータは単に、メディアデータボックス320に入れられたサンプルにおいて宣言される。
・変換パラメータは外部トラック、例えば、時限メタデータトラックにおいて宣言される。
【００９７】
図3に示され、上記に公開された設計の柔軟性は様々な記述の可能性を組み合わせ、静的及び動的変換の両方をカバーし、同じ生成されたビジュアルトラック内でそれらを混合することを可能にする。
【００９８】
TransformProperty“flags”パラメータに対するTransform_post_decoding値の目標は、復号演算の数を減らすことである。コンテンツをカプセル化するとき、著者はそれがどの変換を適用するか、およびそれがどのようにサンプルを構築するかを知っており、そのようなフラグを用いて、コンテンツ著者は圧縮された領域において可能な限り多くの変換を行い、次いで、ピクセル領域における合成を回避し、中間サンプルの複数の復号および記憶を有するように、生成されたサンプルを可能な限り最新に復号することができる。
【００９９】
例えば、TransformPropertyまたはTransformPropertyContainerボックスの“version”パラメータを介して、メディアファイル内で宣言されるトラック変換の複雑さに応じて、例えばftypボックス内のメディアファイルの始めのブランドまたは互換性のあるブランドは、ファイル内で生成されたトラックの複雑さの程度をメディアプレーヤに迅速に示すことができる。例えば、2つのブランドはシングルトラック生成または変換のため、および高度な（すなわち、マルチトラック）生成または変換のために、それぞれ‘dtrs’および‘dtra’と定義することができる。前者は、version=1のTransformPropertyボックスのみを含むメディアファイル(またはセグメント)、またはサンプルを導出するための変換または演算が入力として1つの単一トラックのみをとることを示す任意の同等のパラメータに対応する。後者はversion=2のTransformPropertyボックスを含むメディアファイル（またはセグメント）、またはサンプルを導出するための変換または演算が2つ以上の入力トラック（すなわち、マルチトラック変換）を含むことができることを示す任意の同等のパラメータに対応する。ブランドの別の定義は図2の構成ごとに1つのブランドとすることができ、例えば、ブランド‘dtr1’は、単一の演算（構成2(a)）からなる単一の入力トラックから計算された単純な派生トラックを含むメディアファイルを示す。この手段は先の実施形態によれば、TransformationPropertyContainerボックスは、version=1ボックス（またはそれが単一の変換または演算を含むことを示す任意のパラメータ）である。同じ原理に従って、他のブランドは、入力トラックの数と、入力トラックに適用するための演算または変換の数とに応じて定義することができる。その能力に応じて、クライアントはメディアトラックのみ（生成されたトラックのいずれもない）、生成されたトラックのいくつか（例えば、単純な演算を有するトラック）を処理することを決定することができ、または、生成されたすべてのトラックをサポートすることができる。クライアントによる処理は、メディアファイルを構文解析しながらトラックをフィルタリングすること、またはストリーミングシナリオにおいて、このような複雑なまたはサポートされていない生成されたトラックを決して選択しないことにある。
【０１００】
異なる変換が異なるサンプルに適用されるが、サンプルの所与のパターンを尊重する場合に特に関連する代替実施形態は典型的には生成されたトラックのtransform_preserve_samplesフラグの値がセットされていない場合に、サンプルのグループを使用し、サンプルの各グループを変換または変換のセットに関連付けることである。サンプルのパターン（またはサンプルのグループ）が定義され、異なる変換プロパティ（VisualSampleTransfoEntry）が、サンプルのこれらのグループまたはサンプルのパターンに適用される。SampleToTransformBoxは、transformation_typeで定義される。SampleToTransformBoxおよびSampleTransfoDescriptionBoxは、このtransformation_typeによって関連付けられる。次いで、VisualSampleTransfoEntryは、この演算子のための少なくとも1つの演算子およびパラメータを含む。例えば、演算子は、回転（rotation）およびパラメータ（角度）=90°である。言い換えれば、VisualSampleTransfoEntryは、特定のTransformPropertyボックスの1つに対応することができる。
【０１０１】
図4は、本発明の一実施形態による、1つまたは複数の生成されたビジュアルトラックを含むメディアファイルをカプセル化するための方法を表すフローチャートを示す。
【０１０２】
これは、図1のメディアエンコーダ100によって、特にISOベースメディアファイルフォーマットによる1つのビデオエンコーダによって生成されるメディアストリームのカプセル化にある。入力メディアストリームはステップ400の間にメディアパッケージャ101によって受信され、メディアパッケージャ110はステップ401の間に各メディアストリームを1つまたは複数のISOBMFFトラックまたはトラックフラグメントにパッケージする。ステップ401の結果として、メディアファイル、断片化されたメディアファイル、またはメディアセグメントのセットが生成される。次いで、ユーザまたはコンテンツ制作者自身が生成されたメディアをチェックし、メディアコンテンツの代替または変更されたビューを表す追加のトラックを作成することができる。このステップは、合成ステップ402として要約される。これは、カプセル化されたメディアトラックから1つまたは複数の入力トラックを選択し、選択されたトラックに適用して、異なるトラックを生成し、生成するための効果、変換、または演算を定義することからなる。
【０１０３】
合成中、ユーザは、メディアトラックを変換する際に多くの可能性及び選択肢を有する。例えば、
・1つまたは複数のメディアトラックから入力サンプルを選択する。
・入力サンプルに適用する1つまたは複数の演算を選択する。
・選択入力サンプルに、同じまたは異なる変換パラメータを適用する。
・各選択サンプルまたは選択サンプルのサブセットを変換する。
【０１０４】
ユーザが合成（コンポジション）を完了すると、ユーザは、入力メディアトラックと同じファイルに自分の合成の結果を記録することを決定することができる。
【０１０５】
合成部130および合成構築ステップ402はメディアパッケージャ110に統合され、記録されたメディアストリームに適用するための自動変換として事前に記録されることも可能であり、例えば、ビデオトラックの回転、ビデオの事前に定義されたクロッピングまたはサイズ変更、またはパッケージングデバイスによって事前に計画されるかまたは提供される任意の演算であることに留意されたい。
【０１０６】
ユーザが記録することを決定したとき、またはメディアパッケージャが生成されたトラックを自動的に作成するように構成されている場合、ISOBMFFライタ113は、ステップ404において、メイン‘moov’ボックスの下に‘trak’ボックスを挿入することによって、メディアファイル内の新しいトラックを開始する。このトラックボックスは、合成を表す生成されたトラックの記述を含む。トラックヘッダボックス‘tkhd’は、この新しいトラックに割り当てられた新しいtrack_IDを用いて作成される。次に、ISOBMFFライタはこのトラックヘッダボックスに、作成時間と、生成されたトラックの寸法（幅および高さ）とを記述する。この情報は、合成部から取得され、および／またはユーザによってパラメータ化され得る。
【０１０７】
次に、トラック参照ボックス‘tref’がステップ405で作成され、生成されたトラックを、‘gtrk’に等しいトラック参照タイプで生成された1つまたは複数の入力メディアトラックにリンクして、トラックが参照トラックから「生成された」ことを示す。任意選択的に、同じステップ405で、生成されたトラックおよび入力メディアトラックはまた、グループの各トラックがオリジナルメディアトラックのバリエーションであることを示す特定のグループ化タイプ値を有するTrackGroupBox‘trgr’を介して同じトラックグループに関連付けられる。
【０１０８】
次に、ステップ406で、ISOBMFFライタは、メディアデータと、生成されたトラックをどのように処理するかを記述する。これは、トラックメディア‘mdia’ボックス、特に、HandlerBox‘hdlr’サブボックスで行われる。handler_typeは、生成されたトラックがビジュアルトラックから生成される場合には‘vide’に設定され、生成されたトラックがオーディオ入力トラックから生成される場合には‘soun’に設定される。それは他の媒体タイプにも拡張することができ、ハンドラは生成のために入力トラックのハンドラタイプに設定されるべきである。任意選択で、HandlerBoxでは名前は「生成」に設定され、その結果、トラックを検査する人間はこのトラックの目的を明確に見ることができる。handler_type値に応じて、メディア固有のハンドラ情報が同じステップ406の間に設定される。生成されたトラックが入力ビデオトラックから生成されると、特定のVideoMediaHeaderBox‘vmhd'がトラック記述に追加され、トラック生成に含まれる変換のリストを宣言するように拡張される。既存のVideoMediaHeaderBoxと区別し、後方互換性を保つために、生成されたトラックの特定のVideoMediaHeaderBoxは、version=「1」を使用する。
0006865842.tif 000019
特定のVideoMediaHeaderBoxは、実際にはそれが通常のVideoMediaHeaderBox(上記のversion=1の値の例)ではないという指示と、TransformPropertyContainerボックス（トラックの生成に使用される変換のリストを宣言する）という2つのパラメータを必要とする。
【０１０９】
合成構成に関するユーザの選択に応じて、TransformPropertyContainerBoxのフラグおよびバージョン値、ならびにTransformPropertyContainerボックスのリストが、図3に関連する説明に従って設定され、これはステップ407で行われる。ステップ408でテストされた全静的変換の場合、生成されたトラックの記述はここではステップ415で終了し、SampleTableBoxが宣言されないことを意味する。トラックを生成するために使用される変換のうちの少なくとも1つが静的でない場合、ステップ409において、生成されたサンプルをどのように計算することができるかを記述するために、SampleTableBoxが作成される。これは、サンプル記述ボックス内の適切なVisualSampleEntriesを設定するための動的パラメータの場合であり、変換パラメータが生成されたサンプルに格納されると、ステップ410において、生成されたサンプルのデータが計算され（所与のサンプルの変換パラメータ）、メディアパッケージャのメモリに格納される。
【０１１０】
ISOBMFFライタは、テストステップ411で、生成されたトラック内で宣言された演算または変換のリストを繰り返す。次の演算または変換がテスト412偽に対応する動的変換であるたびに、生成されたサンプルは、現在の演算パラメータで更新される。
【０１１１】
静的および動的パラメータの両方をサポートするために、静的演算に遭遇するたびに、生成されたサンプルのペイロードはステップ413で適用するために、識別子を用いて静的変換に更新される。サンプルに対する演算のリストに到達すると、ステップ414において、サンプル記述(データボックス内のサイズ、バイトおよび／またはチャンクオフセット、復号および／または合成時間)が適切なサンプル記述関連ボックス内で更新される。
【０１１２】
トラックヘッダの変換行列によって処理することができる単一の入力トラック上の実際に単純な静的変換の場合、生成されたトラックは、empty_samplesで宣言され、単一の演算としてIdentity TransformProperty‘idtt’を定義する。次に、変換パラメータは、生成されたトラックのトラックヘッダボックスの変換行列において宣言される。
【０１１３】
復号演算の数および中間サンプルの記憶が可能な限り制限されたままであるように、最初にプリデコーディング変換から始めて、演算の順序で変換を宣言することが推奨される。
【０１１４】
生成されたファイルまたはセグメントは例えば、HTTPを介した適応ストリーミングを用いて、配信のためにストリーミングサーバ上にさらに配置することができる。
【０１１５】
コンテンツがHTTP上での適応ストリーミングのために準備されると、生成されたビジュアルトラックの一部または全部をストリーミングマニフェストに公開することができる。例えば、MPEG DASHストリーミングプロトコル（メディアプレゼンテーション記述）のためのマニフェストにマッピングされるとき、生成されたビジュアルトラックは生成されたトラックを復号し再構成するために必要とされる説明を示すために、すべての入力トラックを参照する属性依存性Idを有する説明（Representations）として公開される。任意選択で、生成されたビジュアルトラックの表現とその入力ビデオトラックの表現との間の関係を、‘gtrk’参照タイプで修飾することができる。これは、dependencyType属性を使用して、またはこれらの表現間のassociationIdおよびassociationTypeを宣言して行うことができる。これは、レンダリングのために生成されたビジュアルトラックに対応する表現を選択するメディアストリーミングクライアントが入力トラックのためのセグメントもストリーミングされるべきであることを通知されることを可能にする。
【０１１６】
図5は、本発明の一実施形態によるメディアファイルまたはメディアセグメントの構文解析を示す。
【０１１７】
この説明はファイルがメディアクライアント150に完全に利用可能であるとき、またはファイルがメディアクライアント150にストリーミングされるときの両方に適用される。メディアファイルの処理は、ステップ500において、メディアファイルの初期化データの受信から開始する。この初期化データから、ISOBMFFパーサ152はmoovボックスを解析し、ステップ501において、そのタイプ（ビデオ、オーディオ、メタデータ、テキスト・・・）を有するファイルに含まれるトラックの数を決定する。
【０１１８】
次に、ステップ502で、少なくとも1つのトラック参照が別のトラックに対する少なくとも1つの‘gtrk’トラック参照タイプを含む場合、ファイルはこれらすべてのトラック間の関係を構文解析し、次いで、ファイルは、メディアデータトラックだけでなく、生成されたトラックも含む。次いで、パーサは、それらの生成されたトラックをユーザに公開するかどうかを決定する必要がある。いくつかの生成されたトラックは例えば、複雑な生成における中間ステップとして使用される場合、表示されることを意図されないものとして示され得ることに留意されたい（例えば、トラックヘッダのフラグ値が、設定されたtrack_in_movie値を有さない場合）。このような場合、これらは、選択および再生のためにクライアントに公開されない。どのトラックをユーザに公開するかを決定するために、パーサは、生成されたトラックについて宣言されたTransformPropertyボックスのリストを調べる。ステップ504で変換のタイプを構文解析するだけで、パーサは、ステップ505で、生成されたトラックを再構成することができるかどうかを判定することができる。
【０１１９】
1つの変換タイプがメディアクライアントでサポートされていないか、または利用可能でないとすぐに、生成されたトラックは処理されない。警告はグラフィカルユーザインターフェースを介してユーザに表示することができ、またはメディアパーサ、例えば、サポートされるトラックを選択または切り替えることを決定するストリーミングアプリケーションを使用してアプリケーションに送信することができる。断片化されたトラックの場合、初期化データはmoofボックスで更新することができ、その後、これらの第1のステップが再び実行されることに留意されたい。生成されたトラックのサポートまたは非サポートは、メディアファイルが例えばDASH MPDのようなストリーミングマニフェストで記述される場合、ISOBMFF固有のブランドまたはストリーミングプロファイル、または変換の存在を知らせる任意の記述子を介して得ることもできることに留意されたい。
【０１２０】
生成されたトラック内で宣言された変換がメディアプレーヤまたはメディアクライアントによってサポートされる場合、パーサ152は、ステップ507で、すべての変換が静的であるかどうかをチェックする。この情報は、生成されたトラックのトラックヘッダボックス内のフラグ値を構文解析することによって、またはTransformPropertyContainerボックスのバージョンまたはフラグ値を調べることによって、または生成されたトラックについて宣言されたTransformPropertyボックスのリストを調べ、それらのフラグおよびバージョン値をチェックすることによって得ることができる。
【０１２１】
静的変換の場合、パーサは、ステップ510で、クライアントメモリに演算子および変換パラメータを保存する。すべての変換が静的であり、生成されたトラックがempty_samplesとしてマークされると、パーサは、ステップ511において、それらのパラメータを使用する変換演算子を入力サンプルに次々に適用することによって、生成されたサンプルの構築を開始することができる。入力サンプルは、生成されたトラックのTransformPropertyボックスを構文解析することによって決定されている。
【０１２２】
少なくともいくつかの変換が動的であり、テストステップ507が偽であることを意味する場合、パーサは、変換パラメータが生成されたサンプル内にあるか、メディアファイル内に含まれる別のトラック内にあるか、または外部トラック内にあるかをチェックする。次に、ステップ522でテストされた最後の入力サンプルが処理されるまで、ステップ521でサンプルを1つずつ構築し始める。
【０１２３】
図6は、本発明の一実施形態におけるサンプルの生成を示す。
【０１２４】
この方法は、入力トラックが識別され、変換演算子のセットが読み取られたと仮定する。プロセスは生成されるべき連続するサンプル上でループし、所与のサンプルに対するプロセスに焦点を合わせるものと想定される。
【０１２５】
ステップ600では、入力サンプルが読み取られ、プロセスの開始時に記憶される。複数を使用する間に、1つの入力トラックしかなく、したがって1つの入力サンプルしかない可能性があることに留意する価値がある。
【０１２６】
ステップ601において、第1の変換演算子が読み込まれる。
【０１２７】
ステップ602において、現在の変換演算子が静的または動的であるかどうかがテストされる。
【０１２８】
変換演算子が動的である場合、演算子のパラメータはステップ603で取得されなければならない。それらは、生成されたトラックまたは参照パラメータトラック（ローカルまたはリモートのいずれか）内の関連するサンプルから取得されてもよい。変換演算子が静的である場合、変換演算子のパラメータはすべてのサンプルについて同じであり、処理のこの段階で既知であると仮定される。
【０１２９】
ステップ604において、変換演算子が符号化されたサンプルまたは復号されたサンプルに適用されるべきかどうかがテストされる。ここで、変換演算子のリストは「プリデコーディング（事前コーディング）」演算子のみ、「ポストデコーディング（事後デコーディング）」演算子のみ、またはその両方を含むことができると仮定する。両方がリストに含まれる場合、有利には、リストが最初に「プリデコーディング」変換演算子のみを含み、続いて「ポストデコーディング」変換演算子のみを含む。したがって、入力サンプルは一度だけ復号される。
【０１３０】
現在の変換演算子が「プリデコーディング」演算子である場合、ステップ605で、入力符号化サンプルが読み取られる。適用される2番目およびさらなる「プリデコーディング」変換演算子については、入力符号化されたサンプルが前の変換演算子の適用から得られる、実際に生成された符号化されたサンプル記憶されたサンプルである。次に、ステップ606において、現在の変換演算子が入力符号化サンプルに適用され、ステップ607において記憶される生成符号化サンプルが得られる。
【０１３１】
現在の変換演算子が「ポストデコーディング」演算子である場合、入力サンプルはステップ608で読み取られる。2番目およびさらなる「プリデコーディング」変換演算子が適用されるために、入力復号化されたサンプルは、前の変換演算子の適用から得られた、実際に生成された復号化されたサンプルが格納される。
【０１３２】
次に、1番目の「ポストデコーディング」変換演算子についてのみ、入力サンプルが符号化され、ステップ609で復号化されなければならない。これは、「ポストデコーディング」変換演算子が定義上、復号化されたサンプルに適用されなければならないからである。次ループでは、復号ステップ609は実行されない。
【０１３３】
次に、ステップ610において、現在の変換演算子が入力復号サンプルに適用され、ステップ611において記憶される生成復号サンプルが得られる。
【０１３４】
ステップ612では、変換演算子のリストの終わりに達したかどうかがテストされる。達していなければ、プロセスはステップ601で次の演算子にループバックする。
【０１３５】
すべての変換演算子が適用された場合、ステップ613でテストされるのは、「プリデコーディング」演算子のみである。その場合、現在生成されたサンプルは符号化され、ステップ615で出力される準備が整う前に、ステップ614で復号される必要がある。
【０１３６】
変換演算子への入力メディアトラックが例えば、抽出器(明示的再構成)を介して、またはそのサンプルの暗黙的再構成のために、他のトラックへの依存性を有する場合、変換に提供される入力サンプルは、再構成後の再構成サンプルからなる。これは、復号後の演算または変換に適用される。プリデコード演算子の場合、入力サンプルは、サンプル自体に再構成規則解像度から得られるデータを加えたものを含むサンプルデータの連結によって形成される。例えば、ベースレイヤサンプルに対するエンハンスメントレイヤサンプルの依存性を有するスケーラブルビデオの場合、入力サンプルは変換がプリデコーディング変換であるとき、エンハンスメントプラスベースサンプルデータの連結からなる。同様に、ポストデコーディング変換のための入力サンプルは、ベースプラスエンハンスメントサンプルから構成される再構成／復号された入力サンプルである。
【０１３７】
図7は、1つまたは複数の実施形態のステップを実施することができるサーバまたはクライアントデバイス700のブロック図を表す。
【０１３８】
好ましくは、デバイス700が通信バス702と、デバイスの電源投入時にプログラムROM 706からの指示を実行することができる中央処理装置（CPU）704と、電源投入後にメインメモリ708からのソフトウェアアプリケーションに関する指示とを備える。メインメモリ708は例えばRAM（Random Access Memory）型であり、通信バス702を介してCPU 704の作業領域として機能し、図示しない増設ポートに接続された任意のRAMによってメモリ容量を拡張することができる。ソフトウェアアプリケーションに関する命令は例えば、ハードディスク（HD）710またはプログラムROM 706からメインメモリ708にロードされてもよい。このようなソフトウェアアプリケーションは、CPU 704によって実行されると、図4〜図6を参照して説明したカプセル化ステップをサーバ内で実行させる。
【０１３９】
参照番号712は、デバイス700の通信ネットワーク714への接続を可能にするネットワークインターフェースである。ソフトウェアアプリケーションはCPU 704によって実行されると、ネットワークインターフェースを介して受信された要求に反応し、ネットワークを介して他のデバイスにデータストリームおよび要求を提供するように適合される。
【０１４０】
参照番号716は、ユーザに情報を表示し、および／またはユーザから入力を受信するためのユーザインターフェースを表す。
【０１４１】
ここで、変形として、マルチメディアビットストリームの受信または送信を管理するためのデバイス700は、図4〜図6を参照して説明した方法を実施することができる1つまたは複数の専用集積回路（ASIC）からなることができることを指摘しておく。これらの集積回路は例えば、非限定的に、ビデオシーケンスを生成または表示するため、および／またはオーディオシーケンスを聴くための装置に一体化される。
【０１４２】
図8は、本発明の一実施形態における、シーンのワイドビューに対応するビデオのカプセル化プロセスを、シーンのこのワイドビューの抽出と共に示す。
【０１４３】
シーンのワイドビューは、典型的には球面360°メディアコンテンツである。
【０１４４】
シーンのワイドビューは、符号化され、少なくとも1つのトラック801にカプセル化される。このワイドビューからの抽出を表すビデオは、ワイドビュートラックへの参照803と、ワイドビュービデオ内の抽出された部分の記述子804とを含む特定のトラック802内に符号化され、カプセル化される。
【０１４５】
この記述子は、キャプチャ投射の空間部分をシグナリングすることを可能にする変換演算子の1つとして使用することができる。
【０１４６】
記述子804は、典型的にはワイドビュービデオ805内の抽出された部分806を識別するための位置パラメータを与える。典型的には、これらのパラメータがヨー（yaw）、ピッチ（pitch）及びロール（roll）パラメータに関連する。
【０１４７】
例えば、記述子804は、特定のVisualSampleGroupEntryとして以下の構文をとることができる。
0006865842.tif 000020
以下のセマンティクスで。
【０１４８】
yaw_centerは、投射画像の中心に対応するyawの値を0.01度ずつ指定する。yaw_centerの値は、-18000〜17999の範囲とする。存在しない場合、yaw_centerの値は0に等しいと推定されるべきである。
【０１４９】
pitch_centerは、投射画像の中心に対応するピッチの値を0.01度ずつ指定する。pitch_centerの値は、-9000と9000の範囲にあるものとする。存在しない場合、pitch_centerの値は0に等しいと推定されるべきである。
【０１５０】
roll_centerは、投射画像の中心に対応するロールの値を0.01度ずつ指定する。roll_centerの値は-18000〜18000の範囲とする。存在しない場合、roll_centerの値は0に等しいと推定されるべきである。
【０１５１】
yaw_rangeは、投影画像に存在するヨーの値の範囲を0.01度の増分で指定する。yaw_rangeの値は、1〜36000の範囲とする。存在しない場合、yaw_rangeの値は36000に等しいと推測されるべきである。
【０１５２】
pitch_rangeは、投影画像に存在するピッチの値の範囲を0.01度の増分で指定する。pitch_rangeの値は、1〜18000の範囲とする。存在しない場合、ピッチ範囲の値は18000に等しいと推測されるべきである。
【０１５３】
トラックが別のトラックのビューポートである場合、トラックは、球全体を表すフルトラックに対する1つの「タイル」参照タイプを有する‘tref’ボックスを含む。
【０１５４】
好ましい実施形態では、記述子804がより記述的なパラメータを含む。
0006865842.tif 000021
以下のセマンティクスで（HEVCの全方向投射指示SEIメッセージのセマンティクスと同じ）。
【０１５５】
region_idは、同じビジュアルソースに関連するすべての球形領域サンプルグループ記述に対する一意の識別子である。同じregion_idを有するすべての球形領域サンプルグループ記述は、同じ基準球形空間を共有する。
full_pictureは、full_pictureが設定されると、この球形領域サンプルグループ記述が同じregion_idを有するタイプ‘srif’のすべてのサンプルグループ記述の和集合によって少なくとも形成される同じビジュアル（視覚）コンテンツを表す完全な球形ピクチャを実際に表すことを示す。
dynamic_viewportは、dynamic_viewportが設定されている場合、球形領域の座標がtrack_IDによって識別されるメタデータトラックを介して提供されることを示す。そうでない場合、矩形領域の座標は、yaw_center、pitch_center、roll_center、yaw_range、およびpitch_rangeによって提供される。
track_IDは、球領域サンプルグループ記述によって表される球領域の各サンプルの座標を記述する時限球座標を含むメタデータトラックを示す。 
yaw_centerは、投射画像の中心に対応するyawの値を0.01度ずつ指定する。yaw_centerの値は、-18000〜17999の範囲とする。
pitch_centerは、投射画像の中心に対応するピッチの値を0.01度ずつ指定する。pitch_centerの値は、-9000と9000の範囲にあるものとする。
roll_centerは、投射画像の中心に対応するロールの値を0.01度ずつ指定する。roll_centerの値は-18000〜18000の範囲とする。
y  aw_rangeは、投影画像に存在するヨーの値の範囲を0.01度の増分で指定する。yaw_rangeの値は、1〜36000の範囲とする。
pitch_rangeは、投影画像に存在するピッチの値の範囲を0.01度の増分で指定する。pitch_rangeの値は、1〜18000の範囲とする。 
【０１５６】
球座標時限メタデータトラックのフォーマットは、以下のように特定のMetadataSampleEntryとして再定義されることに留意されたい。
【０１５７】
球座標サンプルエントリ
0006865842.tif 000022
球座標サンプルエントリは、球座標系で表現された参照トラックに関連する空間情報を提供する。
構文
球座標サンプルエントリは、次のとおりとする。
0006865842.tif 000023
セマンティクス
projection_typeは、座標系への矩形デコーダ画像出力サンプルの特定のマッピングを示す。
【０１５８】
球座標サンプル形式
構文
球座標サンプルは、以下の構文に準拠するものとする:
0006865842.tif 000024
ROIメタデータトラックのSyn（同期）サンプルは、補間値が0であるサンプルである。
セマンティクス
yaw_centerは、投射画像の中心に対応するyawの値を0.01度ずつ指定する。yaw_centerの値は、-18000〜17999の範囲とする。 
pitch_centerは、投射画像の中心に対応するピッチの値を0.01度ずつ指定する。pitch_centerの値は、-9000と9000の範囲にあるものとする。 
roll_centerは、投射画像の中心に対応するロールの値を0.01度ずつ指定する。roll_centerの値は-18000〜18000の範囲とする。 
yaw_rangeは、投影画像に存在するヨーの値の範囲を0.01度の増分で指定する。yaw_rangeの値は、1〜36000の範囲とする。 
pitch_rangeは、投影画像に存在するピッチの値の範囲を0.01度の増分で指定する。pitch_rangeの値は、1〜18000の範囲とする。 
補間は、連続するサンプルの時間的な連続性を示す。真である場合、アプリケーションは、前のサンプルと現在のサンプルとの間のROI座標の値を線形に補間することができる。偽の場合、前のサンプルと現在のサンプルとの間の値の補間はない。
【０１５９】
また、2d画像については、RectRegionSampleGroupEntry(‘rrif')としての矩形領域の記述子が定義される。（名前およびコードはここでは例えば、‘tile'または‘part'、予約された4文字コードであってもよい）。この記述子は、特定の予約コード、例えば‘rrif'によって識別される。矩形領域サンプルグループ記述は、ビデオまたは画像メディアトラック間の空間的関係を記述するために使用される。これは、トラックのデコードされたサンプルが別のトラック内の所与の矩形領域に空間的に対応することを識別することを可能にする。
0006865842.tif 000025
以下のセマンティクスで、
【０１６０】
region_idは、同じビジュアル電源に関連するすべての球形領域サンプルグループ記述に対する一意の識別子である。同じregion_idを有するすべての矩形領域サンプルグループ記述は、同じ参照矩形空間を共有する。
【０１６１】
full_pictureは、full_pictureが設定されると、この矩形領域が実際には少なくともタイプ‘rrif'のすべてのサンプルグループ記述と同じregion_idとの和集合によって形成される同じビジュアル（視覚）コンテンツを表す完全なピクチャであることを示し、この場合、region_widthおよびregion_heightは参照領域の幅および高さに設定される。
【０１６２】
dynamic_roiは、dynamic_roiが設定されている場合、track_IDによって識別されるメタデータトラックを介して矩形領域の座標が提供されることを示す。ISO/IEC 23001-10の第6条に規定されているような2Dデカルト座標時間メタデータトラックのフォーマットが使用されるべきであり、この場合、region_widthおよびregion_heightは、2Dデカルト座標サンプルエントリに規定されているようなreference_widthおよびreference_heightに設定されるべきである。それ以外の場合、矩形領域の座標は、horizontal_offset、vertical_offset、region_width、およびregion_heightによって提供される。
【０１６３】
track_IDは、矩形領域サンプルグループ記述によって表される矩形領域の各サンプルの座標を記述する、時限2Dカルテシーン座標を含むメタデータトラックを示す。
【０１６４】
horizontal_offsetおよびvertical_offsetは、それぞれ、参照領域の左上座標に対する、矩形領域サンプルグループ記述によって表される矩形領域の左上座標の水平オフセットおよび垂直オフセットを与える。参照領域は、同じregion_idを有するタイプ‘rrif'のすべてのサンプルグループ記述の和集合によって形成される領域である。
【０１６５】
region_width、region_heightは、矩形領域サンプルグループ記述で表される矩形領域の幅、高さを整数座標で、full_picture、dynamic_roiを設定したときの基準矩形空間の幅、高さをそれぞれ与える。
【０１６６】
領域サイズを記述するために使用される単位は任意の単位であり、ビデオピクセル解像度に対応し得るが、必ずしもそう必要はないことに留意されたい。
【０１６７】
代替実施形態では、‘srif'および‘rrif'記述子が追加パラメータとして一意の識別子も含む。この識別子は、アプリケーションが識別子の値を介して記述子を参照することを可能にする。識別子は、以下に定義されるgroup_IDとすることができる。
【０１６８】
これらの新しい記述子及びISO/IEC 14496_15の既存のタイル記述子‘trif'は、単純なクロップ又はローテート演算に加えて、新しい特定のTransformPropertyで使用することができる。これは、ROIまたはビューポートの選択または抽出に有用であり得る。例えば、トライフ記述子を使用してカプセル化されたHEVCトラックから静的ROI抽出を実行するために、特定のTransformPropertyが提案される:
静的ROI選択
0006865842.tif 000026
静的ROI選択は、ROI抽出を定義する変換特性である。 
0006865842.tif 000027
【０１６９】
この変換は、単一の入力トラックに適用される静的なTransformPropertyとして宣言される。パラメータtileRegion_IDは、このtileRegion_IDを有するタイル領域記述子に関連するNALユニット又はサンプルを抽出するパーサを示す。球形コンテンツの静的ビューポートについても同様である。プリデコーディングまたはポストデコーディングフラグ値に応じて、演算は、入力トラックからの、またはデコードおよびクロップ演算へのサブビットストリーム抽出にある。これは、trifで記述されたカプセル化されたタイル領域の独立性に依存する。独立している場合、変換プロパティはプリデコーディング変換に、そわなければポストデコーディング変換に設定することができる。
他のパラメータ、例えば、tileRegion_ID値の代わりにx、y、w、hを与えることができる。しかしながら、これは、パラメータを異なるtrifサンプルグループ内のパラメータと一致させなければならないパーサにとってはあまり便利ではない。
マルチトラックTransformPropertyの場合、パラメータは、tileRegionIdのリストで構成することができる。例えば、
0006865842.tif 000028
【０１７０】
これらの種類の変換を一般化するために、選択演算子は、以下のように定義することができる。
0006865842.tif 000029
【０１７１】
ここで、grouping_typeは、1つまたは複数の入力トラックからNALユニットまたはサンプルを選択する基準を示す。これはrrif, srif, trif, rap(トラック内のランダムアクセスサンプル上で選択する)... とすることができ、group_IDは抽出元の正確なグループIDを提供する。合成部130内の合成ステップ中に、静的／動的情報と、シングル／マルチトラックと、プリデコード／ポストデコードパラメータとを適切に設定するのは、コンテンツ制作者次第である。
【０１７２】
言い換えると、第1のデバイスによって、シーンのワイドビューのキャプチャ投射を表す第1のメディアデータと、当該キャプチャ投射の空間部分に対応する第2のメディアデータとを含むサンプルを含むカプセル化されたメディアデータを提供する方法が提案される。当該方法は、
第1と第2のメディアデータを符号化すること、
符号化された第1のメディアデータを1つの第1のトラックにカプセル化すること、
符号化された第2のメディアデータを1つの第2のトラックにカプセル化することであって、当該第2のトラックは第2のヘッダを含むこと、
第1のトラックを参照するために、当該第2のヘッダに1つのパラメータを提供すること、を含む。
【０１７３】
パラメータは空間部分、例えば、タイルをシグナリングするタイプに関連付けられてもよい。
パラメータは、そのタイプが‘tile'参照タイプであるボックスに含めることができる。
パラメータは記述子、例えば、SphericalRegionGroupEntryまたはRectRegionGroupEntryのようなVisualSampleGroupEntry記述子であってもよい。
【０１７４】
パートおよびフルピクチャトラックに対応するトラックは、すべて、新しいトラックグループ化タイプを有するトラックグループボックス‘TrackGroupTypeBox'たとえば("track group（トラックグループ）"に関連する)内に設定され、定義される。フルピクチャをシグナリングするためのフラグは、特定のtrack_group_typeに関連付けられたフラグとすることができる。
0006865842.tif 000030
【０１７５】
ここで、full_trackがトラックグループに関連するトラックがフルビデオトラックに対応するかどうかを示し、‘part'がトラックグループ化タイプである場合（ここでの名前は例えば、この目的のために予約された任意の4文字コードを使用することができる）。
【０１７６】
‘part'（または任意の他の予約された4文字コード）は、その‘trak'ボックス内にこのトラックグループボックスを有するトラックがいくつかのトラックで作られたコンポジション(マルチトラックコンポジション)に属することを示す。track_group_type ‘part'のTrackGroupTypeBox内のtrack_group_idの同じ値を有するトラックは、空間部分、または同じソースからのサブピクチャとしてマッピングされる。例えば、ビデオの超高解像度記録は符号化する超高解像度ビデオの異なる空間部分毎に、高解像度でいくつかのビデオトラックを有することができる。次に、track_grouping_type=‘part' を持つビデオトラックは、track_group_idと同じ値になりる。
【０１７７】
より一般的には、トラックグループ記述または新しいトラックグループ化タイプのための新しいメタデータを使用して、一緒に構成、レンダリング、または表示されることが意図されたトラックのセットを記述することができる。本発明の一実施形態によれば、ビデオトラックをメディアファイルにパッケージングするコンテンツ作成者が、メディアプレーヤに以下のことを許可するかどうかに応じて、異なる種類のトラックグループ信号を提供することが提案される。
・（図11-1161のように）グループに関連するトラックを元の位置およびサイズでレンダリングする：暗黙的合成（1141）。これは、合成（構成）パラメータ、主に位置およびサイズがトラックの記述メタデータ1142(例えば、トラックヘッダ、サンプルエントリ、サンプルグループ記述)に既に格納されている値であるため、暗黙的である。トラックグループ記述の目的は、それらの元のコンテキストにおける異なるトラックの関係を記述することである。このようなトラックグループの例は、図10-1001を参照して説明される。
・（図11-1162のように）トラックを任意の位置にレンダリングし、トラックの位置および／またはサイズを潜在的に変更する：明示的合成(1151)。トラックグループ記述の目的は(track_grouping_typeを介して)トラックグループの目的を記述することであり、合成パラメータ1152も記述することである。このようなトラックグループの例は、図10-1002を参照して説明される。これは、派生トラックの代替処理として見ることができる。導出されたトラックとの差は、生成されたビジュアルトラックがカプセル化されたファイル内に物理的に存在せず、それを構築する方法に関する命令(1152)のみが存在することである。
【０１７８】
図8はワイドビュー領域のカプセル化を説明するので、図8bは360°パノラマビデオのコンテキストにおける幾何学的投射(2D投射画像)の一部を表すビデオトラックの生成およびカプセル化を詳述する。(球体からの360°内容850、極なし)。典型的には、そのようなコンテンツが記録されたシーンに対して360°の視野を提供するカメラのリグによって記録される。次に、記録された各ビューは単一の画像、すなわち、パノラマと呼ばれることもある2D投射画像851にステッチインされる。投射は典型的には等方形投射であるが、立方体又は他のプラトンソリッドの面上への投射であってもよく、各面は2D画像にマッピングされる。例えば、選択された球領域850は、3つの領域、部分、または空間部分に分割され、それぞれがカメラによって記録される。この演算（動作）は、非常に高い解像度のビデオ、典型的には8K幅を超えるビデオにつながり得る。各パノラマ画像は852におけるように、2Dパノラマ上の領域に再配置(または「パック」)することができる。例えば、領域は球850からの投影された球形ビューポートに対応するか、またはそれを含むか、または領域は投影タイプとして使用される場合、立方体の1つの面に対応する。これらの領域はカメラビューと一致していてもよいし、一致していなくてもよい。これらのパックまたは再配置された画像852の各々は、各々、1つまたは複数のビデオビットストリーム(図示せず)に符号化／圧縮され、ISOBMFFファイル860にカプセル化され得る。符号化は、HEVCまたはAVC、あるいは任意の同等の圧縮方式で実行することができる。カプセル化されたファイルは、853、854、855のような1つ以上のトラックを含む。例えば、図8bでは、領域「1」および「3」と比較して、領域「2」が強調されている。これは、高い詳細を有する領域の場合、またはこれがコンテンツ作成者による推奨される視点であるか、または任意の他の基準の場合であり得る。各トラック853〜855は、2D投影画像内の関連領域の位置およびサイズ、および／またはワイドビューまたは360°シーン850に関連する3Dリファレンシャル内の位置を提供する記述メタデータを含むことができる。これらの位置およびサイズ情報は、それぞれ、特定の記述子:以下に説明するVisualSampleGroupEntry: RectRegionGroupEntry(‘rrif')およびSphericalRegionGroupEntry(‘srif')を有するサンプル記述群に記述することができる。パックフレーム852がパノラマ851から生成されるとき、トラック853〜855のサンプル記述テーブルは、2D投影ピクチャ内の領域とパックピクチャ内の対応する領域との間のマッピングを含む。パノラマ構造851につながるステッチングの後にパッキングが行われない場合、トラック853〜855は特定の記述子VisualSampleGroupEntry内に、2D投影画像851内のそれらの位置およびサイズを含む。ISOBMFFファイル860を生成しながらこれらの情報を設定するのはmp4ライタの役割である。領域への分割および最終的なパッキングは、ユーザが記録媒体を制御することによって提供されるか、またはカメラのリグを制御するアプリケーションに予めプログラムされるか、またはカメラリグをセットアップする間に定義される。この情報はメディアトラックのカプセル化中に使用することができ、または記述メタデータとしてユーザデータボックスに格納することさえできる。
【０１７９】
図9は、一緒に構成され、レンダリングされ、または表示されるトラック（track）のセット(901〜904)の例を提供する。入力トラックの設定は、これらの入力トラックを使用して、ゼロ、1つまたは複数の派生トラックを含むことができる。入力トラックの設定はビデオとは異なるメディアタイプのトラックとすることもでき、異なるメディアタイプのトラックを混合することもできる。入力トラックの空間的構成を記述するトラックグループの特定の場合、入力トラックはサブピクチャトラックと呼ばれることもある。これは、各サブピクチャトラックが(より大きい)ピクチャの空間部分または空間領域をカバーする場合である。ここで、ピクチャという用語はビデオシーケンス内の各ピクチャとして解釈されるべきであり、すなわち、サブピクチャトラックは、フルビデオのサブパートまたは空間領域またはサブピクチャをそれぞれ表すサンプルを含む。図9の例では、トラックグルーピングがより高解像度のビデオ900として同時に構成、レンダリング、または表示することができる4つの入力トラック901〜904(この例ではビデオトラック)を記述する。これは、バーチャルリアリティまたは超高解像度ビデオのためのパノラマ(851または852のような2Dピクチャ上に投影された850のような幅／360°図)に使用することができる。
【０１８０】
一実施形態では、ビデオトラック901〜904の各々が例えば、H.264/AVCまたはH.265/HEVCのようなビデオ圧縮方式、または任意の他のビデオ圧縮方法を使用して、独立したビットストリームで符号化される。各トラック901〜904はさらに、例えば、ISOBMFFトラックにカプセル化され、すなわち、例えば、905のような‘trak'ボックスに、メディアサンプルの記述メタデータを含む。
【０１８１】
サンプルの記述は、典型的にはそれ自体が1つまたは複数のサンプルグループおよびサンプルグループ記述ボックス(911として要約される)を含むことができる910としてサンプルテーブルボックス内で行われる。
【０１８２】
例えば、各入力トラックは、そのサンプルグループ記述ボックス（典型的には‘sgpd'および‘sbgp'）内のその位置およびサイズ（2次元で）912を伝達する。位置およびサイズは、RectRegionGroupEntry(‘rrif')またはTileRegionGroupEntry(HEVCフォーマットの場合には‘trif')のようなVisualSampleGroupEntry 912、またはサンプルテーブルボックス内の任意の専用記述子で宣言することができる。それらは、サンプル記述913の一部として、視覚的サンプルエントリにおいて宣言することもできる。これは、例えば、（例えば、MPEG Omnidirectional Media Application FormatのRegionWisePackingStructにおけるように）符号化前の別の2Dピクチャ上の領域914にさらに分割、再編成、またはパックされた、2Dパノラマ上への360°ビデオシーンの投射から生じる「パックフレーム」の場合である。トラックのすべてのサンプルが同じ位置およびサイズを共有する場合、位置およびサイズはVisualSampleGroupEntry内で宣言され、VisualSampleGroupEntryは‘sgpd'ボックス内のデフォルトのサンプル記述インデックスとしてシグナリングされる。これは、よりコンパクトな記述を有することを可能にし、したがって、サンプルグループの宣言を回避する。位置およびサイズが、タイプ‘rrif'のVisualSampleGroupEntryまたは以下のような簡略化されたバージョンで宣言される場合（上記と同じ意味で）。
0006865842.tif 000031
対応するトラックグループタイプボックス952は、以下のように設定される。
0006865842.tif 000032
ここで、composition_widthは、合成ピクチャの幅を輝度サンプル単位で指定する。
ここで、composition_heightは、合成ピクチャの高さを輝度サンプル単位で指定する。 
TrackGroupTypeBox 951から継承されたtrack_group_idは、トラックのグループの一意の識別子を提供する。 
track_group_type値(この例では‘spco')は、空間的に関連するトラックのグループであることを示す。 
【０１８３】
上記の実施形態は、合成（構成）識別子(‘rrif'内のformer region_id)がサンプルまたはサンプルグループ記述ボックスの代わりにトラックグループタイプボックス(track_group_id)内に記述されるので、‘rrif'に関する初期の実施形態とは異なる。これは、1つのトラックがゼロ、1つ以上の合成の一部であることを可能にする。「フルピクチャ」(上記の「パート」トラックグループの例では「full_track」とも呼ばれる)の指示は、トラックグループ化タイプボックスに配置することもできることに留意されたい。その場合、RectRegionGroupEntryはさらに単純になる。
0006865842.tif 000033
【０１８４】
track group（トラックグループ）950およびtrack group type box（トラックグループタイプボックス）951〜953は、入力トラック901〜904のグループが特定の関係を有することを示す。ここで、特定のグループ化タイプ‘spco'("track composition group"（トラック合成グループ）952に対する)は、これらの4つの入力トラックが900におけるように、同時表示およびレンダリングのために暗黙的に一緒に合成され得ることを示す。対応するトラックグループタイプボックス952は、依然として、上記で指定されたように書き込むことができる。任意選択で、コンテンツ作成者がサブピクチャトラックの代替トラックとしてフルビデオを同じメディアファイルにカプセル化する場合、トラックグループタイプボックス952は、現在のトラックが「full video（フルビデオ）」トラックであるか、「full picture（フルピクチャ）」トラックであるか、またはフルトラックであるかを示すフラグを含むことができる。この場合、フルビデオトラックのみが、サブピクチャトラックの構成の幅および高さをシグナリングする。 
0006865842.tif 000034
【０１８５】
空間合成のためのトラックグループタイプの代替実施形態では、「full_picture」フラグが体系的に存在する。これは、信号(静止1バイト)の点で追加のコストがかからず、パーサがビデオトラックがサブピクチャトラック(「full_picture」フラグが0に設定されている)またはフルピクチャトラック(「full_picture」フラグが1に設定されている)であると推論することを可能にする。これは、トラックが単独で表示されることを意図していないことを推論することができる(「full_picture」トラックとは反対に):
0006865842.tif 000035
【０１８６】
メディアプレーヤがトラックグループ内のオントラックが表示部用であるか否かを容易に判定するために、トラックグループボックスは例えば、“output_track”と呼ばれるパラメータを含むことができ、このパラメータは1に設定されると、このトラックがユーザへの提示のために選択され得ることを示し、0に設定されると、このトラックはここではトラックグループ内の他のトラックとの組み合わせのためだけであり、単独でレンダリングまたは表示部されることを意図されない。このトラックプロパティを示す別の可能性はトラックヘッダボックス内に特定のフラグを定義することであり、例えば、“track_non_displayable”:=0x000010はトラックがイネーブルされ、プレゼンテーションで使用されるが、プレビューとしては許可されず、単独でレンダリングされるのに自己充分ではないことを示す。
【０１８７】
代替実施形態では、トラックグループ(‘TrackGroupBox')が注目領域、例えば、360°コンテンツ内の特定の視点、または2Dビデオ内の特定のオブジェクトに対応する1つを有する入力トラックのセットを含む。そのような場合、トラックグループタイプボックス(‘TrackGroupTypeBox')は‘spco'のための前の実施形態からのfull_pictureフラグの代わりに、またはfull_pictureフラグと組み合わせて、追加のフラグを含むことができる。
0006865842.tif 000036
【０１８８】
この場合も、このROI指示機能は、(予約されたビットのうちの1つを使用する)信号に関して追加のコストがかからず、パーサがビデオトラックがROIに対応するサブピクチャトラックである(“ROI_picture”フラグが1に設定されている)と推論することを可能にする。このサブピクチャトラックは、グラフィカルユーザインタフェースを介してユーザにこのトラックを公開することによって、それ自体でレンダリングすることができると推論することができる。ストリーミングで使用されるか、またはネットワーク上で移送される場合、このトラックは、他のサブピクチャトラックに対して何らかの優先順位を有するものとしてマークまたはシグナリングすることができる。
【０１８９】
別の代替実施形態では、別のフラグがSubPictureCompositionBoxで使用されて、以下のように、静的位置およびサイズを有するトラックグループトラックまたはサブピクチャトラックと、動的位置およびサイズを有するトラックまたはサブピクチャトラックとが混合される。
0006865842.tif 000037
【０１９０】
dynamic_coordinatesと呼ばれるこの追加のフラグは、空間合成トラックグループの様々な実施形態において他のフラグと組み合わせることができることに留意されたい。トラックのグループ内のトラックまたはサブピクチャトラックが静的な位置およびサイズを有する場合、このフラグは0または偽の値に設定される。反対に、1つのトラックまたはサブピクチャトラックが別のトラック、通常は時限メタデータトラック内に動的位置およびサイズを有する場合、このフラグは1または真に設定され、この別のトラックのトラック識別子がtrack_IDパラメータ内に示される。
【０１９１】
図10は、トラックグループに含まれるトラックに関して多かれ少なかれ記述的で規定的である異なる種類のトラック群タイプボックス(‘TrackGroupTypeBox')を示す。図10のトラックグループタイプボックス950は、ISO/IEC 14496?12(ISOBMFF)で標準化されたトラックグループタイプボックスである。本発明はサブピクチャトラックを処理するために、異なる種類のトラックグループタイプボックス(‘TrackGroupTypeBox')を定義する。
【０１９２】
第1の種類のトラックグループタイプボックス(‘TrackCompositionGroupBox')は、1001に示されたものである。これは、ボックス951からtrack_group_idを継承し、特定のtrack_grouping_type:“implicit compo_type”を宣言する。ISOBMFF規則に準拠するために、この“implicit compo_type”、例えば‘spci'を「spatial composition implicit」として表すために、4つの文字コードが予約されるべきであることに留意されたい。このトラックグループ1001は、それぞれのサブピクチャトラック（905のトラックヘッダ部分、サンプルエントリ913、またはサンプルグループ記述911...）においてすでに利用可能な情報に依存して、これらのサブピクチャトラックがこのトラックの組に符号化され、カプセル化されたソース内に空間的に配置されたときに、これらのサブピクチャトラックをレンダリングまたはディスプレイすることが手段である。このボックス1001は、サブピクチャトラックの合成結果のサイズも含む。任意選択で、それは、‘spco'トラックグループタイプボックスの代替処理に記載された1つまたはすべてのフラグを含むこともできる。図9に示すように、この種のトラックグループ化タイプボックスは、各サブピクチャトラックの位置およびサイズを含まない。その代わりに、それは、トラックまたは各トラックに既に存在するサンプルを記述する記述メタデータを暗黙的に参照する（リンク920）。これは、記述メタデータの重複を回避することを可能にする。さらに、それは、サブピクチャトラックの位置、サイズ、及び空間的配置が時間に沿って変化することを可能にする。それは、サンプルグループ化メカニズムの使用のおかげで、トラックフラグメントの粒度で変化することができる。これは、トラックグループタイプボックス952自体の各サブピクチャトラックの位置およびサイズを宣言する場合には当てはまらない。952および920の処理は、図12に従って説明される。
【０１９３】
別の種類のトラックグループタイプボックス1002は、“implicit compo type”のための別のtrack_grouping_typeを定義する。上記のように、このトラックグループ化タイプのために4つの文字コード、例えば“spatial composition explicit（空間合成明示）”のための‘spce'が予約されるべきである。このボックス1002は、構成の幅および高さに加えて(最終的には‘spco'について言及された1つまたはすべてのフラグと組み合わされる)、サブピクチャトラックの新しい空間配置を宣言する。これは、導出されたトラックの変形として見ることができる。特に、新しいボックス1002は結果として得られるプレゼンテーションにおけるサブピクチャトラックの位置を変更するために、サブピクチャトラックの2D変換パラメータを宣言する。宣言はオプションであり、代わりに(0, 0)に設定できる。同様に、結果として得られる合成またはプレゼンテーションにおけるサブピクチャトラックの配置および/またはサイズを変更するために、任意選択の回転係数およびスケーリング係数を宣言することができる。トラックまたはムービーヘッダにおいて定義されるような合成マトリクスは、その目的のために宣言され得ることに留意されたい。そのようなトラックグループ化タイプボックスに遭遇するプレーヤは、メディア著者仕様に従って各サブピクチャトラックをレンダリングするための位置決め変換情報を有する。
【０１９４】
明示的合成1002の代替実施形態は、1004および1005として示されている。別の種類のtrack_grouping_typeボックス1004は、グリッドベースの合成(‘grid_compo_type')を示す。他のものと同様に、特定の4文字はその目的のために予約され宣言されるべきであり、例えば、“spatial composition grid（空間合成グリッド）”のための‘spcg'である。この新しい種類のボックス1004に含まれるパラメータは、1005におけるようなグリッド演算子である。それは、トラックグループの各サブピクチャトラックが一種のモザイクビデオをレンダリングするために配置され得るグリッドを宣言する。このモザイクビデオにおけるサブピクチャトラックの位置は、last grid_idcパラメータによって与えられる。他の変形形態に関しては、‘spco'に利用可能な1つまたはすべてのフラグをボックス1005に含めることもできる。プレーヤ側でこのようなトラックグループボックスを処理することは次の通りである:各サブピクチャトラックに対する入力画像はグリッドの1ベースのインデックスに、行主順、上行第1、左から右に挿入される。サブピクチャトラックのサイズがグリッドのセルのサイズと一致しない場合、スケーリングは、セルのサイズに適合するように暗黙的に実行される。任意選択のフラグを設定して、画素アスペクト比を維持すべきか否かを示すことができる。別のオプションのフラグは、ステッチングが予想されるか否かを示すことができる。
【０１９５】
再構成された画像は、サブピクチャトラックからの復号化された入力ピクチャをグリッドに合成することによって形成される。グリッドは出力幅をnum_of_columnsで割った値に等しいルマピクセル単位の列幅を有し、出力高さをnum_of_rowsで割った値に等しいルマピクセル単位の行高さを有する。ステッチングが予想されない場合、トリミングは、右側および下側で、示されたoutput_widthおよびoutput_heightに実行される。このグリッド演算子1005は、TransformPropertyまたは派生トラックの変換演算子として使用することもできる。使用される場合、それはTransformPropertyContainer 314に格納され、track_idcは必要とされないことがある。実際、グリッドは、トラック参照タイプ‘dtrp'341によって示される入力トラックを入力として考慮することができる。このような場合、これらの参照（基準）の順序は、グリッド内の位置を示す。
【０１９６】
空間合成のためのトラックグループの別の実施形態は、新しいボックス1003である。このボックスは、合成が動的であることを示す特定のtrack_grouping_type価値を有する。(4文字コードもまた、その目的のために定義され、予約されるべきである。これは、合成パラメータ、主に位置およびサイズが外部メタデータトラック、例えば、ISO/IEC 23001-10のAmendment（修正）1におけるような時限メタデータトラックにおいて提供されるという意味で、特定の種類の明示的な合成である。このトラックグループには、合成パラメータを提供するメタデータトラックへのトラック識別子という特定のパラメータが提供される。これは、メタデータトラックをビデオトラックにリンクするトラック参照が一方向である(‘cdsc'トラック参照タイプをビデオトラックに、または‘cdtg'トラック参照タイプをグループ内のトラックに)ので、ビデオトラックをメタデータトラックに関連付けるのに有用である。トラックグループ内にtrack_IDを直接有することは、メディアプレーヤにとって、合成パラメータの検索をより容易にする。他の種類の空間合成トラック群に関しては、ボックス1003が結果として得られる合成幅及び高さを含む。任意選択で、‘spco'トラックグループタイプボックスのバリアントで宣言された1つまたはすべてのフラグを含むこともできる。  図10は（異なるボックスが特定のtrack_grouping_typeおよび予約された4文字コードによって識別されるので）空間合成のための異なる種類のトラックグループタイプボックスを示しているが、これらの異なる種類は他の方法でシグナリングすることもできることに留意されたい。1つの可能な方法は、単一の4文字コード、例えばボックスの‘spco'コードおよび“version”パラメータを使用することである。version=0のトラックグループタイプボックスから951のように継承する代わりに、バージョン（version）パラメータを変更することができる。例えば、version = 0は暗黙的合成1001に対応し、version =1は明示的合成1002を示し、version=2は動的合成1003を示す。version=3は、グリッドベースの合成1004を示すことができる。各ボックスの特定のパラメータは、バージョンパラメータの特定の値に対してのみ含まれる。例えば、
0006865842.tif 000038
【０１９７】
代替の実施形態では、異なる種類のトラックグループタイプボックスが(上記のバージョンパラメータの代わりに)フラグパラメータでシグナリングされる。このようにして、単一のtrack_grouping_type、例えば‘spco'が使用される。タイプ‘spco'を有する特定の空間合成トラックグループタイプボックスはフラグが951のように0に設定されていないが、合成が明示的合成であることを示すためにtg_explicit_composition = 0x000001のような異なる予め定義された値を取る可能性があるTrackGroupTypeBoxから継承する(前の実施形態のバージョン=1と同様)。デフォルトでは、コンポジションは暗黙的（version = 0、flags = 0）と見なされる。tg_dynamic_composition = 0x000002 およびtg_grid_composition = 0x000004 などの他のフラグを定義できる。これらは、上記実施形態で説明したように、バージョンパラメータの異なる値として使用することができる。
【０１９８】
トラックグループタイプボックスの過負荷に関する別の態様はISOBMFFにおける現在の場合のように、整数に限定されないトラックグループ識別子を定義する可能性である。これは、同じメディアファイルに必ずしも含まれていないトラックを含むトラックのグループを宣言するのに有用であり得る。これにより、メディアファイル内のトラックを、他のファイル内のリモートトラック、または異なるサーバ上に位置するリモートトラックに関連付けることが可能になる。これは、「フラグ」または「バージョン」パラメータの特定の値によって行うことができる。次に、トラックグループタイプボックスを以下のように再定義することができる（ここでは、バージョンパラメータを使用する）。
0006865842.tif 000039
【０１９９】
ここで、global_track_group_idはURNエントリであり、例えば、ISOBMFFで定義されるDataEntryUrnBoxである。DataEntryUrnBox内のパラメータ“name（名）”が必要である。パラメータ“location（場所）”はオプションである。各“name”および“location”パラメーターは、UTF-8 文字を使用したnull終端文字列である。
【０２００】
図13は、トラックグループの別の特徴、すなわちサブセットの概念を示す。1300において、4つの入力トラックを含むトラックグループが提供される。実際には2つのサブピクチャトラック（ビデオ1およびビデオ2）が存在するが、それぞれが異なる解像度である。次に、これらのトラックは各サブセットが異なる解像度を有する2つのサブセットとして収集することができ、例えば、サブセット1310は高精細度(HD)ビデオを含み、サブセット1320は単純精細度（SD）ビデオを含む。暗黙的にトラック1311および1312をより大きなビデオ（HD解像度の2倍）に空間的に結合することができるこの手段、ならびにトラック1321および1322をより大きなビデオ(SD解像度の2タイル)に結合することもできる。トラックグループ内のサブセット記述を可能にするために、TrackGroupTypeBoxは、以下のように修正される。第1に、それは、このボックスの新しいバージョン(上述の構成の種類と矛盾しないバージョン番号)または新しいフラグ値（例えば、contains_subset = 0x000008）である。以下の例では、バージョン番号が1に設定されている。これは、空間合成に限定されず、どのような種類のグループ分けであっても使用することができる。
0006865842.tif 000040
【０２０１】
ここで、TrackGroupSubsetBoxは、以下のように定義される:
0006865842.tif 000041
【０２０２】
ここで、subset_idcは、トラックグループ内のサブセットのインデックスを示す。これは、含まれるトラックグループに限定された範囲を有する1ベースの数である。トラックグループでは、256個以下のサブセットを定義できる。トラックグループおよび特定のサブセットに関連する各トラックは、それが対応するサブセットのインデックスを伝達する。例えば、1300ではトラック1311および1312がサブセット_idc =トラックに含まれるトラックグループサブセットの1つの数を有するTrackGroupSubsetBoxを有し、トラック1321および1322はサブセット_idc =2を有するTrackGroupSubsetBoxを有する。各サブセットは、それ自体の構成サイズを宣言する（それ以上トラックグループのプロパティは宣言しない）。これにより、グループ全体のパラメータをTrackGroupTypeBoxに配置し、サブセット固有の情報をTrackGroupSubsetBoxに配置することによって、トラックグループのより細かい記述が可能になる。サブセットパラメータは、TrackGroupTypeBoxで宣言されたパラメータをオーバーロードすることさえあり得る。これにより、トラックグループ内のすべてのトラックについてデフォルトパラメータ値を定義することができ、特定のサブセットに関係するトラックのサブセットについてのみ指定することができる。トラックが2つ以上のサブセットの一部であることを可能にするために、TrackGroupTypeBoxは、バージョン番号を使用して、1つのインスタンスのみではなく、サブセットのアレイを提供することができる。サブセットの数を指定するパラメータも、以下のようにTrackGroupTypeBoxに存在する。
0006865842.tif 000042
【０２０３】
サブセットはいくつかの合成制約を定義するために使用することもでき、例えば、HDトラックは、SDトラックではなく、他のHDトラックと結合するだけである。また、サブセットは、レンダリングまたはディスプレイにも利用可能なビデオにつながるトラックグループ内のトラックの別の構成を記述するために使用されてもよい。代替実施形態では、サブセット特徴がTrackGroupTypeBoxの代わりに、TrackGroupBox自体で、同じ原理、すなわちバージョンまたはフラグ値に従って指定することができる。このサブセット特徴の別の関心は、ストリーミングマニフェストにおけるメディアファイルの記述に関するものである。例えば、MPEG DASH規格は、そのMPDマニフェストにおいて空間関係記述(SRD)をサポートする。SRDは、空間オブジェクトのグループの識別子を提供するSpatial_set_idと呼ばれるパラメータを有する。次に、1300と同じsubset_idcを有するサブピクチャトラックを、spatial_set_id価値としてsubset_idcパラメータの価値を有するSRD記述子を用いてDASH MPDに記述することができる。
【０２０４】
トラックグループタイプボックス(‘TrackGroupTypeBox')のバージョンでTrackGroupSubsetBoxがない場合、subset_idcまたはspatial_set_idパラメータは、トラックグループタイプボックス(‘TrackGroupTypeBox')のパラメータとして直接含めることができる。これは、空間合成のための暗黙的及び明示的トラックグループボックスの両方に含まれることができ、すなわち、位置及びサイズのような合成情報（構成情報）、及び任意に変換パラメータと組み合わされることができる。さらに図13では、ビデオ1350がそれぞれがビデオトラック、サブピクチャトラックによって表される6つの空間領域に分割される。ビデオ1350はおそらく、利用可能なビデオコーデックのプロファイルおよびレベル（最大許容サイズ）から外れた、非常に高精細なビデオであるが、各サブピクチャトラックまたはサブピクチャトラックのサブセットは所与のプロファイルまたはレベルに準拠する。次いで、ビデオシーケンス1350内のメディアプレーヤへの空間アクセスに何らかの粒度を提供することが有利であり得る。トラックグループは、1つまたは複数の領域を処理するために必要なプロファイルおよびレベルを定義することによって、これをシグナリングするために使用することができる。例えば、1350では、3つのサブピクチャトラックをグループ化するいくつかのトラックグループが定義される。次に、各トラックグループは、合成パラメータに加えて、3つのサブピクチャトラックの空間合成から得られるprofile_tier_level情報を伝達する。さらに、この編成は、フルビデオ1350ではなくトラックグループのトラックを送信することによって、360コンテンツまたはバーチャルリアリティコンテンツのような没入型コンテンツへのナビゲーションに有用であり得る。さらに、トラックグループ間のオーバーラップを処理することは、データの重複を回避するので、3つのサブピクチャトラックをそれぞれカプセル化するビデオトラックを定義することを回避する良好な方法である。
【０２０５】
暗黙的合成トラックグループ1141の1つの利点はサンプル記述（図9に従って示され、説明される）に格納されたパラメータを参照し、使用することである。これは、サンプルエントリ及びサンプルグループ記述が例えばトラックフラグメントベースで、時間に沿って更新されることができるので、サブピクチャ編成にいくらかの柔軟性をもたらす。これは、トラックプロパティ（例えば、位置、サイズ）とは独立にトラックグループを定義することを可能にする。これは、タイリング構成が時間と共に変更するタイルベースの符号化にとって特に興味深い(これはビデオシーケンスに沿ってピクチャパラメータセットを更新することによってHEVCにおいて行うことができる)。例えば、ビデオ監視アプリケーションでは、タイリング構成が追跡されているビデオシーケンス内の1つの関心対象に一致するように適合させることができる。このオブジェクトを囲む1つのタイルを有することは、ROIベースのストリーミングを可能にし、送信バイトを節約する。これは、trifまたはrrif VisualSampleGroupEntryおよびサンプルグループ化機構によって処理される。これはトラックグループでは不可能である。これを可能にするために、本発明はまた、トラックフラグメントグループを可能にするようにトラックグループを拡張することを提案する。これは、トラックグループまたはトラックフラグメントグループが合成パラメータを含む明示的なコンポジションに有用である。トラックフラグメントグループボックスを用いて、これらのパラメータを時間と共に更新することができる。グループ内のトラックの数は、時間と共に変化することもできる。この新しいボックスは、次のように宣言することができる。
0006865842.tif 000043
【０２０６】
このボックスはトラックフラグメントに対して有効なトラックのグループの指示を可能にし、各グループは特定の特性を共有するか、またはグループ内のトラックは特定の関係を有する。ボックスは0個以上のボックスを含み、特定の特性または関係は、含まれるボックスのボックスタイプによって示される。含まれるボックスは、同じトラックフラグメントグループに属するトラックを結論付けるために使用することができる識別子を含む。TrackFragmentGroupBox内に含まれるボックスの同じタイプを含み、これらの含まれるボックス内で同じ識別子値を有するトラックは、同じトラックフラグメントグループに属する。
【０２０７】
トラックフラグメントグループは、トラックフラグメント間の依存関係を示すために使用されない。 
0006865842.tif 000044
【０２０８】
track_fragment_group_type はグループ化タイプを示し、登録された値の1つ、または派生仕様または登録からの値に設定されるものとする。例えば、サブピクチャトラックの空間構成を記述することは、本発明によって定義される‘part'値であり得る。
【０２０９】
track_fragment_group_idは、メディアファイル全体における一意の識別子である。その価値が同じトラックについて1つのフラグメントから別のフラグメントまで同じである場合、それは、トラックの同じグループに対応する。トラックフラグメントグループ内のトラックが1つのフラグメントから別のフラグメントに変更すると、track_fragment_group_idも変更してメディアプレーヤに通知しなければならない。トラックフラグメントグループを使用する場合、フラグメントは、トラックフラグメントグループに関連するトラック間で(時間的に)位置合わせされることが推奨される。任意選択で、trakレベルの‘trgr'ボックスは、いくつかのフラグメントで過負荷であること、またはメディア期間全体にわたり一定のままであることを示すようにパラメータ化することができる。これは、‘trgr'ボックスの特定のフラグ値を用いて行うことができる。
【０２１０】
図12は、本発明の一態様によるメディアファイルのメディアプレーヤまたはISOBMFFパーサによる処理、すなわちトラックまたはサブピクチャトラックの空間的構成を記述するトラックグループの場合を示す。図12に示されていない第1のステップは、メディアファイル内に存在するトラックの各トラックボックスの構文解析である。構文解析中に、トラックグループボックス‘trgr'を含むトラックのリストが確立され、各グループについて、このグループに含まれるトラックのリストが確立される。
【０２１１】
図12は、1200から始まる、暗黙の空間合成トラックグループに対応する1つのトラックグループに対するトラックの処理を示す。まず、ステップ1201で、現在のトラックの位置をデフォルトで(x=0, y=0)に設定し、そのサイズをトラックヘッダボックス内で宣言された幅および高さに設定する。次に、1202において、サンプルテーブルボックスが構文解析され、トラック内に宣言されたサンプルエントリを探す。サンプルエントリが値‘resv’を有する場合(テスト1203)、パーサはステップ1204でSchemeTypeBoxを探す。スキームタイプがトラックが投影された全方向性ビデオを含むことを示す値に設定される場合(テスト1305 true)、パーサは1206において、領域ごとのパッキング情報を探し、典型的には、RegionWisePackingBoxを探す。
【０２１２】
見つからない場合、パーサは、ステップ1207で、ユーザデータボックス内のステッチングまたはセットアップ情報を探す。何も見つからない場合（テスト1207偽）、トラックのサイズはトラックの元のサンプルエントリに、または、projected_pictureの幅および高さに提供される幅および高さに設定され、1210において、これらの位置およびサイズで構成される。ユーザデータボックスがトラックの位置およびサイズを提供するカメラ設定情報のスティッキング情報を提供する場合、ステップ1208でこれを使用して、適切な位置およびサイズを設定し、1210でトラックを合成（構成）する。ステップ1206でパッキング情報が存在する場合、ステップ1209でそのトラックのパッキング位置およびサイズを得るためにその情報が使用され、1210でそのトラックがこれらの値を用いて合成される。スキームタイプが未知であるか、または全方向性コンテンツ、または合成のためのメディアコンテンツ候補に対応しない場合、1210において、デフォルト位置およびサイズが使用される。テスト1203が偽を返すと、サンプルエントリ値は、‘hvt1’、‘lht1’、または現在のトラックがタイルトラックであることを示す任意のサンプルエントリ値に対してテストされる(ステップ1211)。これが当該ケースの場合、1212で、位置およびサイズが‘trif’ボックスから構文解析される。 
【０２１３】
さもなければ、パーサは、1213において、例えば‘rrif’のような汎用領域記述子を探す。1つが見つかった場合、1214で、この‘rrif’または同等の記述子内のパラメータを使用して、トラックの位置およびサイズを設定する。このプロセスは、トラックグループのすべてのトラックが処理されるまで繰り返される。ステップ1210は、トラックグループに関連するトラックのリストにおいて、対応するビットストリームのデコード中に合成およびレンダリングに適用するためのそれぞれの位置およびサイズを関連付けることからなる。図12の処理は、プレーヤ初期化ステップの一部である。また、トラックフラグメントグループが使用されている場合には、デコード中に発生することもある。そして、定期的に、新たなトラックフラグメントが発生する毎に、1200からの処理により、合成パラメータを更新することができる。 
【０２１４】
空間合成のためのトラックグループは、ISO/IEC 14496-15 第4版に従ってタイルトラックに更にカプセル化された独立したHEVCタイルとして符号化されたインプットトラックにも適用される。この場合、トラックグループに関連するトラック又はサブピクチャトラックは、タイルトラックである。それらのタイルベーストラックはまた、同じトラックグループの一部であるべきである。図12を参照して説明したように、暗黙的合成は、‘trif’ボックスに与えられた位置およびサイズを使用する。‘trif’記述子は、そのオリジナルシーケンスにおけるタイルの位置及びサイズを伝える。タイルベーストラックおよび各タイルトラックはすべて、同じトラックグループに関連付けられる(それらの‘trak’ボックスは‘trgr’ボックスを含む)。非明示的な空間合成においてタイルトラックを使用すること、または導出されたトラックまたは空間合成トラックグループのいずれかに対してグリッド演算子を使用することの1つの利点は、合成が(例えば、ビットストリーム連結によって、またはスライス位置の光トランスコーディングによって)圧縮された領域において行われ得ることである。派生トラックおよびグリッド演算子で使用される場合、派生トラック内のTransform_post_decodingフラグまたは任意の同等の手段は、演算がそれぞれのトラックのデコードを必要としないことを示すために0に設定される。これは、動きが制約された及び／又は独立したタイルで符号化されたHEVCビットストリームの場合である。通常、グリッドまたは空間合成が独立したビデオビットストリームを使用する場合、動作はデコードの後に行われる。
【０２１５】
別の実施形態は‘moov’ボックスに直接メディアファイルの最上位レベルでトラック関連付けを宣言し、各‘trak’ボックスにはそれ以上宣言しないことにある。次に、トラックの関連付けのための一意の識別子、この関連付けまたはこの関連付けの目的に関する情報を提供するタイプ、およびこの関連付けに含まれるトラックのリスト(track_ID)を提供する新しい構造が定義される。この種の宣言は、トラック関連付けの一部である各トラックにおける情報の繰り返しを回避するという利点を有する。そのようなトラック関連付けは、例えば、ファイルフォーマットレベルで、MPEG DASHの事前選択またはバンドル概念、すなわち、一緒に再生されたときにユーザ体験を改善するトラックのセットを反映することができる。あるいは、この新しいボックスが例えばトラック選択ボックスと同様に、しかし相補的または関連するトラックに対して、‘udat’ボックス内のユーザデータの一部として宣言することができる。トラック関連付けにおけるトラックの共通パラメータは、属性のリストとして提供される。
0006865842.tif 000045
【０２１６】
トラック関連付けボックスは、ユーザデータボックスに含まれるか、またはそれが記述するメディアファイルのムービーボックスに直接含まれる。
0006865842.tif 000046
以下のセマンティクスで。
【０２１７】
track_association_idは、トラックのグループまたは集合を指定するトラック関連付けの一意の識別子を提供する整数である。 
track_association_typeは、最初にISOBMFFでトラックについて定義されたKindBoxの一般化であるが、ムービーまたはメディアファイルの任意の部分の記述に拡張される。
track_ID_listは、このトラック関連付けに関係するトラックのリストを提供する。
attribute_listは、ボックスの最後までの属性のリストである。このリスト内の属性は、トラック関連付けのすべてのトラックに適用される共通のプロパティである。
【０２１８】
図4、図5、および図6に示すアルゴリズムの任意のステップはPC（「パーソナルコンピュータ」）、DSP（「デジタル信号プロセッサ」）、またはマイクロコントローラなどのプログラマブルコンピューティングマシンによる命令またはプログラムのセットの実行によってソフトウェアで実施することができ、あるいは、機械またはFPGA（「フィールドプログラマブルゲートアレイ」）またはASIC（「特定用途向け集積回路」）などの専用構成要素によってハードウェアで実施することができる。
【０２１９】
以上、特定の実施形態を参照して本発明を説明したが、本発明は特定の実施形態に限定されるものではなく、本発明の範囲内にある修正は当業者には明らかであろう。
【０２２０】
多くのさらなる修正および変形は単に例として与えられ、添付の特許請求の範囲によってのみ決定される本発明の範囲を限定することを意図しない、前述の例示的な実施形態を参照することにより、当業者に示唆されるのであろう。特に、異なる実施形態からの異なる特徴は、適宜、交換されてもよい。
【０２２１】
特許請求の範囲において、単語「有する」は他の要素又はステップを排除するものではなく、不定冠詞「a」又は「an」は複数を排除するものではない。異なる特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組み合わせが有利に使用されることができないことを示すものではない。
【図１】
0006865842.tif 000047
【図２】
0006865842.tif 000048
【図３】
0006865842.tif 000049
【図４】
0006865842.tif 000050
【図５】
0006865842.tif 000051
【図６】
0006865842.tif 000052
【図７】
0006865842.tif 000053
【図８】
0006865842.tif 000054
【図８ｂ】
0006865842.tif 000055
【図９】
0006865842.tif 000056
【図１０】
0006865842.tif 000057
【図１１】
0006865842.tif 000058
【図１２】
0006865842.tif 000059
【図１３】
0006865842.tif 000060