(57)【特許請求の範囲】
【請求項１】
複数のサンプルから構成されるビデオデータを符号化する方法であって、前記方法はサーバデバイスにより、
符号化されたビデオデータを取得するためにビデオデータを符号化することと、
前記符号化されたビデオデータを少なくとも1つの第1のトラックのセットにカプセル化することと、
第2のトラックを生成することを含み、
前記第2のトラックは、少なくとも1つの変換演算子のセットを少なくとも1つの第1のトラックのサンプルに適用した結果を表すサンプルを記述し、
前記第2のトラックは、前記第1のトラックのうちの少なくとも1つへの参照を含み、
前記第2のトラックは、メタデータ部分において、前記変換演算子のセットの記述を含む、方法。
【請求項２】
請求項1に記載の方法であって、更に、
前記第2のトラックの前記メタデータ部分に、少なくとも1つの変換演算子を特徴付けるための1つまたは複数のパラメータをカプセル化することを含む、方法。
【請求項３】
請求項2に記載の方法であって、更に、
前記第2のトラックの前記メタデータ部分のヘッダ部分に、少なくとも1つの変換演算子を特徴付けるための1つまたは複数のパラメータをカプセル化することを含む、方法。
【請求項４】
請求項3に記載の方法であって、更に、
前記第2のトラックの前記メタデータ部分のサンプルテーブルボックスに、少なくとも1つの変換演算子を特徴付けるための1つまたは複数のパラメータをカプセル化することを含む、方法。
【請求項５】
請求項2から4のいずれか1項に記載の方法であって、更に、
前記生成されたトラックのビデオデータ部分に、前記第2のトラックに記述された特定のサンプルに使用される少なくとも1つの変換演算子を特徴付けるための1つまたは複数の特定のパラメータをカプセル化することを含む、方法。
【請求項６】
請求項2から4のいずれか1項に記載の方法であって、更に、
前記第2のトラックのビデオデータ部分に、前記第2のトラックに記述された特定のサンプルのために使用される少なくとも1つの変換演算子を特徴付けるための1つ以上の特定のパラメータをカプセル化し、前記第2のトラックのビデオデータ部分において、これらの特定のパラメータへのいくつかの参照を提供することを含む、方法。
【請求項７】
請求項1から4のいずれか１項に記載の方法であって、更に、
第3のトラックにおいて、少なくとも1つの変換演算子を特徴付けるための1つ以上のパラメータを提供することであって、前記第2のトラックは前記第3のトラックへの参照をさらに含む、ことを含む、方法。
【請求項８】
請求項7に記載の方法であって、前記1つまたは複数のパラメータは、前記第3のトラックのビデオデータ部分に含まれる、方法。
【請求項９】
請求項1に記載の方法であって、前記第2のトラックは、前記ビデオデータにおいて、少なくとも1つの変換演算子のセットを前記少なくとも1つの第1のトラックのサンプルに適用した結果を表すサンプルを更に含む、方法。
【請求項１０】
請求項1に記載の方法であって、前記変換演算子のうちの1つは、キャプチャ投射の空間部分をシグナリングすることを可能にする、方法。
【請求項１１】
請求項2に記載の方法であって、
前記生成されたトラックのデータ部分は空としてマークされる、方法。
【請求項１２】
複数のサンプルから構成されるビデオデータを復号する方法であって、前記方法はクライアントデバイスにより、
少なくとも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のトラックを受信し、
前記少なくとも1つの第2のトラックで受信したサンプルに前記変換演算子のセットを適用することにより、前記ビデオデータのサンプルを生成する、ように適合化されたプロセッサを備える、クライアントデバイス。
【請求項１５】
請求項1から12のいずれか1項に記載の方法をコンピュータが実行するためのプログラム。
【請求項１６】
請求項1から12のいずれか一項に記載の方法を実施するためのコンピュータプログラムの命令を記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、メディアデータの交換、管理、編集、および提示を容易にし、ストリーム管理を改善する柔軟かつ拡張可能なフォーマットを提供するための、例えば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つまたは複数のパラメータをカプセル化することを含む。
【００１１】
一実施形態では、方法は更に、
・第2のトラックのメタデータ部分のヘッダ部分に、少なくとも1つの変換演算子を特徴付けるための1つまたは複数のパラメータをカプセル化することを含む。
【００１２】
一実施形態では、方法は更に、
・第2のトラックの、メタデータ部分のサンプルテーブルボックスに、少なくとも1つの変換演算子を特徴付けるための1つまたは複数のパラメータをカプセル化することを含む。
【００１３】
一実施形態では、方法は更に、
・生成されたトラックのメディアデータ部分において、第2のトラックに記述された特定のサンプルに使用される少なくとも1つの変換演算子を特徴付けるための1つまたは複数の特定のパラメータをカプセル化することを含む。
【００１４】
一実施形態では、方法は更に、
・第2のトラックのメディアデータ部分において、第2のトラックのメタデータ部分において、第2のトラックに記述された特定のサンプルのために使用される少なくとも1つの変換演算子を特徴付けるための1つ以上の特定のパラメータをカプセル化し、第２のトラックのメディアデータ部分において、これらの特定のパラメータへのいくつかの参照（基準）を提供することを含む。
【００１５】
一実施形態では、方法は更に、
・第3のトラックにおいて、少なくとも1つの変換演算子を特徴付けるための1つ以上のパラメータを提供することであって、第2のトラックは、第3のトラックへの参照をさらに含む、ことを含む。
【００１６】
一実施形態では、1つまたは複数のパラメータが第3のトラックのメディアデータ部分に含まれる。
【００１７】
一実施形態では、第2のトラックがメディアデータ内に、少なくとも1つの変換演算子のセットを少なくとも1つの第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のトラックで受信したサンプルに変換演算子のセットを適用することにより、メディアデータのサンプルを生成する、ように適合化されたプロセッサを備える。
【００２３】
本発明の別の態様によれば、プログラマブル装置のためのコンピュータプログラム製品が提供され、コンピュータプログラム製品はプログラマブル装置にロードされ、プログラマブル装置によって実行されるときに、本発明による方法を実施するための命令のシーケンスを含む。
【００２４】
本発明の別の態様によれば、本発明による方法を実施するためのコンピュータプログラムの命令を記憶するコンピュータ可読記憶媒体が提供される。
【００２５】
本発明による方法の少なくとも一部は、コンピュータで実施することができる。したがって、本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または本明細書ではすべて一般に「回路」、「モジュール」、または「システム」と呼ばれることがあるソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとることができる。さらに、本発明は、媒体に具現化されたコンピュータ使用可能プログラムコードを有する任意の有形の表現媒体に具現化されたコンピュータプログラム製品の形成をとることができる。
【００２６】
本発明はソフトウェアで実施することができるので、本発明は、任意の適切なキャリア媒体上のプログラマブル装置に提供するためのコンピュータ可読コードとして実施することができる。有形の非一時的キャリア媒体は、フロッピーディスク、CD-ROM、ハードディスクドライブ、磁気テープ装置、またはソリッドステートメモリ装置などの記憶媒体を含むことができる。過渡搬送媒体は、電気信号、電子信号、光信号、音響信号、磁気信号、または電磁信号、例えばマイクロ波またはRF信号などの信号を含むことができる。
【図面の簡単な説明】
【００２７】
本発明の実施形態を、単なる例として、以下の図面を参照して説明する:
【図１】図1は、本発明を使用することができる典型的なクライアント・サーバ・システムを示す。
【図２】図2は、本発明の一実施形態による、ビジュアルトラックからトラックを生成する異なる方法を示す。
【図３】図3は、本発明の一実施形態による、生成されたビジュアルトラック設計を示す。
【図４】図4は、本発明の一実施形態による、1つまたは複数の生成されたビジュアルトラックを含むメディアファイルをカプセル化するための方法を表すフローチャートを示す。
【図５】図5は、本発明の一実施形態によるメディアファイルまたはメディアセグメントの構文解析を示す。
【図６】図6は、本発明の一実施形態におけるサンプルの生成を示す。
【図７】図7は、1つまたは複数の実施形態のステップを実施することができるサーバまたはクライアントデバイスのブロック図を表す。
【図８】図8は、本発明の一実施形態における、シーンのワイドビューに対応するビデオのカプセル化プロセスを、シーンのこのワイドビューの抽出と共に示す。
【発明を実施するための形態】
【００２８】
図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を導入し、以下のように変換特性ボックスを定義する、生成されたビジュアルトラックの設計を提案する。
【００４８】
トラックを生成するために使用される変換の宣言。
0006924266.tif 000002
【００４９】
このボックスは、トラックが生成するサンプルに適用される変換のリストを、提供する。
0006924266.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)を示す。
【００５７】
次に、ボックスは次のように書き直される。
0006924266.tif 000004
【００５８】
代替実施形態では、フラグ値“all_static”に含まれる情報がこのトラックのサンプルが実際に空のサンプルであることを示す、生成されたトラックのSampleTableBox内の特定のVisualSampleEntryとして与えることができる。例えば、生成されたトラックサンプルが空である場合には、予約コード: ‘gtse'を使用する。メディアサンプルに適用する各変換は、以下のようにTransformPropertyボックスによって記述される（TransformPropertyがすべての特定の種類の変換に対する共通パラメータの宣言のための汎用ボックスである（この汎用TransformPropertyボックスを拡張する他のTransformPropertyボックスが変換パラメータを提供することができる））。
0006924266.tif 000005
【００５９】
TransformPropertyがサンプル内で宣言された動的パラメータを有する場合（TransformPropertyボックス内の専用パラメータ“params_in_samples”が1に設定される場合）、変換パラメータは、生成されたサンプル内で宣言され、メディアデータボックス内に格納される。
0006924266.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ボックスは、次のように書き換える。
0006924266.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は、以下のように宣言される。
0006924266.tif 000008
【００８１】
ここで、derived_config_recパラメータは次のボックスである。
0006924266.tif 000009
ここで、transfo_listは、静的TransformPropertyボックスのリストをそれらのタイプおよびパラメータで宣言するTransformPropertyContainerボックスである。
【００８２】
このVisualSampleEntryを参照するサンプルは、このEmptyDerivedTrackConfigRecordで宣言された変換のリストを使用して構築される。あるいは、トランスフォリストが中間のEmptyDerivedTrackConfigRecordなしに、ビジュアルサンプルエントリレベルで直接宣言することができる。TransformPropertyContainerボックスがVisualSampleEntryレベルで宣言されるとき、それをメディアハンドラまたはトラックヘッダレベルで宣言する必要もはやない。
【００８３】
生成されたビジュアルトラックが‘dtrf’、VisualSampleEntryを有するSampleDescriptionボックスを含む場合、このトラックのサンプルがその本文またはデータに含むこの手段は、インプットサンプルに適用してそれらを生成するためのすべての変換パラメータの宣言である。これらのサンプルデータは、トラックのメディアデータボックスに格納される。サンプルからバイトへのオフセットおよびサンプルからチャンクへのオフセットは、SampleTableBoxの適切なボックスに適切に設定される。
この特定のVisualSampleEntryは、以下のように宣言される:
0006924266.tif 000010
【００８４】
ここで、config_recordパラメータは以下のボックスである。
0006924266.tif 000011
ここで、transfo_listはTransformPropertyボックスの配列であり、それらは動的であるため、パラメータを持たない。これらのTransformPropertyボックスの少なくとも1つは動的である。静的変換パラメータはそれらの変換パラメータを埋め込み、動的変換パラメータはサンプルデータ内にそれらの変換パラメータを有し、次にメディアデータボックス内に格納される。
0006924266.tif 000012
【００８５】
このVisualSampleEntryを参照するサンプルはこのFullDerivedTrackConfigRecordで宣言された変換のリストを使用して構築されるが、変換パラメータはサンプル本体で宣言される。この場合、導出されたサンプルは、静的および動的変換を混合することができることに留意されたい。静的なものは、一意のtransform_IDと、適用する適切なパラメータが後に続く動的なものとを介して参照することができる。
【００８６】
生成されたビジュアルトラックが‘dtri’VisualSampleEntryを有するSampleDescriptionボックスを含む場合、このトラックのこれらのサンプルを構築または生成するための変換パラメータがメディアファイル内に存在するトラック内に含まれるという手段がある。構築する各サンプルについて、変換パラメータは、（track_ID、または変換パラメータのトラック参照（基準）を示すトラック参照タイプ341内のトラックのインデックスを介して）示されたトラック内の対応するサンプル内で見つけることができる。
【００８７】
この特定のVisualSampleEntryは、以下のように宣言される。
0006924266.tif 000013
【００８８】
ここで、config_recordパラメータは以下のボックスである。
0006924266.tif 000014
ここで、transfo_listはTransformPropertyボックスの配列であり、動的であるため、それらのタイプおよび最終的にはいくつかのパラメータを有する。これらのTransformPropertyボックスの少なくとも1つは動的であり、パラメータがサンプル内にあることを示すパラメータは常に偽であり、これは、変換パラメータがメディアファイル内のトラックから取り出されるべきであることを意味する。このトラックのIdは、TransformPropertyに含めることができる。サンプルを生成または導出するこの手段は、入力サンプルがパラメータトラック内の対応するサンプル（同じ復号時刻）の変換パラメータで変換される。
【００８９】
生成されたビジュアルトラックが‘dtro’VisualSampleEntryを有するSampleDescriptionボックスを含む場合、このトラックのこれらのサンプルを構築発明生成するための変換パラメータがリモートファイルに存在する帯域外トラックに含まれるという手段がある。構築する各サンプルについて、変換パラメータは、（リモートメディアファイル内のtrack_IDを介して）指示されたトラックの対応するサンプル内で見つけることができる。あるいは識別子を有するメディアデータボックスが利用可能である場合、この識別子は遠隔トラックにおける変換パラメータ値を参照するためにサンプルデータにおいて使用され得る。
【００９０】
この特定のVisualSampleEntryは、以下のように宣言される。
0006924266.tif 000015
【００９１】
ここで、config_recordパラメータは以下のボックスである。
0006924266.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”）」
0006924266.tif 000017
【００９４】
「no-op」変換は、空のサンプルの生成にある。no-op変換プロパティがサンプルに存在する場合、他の変換プロパティは無視される。
構文：
0006924266.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」を使用する。
0006924266.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ストリーミングプロトコル（メディアプレゼンテーション記述）のためのマニフェストにマッピングされるとき、生成されたビジュアルトラックは生成されたトラックを復号し再構成するために必要とされる説明を示すために、すべての入力トラックを参照する属性依存性yIdを有する説明（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として以下の構文をとることができる。
0006924266.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がより記述的なパラメータを含む。
0006924266.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として再定義されることに留意されたい。
【０１５６】
球座標サンプルエントリ
0006924266.tif 000022
球座標サンプルエントリは、球座標系で表現された参照トラックに関連する空間情報を提供する。
構文
球座標サンプルエントリは、次のとおりとする。
0006924266.tif 000023
セマンティクス
projection_typeは、座標系への矩形デコーダ画像出力サンプルの特定のマッピングを示す。
【０１５７】
球座標サンプル形式
構文
球座標サンプルは、以下の構文に準拠するものとする:
0006924266.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'によって識別される。矩形領域サンプルグループ記述は、ビデオまたは画像メディアトラック間の空間的関係を記述するために使用される。これは、トラックのデコードされたサンプルが別のトラック内の所与の矩形領域に空間的に対応することを識別することを可能にする。
0006924266.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選択
0006924266.tif 000026
静的ROI選択は、ROI抽出を定義する変換特性である。 
0006924266.tif 000027
【０１６８】
この変換は、単一の入力トラックに適用される静的なTransformPropertyとして宣言される。パラメータtileRegion_IDは、このtileRegion_IDを有するタイル領域記述子に関連するNALユニット又はサンプルを抽出するパーサを示す。球形コンテンツの静的ビューポートについても同様である。プリデコーディングまたはポストデコーディングフラグ値に応じて、演算は、入力トラックからの、またはデコードおよびクロップ演算へのサブビットストリーム抽出にある。これは、trifで記述されたカプセル化されたタイル領域の独立性に依存する。独立している場合、変換プロパティはプリデコーディング変換に、そわなければポストデコーディング変換に設定することができる。
他のパラメータ、例えば、tileRegion_ID値の代わりにx、y、w、hを与えることができる。しかしながら、これは、パラメータを異なるtrifサンプルグループ内のパラメータと一致させなければならないパーサにとってはあまり便利ではない。
マルチトラックTransformPropertyの場合、パラメータは、tileRegionIdのリストで構成することができる。例えば、
0006924266.tif 000028
【０１６９】
これらの種類の変換を一般化するために、選択演算子は、以下のように定義することができる。
0006924266.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記述子であってもよい。
【０１７３】
パートおよびフルトラックに対応するトラックはすべて、新しいグループ化タイプを有するトラックグループに設定される。フルピクチャフラグは、特定のtrack_group_typeに対するフラグであり得る。
0006924266.tif 000030
【０１７４】
ここで、full_trackは、トラックグループに関連するトラックがフルビデオトラックに対応するかどうかを示す。
【０１７５】
図4、図5、および図6に示すアルゴリズムの任意のステップはPC（「パーソナルコンピュータ」）、DSP（「デジタル信号プロセッサ」）、またはマイクロコントローラなどのプログラマブルコンピューティングマシンによる命令またはプログラムのセットの実行によってソフトウェアで実施することができ、あるいは、機械またはFPGA（「フィールドプログラマブルゲートアレイ」）またはASIC（「特定用途向け集積回路」）などの専用構成要素によってハードウェアで実施することができる。
【０１７６】
以上、特定の実施形態を参照して本発明を説明したが、本発明は特定の実施形態に限定されるものではなく、本発明の範囲内にある修正は当業者には明らかであろう。
【０１７７】
多くのさらなる修正および変形は単に例として与えられ、添付の特許請求の範囲によってのみ決定される本発明の範囲を限定することを意図しない、前述の例示的な実施形態を参照することにより、当業者に示唆されるのであろう。特に、異なる実施形態からの異なる特徴は、適宜、交換されてもよい。
【０１７８】
特許請求の範囲において、単語「有する」は他の要素又はステップを排除するものではなく、不定冠詞「a」又は「an」は複数を排除するものではない。異なる特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組み合わせが有利に使用されることができないことを示すものではない。
【図１】
0006924266.tif 000031
【図２】
0006924266.tif 000032
【図３】
0006924266.tif 000033
【図４】
0006924266.tif 000034
【図５】
0006924266.tif 000035
【図６】
0006924266.tif 000036
【図７】
0006924266.tif 000037
【図８】
0006924266.tif 000038