図1aは、送信方法を実施するシステム10の一例を示す。システム10は、メディアデータ(例えば、2D画像)を流すことを可能にする。システム10は、サーバ装置101とクライアント装置170とを備え、メディアデータは、サーバ装置101からクライアント装置170に送信される。図示されるように、メディアデータは、カメラシステム100によってキャプチャされ、クライアントデバイス170に配信され、例えばユーザによって2D画面175(TV、タブレット、スマートフォンなど)上に表示されるビデオシーケンス1011であってよい。
ビデオシーケンスを形成する画像1011は、好ましい実施形態では、符号化手段140によって独立して符号化されるように、分割手段1012によって空間部分1013に分割される。独立した符号化は、1つの空間部分が、別の空間部分からの任意のデータを、差分又は予測符号化のための基準として使用しないことを意味する。例えば、符号化手段140がHEVC(High Efficiency Video Coding)圧縮フォーマットに基づく場合、空間部分1013は、独立したタイルとして符号化され得る。代替実施形態では、空間部分1013は、動き制限タイルとして符号化され得る。符号化手段は、(例えば、HEVCが独立したタイルを符号化するために使用される場合)N個の独立したサブビットストリームを有する空間部分又は1つのビットストリームと同数のビットストリームを提供する。次に、各提供されたビットストリーム又はサブビットストリームは、ファイル/セグメントカプセル化手段150によって、複数のサブピクチャトラック1014にカプセル化される。パッケージング又はカプセル化フォーマットは、例えば、MPEG標準化機構によって定義されているように、ISOベース・メディアファイル・フォーマット及びISO/IEC 14496-15に従ってよい。生じるファイル又はセグメントファイルは、mp4ファイル又はmp4セグメントであってよい。カプセル化中に、オーディオストリームは、ビデオシーケンス又は追加オーディオストリームに関する記述的情報(メタデータ)を提供するメタデータトラックだけでなく、ビデオビットストリームが追加されてよい。
次に、カプセル化されたファイル又はセグメントファイルは、例えば、http(ハイパーテキスト・トランスファー・プロトコル)プロトコルを使用するインターネットのようなIPネットワーク上、又は例えばディスク又はUSBキーなどの取り外し可能なデジタル媒体で、配信手段160を介してクライアント装置170に配信される。説明のために、配信手段160は、MPEG標準化委員会(「ISO/IEC 23009-1、動的適応オーバーHTTP(DASH)、第1部:メディアプレゼンテーション記述及びセグメントフォーマット」)からのDASH(動的適応ストリーミングオーバーHTTP)のようなHTTPを介した適応ストリーミングを実装する。配信手段は、ストリーミングサーバ161及びストリーミングクライアント162を備えることができる。メディアプレゼンテーション記述は、全画像を含むビデオシーケンスをカプセル化するトラックに対応するメディアセグメント、又はサブピクチャトラックのみ、又は両方に対して、記述及びURLを提供することができる。メディアプレゼンテーション記述は、サブピクチャトラックの代替グループを提供することができ、各グループは、カメラ110によってキャプチャされたシーンの異なる再構成レベルを可能にする。代替は、例えば、解像度、品質、又はビットレート、異なる分割(分割手段1013に関連付けられた粗い又は細かいグリッド)に関してであってよい。
ストリーミングクライアント162によって受信されると、カプセル化されたメディアファイル又はメディアセグメントは、1つ以上のデータストリームを抽出するために、ファイル/セグメントカプセル化解除手段171によって解析される。抽出されたデータストリームは、復号化手段172によって復号される。ファイル/セグメントカプセル化解除手段171によって受信されたISOBMFFファイル又はセグメントの場合、解析は、典型的には、mp4リーダ又はmp4パーサによって処理される。記述メタデータから、パーサはカプセル化されたビデオビットストリーム及び/又はビデオサブビットストリームを抽出できる。次に、オプションで、復号化手段172によって提供されるビデオシーケンスの復号化された画像又はサブ画像は、レンダリング手段174によって、ビデオレンダリングのために生じる画像に構成される。レンダリングされたビデオは、画面(ユーザ装置)のような表示手段175に表示される。
ビデオレンダリングは、クライアントの表示サイズ又は処理能力の中でいくつかのパラメータに依存することに留意されたい。次に、レンダリングは、解析され及び復号されたサブピクチャトラックのサブセットのみを表示することから構成してもよい。これは、レンダリング手段174によって又はストリーミングクライアント162によるコンテンツ選択において直接制御されてもよい。VHD(「超高精細」のための)ビデオストリームのいくつかの画像の送信及びレンダリングは、非常に高いビットレート及び超高解像度のメディアデータストリームをもたらし得ることが観察されている。したがって、システム全体を考慮する場合、帯域幅の浪費を避けるために、及び、クライアントプレーヤの処理能力に準拠したままにするために、メディアデータへのアクセスを最適化する必要がある。このような必要性は、メディアデータストリームが特定のアプリケーションのために使用され得るということで、一層重要である。特に、メディアデータストリームは、プロジェクタのアレイのような専用ディスプレイで画像を表示するために使用され得る。キャプチャビデオ110内の特定の対象領域を表示するために使用されてもよい。
図1bは、送信方法を実施するシステム11の別の例を示す。システム11は、全方向性メディアデータを流すことを可能にする。図示されるように、このメディアは、カメラシステム100から取得され、ヘッドマウントディスプレイ(HMD)170及び176に配信されるビデオコンテンツを有する。カメラシステム100は、広角レンズを備えた1つのカメラ、又は一緒に組み立てられた複数のカメラのセット(例えば、仮想現実用のカメラリグ)を含むことができる。配信手段160は、例えば、ストリーミングサーバ161及びストリーミングクライアント162を介して、適応httpストリーミング・プロトコルを用いて、インターネットのようなIPネットワーク163を介して配信を行うことができる。図示のために、使用されるカメラシステム100は、立方体の各面に関連付けられた6つの標準カメラのセットに基づいている。それは、カメラシステムを取り囲む実際のシーンを表す画像をキャプチャするために使用される。この構成によれば、1つのカメラが前方画像を提供し、1つのカメラが後方画像を提供し、1つのカメラが左側画像を提供し、1つのカメラが右側画像を提供し、1つのカメラが下方画像を提供し、及び1台のカメラが上方画像を提供する。
カメラシステム100から得られた画像は、360ビデオストリーム又は仮想現実メディアデータストリームとも呼ばれる全方向性ビデオストリームを形成する360の画像を生成するために、サーバ101内の画像処理手段によって処理される。処理手段120は、同時インスタンスのキャプチャ画像をスティッチングし、及び、投影することを可能にする。画像はまず、水平及び垂直の寸法の両方で360°ビューを形成する球体121を示す三次元投影構造上にスティッチ及び投影される。投影構造上の360の画像データは、例えば正距円筒図法投影(https://en.wikipedia.org/wiki/Equirectangular_projection))を使用して、二次元投影画像122(キャプチャ投影とも表記される)にさらに変換される。投影画像は、球全体をカバーする。
あるいは、全方位メディアが立体視360度ビデオである場合、カメラシステム100は、左側ビューを表す画像シーケンスをキャプチャする複数のカメラと、三次元360度シーンをレンダリングするために、クライアントにより後で使用され得る右側ビューとで構成されてもよい。このような場合、上記の処理手段120は、左側ビュー及び右側ビューの画像シーケンスの両方を別々に処理する。オプションで、フレームパッキングは、同時インスタンスの各左側ビュー画像及び右側ビュー画像を、1つの単一の左+右投影画像シーケンス上に生じる同じ投影画像にパックするために、立体視フレームパッキング手段125によって適用されてよい。いくつかの立体視フレームパッキング構成は、例えば、並行、上下、列ベースのインターリーブ、行ベースのインターリーブ、左右のビューを交互にする時間的インターリーブが可能である。あるいは、立体視フレームパッキング構成は、符号化手段140による符号化後に独立したビデオビットストリームをもたらす、別々に及び独立した投影画像シーケンスに左右のビューを保持することからなってもよい。例えば、一つのビデオビットストリームは、左側のビュー画像を示し、他方は、右側のビュー画像を示す。
オプションで、領域的パッキング手段130による領域的パッキングは、次に、パックされた画像131上に投影画像122をマッピングするために適用される。領域的パッキングは、例えば、ユーザにとって最も有用な球の部分に信号情報を最大化するために、変換(例えば、画素ブロックの回転、ミラーリング、コピー、又は移動など)、投影画像の領域のサイズ変更、及び再配置を順番に適用することからなる。パックされた画像は、球全体の一部のみをカバーすることができることに留意され得る。領域的パッキングが適用されない場合、パックされた画像131は、投影画像122と同一である。立体視全方位メディアの場合、領域的パッキングは、立体フレームパッキング手段125によって選択されるフレームパッキング構成に依存する、左+右投影画像シーケンス上、又は、左側ビュー及び右側のビュー投影画像シーケンス上の別々、のいずれかに適用する。
投影画像122又はパック化画像131は、符号化手段140によって1つ又は複数のビデオビットストリームに符号化される。立体視全方向性メディアの場合、符号化ステップは、立体視フレームパッキング手段125によって選択されたフレームパッキング構成に依存する、左+右パッキング画像シーケンス上、又は、左側ビュー及び右側ビューのパック化画像シーケンス上の別々、のいずれかに適用する。あるいは、マルチビュー符号化は、左側ビュー及び右側ビューのパック化画像シーケンス上で使用され得る。符号化フォーマットの例としては、AVC (Advanced Video Coding)、SVC (Scalable Video Coding)、HEVC (High Efficiency Video Coding)又はL-HEVC (Layered HEVC)がある。以下では、HEVCは、HEVC及びそれの階層化拡張(L-HEVC)への両方を参照するために使用される。
HEVC及び同様のビデオ符号化フォーマットは、サンプルの異なる空間的小部分、例えば、ピクチャ、すなわちタイル、スライス、及びスライスセグメントを定義する。タイルは、水平及び垂直の境界(すなわち、行及び列)によって定義され、符号化ツリーユニット(CTU)又は符号化ブロックの整数個を含むピクチャの矩形領域を定義し、全ては以下で符号化ユニットと呼ばれる。したがって、タイルはピクチャの空間的サブ部を表現するための良い候補である。しかしながら、シンタックス及びNALユニット(又はNALU)へのそれのカプセル化に関して、符号化ビデオデータ(ビットストリーム)編成は、(AVC内のように)むしろスライス及びスライスセグメントに基づく。HEVC内のスライスは、独立したスライスセグメントであり、もしあれば、他は従属スライスセグメントである少なくとも第1のスライスセグメントを有する、スライスセグメントのセットである。スライスセグメントは、整数個の連続する(ラスタスキャン順の)CTUを含む。
スライスは、必ずしも矩形状を有する必要はない(したがって、それは空間サブ部表現のためのタイルよりも少し適切である)。スライスセグメントは、slice_segment_headerの後に続くslice_segment_dataとして、HEVCビットストリームに符号化される。独立スライスセグメント(ISS)及び従属スライスセグメント(DSS)は、それらのヘッダにより異なる。つまり、従属スライスセグメントは、独立スライスセグメントのヘッダからの情報を再利用するため、より短いヘッダを有する。独立及び従属スライスセグメントの両方は、ビットストリーム内のエントリポイントのリストを含む。ビデオビットストリームがタイルで符号化されるとき、タイルは、タイルが同じピクチャ内の近傍タイル(空間依存性)から及び先行参照ピクチャ内の近傍タイル(時間依存性)から依存しないことを保証するために動き制限され得る。このように、動き制限されたタイルは、独立して復号可能である。
あるいは、投影画像122又はパック化画像131は、例えば、独立して符号化されたHEVCビットストリームを形成する、独立して符号化された各サブピクチャを符号化する前に、いくつかの空間サブピクチャに分割手段によって分割され得る。あるいは、領域的パッキング手段130及び分割手段によるいくつかの空間サブピクチャへの分割は、完全な中間パック化画像131をメモリ内に生成することなく同時に操作することができる。投影画像122(又は、オプションの領域的パッキング後に生じる立体視投影画像)は、サブ部に分割されてよく、各サブ部は、符号化手段140によって符号化されるように空間的サブピクチャに直接パックされてよい。
図10a、図10b、図10c、及び図10dは、本発明の実施形態による、例えば手段125、130、又は1012で実施される投影、オプションのパッキング、及びサブピクチャトラックへの分割のプロセス全体のいくつかの例を示す。投影画像1001からの1つ以上の領域(1、2、3及び4と記される)は、いくつかの変換操作(識別、上下スケーリング、回転、ミラーリング、再配置など)を適用することによってパック化領域1002(1’、2’、3’及び4’と記される)に再配置され、次に、1つ以上のサブピクチャトラック1003に分割および再編成される。分割はまた、パック化領域(1’、2’、3’又は4’)ごとに1つのサブピクチャトラックをもたらすことができる。パッキング及び分割操作は、投影ピクチャ1011から1つ以上のサブピクチャトラック1012へ直接的に、一度に実行されてもよい。図10c及び10dは、全方向性コンテンツが立体コンテンツである場合の異なる可能なカプセル化の例を提供する。このような場合、キャプチャステップ110は、立体視記録、典型的には目ごとに1つのビデオを可能にするカメラリグを使用する。
図10cは、フレームパッキング(図1のオプションのフレームパッキングのための手段125)がない場合の立体全方位コンテンツの例を示す。次に、各投影ビュー1021は、(1022において)領域的パッキングが各ビューに適用されるとき、1023のような複数のサブピクチャトラックにできる限り独立してカプセル化される。この例では、各ビューの領域毎に1つのサブピクチャトラックがある。一つは、同じサブピクチャトラック内の同じ領域の両方のビューをカプセル化することを決定することさえできる。次に、サブピクチャトラックは、使用されるフレームパッキングを示すサンプル記述レベルでステレオビデオボックスを含む。
図10dは、2つの投影ビュー1031を単一のフレームパック化ピクチャ1032にパックするために、適用されるフレームパッキング(オプションのフレームパッキングのための手段125)がある場合の立体全方位コンテンツの例を示す。次に、生じるフレームパック化ピクチャ1032は、1033のように、おそらく複数のサブピクチャトラックにカプセル化される。この例では、各サブピクチャトラックは、所定の空間領域に対する両方のビューを記述する。投影の後に続くパッキングについては、1つのサブピクチャトラックは、(図10に示されるように)1つの領域又は多くの領域をカプセル化することができる。カプセル化モジュールは、例えば、コンテンツを複数のパック化領域を含むサブピクチャトラックにカプセル化するために、記述コスト対アクセス粒度のトレードオフを決定することができる。これは、パック化領域の逆投影を計算することによるカプセル化が、パック化フレーム内の連続する領域の逆投影にギャップがないことを見出す場合のケースであってもよい。これは、パック化ピクチャからのこれらの領域を単一のサブピクチャトラックにグループ化するための決定基準とすることができる。
図10a、10b、10c及び10dは、同じサブピクチャトラックにおけるいくつかの領域のそのような集合を示す。カプセル化モジュールが、投影ピクチャ内にギャップ、ホール又はカバーされていないピクセルを生成するサブピクチャトラック内の複数の領域を集める場合には、それは、サブピクチャトラック位置及びサイズを、これらの複数の領域のバウンディングボックスの位置及びサイズと等しく設定することができる。したがって、符号化手段140によって実行される符号化の結果として、投影画像122又はパック化画像131は、1つ以上が独立して符号化されたビットストリームによって、又は1つ以上が独立して符号化されたサブビットストリームから構成される少なくとも1つの符号化ビットストリームによって表され得る。それらの符号化ビットストリーム及びサブビットストリームは、次に、カプセル化手段150によって、例えば、MPEG標準化機構によって定義されるように、ISOベース・メディアファイル・フォーマット及び全方向性メディアフォーマット(OMAF-ISO/IEC 23090-2)に従って、カプセル化ファイル・フォーマットに記載のファイル又は小さい時間的なセグメントファイル165にカプセル化される。生じるファイル又はセグメントファイルは、mp4ファイル又はmp4セグメントであってよい。カプセル化の間、オーディオストリームは、ビデオ上又はオーディオストリーム上の情報を提供するメタデータトラックだけでなく、ビデオビットストリームにも追加されてよい。
次に、カプセル化されたファイル又はセグメントファイルは、例えば、http(ハイパーテキスト・トランスファー・プロトコル)プロトコルを用いてインターネット上で、又は例えばディスクのような取り外し可能なデジタル媒体上で、配信メカニズム160を介してクライアント170に配信される。説明のために、配信160は、MPEG標準化委員会(「ISO/IEC 23009-1、動的適応ストリーミングオーバーHTTP(DASH)、第1部:メディアプレゼンテーション記述及びセグメントフォーマット」)からのDASH(動的適応ストリーミングオーバーHTTP)のようなHTTPを介した適応ストリーミングを使用して実行される。この標準は、メディアプレゼンテーションのメディアコンテンツのコンパクトな記述をHTTPユニフォームリソースロケーションズ(URLs)と関連付けることを可能にする。このような関連付けは、典型的には、マニフェストファイル又は記述ファイル164と呼ばれるファイルに記述される。DASHの文脈では、このマニフェストファイルはMPDファイル(メディアプレゼンテーション記述)とも呼ばれるXMLファイルである。
MPDファイルを受信することにより、クライアント装置170は、各メディアコンテンツ要素の記述を取得する。したがって、それはメディアプレゼンテーションで提案されているメディアコンテンツ要素の種類を認識し、ストリーミングクライアント162を介して、ストリーミングサーバ161から関連するメディアセグメント165をダウンロードするために使用されるようなHTTP URLsを知得する。したがって、クライアント170は、どのメディアコンテンツ要素を(HTTP要求を介して)ダウンロードし、及び再生するか(すなわち、復号化し及びメディアセグメントの受信後に再生する)を決定することができる。クライアントデバイスは、ユーザのビューポート(すなわち、ユーザによって現在表示され、及び視聴されている球状ビデオの一部)により、シーンのワイドビューを表すフルパック化画像の空間部分に対応するメディアセグメントのみを取得することができることに留意されたい。シーンのワイドビューは、フルパック化画像によって表されるフルビューを表すことができる。
受信すると、カプセル化された仮想現実メディアファイル又はメディアセグメントは、復号化手段172によって復号化される1つ以上のデータストリームを抽出するために、手段171によって解析される。手段171によって受信されるISOBMFFファイル又はセグメントの場合、解析は、典型的には、記述的メタデータからカプセル化されたビデオビットストリーム及び/又はビデオサブビットストリームを抽出できるmp4リーダ又はmp4パーサによって処理される。次に、オプションで、手段173に提供されるパック化画像又はパック化サブ画像は、復号化手段172が、次に、ビデオレンダリングのために処理され(レンダリング手段174)、及び表示される(表示手段175)投影画像を得るために、アンパックされる。あるいは、パック化サブ画像は、投影ピクチャにアンパックされる前に、中間フルパック化画像を合成するように再配置されてもよい。
ビデオレンダリングは、投影画像を生成するために使用されるユーザの視点、視点、及び投影の中からいくつかのパラメータに依存することに留意されたい。図示のように、ビデオレンダリングは、復号された投影画像を球上に再投影するステップを含む。このような再投影から得られた画像は、ヘッドマウントディスプレイ176に表示される。立体視ビューを処理するために、図1を参照して説明される処理は、複製されてよく、又は部分的に複製されてもよい。UHD(超高精細)ビデオストリームのいくつかの画像を仮想現実メディアデータストリームのパノラマ画像にスティッチングすることは、非常に高いビットレート及び非常に超高解像度の仮想現実メディアデータストリームをもたらすことが観察されている。したがって、システムの観点から、及び帯域幅の浪費を回避し、クライアントプレーヤの処理能力に準拠したままにするために、仮想現実メディアデータへのアクセスを最適化する必要がある。
このような必要性は、仮想現実メディアデータストリームが、図1を参照して説明されたものより別の目的のために使用され得ることが、一層重要である。特に、仮想現実メディアデータストリームが、360°プロジェクタアレイのような特定のディスプレイを用いて360°画像を表示するために使用され得る。特定の視野を表示し、及び/又は視点、視野、及び視点を変更するために使用されてもよい。特定の実施形態によれば、パック化画像131の符号化から生じる符号化ビットストリーム及びサブビットストリーム(図1の手段140)は、カプセル化ファイル・フォーマット、例えば、ISOベース・メディアファイル・フォーマット(ISO/IEC 14496-12及びISO/IEC 14496-15)、全方向性メディアフォーマット(OMAF)(ISO/IEC 23090-2)、及びMPEG標準化機構によって定義される関連仕様に従って、ファイル又は小さい時間的セグメントファイルにカプセル化される。符号化ビットストリーム(例えば、HEVC)及び場合によってはそれのサブビットストリーム(例えば、タイル化されたHEVC、MV-HEVC、スケーラブルHEVC)は、1つの単一トラックとしてカプセル化され得る。あるいは、空間的に関連する(すなわち、投影画像のサブ空間部である)複数の符号化ビットストリームが、いくつかのサブピクチャトラックとしてカプセル化され得る。あるいは、いくつかのサブビットストリーム(タイル、ビュー、レイヤ)を含む符号化ビットストリーム(例えば、タイル化HEVC、MV-HEVC、スケーラブルHEVC)は、複数のサブピクチャトラックとしてカプセル化され得る。
サブピクチャトラックは、ピクチャ又は画像のサブ部分、典型的には空間部分又は矩形領域のためのデータを埋め込むトラックである。サブピクチャトラックは、他のサブピクチャトラック、又はサブピクチャが抽出されるフルピクチャを記述するトラックに関連付けられてもよい。例えば、サブピクチャトラックは、タイルトラックであってよい。それは、AVCトラック、HEVCトラック、HEVCタイルトラック、又はサンプルのシーケンスとしてカプセル化された任意の圧縮ビデオビットストリームによって表され得る。タイルトラックは、画像の空間部分、又は画像又はピクチャのサブピクチャに対応する時限ビデオサンプルのシーケンスである。それは、例えば画像内の対象領域又は画像内の任意領域となることができる。タイルトラックに対応するデータは、ビデオビットストリームから入手することができ、又はビデオビットストリームのサブ部から入手することができる。例えば、タイルトラックは、AVC又はHEVCに準拠したビットストリームであってよく、又は、AVC又はHEVC又は例えばHEVCタイルのような任意の符号化ビットストリームのサブ部であってよい。好ましい実施形態では、タイルトラックは、独立して復号可能である(符号化手段は、「動き制限」タイルを生成することによって他のタイルから動き予測を除去するように注意した)。
タイルトラックが、タイルを有するHEVCで符号化されたビデオビットストリームに対応する場合、それはISO/IEC 14496-15 第4版に記載されているように、‘hvt1’トラックとして示されるHEVCタイルトラックにカプセル化され得る。それは次に、パラメータセット、ビデオ復号化手段をセットアップするための高レベル情報を取得するために、タイルベーストラックを参照することができる。それは、HEVCトラック‘hvc1’又は‘hev1’トラックにカプセル化され得る。タイルトラックは、サブピクチャをより大きな画像又はピクチャに空間的に合成するために使用され得る。タイルベーストラックは、これらの1つ以上のトラック間で共有されるデータ又はメタデータを含む1つ以上のタイルトラックに共通するトラックである。タイルベーストラックは、1つ以上のタイルトラックから画像を合成するための命令を含むことができる。タイルトラックは、完了の復号又はレンダリングのためにタイルベーストラックに依存することができる。タイルベーストラックは、タイルを有するHEVCで符号化されたビデオビットストリームから導出する場合、それは‘hvc2’又は‘hev2’トラックとして示されるHEVCトラックにカプセル化される。さらに、それはトラック参照‘tbas’を介してHEVCタイルトラックによって参照され、それはISO/IEC 14496-15 第4版に記載されているように、HEVCタイルトラックへの‘sabt’トラック参照を用いたタイル規則化を示す。
合成トラック(参照トラックとも表記される)は、画像を合成するために他のトラックを参照するトラックである。合成トラックの一例は、ビデオトラックの場合、サブピクチャトラックをより大きな画像に合成するトラックである。これは、例えば、各ビデオトラックからの画像をより大きな画像に合成するための変換及び変形パラメータを提供するビデオトラックから導出するトラックにおいて、ポストデコーディング操作によって実行され得る。合成トラックは、サブビットストリーム連結から生じるビットストリームを復号する前に形成するために、他のビデオトラック又はタイルトラックからNALユニットを抽出するための命令を提供する抽出手段NALユニットを有するトラックであってもよい。合成トラックは、例えば、他のトラックへのトラック参照を介して、合成命令を黙示的に提供するトラックであってもよい。合成トラックは、ビットストリーム連結又はサンプル再構成規則を提供することによって、サブピクチャトラックの空間的合成のためのレンダリング手段174によって実行されるレンダリングに役立つことができる。ビットストリーム連結又はサンプル再構成規則は、例えば、1つ以上の抽出手段NALユニットを使用して、各サンプルに対して定義されてよく、又は、それらは例えば、タイルベーストラックのようなトラック参照を介して、トラックレベルで定義されてよい。
ISO/IEC 14496-12は、各グループが特定の特性を共有する、又はグループ内のトラックが特定の関係を有する場合、トラックグループを記述するために、トラックレベル(すなわち、ISOBMFFボックス階層における‘trak’ボックス内)に位置する‘trgr’と示されるボックスを提供する。このトラックグループボックスは、次のように定義された空のコンテナである。
ボックスタイプ: ‘trgr'
コンテナ: TrackBox (‘trak')
必須: No
数量: 0又は1
aligned(8) class TrackGroupBox extends Box(‘trgr') {
}
このトラックグループボックスは、以下の通り定義されるトラックグループタイプボックスのセットを含むことができる:
aligned(8) class TrackGroupTypeBox(unsigned int(32) track_group_type)
extends FullBox(track_group_type, version = 0, flags = 0)
{
unsigned int(32) track_group_id;
// 残りのデータは、特定のtrack_group_typeに指定されてよい
}
特定の特性、又はこのトラックグループタイプボックスのインスタンスによって宣言された関係は、ボックスタイプ(track_group_type)によって示される。このボックスは、同じトラックグループに属するトラックを判定するために使用され得る、識別子(track_group_id)も含む。同じtrack_group_typeとtrack_group_idの値を有するトラックグループタイプボックスを有するトラックグループボックスを有する全てのトラックは、同じトラックグループの一部である。このボックスは、特定のトラックグループタイプに対するトラックに関連する特定のパラメータを宣言することも可能にする。MPEG ISOBMFF規格(ISO/IEC 14496-12 第7版 補正1-5月 2018)は、二次元空間関係のための特定のトラックグループSpatialRelationship2DDDescriptionBoxを、タイプ‘2dcc’のTrackGroupTypeBoxとして提案している。Track_group_typeが「2dcc」に等しいSpatialRelationship2DDescriptionBox TrackGroupTypeBoxは、このトラックが2D空間関係を有するトラックのグループに属することを示す(例えば、ビデオソースの平面空間部分に対応する)。
所定のtrack_group_idを有するSpatialRelationship2DDescriptionBox TrackGroupTypeBoxは、任意の原点(0,0)とtotal_widthとtotal_heightで定義される最大サイズを有する座標系を黙示的に定義する。x軸は左から右に、及び、y軸は上から下に向けられる。SpatialRelationship2DDescriptionBox TrackGroupTypeBox内のsource_idの同値を有するトラックは、同じソースから生じるようにマッピングされ、及び、それらの関連する座標系は、同じ原点(0,0)及びそれらの軸の向きを共有する。ファイル内に2D空間関係のための1つのトラックグループだけが存在する場合、source_idパラメータはオプションである。ソース又はビデオソースは、全方向性コンテンツのためにカメラ又はカメラのセットによってキャプチャされているコンテンツに対応する。例えば、非常に高解像度のビデオは、サブピクチャトラックに分割され得る。次に、各サブピクチャトラックは、ソースビデオにそれの位置及びサイズを搬送する。
タイプ「2dcc」の二次元空間関係トラックグループは、以下のように定義される:
aligned(8) class SpatialRelationship2DSourceBox
extends FullBox(’2dsr', 0, 0) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(32) source_id;
}
aligned(8) class SubPictureRegionBox extends FullBox('sprg',0,0) {
unsigned int(16) object_x;
unsigned int(16) object_y;
unsigned int(16) object_width;
unsigned int(16) object_height;
}
aligned(8) class SpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('2dcc')
{
// track_group_idはTrackGroupTypeBoxから引き継がれる;
SpatialRelationship2DSourceBox(); // 必須,最初でなければならない
SubPictureRegionBox (); // オプション
}
ここで、object_xは、囲んでいるトラックグループにより指定された領域内のトラックの左上角の水平位置を指定する。位置値は、もしあれば、トラックの幅と高さによって引き起こされる黙示的なリサンプリングを適用する前の値であり、0~total_width-1の範囲に含まれ、total_widthは囲んでいるトラックグループによって定義される場合、object_yは囲んでいるトラックグループによって指定された領域内のトラックの左上角の垂直位置を指定する。位置値は、もしあれば、トラックの幅と高さによって引き起こされる黙示的なリサンプリングを適用する前の値であり、0~total_height-1の範囲で含まれ、total_heightは囲んでいるトラックグループによって定義される場合、object_widthは囲んでいるトラックグループによって指定された領域内のトラックの幅を指定する。位置値は、もしあれば、トラック幅と高さによって引き起こされる黙示的なリサンプリングを適用する前の値であり、1~total_widthの範囲で含まれ、total_widthは囲んでいるトラックグループに定義される場合、object_heightは囲んでいるトラックグループによって指定された領域内のトラックの高さを指定する。
total_widthの値は、track_group_idの同値を有するSpatialRelationshipDescriptionBoxの全てのインスタンスで同じであり、total_heightは、画素単位で、‘srd'トラックグループの座標系における最大高さを指定する。total_heightの値は、track_group_idの同値を有するSpatialRelationshipDescriptionBoxの全てのインスタンスで同じであり、source_idはソースのための固有識別子を提供するオプションのパラメータである。それは、このソースに関連付けられた座標系を黙示的に定義する。SubPictureRegionBox()は、囲んでいるトラックグループで指定された領域内のトラックの静的な位置とサイズを提供するオプションのボックスである。SubPictureRegionBox()がSpatialRelationship2DDescriptionBox内に存在する場合、次に、関連するトラック内に関連するSpatialRelationship2DGroupEntryは存在しない(このトラックは、定数、静的、サイズ、及び位置を有する)。
SubPictureRegionBox()が、SpatialRelationship2DDescriptionBoxに存在しない場合は、関連するトラック内に一つ以上の関連するSpatialRelationship2DGroupEntryが存在する(このトラックはおそらく動的サイズ及び/又は位置を有する)。‘2dcc’サンプルグループを定義するSpatialRelationship2DGroupEntry()は、二次元空間関係トラックグループ内のサブピクチャトラックからのサンプルの位置及びサイズを宣言することを可能にする。grouping_typeが‘2dcc’に等しいとき、SampleToGroupBoxのバージョン1が使用される。grouping_type_parameterの値は、対応する空間関係トラックグループのtrack_group_idと等しい。SpatialRelationship2DGroupEntry()は次のように定義される:
class SpatialRelationship2DGroupEntry () extends VisualSampleGroupEntry ('2dcc') {
unsigned int(16) object_x;
unsigned int(16) object_y;
unsigned int(16) object_width;
unsigned int(16) object_height;
}
ここで、object_xは、対応する空間関係トラックグループによって指定される座標系内のこのグループのサンプルの左上角の水平位置を指定する。位置値は、もしあれば、トラック幅及び高さによって引き起こされる黙示的なリサンプリングを適用する前の値であり、0~total_width-1の範囲内に含まれ、total_widthは、対応するSpatialRelationship2DDescriptionBoxに含まれる場合、object_yは、対応する空間関係トラックグループによって指定される座標系内のこのグループのサンプルの左上角の垂直位置を指定する。位置値は、もしあれば、トラック幅と高さによって引き起こされる黙示的なリサンプリングを適用する前の値であり、0~total_height-1の範囲内に含まれ、total_heightは対応するSpatialRelationship2DDescriptionBoxに含まれる場合、object_widthは、対応する空間関係トラックグループによって指定された座標系内のこのグループのサンプルの幅を指定する。
位置値は、もしあれば、トラック幅と高さによって引き起こされる黙示的なリサンプリングを適用する前の値であり、1~total_widthの範囲内に含まれ、object_heightは、対応する空間関係トラックグループによって指定される座標系内のこのグループのサンプルの高さを指定する。位置値は、もしあれば、トラック幅と高さによって引き起こされる黙示的なリサンプリングを適用する前の値であり、1~total_heightの範囲内に含まれる。‘2dcc’トラックグループ内の各トラックのサンプルは、より大きな画像を生成するために、この同じグループ内の他のトラックからのサンプルで(同じ合成又は復号化時間で)空間的に合成され得る。パック化画像131の符号化(図1のステップ140)から生じる符号化ビットストリーム及びサブビットストリームに依存して、ファイル・フォーマットにおけるカプセル化のいくつかの変形が可能である。図2a及び図2bは、本発明の一実施形態によるファイル/セグメントカプセル化(図1の手段150で実施される)の例を示すブロック図を示す。
図2aは、2Dビデオを複数のトラックに(手段150によって)カプセル化するためのステップを示す。ステップ2200で、サーバは、符号化後の入力ビットストリームを単一又は複数のトラックとしてカプセル化するかどうかを決定する。単一トラックカプセル化がオンである場合、ビデオは、オプションで、どのNALユニットがどの領域に対応するかを示すNALユニットマッピングを用いて、単一トラックとしてカプセル化される。複数のトラックが作成させられなければならない場合(試験2200「真」)、例えば、図1aの手段1122によって実行される分割の場合、次にステップ2220において、ファイルのコンテンツクリエータは、合成トラックを追加することができる。合成トラックは、パーサ又はプレーヤのためのエントリポイント又は「メイン」又は「デフォルト」トラックを提供することを可能にする。例えば、合成トラックは、有効であること及びムービーでプレビューとして使用されていることを示す、トラックヘッダーにフラグ値のセットを有する。
合成トラックによって参照されるトラックは、クライアント又はプレーヤ又はユーザによる選択からこれらのトラックを非表示にするために、これらのフラグ値セットを有さなくてよい(track_enableフラグ値を除く)。合成トラックがない場合、ステップ2230で、メディアファイルと、符号化後の各ビットストリーム又はサブビットストリームは、それ自体のトラックにカプセル化される。オプションステップは、オリジナルの分割領域よりも大きな領域を形成するために、ビットストリーム又はサブビットストリームを集めることによって、トラック数を減らすことで構成できる。カプセル化が合成トラックを提供する場合(テスト2220が「真」である)、2つのオプションは、サンプル再構成規則、すなわちメディアファイル内の黙示的又は明示的な再構成指示に対して可能である。黙示的な再構成(テスト2240が「真」、ブランチが「YES」)に対して、ステップ2241において、合成トラックは、ISO/IEC 14496-15によって定義されるようにタイルベーストラック(例えば、「hvt1」サンプルエントリを有するトラック)として提供される。
その後、各サブピクチャトラックは、ISO/IEC 14496-15に規定されるように、ステップ2243でこのタイルベーストラックによりタイルトラックとしてカプセル化される。タイルトラックのための‘trif’記述子に加えて、各タイルトラックは、2D空間関係記述のための同じトラックグループの一部として宣言されてもよいことに留意されたい。合成トラックが、明示的な再構成のための抽出手段を有するトラックとして提供される場合(テスト2240が「偽」、ブランチが「no」)、追加のトラックがメディアファイル内に作成される。この作成されたトラックは、ステップ2444で作成された各サブピクチャトラックを、例えば‘scal’トラック参照タイプで参照する。合成トラックが提供されない場合(テスト2220が「偽」、ブランチが「no」)、ステップ2230において、メディアのビデオ部分がサブピクチャトラックとしてカプセル化される。合成トラックが存在する場合であっても、サブピクチャトラックは、トラックグループ機構によってグループ化されてもよいことに留意されたい。最後に、ステップ2250において、空間的合成及びサブピクチャトラック間の関係のための記述が生成される。2D空間関係記述のためのトラックグループボックスは、オリジナルビデオソース内の各サブピクチャトラックの相対位置及びサイズを記述するために、各サブピクチャトラックに追加される。
本発明の一実施形態によれば、追加の空間情報が提供され得る。この追加情報は、図12及び図13を参照してより詳細に説明されるように、追加信号であってもよい。追加の情報は、メディアパーサ又はメディアプレーヤが、ディスプレイにビデオを再構成することを可能にする(図1a及び図1bの表示手段)。代替的には、ステップ2250で追加情報が提供されない場合、パーサは、ビットストリーム内の他のデータから情報を推測することができる。
図2b:ステップ200で、サーバは、いくつかの空間的関連ビデオビットストリーム(すなわち、空間的合成がより大きな画像を生成することができる、パック化画像の空間サブ部を表すこと)があるか、又は、複数のサブピクチャトラックとしてクライアントに公開され得る、動き制限されたタイル又は複数のビューのいずれかを表すビデオサブビットストリームを含むビデオビットストリームがあるかを判定する。符号化パック化画像は、それが単一のビデオビットストリームとして符号化されているため、複数のトラックとして公開されない、又はコンテンツクリエータが符号化パック化画像を複数のトラックとして公開したくない場合、次にビデオビットストリーム又はビデオサブビットストリームは、1つの単一のトラックにカプセル化される(ステップ210)。そうでない場合、ステップ220において、カプセル化されるべきメディアコンテンツが、動き制限されたタイルを表すビデオサブビットストリームから構成される場合が判定される。
yesの場合、複数のタイルトラックの少なくとも1つの合成を表すために、少なくとも1つの合成トラックが提供される必要があり得る。合成は、完全なパック化画像、又は完全なパック化画像のサブ部のみを表すことができる。タイルトラックで合成トラックを使用することは、クライアント側でストリームの別々のレンダリング及び復号化を要求することを回避する。クライアントに公開されるべき可能な組み合わせの数は、コンテンツクリエータの選択に依存する。例えば、コンテンツクリエータは、現在のユーザのビューポートにより、異なる視覚的品質を有するタイルを組み合わせたい場合がある。このために、それは異なる視覚的品質のパック化画像を数回符号化し、視覚的品質に関してタイルの異なる組合せを含む完全なパック化画像を表すいくつかの合成トラックを提案することができる。ユーザのビューポートに依存する異なる品質でタイルを結合することにより、コンテンツクリエータはネットワーク資源の消費を低減することができる。
ステップ220において、合成トラックが提供されなければならないと判定される場合、次に、合成トラックに対して黙示的な再構成が使用されてよいか否かが判定される(ステップ240)。黙示的な再構成は、例えばISO/IEC 14496-15 第4版で定義されるように、タイルベース及びタイルトラックからのビットストリーム再構成を指す。それらがタイルトラックのサンプル中で参照するデータで合成トラックのサンプル中の抽出手段を置き換えることによって、タイルトラックのサンプルから合成トラックのサンプルを再構成するために、抽出手段のようなストリーム内構造を使用するのではなく、黙示的な再構成は、合成トラックとタイルトラックのサンプルをトラック参照の順序で連結することによって、合成トラックのサンプルを再構成することを可能にする(例えば、HEVCの黙示的な再構成における‘sabt’トラック参照)。黙示的な再構成の使用は、使用のシナリオに依存する。このような場合、黙示的な再構成は不可能であり、抽出手段を有する明示的な再構成が選択されなければならない。
黙示的な再構成が可能である場合、タイルベーストラックが生成されて(ステップ241)、ビデオサブビットストリームは、独立して復号可能でないタイルトラックとして(例えば、HEVC‘hvt1’トラックとして)カプセル化される。そうでない場合、抽出手段トラックが生成され(ステップ242)、ビデオサブビットストリームは、独立して復号可能なタイルトラックとして(例えば、HEVC‘hvc1’又は‘hev1’トラックとして)カプセル化される。ステップ220に戻って、メディアコンテンツがタイルサブビットストリームを含まない又はコンテンツクリエータが合成トラックを作成して公開したくない場合、次に空間的に関連するビデオビットストリーム又はビデオサブビットストリーム(例えば、タイル又は複数のビュー)が、別々のサブピクチャトラックにカプセル化される(ステップ230)。このような特定の場合、タイルサブビットストリームがHEVCタイルの場合、それらはHEVCトラック‘hvc1’又は‘hev1’トラックとしてカプセル化される。
ステップ250では、空間合成のための信号が、空間的に関連するビデオビットストリーム又はビデオサブビットストリームを一緒にグループ化するために追加される。空間合成信号は、前述のように、例えばMPEG ISOBMFF(ISO/IEC 14496-12 第7版 補正1)で定義されているように、同じグループに関連する全てのトラックに対して同じtrack_group_idを有する、タイプ‘2dcc’のトラックグループのような、グループを合成するそれぞれのトラック(サブピクチャトラック、タイルトラック、合成トラック)に特有のTrackGroupTypeBoxを定義することによって提供され得る。このトラックグループボックス‘2dcc’は、合成内のトラックの相対的な2次元座標及び合成によって形成された画像の全体サイズを提供する。合成は、パック化画像全体又はパック化画像のサブ部のみを表すことができる。例えば、コンテンツクリエータは、パック化画像全体又はパック化画像のサブ部のみを構築することを可能にする、複数の合成トラックを公開したい場合がある。
代替的に、合成は、投影画像全体又は投影画像のサブ部のみを表すことができる。‘2dcc’トラックグループ(track_group_id、source_id、total_width、total_height、object_x、object_y、object_width、object_height)からのパラメータは、それらのトラックを表す適応セットの空間的関係を記述するために、DASHマニフェストで使用され得る、DASH空間関係記述(SRD)記述子(ISO/IEC 23009-1 第3版で定義される)のパラメータに直接一致する。つまり、track_group_idは、DASH SRD spatial_set_idパラメータと一致し、source_idはDASH SRD source_idパラメータと一致する(存在しない場合、DASH SRDで必須なので、デフォルト値「1」が使用され得る)。object_x、object_y、object_width、object_heightはDASH SRDパラメータobject_x、object_y、object_width、object_heightパラメータとそれぞれ一致し、及び関連するトラックグループからのtotal_width及びtotal_height(track_group_idを介して)は、DASH SRD total_width、total_heightに一致する。
代替として、合成トラックがある場合、空間合成信号は、この合成トラックによって黙示的に提供され得る。実際、合成トラックがタイルベーストラックである場合、タイルベーストラックは、タイプ‘sabt’のトラック参照を介してタイルトラックのセットを参照する。このタイルベーストラック及びタイルトラックのセットは、合成グループを形成する。同様に、合成トラックが抽出手段トラックである場合、抽出手段トラックは、タイプ‘scal’のトラック参照を介してタイルトラックのセットを参照する。この抽出手段トラック及びタイルトラックのセットは、合成グループも形成する。両方の場合で、ISO/IEC 14496-15 第4版で定義されているように、合成内の各タイルトラックの相対的な2次元座標は、タイプ‘trif’のサンプルグループ化又は既定のサンプルグループ化を定義することにより提供され得る。
別の代替として、空間合成信号は、新しいエンティティグループを定義することによって提供され得る。エンティティグループは、項目又はトラックのグループである。エンティティグループは、MetaBox内のGroupsListBox内に示される。トラックを参照するエンティティグループは、ファイルレベルMetaBoxのGroupsListBox又はムービーレベルMetaBoxのGroupsListBoxで指定されてもよい。GroupListBox(‘grpl’)は、定義されたグループ化タイプを示す4文字コードが関連付けられた、それぞれがEntityToGroupBoxと呼ばれる一連の完全なボックスを含む。EntityToGroupBoxは次のように定義される。
aligned(8) class EntityToGroupBox(grouping_type, version, flags)
extends FullBox(grouping_type, version, flags) {
unsigned int(32) group_id;
unsigned int(32) num_entities_in_group;
for(i=0; i<num_entities_in_group; i++)
unsigned int(32) entity_id;
// 残りのデータは特定のgrouping_typeに対して指定されてよい
}
通常、group_idはグループのidを提供し、entity_idのセットはエンティティグループに関連するトラックのtrack_IDを提供する。entity_idのセットに続いて、特定のgrouping_typeの追加データを定義することによって、EntityToGroupBoxの定義を拡張することは可能である。一実施形態によれば、(エンティティグループ合成のための)‘egco’に等しい、例えばgrouping_typeを有する新しいEntityToGroupBoxは、2次元空間関連ビデオビットストリーム又はビデオサブビットストリームの合成を記述するように定義され得る。エンティティidのセットは、グループを合成するトラック(サブピクチャ、タイルトラック、合成トラック)のtrack_IDのセットを含む。合成によって形成される画像の全体的なサイズは、この新しいgrouping_type‘egco’に関連付けられた追加データの一部として提供され得る。
EntityToGroupBox(‘egco’)は次のように定義される。
aligned(8) class EntityToGroupBox(‘egco’, version, flags)
extends FullBox(‘egco’, version, flags) {
unsigned int(32) group_id;
unsigned int(32) num_entities_in_group;
for(i=0; i<num_entities_in_group; i++)
unsigned int(32) entity_id;
unsigned int(16) total_width;
unsigned int(16) total_height;
unsigned int(32) source_id;
}
ここで、total_widthとtotal_heightは、合成のサイズを提供し、オプションのsource_idパラメータは、ソースのための一意の識別子を提供し、ソースに関連付けられた座標系(つまり、原点(0,0)とそれらの軸の方向)を黙示的に定義する。
DASHと比較すると、group_idはDASH SRD spatial_set_idパラメータと一致し、source_idはDASH SRD source_idパラメータと一致し、及び、total_widthとtotal_heightはDASH SRD total_widthパラメータとtotal_heightパラメータとそれぞれ一致する。合成のためにEntityToGroupBoxにsource_idが存在しない場合、デフォルト値「1」がDASH MPDへマッピングするために使用される。MPDが複数のメディアコンテンツを記述する場合、次に1つのメディアコンテンツを別のメディアコンテンツから区別することを可能にするsource_id値を処理して割り当てるのは、MPD生成手段次第である。タイプ‘egco’のエンティティグループ化によって定義される合成内の各トラックの相対的な2次元座標は、以下に定義されるようにタイプ(‘egco’)のトラックグループを定義することによって提供され得る。
aligned(8) class SubPictureRegionBox extends FullBox('sprg',0,0) {
unsigned int(16) object_x;
unsigned int(16) object_y;
unsigned int(16) object_width;
unsigned int(16) object_height;
}
aligned(8) class SpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('2dcc')
{
// track_group_idはTrackGroupTypeBoxから継承される;
SubPictureRegionBox ();
}
ここで、object_x、object_y、object_width、object_heightは、合成内の各トラックの相対的な2次元座標を提供する。タイプ‘egco’の所定のEntityToGroupBoxは、group_idがtrack_group_idと等しいように定義することによって、対応するSpatialRelationship2DDescriptionBoxに関連付けられる。
あるいは、‘egco’タイプのエンティティグループ化によって定義された合成内の各トラックの相対的な二次元座標は、ISO/IEC 14496-15 第4版で定義されるように、各タイルトラックにタイプ‘trif’のサンプルグループ化又はデフォルトサンプルグループを定義することによって、提供され得る。代替として、相対的な2次元座標は、グループに関連する各タイルトラック内のVisualSampleEntry内に位置する新しい汎用完全ボックス2DCoordinateForEntityGroupBox(‘2dco’)として定義され得る。
aligned(8) class 2DCoordinateForEntityGroupBox extends FullBox('2dco', version, flags)
{
unsigned int(32) entity_group_id;
unsigned int(16) object_x;
unsigned int(16) object_y;
unsigned int(16) object_width;
unsigned int(16) object_height;
}
ここで、entity_group_idはグループを定義する関連するEntityToGroupBox(‘egco’)の識別子を提供し、object_xとobject_yは合成内のこのトラックのサンプルの左上角の水平位置と垂直位置を提供し、及び、object_widthとobject_heightは合成内のこのトラックのサンプルの幅と高さを提供する。
代替として、この新しい汎用ボックス2DCoordinateForEntityGroupBox(‘2dco’)は、以下のように新しいサンプルグループとして定義され得る。
class 2DCoordinateForEntityGroupBox extends VisualSampleGroupEntry('2dco')
{
unsigned int(32) entity_group_id;
unsigned int(16) object_x;
unsigned int(16) object_y;
unsigned int(16) object_width;
unsigned int(16) object_height;
}
図2bに戻ると、ステップ260で、トラックについて領域的パッキング情報が、ビデオビットストリーム又はビデオサブビットストリームのカプセル化を記述するメタデータに追加される。このステップは、サブピクチャトラックがさらに領域に再配置されない場合のオプションである。領域的パッキングは、パック化領域内のルマサンプル位置を、対応する投影領域のルマサンプル位置に再マッピングするための情報を提供する。MPEG OMAFでは、領域的パッキングは、以下のデータ構造に従って記述され得る。
aligned(8) class RegionWisePackingStruct() {
unsigned int(1) constituent_picture_matching_flag;
bit(7) reserved = 0;
unsigned int(8) num_regions;
unsigned int(32) proj_picture_width;
unsigned int(32) proj_picture_height;
unsigned int(16) packed_picture_width;
unsigned int(16) packed_picture_height;
for (i = 0; i < num_regions; i++) {
bit(3) reserved = 0;
unsigned int(1) guard_band_flag[i];
unsigned int(4) packing_type[i];
if (packing_type[i] == 0) {
RectRegionPacking(i);
if (guard_band_flag[i])
GuardBand(i);
}
}
}
ここで、proj_picture_width及びproj_picture_heightは、相対投影ピクチャサンプルユニットにおける投影ピクチャの幅及び高さをそれぞれ指定し、packed_picture_width及びpacked_picture_heightは、相対パック化ピクチャサンプルユニットにおけるパック化ピクチャの幅及び高さをそれぞれ指定し、num_regionは、constituent_picture_matching_flagが0に等しい場合のパック化領域である。constituent_picture_matching_flagが1に等しい場合、パック化領域の総数は2*num_regionに等しく、RectRegionPacking(i)及びGuardBand(i)内の情報は、投影ピクチャ及びパック化ピクチャの各ステレオ構成ピクチャに適用し、RectRegionPacking(i)は、i番目のパック化領域とi番目の投影領域との間の領域的パッキングを指定し(すなわち、x、y、幅、高さ座標を、パック化領域からオプションの変換(回転、ミラーリング)を伴う投影領域に変換する)、GuardBand(i)は、i番目のパック化領域について、もしあれば、ガードバンドを指定する。
本発明の実施形態によれば、領域的パッキング情報がサブピクチャトラック内で定義されるとき、この構造は、完了投影ピクチャを参照することによってサブピクチャトラックのパッキングのみを記述する。したがって、packed_picture_width及びpacked_picture_heightは、サブピクチャトラックの幅及び高さに等しい。オプションとして、ステップ270で、トラック及びトラックの合成のためのコンテンツカバレッジ情報が、ビデオビットストリーム又はビデオサブビットストリームのカプセル化を記述するメタデータに追加される。このステップはオプションで、ISO/IEC 23090-2で定義されるようにCoverageInformationBoxを使用する。全方向ビデオについて、CoverageInformationBoxは、コンテンツによってカバーされる球上の領域に情報を提供する。コンテンツの性質は、このボックスのコンテナに依存する。SpatialRelationship2DDescriptionBox‘2dcc’に存在する場合、コンテンツは、同じサブピクチャ合成トラックグループに属する全てのトラックによって表されるコンテンツ全体を指し、これらのトラックから構成される合成ピクチャは、コンテンツ全体のパック化ピクチャと呼ばれる。トラックのサンプルエントリ内に存在する場合、コンテンツは、このトラック自体によって表されるコンテンツを参照し、このトラック内のサンプルのピクチャは、コンテンツ全体のパック化ピクチャと呼ばれる。トラックに対してCoverageInformation Boxが存在しない場合、それは、コンテンツが球全体をカバーすることを示す。
全方向性ビデオについて、投影全方向性ビデオボックス(‘povd’)は、MPEG OMAFによって定義され、トラック内のVisualSampleEntry内に位置する中間ボックスであることに留意されたい。さらに、全方向性ビデオについて、SpatialRelationship2DDescriptionBoxトラックグループボックス(‘2dcc’)は、以下のように拡張され得る。
aligned(8) class SpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('2dcc')
{
// track_group_idはTrackGroupTypeBoxから継承される;
SpatialRelationship2DSourceBox(); // 必須, 最初でなければならない
SubPictureRegionBox (); // オプション
CoverageInformationBox(); // オプション
}
第2の実施形態として、トラックカバレッジ情報及び合成カバレッジ情報は、ローカル及びグローバル指示を区別するためにフラグ値を有する単一の共通CoverageInformationBoxを使用して信号伝達され得る。CoverageInformationBoxはISOBMFF FullBoxであるため、トラックとグローバルカバレッジとの間の区別は、ボックスのフラグパラメータによって表され得る。この第2の実施形態によれば、CoverageInformation Boxは、以下のように定義される。
ボックスタイプ: 'covi'
コンテナ: 投影全方向性ビデオボックス(‘povd’)
必須: No
数量: 0以上
aligned(8) class CoverageInformationBox extends FullBox('covi', 0, 0) {
ContentCoverageStruct()
}
ボックスの構造は、ボックスの複数のインスタンスが、ローカル及び合成カバレッジ情報が同じトラックに定義されなければならない場合に定義され得ることを除いて、前の実施形態とほぼ同じである。次に、CoverageInformationBoxは、コンテンツによってカバーされる球上の領域の情報を提供するものとして定義される。コンテンツの性質はフラグパラメータにより与えられる。カバレッジ情報フラグのためのデフォルト値は0で、このボックスはコンテンツ全体のカバレッジを記述することを意味する。このトラックが2次元空間関係トラックグループに属する場合、コンテンツ全体は、同じ2次元空間関係トラックグループに属する全てのトラックによって表されるコンテンツを指し、これらのトラックから構成される合成ピクチャは、コンテンツ全体のパック化又は投影ピクチャと呼ばれる。そうでない場合、コンテンツ全体は、このトラック自体によって表されるコンテンツを参照し、このトラック内のサンプルのピクチャは、コンテンツ全体のパック化又は投影ピクチャと呼ばれる。
カバレッジ情報フラグのための値が1である場合、このボックスは、このトラックによって表されるコンテンツのパック化又は投影ピクチャによってカバーされる球状領域を記述する。このボックスの不在は、コンテンツが球全体をカバーすることを示す。さらに、新たなフラグ値は、次のように定義される。Coverage_localは、カバレッジ情報がボックスを含むトラックにローカルであることを示す。フラグ値は0x000001である。デフォルトにより、この値はセットではない。図2bに戻ると、ステップ280で、仮想現実メディアコンテンツが実際に立体視仮想現実メディアコンテンツであるか、すなわち、左ビュー及び右ビューを含むかがチェックされる。コンテンツが平面視のみである場合、プロセスは直接ステップ290に進む。コンテンツが立体視である場合、ステップ285で、立体視信号がカプセル化に追加される。
立体視コンテンツについて、従来、左と右のビューシーケンスの両方が立体視カメラから取得され、合成タイプに従ってビデオシーケンス又は2つのビデオシーケンスに合成される。立体視コンテンツの2つの異なるビューを表す2つのフレームを1つの単一フレームに結合するためのプロセスは、フレームパッキングと呼ばれる(図1のステップ125参照)。フレームパッキングは、ステレオペアを形成する2つのビューを単一のフレームにパッキングすることからなる。いくつかのよく知られた、使用されているフレームパッキング方式が存在する、つまり並行、上下、フレーム順次、垂直ラインインタリーブ型など。例えば、MPEGアプリケーションフォーマットISO/IEC 23000-11 第1版(「立体視映像アプリケーションフォーマット」)又はISO/IEC 23001-8 第2版(「コーディング非依存コードポイント(CICP)」)は、これらの方式のいくつかを定義する。フレームパッキングは、例えば、ISO/IEC 23001-8 第2版(「CICP」)で定義された値6を有するVideoFramePackingTypeのような、それぞれのビューを別々のフレームに保持することからなってもよい
例えば、さらに本明細書によれば、値3は、各復号化フレームが2つの構成ビューの対応するフレームの並行パッキング構成を含むことを信号伝達し、値4は、各復号化フレームが2つの構成ビューの対応するフレームの上下パッキング構成を含むことを信号伝達する。トラックが立体視メディアデータを含むかを信号伝達するために、StereoVideoBoxがトラック内のVisualSampleEntryに定義される。図2のステップ250に戻ると、SpatialRelationship2DDescriptionBoxは、以下の表に提供されるように、ビデオトラック間の空間的関係を表すために、動的適応ストリーミングオーバーHTTP(DASH)プロトコル(ISO/IEC 23009-1第3版)で定義されるように、空間関係記述子‘SRD’の定義と一致するように定義される。
‘2dcc’TrackGroupTypeBoxを有するtrack_grouping_typeは、トラックがビデオの空間部分に対応するトラックのグループに属することを示す。track_group_type‘2dcc’のTrackGroupTypeBox内のsource_idの同値を有するトラックは、同じソース(つまり、同じ原点(0,0)、同じそれらの方向の軸)から生じるものとしてマッピングされる。より正確には、同じsource_idを有する2つのトラックグループからの完了合成ピクチャ(total_width及びtotal_heightのサイズを有する)は、知覚的又は視覚的に等価である(例えば、2つの異なる解像度又は2つの異なる品質で同じ視覚的コンテンツを表す2つの合成ピクチャ)。source_idパラメータの追加は、2セットのサブピクチャトラックが共通の基準を共有しているか(同じsource_id値)否か(異なるsource_id値)を表すことを可能にする。
2セットのサブピクチャトラックが同じ基準を共有する表示は、レンダリングのために異なるセットのサブピクチャトラックを組み合わせるための可能性として解釈されてよい(しかし、これはアプリケーションに任される、つまり、カプセル化ファイルの表示からISOBMFFパーサは、可能な代替についてのアプリケーションに通知できる)。2D空間関係のためのトラックグループの記述におけるsource_idパラメータの不在は、サブピクチャトラックの2つのセット間の相対位置が未知であるか又は不特定であることを示す。‘2dcc’track_grouping_type及び同じtrack_group_idを有するTrackGroupTypeBoxに属する全てのサブピクチャトラックは、存在する場合、同じsource_idを有さなければならない。
‘2dcc’track_grouping_type及び異なるtrack_group_idを有するTrackGroupTypeBoxに属するトラックは、互換性があり、それらが同じsource_idを有する場合、一緒に組み合わされ得る。source_idが存在する場合、‘2dcc’track_grouping_type及び異なるtrack_group_idを有するTrackGroupTypeBoxに属するトラックは互換性がなく、それらがそれらのsource_idのための異なる値を有する場合、一緒に組み合わせられ得ない。‘2dcc’track_grouping_typeを有するTrackGroupTypeBoxの記述において、source_idパラメータが存在しない場合、これは‘2dcc’track_grouping_typeを有する異なるトラックグループからのサブピクチャトラックは組み合わせられ得ないことを示唆しない。そのような組合せに対して可能性を示すための代替であってもよい。例えば、全方向性ビデオの場合、2つのサブピクチャトラックは、このソースを表す2次元投影ピクチャが視覚的に等価でない(例えば、それらが異なる投影フォーマット又は異なるビューポート向きを有する)場合、同じソースのサブ部を表さない。そのような場合、それらは、2D空間関係に対してトラックグループのそれらの各記述において、source_idの異なる値で信号伝達されてもよい。
代替として、この後のルールは、異なるsource_idを有する‘2dcc’トラックグループからのサブピクチャトラックをグループ化する代替グループが存在する場合であっても、適用する。それは、これらのサブピクチャトラックが代替であることを意味する(例えば、それらは、異なる符号化フォーマット、例えば、AVC及びHEVCを有する)が、それらは、異なる符号化フォーマットを有するサブピクチャトラックと組み合わされることが意図されていない。メディアコンテンツが、個別に符号化及びカプセル化するためにサブ部に分割される場合、生じるサブピクチャトラックは、図2a又は2bのステップ2250又は250の参照によって説明されるように、追加の記述情報から利益を得ることができる。実際、コンテンツ生成の観点から、コンテンツを空間サブ部に分割することは、クライアントの表示又は処理能力への適応を提供する。したがって、メディアは、キャプチャ画像1011又は122を多かれ少なかれカバーするサブピクチャトラックの代替セットとして提供されてもよい。例えば、サーバは、サブピクチャトラックを、1つのトラックグループに属するサブピクチャトラックのセットがソース画像全体をカバーするか否かを示す情報と共にカプセル化することができる。
さらに、ソース画像全体がカバーされる場合、サブピクチャトラックのセットがソース画像全体を正確にカバーするかどうか又はいくつかのオーバーラップがあるかどうかを知ることが有利である。むしろ、ソース画像全体がカバーされていないかを知ることは有利である。この場合、どの部分が正確にカバーされるか及びホールがあるかどうか、及びそれらがどこに位置しているかを知ることは有利である。前記情報は、不足部分を検索するために、クライアントがメディアファイル又はメディア記述ファイルを検索することを可能にする。このような情報をクライアント側に有することは、プレーヤが、それらの容量又はアプリケーションのニーズ、又はユーザの選択に従って最良のサブピクチャトラックを選択するのに役立つ。次に、本発明の第1の態様は、ソース画像に関するサブピクチャトラックのセットに関する表示を有する2D空間関係記述のためのトラックグループを改善することを提案する。
図11は、本発明の第1の態様の一実施形態によれば、サブピクチャトラックとソース画像のセット間の関係の一実施形態を示す。最初に、キャプチャ画像1200(例えば、図1a又は図1bの参照により1011又は122)は、タイル又は矩形領域又は空間サブ部(図11の8つの領域)に分割される。この大きな画像上で、対象の領域は、レンダリング、アクセス、又は送信のための潜在的な関心を伴って識別される(1201)。次に、カプセル化は、キャプチャ画像1200の記述を異なるトラックグループ1202及び1203として生成する。1202は、トラックグループ1202に関連付けられた情報1204によって示されるように、一緒に合成された場合に完全ピクチャ1200をもたらすサブピクチャトラックのセットに対応する。同様に、他のトラックグループ1203は、類似の情報1204を有するが、このトラックグループ内のサブピクチャトラックの合成から再構成画像を示す今回が、ソース画像1200の部分的ビューをもたらす。
この例では、対象領域1201へのアクセスがトラックの組合せとして提供されるので、それは実際にカプセル化の選択である。次いで、クライアントは、対象領域のみをレンダリングすることを決定するときに、処理すべきサブピクチャトラックのリストを判定する。全てのサブピクチャトラックを処理する必要はない。オプションで、トラックグループが完全な再構成をもたらさない場合、トラックグループ記述は、再構成がなぜ部分的であるかを説明するための追加情報1205を提供することができる。ISOBMFFでカプセル化する場合、情報1204及び1205は、図12に示されるように提供され得る。図12は、再構成に関連する追加情報を有する2D空間関係のためのトラックグループの例を示す。下位互換性を保つために、グループプロパティを提供する部分に対して、‘2dcc’ボックス(1300)の新しいバージョンが提案され、‘2dsr’ボックス1301は、サブピクチャトラックのセット上の情報1303を示す、つまり、それは「完全なセット」に対応するか否か。「1」に設定された「完全なセット」は、このトラックグループ内のサブピクチャトラックからの再構成が完全なソース画像に対応することを意味する。「0」に設定された「完全なセット」は、このトラックグループ内のサブピクチャトラックからの再構成が完全なソース画像に対応しないことを意味する。後者の場合、追加情報が提供されてもよい(1304)。
例えば、フラグセットは、ギャップが存在するかどうか、又はいくつかの重複があるかどうかを示すことができる。一方又は他方が存在する場合、‘sprg’構造を使用して、ギャップ又は重複のリストが矩形領域のリストとして提供されてもよい。全方向性コンテンツの場合、サブピクチャトラックのセットが完全なセットではないという指示は、パーサによって、例えば、領域的パッキング記述を探すことによって、及び存在する場合にはこの記述を解析することによって、メディアファイルをさらに検査するための命令として解釈され得る。例えば、1304において重複指示が存在する場合、パーサは、重複がサブピクチャトラック内のガードバンドの存在によるものであるかどうかを判定することができる。OMAFでは、これは、領域的パッキングボックス‘rwpk’を検査し、guard_band_flagパラメータをチェックすることによって決定され得る。下位互換性が問題でない場合、次に追加指示は、2D空間関係のトラックグループの1つの一部に追加パラメータとして直接挿入されてもよい。例えば、complete_set上の指示は、次のように、バージョンとフラグの両方の値に0を使用して提供されてもよい。
aligned(8) class SpatialRelationship2DSourceBox extends FullBox('2dsr', 0, 0) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(32) source_id;
unsigned int(2) reference_picture;
unsigned int(1) complete_set;
unsigned int(29) reserved;
}
ここで、total_width、total_height、及びsource_idのセマンティクは未変更のままであり、reference_picture(ここでは2ビットで表される)は、このトラックグループのサブピクチャトラックに分割されたソースイメージを指定する。値「0」を取る場合、このトラックグループ内のサブピクチャトラックの位置は、キャプチャピクチャの座標系で表されることを示す(これはデフォルト値である)。値「1」を取る場合、このトラックグループ内のサブピクチャトラックの位置は、投影ピクチャの座標系で表されることを示す。値2を取る場合、このトラックグループ内のサブピクチャトラックの位置は、フレームパック化ピクチャの座標系で表されることを示す。値3を取る場合、このトラックグループ内のサブピクチャトラックの位置は、パック化ピクチャの座標系で表されることを示す。
上記の例では、再構成に関連する追加情報(complete_setパラメータ)がsource_id及び参照ピクチャと混在している。source_id上に情報が存在しない場合又は参照ピクチャ上に指示が提供されていない場合、同様にそれは提供されてよい。
aligned(8) class SpatialRelationship2DSourceBox extends FullBox('2dsr', 0, 0) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(1) complete_set;
unsigned int(30) reserved;
}
代替実施形態では、より多くのビットが、再構成に関連する追加情報に割り当てられ得る。例えば、1つの代わりに2ビットを使用することは、トラックグループ内のサブピクチャのセットから再構築が完了再構築をもたらすかどうかをメディアプレーヤ又ISOBMFF パーサに示すことができ(例えば、2ビットが値「00」、小数で0を取る場合)、又はそれが全体ピクチャのサブセットをもたらす場合、すなわち再構築が1つ以上のギャップを含む(例えば、2ビットが値「01」、小数で1を取る場合)、又はそれが全体ピクチャのスーパーセットをもたらす場合、すなわち再構築が重複である部分を含む(例えば、2ビットが値「10」、小数で2を取る場合)。2ビットが値「11」、少数で3を取る場合、再構築がギャップと重複の両方を含む。再構成に関連する情報を記述するために、単純な指示以上が使用される場合、再構成を記述するパラメータは、トラックグループ記述の中に専用記述子に編成されてもよい。
aligned(8) class SpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('2dcc') {
// track_group_idはTrackGroupTypeBoxから継承される;
SpatialRelationship2DSourceBox(); // 必須, 最初でなければならない
SubPictureRegionBox (); // オプション
ReconstructionInfoBox(); // オプション
}
ここで、ReconstructionInfoBox()は、再構成の以下の情報を提供し、サブピクチャトラックのセットは、完全ソース、サブセット(ギャップ)、又はスーパーセット(重複)に対応する。この値により、例えば、重複の場合と同様に、ギャップがどこにあるかの記述が提供される。ギャップ及び重複の両方があってもよいことに留意されたい。
オプションで、パラメータは、トラックグループ内の予想されるサブピクチャトラックの数を示す。この情報は、ファイル内に存在する場合、再構成のために予想されるサブピクチャトラックの数を提供する。例えば、10に設定される場合、クライアントが、トラックグループに10のサブピクチャトラックを有さないメディアファイルをストリーミング又はダウンロードしている間に、それはサンプルの再構成が開始できない。時間に沿って予想されるサブピクチャトラックの動的な数を処理するために、この情報は、2D空間関係‘2dcc’についてサンプルグループ内に提供されてもよく、1つのメディアフラグメントから別のものへ更新されてよい。再構成のために予想されるサブピクチャトラックの予想される数の指示は、例えば、2D空間関係のためのトラックグループの場合には、‘2dsr’ボックスにおいて、グループのプロパティ内に提供されてもよい。サブピクチャトラックからの再構成に関連する指示は、source_indication(‘2dsr’のsource_idパラメータ)と、参照ピクチャ信号と、又は本発明の第2の態様で以下に記載される同等のグループ信号と組み合わせられ得る。それは、2D又は360°メディアに適用する。
360°メディアに適用される場合、再構成に関連する追加情報は、2D空間関係についてトラックグループの記述に存在する場合、参照ピクチャ指示に関連する。それは、complete_setパラメータのようなバイナリ情報であってもよい。それは、2ビット値パラメータであってもよい。それは、サブピクチャトラックの組合せから生じる再構成されたピクチャによってカバーされる投影ピクチャ122の割合を示すパラメータであってもよい。参照ピクチャが示されていない場合、再構成に関連する追加情報は、投影ピクチャ122が完全にカバーされているか、又は部分的にカバーされている(バイナリ値「01」)バイナリ値00で、パック化ピクチャが完全にカバーされているか、又は部分的にカバーされている(値「11」)バイナリ値「10」で、示すことができる。最初のビットの値により、パーサは、領域的パッキングが投影ピクチャに適用されるかどうかを判定し、最後のビットが部分的な再構成を示すときに、メディアファイルをさらに分析することを決定することができる。この追加の分析は、再構成ピクチャ内にどの部分が存在するか、又は欠落しているかを判定するために使用され得る。最後のビットが完全な再構成を示している場合、再構成が完了していると判定するためにファイルをさらに解析又は分析する必要はない。
360°ビデオの場合の参照ピクチャ又は投影ピクチャ又は2Dビデオの場合のソースピクチャの割合では、オプションとして、トラックグループ1302内のトラックプロパティに対応する部分において、追加のパラメータ(図12には示されていない)が、この割合にトラックの寄与を提供することができる。例えば、サブピクチャの所定のグループに対して、サブピクチャトラックが再構成に顕著な寄与を有する場合、それは、ダウンロードし、最初にそれをストリーミングし、プレーヤがプログレッシブ再構成を実施するときに、最初にそれを再構成することを開始するための良好な指示であってもよい。図4aは、2D空間関係記述のためのいくつかのトラックグループを含むサブピクチャトラックカプセル化の例を示す。
図4aは、2D空間関係記述のためのいくつかのトラックグループを含むサブピクチャトラックカプセル化の例を示す。この例は、2D又は全方向ビデオの両方に適用する。この例では、トラック#1~#4は、track_group_idが10と同じで、かつ、source_idが1と同じ、タイプ‘2dcc’のトラックグループ41に属している。トラック#5から#8は、track_group_idは20と同じであるが、同じsource_id400は1に等しい、タイプ‘2dcc’の異なるトラックグループ42に属する。track_group_idが30に等しく、異なるsource_id401が2に等しいタイプ‘2dcc’の3番目のトラックグループ43もある。さらに、複数の別のグループ44~47がある。同じ代替グループに属する全てのトラック(つまり、それらのトラックヘッダボックス‘tkhd’に同じalternate_group識別を有する)は、代替データを含むトラックのグループ又はコレクションを指定する。代替データは、代替ビットレート、コーデック、言語、パケットサイズなどに対応してもよい。これらの識別属性は、トラック選択ボックスに示されてもよい。代替グループ内の1つのトラックのみが、いつでも再生又はストリーミングされるべきである。この例では、トラック#1、#5、及び#9は、識別子が100に等しい同じ代替グループ44に属する。例えば、トラック#1とトラック#5は、品質の異なる別のトラックであり、トラック#9はコーデックの観点からトラック#1とトラック#5の別のトラックである。トラック#2、#6及び#10は、200と等しい識別子を有する同じ代替グループ45に属する、例えば、トラック#2とトラック#6は異なる解像度を有する代替トラックであり、トラック#10はフレームレートなどの点でトラック#2とトラック#6への代替トラックである。
反対に、トラックグループ43からのサブピクチャトラックは、それらが同じsource_idを有していないので、それらが同じ代替グループに属することができるにもかかわらず、トラックグループ41及び42からの任意のサブピクチャトラックと結合されることは意図されていない。source_idパラメータは、次に、同じ空間合成の一部となることができる、サブピクチャトラック上のプレーヤに指示を与える。所定の空間位置に対して、一つのサブピクチャトラックは同じ所定の空間位置で他のサブピクチャトラックと視覚的に同等であると見なされ得る。これは、メディアコンテンツが複数のトラックに提供される場合の(サブピクチャ)トラック選択に有用である。さらに、それは選択されたサブピクチャトラックにより、動的適応(品質/ビットレート又は解像度)が同じ空間合成を表示することを可能にする。
図4bは、本発明の第2の態様によれば、グループが同等のグループであることを示すための代替方法を示す。一実施形態によれば、それは、トラックグループの記述内に直接存在し、トラックヘッダボックス内の代替グループ又はフラグにもはや依存しない指示を含むことができる。この代替は、source_idが存在しない場合、又はメディアファイル内にトラック選択ボックスが存在しない場合に有用であり、プレーヤは、表示するための画像を合成する際、代替トラックを判定する。この実施形態では、ここでは‘TrackGroupTypeBox’と呼ばれるトラックグループ化に関する記述データと、特に、例えば‘SpatialRelationship2DsourceBox’410などの2D空間関係記述のための記述データは、図4bの参照411によって示されるように、既知のソリューションと比較して補正される。ここで、equivalent_group_ID[]と呼ばれる追加のパラメータ413は、このトラックグループに対する同等のトラックグループのリストを提供する。それは、track_group_id(例えばTrackGroupTypeBoxで宣言されたtrack_group_idなど)のリストとして記述される。
図4bは、2D空間関係記述のためのTrackGroupingTypeBoxの初期バージョンとの下位互換性を可能にする。好ましくは、同等のグループ信号のための追加パラメータ413は、ボックスの補正バージョン(図示せず)が使用されるか、又は既知のTrackGroupTypeBoxにおける場合のみ、タイプ‘2dcc’のTrackGroupTypeBoxのフラグパラメータ(図示414)値の値に条件付きで存在する。例えば、24ビット整数フラグ414は、定義される以下の値を有する。「track_group_equivalence」は、このトラックグループは同等のトラックグループを有することを示し、このトラックグループと同等の一つにおいて、同じプロパティを有するトラックは、交換可能又は切り替え可能であることを意味する。フラグ値は、例えば、0x000002(予約された24ビット値、トラックグループタイプボックスのフラグパラメータのための他の予約された値と競合しない)である。上述したように、flagsパラメータのために予約された値を使用する代わりに、同等のグループの指示は、以下のように、トラックグループ、すなわち、TrackGroupTypeBoxの記述を提供する構造体の新しいバージョンに条件付けされてもよい。
aligned(8) class SpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('2dcc', version, 0)
{
// track_group_idは、TrackGroupTypeBoxから継承される;
SpatialRelationship2DSourceBox(); // 必須, 最初でなければならない
SubPictureRegionBox (); // オプション
if (version == 1) {
GroupEquivalenceBox();
}
}
GroupEquivalenceBoxがFullBoxとして定義されている場合
aligned(8) class GroupEquivalenceBox extends TrackGroupTypeBox('grev')
{
// track_group_idは、TrackGroupTypeBoxから継承される;
unsigned int (32) track_group_IDs[];
}
ここで、track_group_IDsパラメータは、このトラックグループのトラックと「同等」のトラックを含むトラックグループを識別するtrack_group_id値のリストを提供する。上記の例では、同等のトラックグループのリストが、トラックグループタイプボックス新しいバージョンに新しいボックスとして提供される。あるいは、それは‘2dsr’ボックスの新しいパラメータとして、より一般的には、以下のようにグループプロパティを提供するボックスに提供されてよい。
aligned(8) class SpatialRelationship2DSourceBox
extends FullBox('2dsr', version, 0) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(32) source_id;
if (version == 1) {
unsigned int (32) equivalent_group_ID[]
}
}
バージョンパラメータを使用する代わりに、flagsパラメータが使用される場合、2D空間関係のためのグループプロパティ‘2dsr’ボックス411の記述は、次のようになる。
aligned(8) class SpatialRelationship2DSourceBox
extends FullBox('2dsr', version, flags) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(32) source_id;
if ( (flags&0x02) == 1) {
unsigned int (32) equivalent_group_ID[]
}
}
同等のトラックグループの宣言は、‘2dcc’トラックグループタイプに限定されない。実際、トラックグループが、同じtrack_group_typeを有する他のトラックグループ内の他のトラックと互換可能であるトラックを含むとすぐに、同等のトラックグループのリストがトラックグループ宣言内に提供され得る。同等のトラックグループ内の各トラックのマッチングは、トラックプロパティを比較することによって計算される。例えば、2D空間関係のためのトラックグループの場合、同等トラックグループの1つで別のトラックと同じobject_x、object_y、object_width、object_heightを有する任意のトラックは、交換可能なトラックとして見なされ得る。それは、例えば、HEVC及び独立したタイルで符号化する場合、品質又はビットレートのような異なる符号化構成において同じタイル(同じ位置)に対応するサブピクチャトラックとなり得る。所定のソースを再構成するために一緒に合成され得る独立したビットストリーム(例えば、AVC、HEVCなど)からのサブピクチャトラックに対応することもできる。
同等のグループの指示のための代替実施形態として、等価性は、それのトラックグループに関してトラックプロパティ内で信号伝達され得る。実際、トラックグループ、すなわちTrackGroupTypeBoxの記述は、グループプロパティを宣言する構造体(ISOBMFFボックス又はFullBox)(例示的な‘2dcc’トラックグループタイプ411のための‘2dsr’)と、トラックグループ内のトラックプロパティを宣言する1つ以上のボックス(例示的な‘2dcc’トラックグループタイプ412のための‘sprg’)を含むことができる。図4bに示す実施形態は、グループプロパティ411のためのボックス内の同等なトラックグループの宣言を提案し、したがって、それはパーサが各同等のトラックグループ内でトラック間のマッチングを計算することを要求する。この演算を回避する代替実施形態は、トラックグループ内のトラックプロパティ(例えば412)の一部として、トラックグループの各トラックのための等価性を宣言することからなる。例えば、2D空間関係のためのトラックグループで使用される場合、‘sprg’ボックス412は、次のようになる。
aligned(8) class SubPictureRegionBox extends FullBox('sprg',version,0) {
unsigned int(16) object_x;
unsigned int(16) object_y;
unsigned int(16) object_width;
unsigned int(16) object_height;
if (version == 1) {
unsigned int(32) equivalent_track_IDs[];
}
}
ここで、equivalent_track_IDsパラメータは、このトラックグループに関連する現在のトラックと同等と見なされ得るトラックのための、track_ID(トラックヘッダボックスで宣言されたトラック識別子用)のリストを提供する。versionパラメータを使用する代わりに、フラグパラメータが使用される場合、‘sprg’ボックスは次のようになる。
aligned(8) class SubPictureRegionBox extends FullBox('sprg',version,flags) {
unsigned int(16) object_x;
unsigned int(16) object_y;
unsigned int(16) object_width;
unsigned int(16) object_height;
if ( (flags & 0x02) == 1) {
unsigned int(32) equivalent_track_IDs[];
}
}
各トラックグループ宣言内に同等のトラックグループのリストを有することは、バイトの観点でコストがかかる場合がある。実際、トラックグループ宣言は、トラックグループの各トラックで発生する。たくさんの同等のグループがある場合、トラックグループID記述のリストが、次に、各同等のトラックグループの各トラックで繰り返される。よりコンパクトな記述を提供する実施形態は、トラックグループ間の等価性を単一の場所で定義することからなる。図5は、同等のトラックグループの表示が、記述のコンパクト性のためにトラック宣言の外側に提供される別の実施形態を示す。実際、同等のトラックグループの表示がトラックレベルで、例えばトラックグループの記述で提供されるとき、それはトラックグループの各トラックに複製される。この宣言をメディアファイルの最上位に有することは、例えば‘moov’ボックスの下で、単一の宣言及びパーサによるこの情報への迅速なアクセスを可能にする。図5において、カプセル化メディアファイル420は、トラックグループタイプ及びtrack_group_id(#11、#12及び#13)をそれぞれ有する421、422、423の3つのトラックグループを含む。各トラックグループは、それらのtrack_ID で識別される多少のトラックを含む。トラックグループ421及び422は、425で表されるように同等である。専用ボックス424は、この等価性を宣言するために使用される。
トラックグループのリストがISOBMFFのエンティティグループ化機構(つまり、GroupListBoxにおいて)を使用して宣言されている場合、同等のトラックグループの表示は、例えば追加の記述子としてGroupListBox内のエンティティグループ化機構と共に宣言される。図5の例では、GroupEquivalenceBoxとして提供される424は、リスト、つまりこれらのトラックグループにおいて各トラックが等価であることをパーサ又はプレーヤに示すための#11と#12を宣言する。トラック#1及びトラック#4は、#2及び#6、#8を有する#3及び#7及び#4と共に等価である。オプションで、GroupEquivalenceBoxは、等価のタイプを提供する追加のフィールド又はパラメータを含むことができる。このパラメータのためにあり得る値は、例えば、「bitstream_equivalence」は、パーサがサンプルの再構築(黙示的又は明示的のいずれか)を行っているときに、トラックが交換可能であることを意味するような事前定義された又は登録された値のリストである。
等価のタイプを提供する追加フィールド又はパラメータのための値の別の例は、例えば「display_equivalence」がこれらのトラックのデコードから生じるピクチャ又はサブピクチャが視覚的に等価であることを意味するような別の事前定義された又は登録された値である。例えば、サブピクチャトラックの場合、トラックグループ#11からの1つのトラックは、分割された初期画像を合成及び再構成するために、トラックグループ#12(又はその逆)において他のトラックと共に使用されてよい。あるいは、GroupEquivalenceBoxとして同等のトラックグループ424の表示を記述する代わりに、同等のトラックグループ424の表示は、1つのEntityToGroupBoxとして提供されてよい。例えば、構造体424は、トラックグループの等価性のために専用のgrouping_typeが‘tgeq’に等しいEntityToGroupBoxであり、グループ内の2つのエンティティ、つまりトラックグループ#11と#12(entity_id値として)を示している。ISO/IEC 23008-12からの既存の‘eqiv’を使用する代わりに、専用のグループ化タイプが好ましい。これは、EntityToGroupBoxにおいて既存の‘eqiv’グループ化タイプが、トラックのサンプルに適用される場合、サンプルが同じトラック内で互いに等価であり、潜在的に別のトラック又はEntityToGroupBoxにリストされたアイテムのサンプルと等価であることを示すためである。
この後者の方法は、トラックグループが各トラックのTrackGroupBox‘trgr’で宣言されている場合にも適用する。トラックグループ等価性424のための記述子又は構造は、メディアファイルの‘メタ’ボックスの下に格納されてもよい。例えば、それはmoov/metaボックスの下、又は、ファイルの最上位のメタボックス内であってよい。トラックグループ等価性424のための記述子又は構造は、トラックレベルで等価性を提供してもよく、この場合、グループ化タイプ値は、トラック等価性信号のための別の予約コード、すなわち‘trev’である。次に、構造体424内に提供されるentity_IDは、track_IDsである。これは、宣言するための関連付けを追跡するためのトラックがあるのと、同数のトラック等価信号(例えば‘trev’)のためのgrouping_typeを有するEntityToGroupBox(es)を必要とする。図5の例では、track#1とtrack#5を等価トラックとして、track#2とtrack#6用に1つ、track#3とtrack#7用に1つ、track#8を有するtrack#4用に最後の1つを宣言するために、grouping_type‘trev’を有する1つのEntityToGroupであってよい。
図4bに示す実施形態の別の代替として、等価トラックグループ424の表示は、既存のトラック基準機構を使用する。しかしながら、利用可能で、かつ「等価」表示専用のトラック参照タイプはない。次にそれは、2つのトラック間で使用される場合、トラックがビットストリーム(ビットストリーム連結又はサンプル再構成プロセス中の交換可能なサブビットストリーム)に関して等価又は切り替え可能又はディスプレイに関して等価(すなわち、同じコンテンツを表示するが、潜在的に異なる品質又は解像度)であることをそれぞれ示す、新しいトラック参照タイプ‘beqt’及び‘deqt’を定義することが提案される。前者は、圧縮領域における組合せ/トラック置換を可能にするのに対し、後者は、復号後のみ、すなわち画素領域において、組合せ/トラック置換を可能にする。ISOBMFFで定義されるようにトラック参照機構は、トラックグループ間の記述された関連性にも拡張され得る。ボックスのISOBMFF階層内の現在のトラック参照ボックスは、‘trak’ボックスの下でのみ宣言され得る。本発明の一実施形態では、(グループ内の)トラックのグループがトラックの別のグループに直接関連付けることができるように、トラックグループボックス内のトラック参照も同様に可能にすることが提案される。
ボックスタイプ: 'tref'
コンテナ: TrackBox or TrackGroupBox
必須: No
数量: 0又は1
以下のセマンティクスで、TrackGroupBoxで使用される場合、track_IDsは、参照トラックグループのトラックグループ識別子(TrackGroupTypeBoxからのtrack_group_id)を提供する整数の配列である。参照タイプの使用のために可能な値のリストは、次のように‘eqiv’値で拡張される。‘eqiv’、つまりこのトラックグループは、それぞれが参照されたトラックグループ内の等価トラックを有するトラックを含む。参照されるトラックグループからのどのトラックがこのトラックグループにおいて所定のトラックに対応するかを判定するために、トラックグループのタイプとトラックグループ内のトラックプロパティに依存して、パーサ次第である。例えば、サブピクチャトラックの場合、同じ位置で同じサイズのトラックは等価性あると見なされ得る。図6を参照して以下に説明するように、‘trgr’ボックス601及び602は、トラックグループレベルでこの‘tref’を介して関連付けられ得る。等価トラックグループの宣言のための代替実施形態に関して、トラック参照タイプは、記述に関してより正確であってよい。単一の‘eqiv’トラック参照タイプを定義する代わりに、2つの新しいトラック参照タイプが使用され得る、つまりビットストリーム等価性(例えば‘beqv’)用に1つ、表示等価性(例えば‘deqv’)用にもう1つ。
図13は、図13a及び図13bを含み、サブピクチャトラックの代替セットからの明示的な再構成を示す。本発明は、図13aの1400又は図13bの1450のような抽出手段トラックで使用するために、抽出手段NALユニットの新しい種類を提案する。ISO/IEC 14496-15は、SVC、MVC、HEVCなどの異なる圧縮フォーマットのための抽出手段を定義する。HEVC抽出手段が、参照されるトラックから、又は構造体内で提供されるデータからサンプルを再構成するために特定の構造体を導入する。我々は、HEVC及びL-HEVC抽出手段(又は抽出手段内の構造体の概念を再利用する任意の圧縮フォーマット)を拡張するSampleConstructorWithAlternativesと呼ぶことができる新しい構造体の種類を以下の通り提案する。
class aligned(8) Extractor () {
NALUnitHeader();
do {
unsigned int(8) constructor_type;
if( constructor_type == 0 )
SampleConstructor();
else if( constructor_type == 2 )
InlineConstructor();
else if ( constructor_type == 4)
SampleConstructorWithAlternatives();
} while( !EndOfNALUnit() )
}
Extractor::constructor_typeのセマンティクは次のように更新される。constructor_typeは、次の構造体を指定する。SampleConstructor、InlineConstructor、SampleConstructorWithAlternativesは、それぞれ0、2、4に等しいconstructor_typeに対応する。constructor_typeの他の値は予約されている。新しい抽出手段を定義する新しいセクションは、この新しい構造体に対して、ファイル/セグメントカプセル化手段150(例えば、mp4ライタ)とファイル/セグメントカプセル化解除手段171(例えば、mp4リーダ)との間で相互運用可能になるように、ISO/IEC 14496-15の別紙に追加される。代替を有する新しいサンプル構造体は、次のように定義される。
構文
class aligned(8) SampleConstructorWithAlternatives () {
unsigned int(8) ref_index; // トラック又はtrack_groupインデックスであってよい
signed int(8) sample_offset;
unsigned int((lengthSizeMinusOne+1)*8) data_offset;
unsigned int((lengthSizeMinusOne+1)*8) data_length;
}
以下のセマンティクスで
ref_indexは、トラック又はデータを抽出するためのトラックを含むトラックグループを見つけるための使用に、‘scal’タイプのトラック参照インデックス(又は1401や1451のようなビットストリーム等価性の専用トラック参照タイプ)を指定する。
sample_offset:A.3.3の中で指定される通り。
data_offset:コピーするための参照サンプル内の最初のバイトのオフセット。抽出がそのサンプル内のデータの最初のバイトから始まる場合、オフセットは値0を取る。
data_length:DCOR3のA.7.4.1.2で指定される通り。特定の構造体を有するこのような抽出手段は、図2a、ステップ2242又は図2bのステップ242からのカプセル化ステップで使用され得る。
図14は、例えばISOBMFFパーサを用いた、本発明によるファイル/セグメントカプセル化解除手段171による抽出手段解像度を示す。サンプルを再構成する間、カプセル化解除手段は、ファイルのメディア部分からNALユニットを読み込む。ステップ1500で、それはNALユニットタイプをチェックする。それが、抽出手段のためのNALUタイプ(テスト1501 真)に対応する場合、それは1502のref_indexパラメータを取得する。ref_indexがtrack_IDを解決する場合(test1503 真)、ISOBMFFパーサは、構造体及びサンプル記述情報で与えられたsample_offsetを潜在的に考慮する、抽出手段によって参照される1504内の参照されるサンプルを識別する。次にそれは、それを解析から生じる1507で再構成ビットストリームに補正するため、及び、復号化手段172に提供するために、1505でNALユニットを読み込み、1506でNALユニットペイロードを抽出する。
ref_indexがトラックグループ_id(1503 偽)を判定する場合、図13aのトラック選択によって示されるように、対応するトラックグループ内の最も適切なトラックを選択することは、ISOBMFFパーサ次第である。これはステップ1508で行われる。デフォルトの動作は、それのトラックグループの1つで宣言されているトラックグループIDを有するファイル内の最初のトラックを選択することである。トラックグループ等価性の表示が、区別する属性の表示を含む場合(例えば、トラック選択ボックス内のような属性リストを再利用)、この情報は、参照されているtrack_group_idを有するトラックグループに関連するトラックのリスト内の1つのトラックを選択するために、メディアプレーヤによって、使用され得る。いったんtrack_group_idが、track_IDとして変換されると、ISOBMFFパーサはステップ1504~1508に従い、最後までNALユニットの処理を継続する。track_IDとtrack_group_idの間の潜在的な競合を回避するために、それは、この構造体を含むメディアファイルが、track_ID、track_group_ID、EntityToGroup::group_idが一意の識別子であることを示すブランド、互換性のあるブランドのそれらのリストに含めることが推奨される。
メモ:ブランドの上記の要件は、(flags & 1)が真であるかどうかをチェックするために全てのトラックグループを調査するよりも簡単である。この新しい抽出手段は、‘scal’トラック参照を再利用することができるが、これはISO/IEC 14496 Part-15のいくつかの部分の補正を必要とする。おそらく、‘scal’の代わりに「代替を有する明示的空間再構成」(‘esra’、1401及び1451内のような)を示す専用トラック参照を有することは、特定の抽出手段の使用を示す利益を有する。図13bは、‘2dcc’及び‘alte’トラックグループの両方を定義するよりも、交換可能な、併合可能な、又は切り替え可能なサブピクチャトラックの説明のためのよりコンパクトなソリューション(図13aよりも)を提案する。図13bは、その間にトラックの等価性を記録するために、空間的関係記述のためにトラックグループの利益を取る方法を示す。そのために、‘2dcc’トラックグループに関連するように示される各サブピクチャトラックは、サブセットに関連するようにも示される。次に、同じサブセット内のトラックは、ISOBMFFパーサによるビットストリーム連結中に使用され得る代替、交換可能、又は切り替え可能なビットストリームと見なされる。サブセットは、特定のSampleConstructorWithAlternatives(ID#100のトラック)内でref_indexとして使用され得る一意の識別子によって識別される。サブセット識別子は、‘2dsr’ボックスでパラメータとして宣言され得る。subset_identifierの使用は、‘alte’トラックの宣言がサブピクチャトラック毎に24バイトを費やす、サブピクチャトラック毎に4バイトを費やす。さらに、これは解析するためのトラックグループの数を減らす。
図13bの実施形態では、2D空間関係グループ(‘2dsr’ボックス)のプロパティの記述は、以下のように、サブセットの宣言をサポートするように拡張される。
aligned(8) class SpatialRelationship2DSourceBox
extends FullBox('2dsr', 0, 0) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(32) source_id;
unsigned int (32) subset_id;
}
ここで、subset_idは、同じ空間位置でサブピクチャトラックのセットのための識別子であり、ビットストリームに関して等価又は切り替え可能である。これは、ビットストリーム連結中に、サブセット内の同等のトラックのいずれか1つの、あるサンプルのためのバイトが、同じサブセット内の任意の他の同等のトラックの同じサンプルのためのバイトの代わりに使用されてよい。あるいは、subset_idは、例えば‘2dcc’track grouping_typeの場合の‘sprg’ボックスである、トラックグループ内のトラックのプロパティを記述するパラメータのセットにおいて定義されてよい。
図13bのコンパクトな記述を使用する場合、SampleConstructorWithAlternatives1452及び1453のref_indexのセマンティックは、サブセット識別子のサブピクチャサブセットを参照することを可能とするよう、以下のように変更される。ref_indexは、トラック、トラックグループ、又はデータを抽出するトラックを含むトラックグループのサブセットを見つけるための使用に、‘scal’タイプ(又は1401又は1451のような‘esra’)のトラック参照のインデックスを指定する。ref_indexがトラックグループid又はトラックグループのsubset_idを判定する場合、トラックグループの対応するトラックグループ又はサブセットで最も適切なトラックを選択することは、パーサ又はプレーヤ次第である。デフォルトの動作は、トラックグループID又はsubset_idを有するファイル内の最初のトラックを選択することである。track_ID、subset_id、track_group_idの間の潜在的な競合を回避するために、この構造体を含むメディアファイルは、track_ID、track_group_ID、EntityToGroup::group_id、及びsubset_idが一意の識別子であることを示すブランド、互換性のあるブランドのそれらのリストを含めることが推奨される。
同じ機構は、黙示的な再構成、すなわち、再構成規則がトラックレベルで定義され、抽出手段を有するサンプルレベルでそれ以上でない場合に拡張され得る。「代替を伴う黙示的再構成」のための特定のトラック参照タイプが、定義される(例えば、‘isra’)。同じタイルベーストラックが、再構成用の代替タイルトラックを有する場合、この特定のトラック参照は、タイルベーストラックをトラックグループID又は代替タイルトラックを記述するsubset_idに関連付けるために使用される。次に、このようなファイルを処理するパーサは、track_referenceをtrack group_id又はsubset_idへtrack_IDに変換する中間ステップを有する。それは、参照されているtrack_group_id又はsubset_id又は代替のサブピクチャトラックに関連する追加プロパティ(例えば‘sprg’ボックスのような、トラックグループ内のトラックプロパティで直接記述されている属性を区別するような)に基づいた選択を有することが発見された最初のトラックの選択であってよい。
図6は、本発明の実施形態による、SpatialRelationship2DdescriptionBox及びグループ等価性603の指示の使用の第2の例を示す。同じビデオソース600(例えば、同じ投影ビデオソース)が、品質(@quality1及び@quality2)に関して、2つの代替版を生成するために使用される。2つのサブピクチャトラックのセットがある、高品質(品質1)610用の1つ及び低品質(品質2)620用の1つ。対応するサブピクチャトラックは、図6の右部(‘trak’ボックス階層611及び621内)のように記述され得る。両方のトラックグループは、同じsource_idと、各サブピクチャトラックセットの解像度に対応する同じtotal_widthとtotal_heightを有する。サブピクチャトラック座標(object_x、object_y、object_width、object_height)は、それらの各トラックグループ合成内のサブピクチャトラックの空間的関係又は位置を記述する。再度、両方のトラックグループは同じソース_idを有し、これはそれらが、同じトラックグループからのサブピクチャトラックだけでなく、第2トラックグループ602からのサブピクチャトラックをそれらの各構成でそれらの各位置に関して組み合わせられ得る(track_group_idが20に等しい)第1トラックグループ601からの同じソースとサブピクチャトラック(track_group_idが10に等しい)を表すことを意味する。
この例によれば、track_group_idが10と等しいトラックグループ601によって表される合成ピクチャは、専用のトラックレファレンス603で示されるように別のグループ602から1つのサブピクチャを選択することで合成され得る。2次元(2D)ビデオコンテンツとは反対に、OMAFメディアコンテンツは、球の内側表面に向かって外向きに見た球の中心からのユーザのビューを示す全方向性メディアコンテンツを表す。次いで、この360°メディアコンテンツは、ビデオ投影フォーマットを適用することによって2次元平面に投影される。次に、オプションで、投影ピクチャからパック化領域に領域を再編成するように、領域的パッキングが適用される。360°のメディアコンテンツは、魚眼レンズ(広角カメラレンズ)を用いてキャプチャされたいくつかの円形画像によって表されてもよい。従って、OMAFの文脈において、2Dピクチャ(サブピクチャトラックの再構成から生じる)は、投影ピクチャ又はパック化ピクチャのいずれかであってもよく、サブピクチャトラックは、異なる種類のコンテンツを含んでもよい。
投影ピクチャのサブ部(パッキングなし)、フレームパック化ピクチャのサブ部、例えば、コンテンツが立体視の場合、投影及びパック化ピクチャのサブ部、又は魚眼コード化ピクチャのサブ部。本発明の第3の態様によれば、SpatialRelationship2DdescriptionBoxの定義は、OMAFメディアコンテンツを含むサブピクチャトラックのサイズ及び位置座標が、投影ピクチャに、パック化ピクチャに、又は別のピクチャに対して相対的であるかどうかを示すために改良される。第3の態様は、第1及び第2の態様の両方と組み合わせられ得る。一実施形態では、SpatialRelationship2DdescriptionBoxは、OMAFメディアコンテンツを含むサブピクチャトラックのサイズ及び位置座標が常にパック化ピクチャに対して相対的であるように定義される。パッキングがない場合、パック化ピクチャは投影ピクチャに等しい。
別の実施形態では、SpatialRelationship2DdescriptionBoxは、OMAFメディアコンテンツを含むサブピクチャトラックのサイズ及び位置座標が、キャプチャステップ110と符号化ステップ140との間の処理ステップにおいて、投影ピクチャ又はパック化ピクチャ又は任意の中間ピクチャに対して相対的であるように定義される。特に、全方向性メディア(OMAF)用のアプリケーションフォーマットの場合、2D空間関係で表現される位置及びサイズが、投影又はパック化ピクチャを参照するかどうかは明確ではない。一実施形態では、SpatialRelationship2DdescriptionBoxは、常にパック化ピクチャに対して相対的である。パッキングがない場合、パック化ピクチャは投影ピクチャと同じである。別の実施形態では、好ましいアプローチは、SpatialRelationship2DdescriptionBoxが常に投影画像に対して相対的であることを定義することである。シーンのワイドビューに対応する符号化メディアデータをカプセル化するための方法は、いくつかの実施形態では、以下のステップを含むことができる。シーンのワイドビューから投影ピクチャを得ることと、得られた投影ピクチャを少なくとも1つのパック化ピクチャにパッキングすることと、少なくとも1つのパック化ピクチャを少なくとも1つのサブピクチャに分割することと、少なくとも1つのサブピクチャを複数のトラックに符号化することと、符号化されたトラックに関連する記述メタデータを生成することを含み、記述メタデータは、トラック内で符号化された少なくとも1つのサブピクチャと少なくとも1つの投影ピクチャとの間の空間的関係を示す、各トラックに関連する情報の項目を含む、ことを特徴とする方法。
したがって、参照ピクチャの特定の信号は必要とされない。参照ピクチャは、サブピクチャがパック化ピクチャを分割することにより得られる場合であっても、投影ピクチャとなるように定義される。シーンのワイドビューに対応する符号化メディアデータをカプセル化するための方法は、いくつかの実施形態では、以下のステップを含むことができる。シーンのワイドビューから投影ピクチャを得ることと、投影ピクチャを少なくとも1つのサブピクチャに分割することと、少なくとも1つのサブピクチャを複数のトラックに符号化することと、符号化されたトラックに関連する記述メタデータを生成することを含み、記述メタデータは、トラック内で符号化された少なくとも1つのサブピクチャと参照ピクチャとの間の空間的関係を示す、各トラックに関連する第1の情報項目を含み、記述メタデータは、参照ピクチャを示す第2の情報項目をさらに含む、ことを特徴とする方法。したがって、メタデータ内の参照ピクチャを指定することにより、分割動作とは独立して、投影ピクチャ、パック化ピクチャ、又は任意の他の参照ピクチャのいずれかに関連するサブピクチャデータを生成することが可能である。
以下の表は、投射として例えば、正距円筒図法(ERP)又はキューブマップ投射、パック化又は魚眼コンテンツの使用のいずれかを含むサブピクチャトラックに対するOMAFの文脈における投射ピクチャに対して相対的な、SpatialRelationship2DdescriptionBoxトラックグループサイズ及び座標属性の実用的なマッピングを提案する。以下の表では、「rwpk」は、領域的パッキング構造、すなわち、パック化領域とそれぞれの投影領域との間のマッピングを指定し、もしあれば、ガードバンドの位置及びサイズを指定する構造のためのショートカットである。同様に、‘fovi’は、OMAFプレーヤで魚眼画像のスティッチング及びレンダリングを可能にするためのパラメータを記述する構造である、FisheyeVideoEssentialInfoStructのためのショートカットである。
SpatialRelationship2DdescriptionBox属性を投影ピクチャに対して定義することは、それらをパック化ピクチャに対して定義することと比較して、アプリケーションに利点を提供する。実際、ビューポート依存ストリーミングの場合、アプリケーションは、現在のユーザのビューポートに対応する(すなわち、ユーザの視野と方向に対応する)サブピクチャトラックのみをダウンロードしたい場合がある。SpatialRelationship2DdescriptionBox属性が、投影されたピクチャに対して定義される場合、アプリケーションは、それが投影ピクチャ内で移動している間に、適切なサブピクチャトラックを選択するために、SpatialRelationship2DdescriptionBoxトラックグループからのこの情報を直接使用することができる。そうでない場合、アプリケーションは、適切なサブピクチャトラックを選択することができる前に、サブピクチャパック化コンテンツを投影ピクチャに変換するために、トラックグループ情報に加えて、VisualSampleEntry内に位置する領域的パッキング情報を解析する必要がある。
オプションで、空間関係を記述するトラックグループ(例えば、‘2dcc’トラックグループ)は、所定のサブピクチャトラックに対して、360°球へのそれのマッピングを提供する追加の記述子を含むことができる。この追加の記述子は、所定のユーザのビュー方向に対応する関連トラック又はトラックセットのプレーヤによる選択がより容易になるように、メディアプレーヤのためのいかなる計算もなしに、2Dビデオサブピクチャトラックと3Dビューポートとの間のマッピングを提供する。次に、空間関係を記述するトラックグループは、以下のように書き換える。
aligned(8) class SpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('2dcc') {
// track_group_idはTrackGroupTypeBoxから引き継がれる;
SpatialRelationship2DSourceBox(); // 必須, 最初でなければならない
SubPictureRegionBox (); // オプション
SphericalRegionBox (); // オプション
}
ここで、SpatialRelationship2DSourceBox及びSubPictureRegionBoxは、トラックグループに関連するサブピクチャトラックの2D座標系及びそれらの位置及びサイズをそれぞれ記述する。SphericalRegionBoxは、以下のように定義された新しいボックスである(4文字コードは単なる一例であり、球領域の表示のために予約されている場合、任意の4文字コードは使用され得る)。
aligned(8) class SphericalRegionBox extends FullBox('sspr', 0, 0) {
SphereRegionStruct(1);
}
ここで、SphereRegionStructは、方位角(垂直)及び仰角(水平)次元の範囲を有する三重項(centre_azimuth、center_elevation、center_pitch)又は時々(yaw、pitch、roll)として球領域を指定する。
図7は、図1aの手段250及びオプションの手段260と、280と、285によって実行される、サブピクチャカプセル化を示す。ステップ701において、ユーザは、カプセル化モジュール(例えば、図1aの手段150におけるISOBMFFライタ又はmp4パッケージャ又はライタ)を構成する。これは、カプセル化ソフトウェアを制御するグラフィカル・ユーザ・インターフェースを介して実行され得る。これは、カプセル化するためのソース、又は、例えばサブピクチャトラックへの分解のようなカプセル化のためのパラメータ、又は1つの単一のメディアファイル又は多くのセグメントファイルの生成の特定情報からなる。あるいは、シーンをキャプチャする記録装置(カメラ、ネットワークカメラ、スマートフォン等)に設定として予め登録されていてもよい。次に、カプセル化モジュールは、ステップ702において、参照ピクチャをキャプチャされた画像として初期化する。これは、カプセル化モジュールを実行しているデバイスのRAMに、キャプチャ画像のサイズを格納することで構成する。
次に、ステップ703で、カプセル化モジュールは、カプセル化構成が投影ステップを含むかどうかをチェックする。偽の場合、次のステップは706である。例えば、キャプチャされたコンテンツが360°コンテンツである場合、それは、投影ピクチャと呼ばれる2D画像上に投影され得る。投影が使用されている場合(テスト703 真)、次にカプセル化モジュールは、メディアファイル(又はメディアセグメント)の記述メタデータで使用されている投影の記述を挿入する(ステップ704)。これは、例えば、OMAF仕様による投影全方向ビデオボックス‘povd’であってよい。次に(ステップ705)、参照ピクチャが投影ピクチャに設定される。これは、例えば、この投影ピクチャのサイズがメモリに記憶されることを意味する。ステップ706は、キャプチャされたソースが立体視か否か、及びビューが単一のフレームにパックされているかどうかをチェックすることからなる。テスト706が真である場合、次にカプセル化モジュールは、ステレオコンテンツのための記述子をメディアファイルに挿入する(ステップ707)。OMAF又はISOBMFFの場合、それはStereoVideoBoxである。テスト706が偽である場合、次のステップは709である。ステップ707に続いて、フレームパック化ピクチャは、参照ピクチャにおいてメモリに格納される。
テスト709は、カプセル化構成が、投影及びオプションでフレームパック化ピクチャがさらにパック領域に再配置される必要があることを示すかどうかをチェックすることからなる。テスト709が真である場合、カプセル化モジュールは、このパッキングの記述を領域に挿入する(図1のオプションのステップ260に相当する)(ステップ710)。OMAFの場合、それは、‘rwpk’ボックスタイプによって識別されるRegionWisePackingBoxとなることができる。次に、711において、参照ピクチャがパック化ピクチャに設定される。テスト709が偽である場合、次のステップは712である。ステップ712におけるテストは、カプセル化構成、すなわち、サブピクチャトラックのための黙示的な信号又は明示的な信号が、ユーザ又はアプリケーションによって選択又は設定されるかどうかをチェックすることからなる。黙示的な信号がオフである場合、次にステップ713で、カプセル化モジュールは、どの参照ピクチャがサブピクチャトラック生成のために使用されるか(すなわち、それぞれサブピクチャトラックにカプセル化された空間部分に分割されたピクチャ)を提供する記述メタデータを挿入する。黙示的な信号がオンである場合、次のステップは714である。ステップ714において、カプセル化モジュールは、分割ピクチャの異なる空間部分間の空間関係を記述するトラックグループを挿入する。
特に、サブピクチャトラックの生じる合成のサイズは、メモリ(702、705、708、又は711)に格納された参照ピクチャのサイズに設定される。例えば、これはSpatialRelationship2DSourceBoxのtotal_width及びtotal_heightのパラメータであってよい。最後に、ステップ715で、カプセル化モジュールは、参照ピクチャ内の位置及びサイズに関して各サブピクチャトラックを記述する。これは、例えば、これらのパラメータが静的である場合、分割から生じる値をSubPictureRegionBoxのパラメータに入れるためのOMAF又はISOBMFF、又は空間関係記述のためのサンプルグループ記述ボックス(例えば、SpatialRelationship2DGroupEntryボックス)からなる。ステップ713の明示的な信号は、図8に示すように解析プロセスの記述と共に説明した通り、様々な方法で実行され得る。
いくつかの実施形態では、複数の符号化トラック及び関連する記述メタデータを備えるメディアファイルから少なくとも1つの画像を生成するための方法は、複数の符号化トラックが、シーンのワイドビューの投影ピクチャをパッキングすることによって得られるパック化ピクチャの分割から生じる少なくとも1つのサブピクチャを符号化するトラックのグループを備えることを判定することと、トラックのグループに関連する記述的メタデータを解析することを含み、トラックのグループに関連する記述メタデータを解析することは、トラック内に符号化された少なくとも1つのサブピクチャと少なくとも1つの投影ピクチャとの間の空間関係を示す各トラックに関連付けられた情報の項目を解釈することを含む、ことを特徴とする方法。
いくつかの実施形態では、複数の符号化トラック及び関連する記述メタデータを備えるメディアファイルから少なくとも1つの画像を生成するための方法は、複数の符号化トラックが、シーンのワイドビューの投影ピクチャの分割から生じる少なくとも1つのサブピクチャを符号化するトラックのグループを含むことを決定することと、トラックのグループに関連する記述的メタデータを解析することを含み、トラックのグループに関連する記述的メタデータを解析することは、トラック内に符号化された少なくとも1つのサブピクチャと少なくとも1つの参照ピクチャとの間の空間関係を示す、各トラックに関連付けられた第1の情報項目を解釈することと、参照ピクチャを示す第2の情報項目を解釈することを含む、ことを特徴とする方法。
メディアプレーヤは、ISOBMFFパーサを使用して、801でOMAFファイルを受信する。それは、メディアファイルに存在する異なるトラック及び、特にビデオトラックを識別する。それらのビデオトラックについて、パーサは、これらが、2Dピクチャ上に投影された全方向性メディアのための古典的な2Dビデオ又はビデオトラックであるかどうかをチェックする。これは、ステップ802の‘ftyp’ボックス内の主要ブランド又は互換ブランドのリストで見ることによって判定される。例えば、‘ovdp’に設定されたブランドは、メディアファイルが、OMAFビューポート依存ベースラインプレゼンテーションプロファイルのための技術を使用するVR体験を含むことを示す。本発明は、一実施形態において、OMAFビューポート依存プロファイルによるVR体験がサブピクチャトラックをさらに使用することを示す明示的ブランド(主要ブランド値として、又は互換ブランドのリストに入れられる)を定義することを提案する。ブランド(主要又は互換ブランド)について、少なくとも2つの特定の値が定義され得る。
第1の値は、全方向依存プロファイルに対して、例えば名称‘odpr’と定義されてもよい。この値は、全方向性メディアが、投影ピクチャを参照するサブピクチャトラックに分割されることを示す。このブランドに準拠する任意のISOBMFFパーサ又はOMAFプレーヤは、サブピクチャトラックの位置を投影ピクチャ内の位置として解釈する。同様に、total_width及びtotal_heightは、投影ピクチャの幅及び高さとしてそれぞれ解釈される。第2の値は、全方向依存プロファイルに対して、例えば名称「odpa」と定義されてもよい。この値は、全方向性メディアが、パック化ピクチャを参照するサブピクチャトラックに分割されることを示す。このブランドに準拠した任意のISOBMFFパーサ又はOMAFプレーヤは、サブピクチャトラックの位置をパック化ピクチャ内の位置として解釈する。同様に、total_width及びtotal_heightは、パック化ピクチャの幅及び高さとして、それぞれ解釈される。
このブランドの1つが存在する場合、OMAFプレーヤ又はメディアプレーヤは、参照ピクチャ情報を取得する方法を直ぐに識別する。次に、それは、参照ピクチャの指示を含む空間関係記述について明示的トラックグループを解析する。これはステップ803で実行される。これらのブランドが‘ftyp’ボックスに存在しない場合、メディアファイルパーサ又はメディアプレーヤは、サブピクチャトラックの存在、及びそれらが投影ピクチャ又はパック化ピクチャを参照するかどうかを判定するために、メディアファイルをさらに解析しなければならない(テスト802のオブジェクト)。空間関係を記述するトラックグループが本発明の実施形態による明示的トラックグループである場合、次にパーサは、803において、これらの明示的トラックグループを解析する。それは、ステップ804で、所定のトラックグループ(例えば、track_group_idを通して識別される)内のサブピクチャトラックを記述するために使用中の参照ピクチャを判定する。これは、選択のためにサブピクチャトラックをユーザに提示するとき、又はサブピクチャトラックをレンダリングするときに考慮されなければならない。追加の変換は、参照ピクチャで表現されたサブピクチャトラックからキャプチャされたピクチャへの画像を生成するために、必要とされてもよい。例えば、参照ピクチャがパック化ピクチャである場合、投影ピクチャで表現するために、サブピクチャトラックの位置とサイズはアンパックされなければならない。この処理はステップ812のオブジェクトである。我々は今、ステップ803においてパーサによって使用されるカプセル化ステップ713の間に明示的信号がどのように実行されるかを説明する。
新しいブランドの代替実施形態では、トラック又はトラックグループレベルで明示的信号を追加することが提案される。これは、ISOBMFFにおける2D空間関係記述のための‘2dcc’トラックグループを使用して実行されてもよい。この追加信号は、パーサ又はプレーヤが、サブピクチャトラックを処理すること、特に、それらが投影又はパック化ピクチャのための位置及びサイズを表すかどうかを判定することに役立つことができる。そのような信号の一実施形態は、空間関係記述のための特定のトラックグループタイプボックス内に新しいパラメータを定義することであってもよい。好ましくは、それは、パーサが情報を得ることができるように、トラックグループボックスの必須部分、すなわち、空間関係記述のためのSpatialRelationship2DSourceBoxにおいて定義される。この実施形態の一例は、以下の通りであってもよい。
aligned(8) class SpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('2dcc')
{
// track_group_idはTrackGroupTypeBoxから引き継がれる;
SpatialRelationship2DSourceBox(); // 必須, 最初でなければならない
SubPictureRegionBox (); // オプション
}
aligned(8) class SpatialRelationship2DSourceBox extends FullBox('2dsr', 0, 0) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(32) source_id;
unsigned int(1) reference_picture;
unsigned int(31) reserved
}
ここで、「reference_picture」は、値「0」を取る場合、このグループ内のサブピクチャトラックのための位置が投影ピクチャ座標系で表現されることを示す新しいパラメータである。値「1」を取る場合、それはこのグループ内のサブピクチャトラックがパック化ピクチャ内で表現されることを示す。このパラメータに付与される名前は、一例である。同様に、total_width及びtotal_heightは、投影ピクチャの幅及び高さをそれぞれ示す。投影又はパック化ピクチャとの間の参照ピクチャの選択を単にサポートするよりも一般的であるために、reference_pictureは、キャプチャ及び符号化手段との間の参照として使用するための中間ピクチャに対応する値であるいくつかの値をとることができる。例えば、値0は、投影が存在しない場合にキャプチャ画像のために使用されてよく(ステップ702)、値1は、投影のみが存在する場合に使用されてよく(ステップ705)、値2は、フレームパック化ピクチャのため(ステップ708)、及び、値3は、パック化フレームのため(711)に使用され得る。この指示は、投影及びパック化フレームのみをサポートする先行実施形態と比較して、2ビットを必要とする。
より明示的な信号である別の実施形態は、(整数値の代わりに)参照ピクチャを記述するための4ccコードを提供することからなる。これは、記述(サブピクチャトラック毎に4バイト)の点で、よりコストがかかる。例えば、参照ピクチャが投影ピクチャであることを示すために、参照ピクチャ値は‘povd’に設定され得る。パック化ピクチャについて、それは‘rwpk’に設定されてよく、フレームパック化ピクチャについて、それは‘stvi’であってよい。キャプチャ画像について、デフォルトの場合は、キャプチャ画像を意味する「default」のための専用4文字コード‘dflt’に設定され得る。好ましくは、中間ピクチャと整数コードとの間のマッピングは、参照ピクチャ値のための相互運用可能なコードを有するために、例えば、mp4登録権限によって定義され、登録される。代替として、追加のreference_pictureパラメータは、SpatialRelationship2DDescriptionBoxの任意の部分、すなわちSubPictureRegionBoxにおいて宣言されてもよい。ステップ712において、それは、明示的な信号が決定されるとき、必須部分にそれを有することが好ましい。これは、パーサ又はプレーヤが情報を見つけることができることを確認するためである。
別の代替実施形態では、空間関係記述のための特定のトラックグループタイプボックス内の追加信号は、それがISOBMFF又はOMAF内の空間関係記述の古いバージョンとの下位互換性を保存する方法で定義される。そのために、新しいバージョンのTrackGroupTypeBoxは、例えば、version=1又はフラグ値以外を有する同じversion=0で定義される。先行技術におけるTrackGroupTypeBoxは、flags値を許容しないことに留意されたい。TrackGroupTypeBoxにフラグ値を与えることは、本発明のこの実施形態の一部である。例えば、値0x01に設定されたフラグ値「Reference_info_is_present」は、このトラックグループが空間関係情報の位置及びサイズについて考慮するよう、参照ピクチャ上の情報を含むことを示すために定義されてもよい。次に、2dccトラックグループは、以下のように表され得る。
aligned(8) class SpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('2dcc', 0, flags)
{
// track_group_idはTrackGroupTypeBoxから引き継がれる;
SpatialRelationship2DSourceBox(flags); // 必須, 最初でなければならない
SubPictureRegionBox (); // オプション
}
aligned(8) class SpatialRelationship2DSourceBox extends FullBox('2dsr', 0, flags) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(32) source_id;
if ( (flags & 0x01) == 1) {
unsigned int(1) reference_picture;
unsigned int(31) reserved
}
}
ここで、値「0」を取る場合にこのグループ内のサブピクチャトラックのための位置が投影ピクチャ座標系で表されることを示す新しいパラメータである。パラメータの名前は、一例として付与される。同様に、total_width及びtotal_heightは、投影ピクチャの幅及び高さをそれぞれ示す。
フラグを使用することは、例えば2Dクラシックビデオについて、参照ピクチャに曖昧性がない場合に、各サブピクチャトラックの記述コストを低減する。参照ピクチャの有無を示すためにフラグを使用することは、2dccトラックグループ化タイプの再使用が、全方向コンテンツをサブピクチャトラックに分割する両方の場合、すなわち、領域的パッキングステップの有無を処理することを可能にする。さらに別の実施形態では、TrackGroupingTypeBoxのフラグパラメータ、又はSpatialRelationship2DDescriptionBoxのようなそれの引き継ぎボックスの1つは、参照ピクチャをフラグ値に直接提供するように使用される。例えば、フラグパラメータが0に設定された最下位ビットを有する場合、これは、参照ピクチャが全方向ビデオの場合における投影ピクチャであることを意味する。フラグパラメータが、1に設定されているそれの最下位ビットを有する場合、次にそれは、参照ピクチャが全方向ビデオの場合におけるパック化ピクチャであることを意味する。デフォルト値は、0に設定されたフラグパラメータの最下位ビットである。この実施形態とともに、ファイル記述をよりコンパクトにする(サブピクチャトラック毎に4バイトを節約)、SpatialRelationship2DSourceBox内に追加のパラメータはない。
代替実施形態では、黙示的又は明示的サブピクチャトラック信号間の区別は、2つの異なるトラックグループ化タイプを使用することによって行われる。現在のグループ化タイプは、黙示的信号のために使用され、新しいトラックグループ化タイプは、明示的な空間関係トラックグループのために定義される。例えば、4文字コード‘edcc’が使用され、新しいTrackGroupingTypeBoxが次のように作成される。
aligned(8) class ExplicitSpatialRelationship2DDescriptionBox extends TrackGroupTypeBox('edcc', 0, flags)
{
// track_group_idはTrackGroupTypeBoxから引き継がれる;
ExplicitSpatialRelationship2DSourceBox(flags); // 必須, 最初でなければならない
SubPictureRegionBox (); // オプション
}
aligned(8) class ExplicitSpatialRelationship2DSourceBox extends FullBox('edsr', 0, flags) {
unsigned int(32) total_width;
unsigned int(32) total_height;
unsigned int(32) source_id;
unsigned int(8) reference_picture;
}
カプセル化構成が「黙示的」であると判定される場合(テスト801及び802 偽)、特定の信号が使用されていないことを意味し、パーサは、参照ピクチャの黙示的な判定を調査する。それは、変換又は復号化後の操作が実行されなければならない、制限情報ボックス‘rinf’で宣言された方式を解析することによって構成され、及び潜在的に参照ピクチャを提供する。OMAFのためのほとんどの時間で、それはパック化ピクチャ又は投影ピクチャであってよい。立体視コンテンツについて、それはフレームパック化ピクチャであってもよい。次に、パーサは、候補参照ピクチャを判定するためにOMAF記述子の存在をチェックする。パーサは、メディアファイル内に領域的パッキング指示がない場合、空間関係記述のための位置及びサイズパラメータが投影ピクチャに関して表現されると仮定する(テスト810 偽)。領域的パッキングボックスが存在する場合、空間関係記述のための位置及びサイズパラメータは、パック化ピクチャに関して表現される(ステップ811)。
オプションで、パーサは、空間関係を記述するトラックグループのサブピクチャトラック内の‘stvi’ボックスの存在についてテストすることによって、フレームパック化ピクチャの有無を考慮することができる(ステップ808)。存在する場合、パーサは、フレームパック化ピクチャを候補参照ピクチャとして記録する。より一般的には、黙示的信号について、サブピクチャトラックの位置及びサイズは、キャプチャ110と符号化手段140との間の異なる処理ステップから生じる最後のピクチャにおいて表現されると考えられる。これらの異なる処理は、制限方式情報ボックス‘rinf’に反映される。例えば、コンテンツ準備が投影120、フレームパッキング125、及び領域的パッキング130を含む場合、RestrictedSchemeInfoBox‘rinf’ボックスは、投影が適用されたことを示す‘povd’ボックスを、それのSchemeTypeBox内に含む。この‘povd’ボックスは、それ自体、例えばRegionWisePackingBox‘rwpk’として、130で行われる領域的パッキングを記述する構造を含むことができる。同様に、ステレオビデオボックスは、手段125によって実施されるフレームパッキングを示すために、例えばCompatibleSchemeTypeBox内に存在する。
最適化黙示的モードとクローズドシステム内について、カプセル化とパーサは、設定情報を交換することができ、サブピクチャトラック記述のための事前定義されたデフォルトモードを宣言するための設定を定義することができる。例えば、それらは、メディアが全方向性コンテンツを含む場合、サブピクチャトラックが常に投影画像を参照することに同意することができる。図9は、本発明の実施形態による、エンコーダ950又はデコーダ900、及び通信ネットワーク999のうちの少なくとも1つを備えるシステム991 995を示す。一実施形態によれば、例えばシステム995は、デコーダ900を備えるユーザ端末又はデコーダ900と通信可能なユーザ端子のユーザインターフェースを介して、デコーダ900にアクセスするユーザにコンテンツ(例えば、ビデオ/オーディオコンテンツを表示/出力又はストリーミングするためのビデオ及びオーディオコンテンツ)を処理及び提供するためのものである。このようなユーザ端末は、コンピュータ、携帯電話、タブレット、又は(提供/ストリーミングされた)コンテンツをユーザに提供/表示することができる任意の他の種類の装置であってもよい。システム995は、通信ネットワーク999を介して(例えば、先のビデオ/オーディオが表示/出力されている間に)ビットストリーム901を取得/受信する。一実施形態によれば、システム991は、コンテンツ処理及び処理コンテンツ、例えば、後の時間で表示/出力/ストリーミングするために処理されたビデオ及びオーディオコンテンツを記憶するためのものである。
システム991は、エンコーダ950によって受信及び処理され、及びエンコーダ950は、通信ネットワーク991を介してデコーダ900に通信されるビットストリーム901を生成する、例えば、本発明の実施形態におけるワイドビューシーンに対応する画像951のオリジナルシーケンスを含むコンテンツを取得/受信する。次に、ビットストリーム901は、いくつかの方法でデコーダ900に通信され、例えば、それはエンコーダ950によって予め生成されてよく、データが記憶装置からデコーダ900に通信/ストリーミングされる時点で、ユーザが記憶装置からコンテンツ(すなわちビットストリームデータ)を要求するまで、通信ネットワーク999内の記憶装置(例えば、サーバ又はクラウドストレージ上)にデータとして記憶されてよい。システム991は、ユーザに(例えば、ユーザ端末上に表示されるユーザインターフェースのためのデータを通信することによって)、記憶装置に格納されたコンテンツのための(例えば、コンテンツのタイトルや、コンテンツを識別、選択及び要求するための他のメタ/格納位置データ)、及び要求されたコンテンツが記憶装置からユーザ端末に配信/ストリーミングされ得るように、コンテンツのためのユーザ要求を受信及び処理するための、コンテンツ情報を提供/ストリーミングするためのコンテンツ提供装置を備えることもできる。好ましくは、本発明の実施形態では、ユーザ端末はヘッドマウントディスプレイである。
あるいは、エンコーダ950は、ユーザがコンテンツを要求するときに、ビットストリーム901を生成し、それをデコーダ900に直接通信/ストリーミングする。次に、デコーダ900は、要求コンテンツをユーザに提供するために、次にユーザ端末によって使用される、ビデオ信号909及び/又はオーディオ信号を取得/生成するために、ビットストリーム901(又は信号)を受信し、本発明によるサブピクチャトラックの復号を実行する。図3は、本発明の1つ以上の実施形態を実施するためのコンピューティングデバイス300の概略ブロック図である。コンピューティングデバイス300は、例えばマイクロコンピュータ、ワークステーション、又はライトポータブルデバイスなどのデバイスであってよい。コンピューティングデバイス300は、以下に接続された通信バスを備える。マイクロプロセッサのような中央演算処理装置(CPU)301、本発明の実施形態の方法の実行可能なコードを記憶するためのランダムアクセスメモリ(RAM)302、及び所定のファイル・フォーマット下でマニフェストの読取り及び書込みのため及び/又はビデオを符号化するため及び/又はデータを読取り又は生成するための方法を実施するために必要な変数及びパラメータを記録するように適合された登録、それのメモリ容量は例えば拡張ポートに接続されたオプションのRAMによって拡張され得る。本発明の実施形態を実現するためのコンピュータプログラムを記憶するための読み出し専用メモリ(ROM)303。
ネットワークインターフェース304は、すなわち、順次処理されるためのデジタルデータが転送又は受信される、通信ネットワークを介して接続される。ネットワークインターフェース304は、単一のネットワークインターフェースであってもよく、又は異なるネットワークインターフェースのセット(例えば、有線及び無線インターフェース、又は異なる種類の有線又は無線インターフェース)から構成されてもよい。データは、送信のためにネットワークインターフェースに書き込まれるか、又はCPU301内で実行されているソフトウェアアプリケーションの制御の下で受信のためにネットワークインターフェースから読み出される。ユーザからの入力を受け取るため、又はユーザに情報を表示するためのユーザインターフェース(UI)305。ハードディスク(HD)306。例えばビデオソース又はディスプレイのような外部装置から/までデータを受信/送信するためのI/Oモジュール307。実行可能コードは、読み出し専用メモリ303、ハードディスク306、又は例えばディスクのようなリムーバブルデジタル媒体のいずれかに格納され得る。変形例によれば、プログラムの実行可能コードは、実行される前に、ハードディスク306などの通信装置300の記憶手段の1つに記憶されるために、ネットワークインターフェース304を介して、通信ネットワークによって受信され得る。
中央演算処理装置301は、命令は、上記の記憶手段のうちの1つに記憶されている、本発明の実施形態による命令又はプログラムソフトウェアコードの部分又はプログラムの実行を制御及び指向するように適合されている。電源オン後、CPU301は、例えば、プログラムROM303又はハードディスク306からそれらの命令がロードされた後に、ソフトウェアアプリケーションに関するメインRAMメモリ302からの命令を実行することができる。このようなソフトウェアアプリケーションは、CPU301によって実行されると、前の図に示したフローチャートのステップを実行する。この実施形態では、装置は、本発明を実施するためにソフトウェアを使用するプログラム可能な装置である。しかしながら、代替的に、本発明は、ハードウェア(例えば、特定用途向け集積回路(ASIC)の形態で)で実施されてもよい。本発明は、特定の実施形態を参照して上記で説明されたが、本発明は特定の実施形態に限定されるものではなく、変形例は本発明の趣旨の範囲内にある技術分野における当業者には明らかである。
例えば、本発明は、カメラ、スマートフォン、ヘッドマウントディスプレイ、又は、例えば対象の特定領域にズームインするためのTV又はマルチメディアディスプレイのためのリモートコントローラとして機能するタブレットのようなデバイスに組み込まれてもよい。それはまた、特定の対照領域を選択することによって、マルチメディアプレゼンテーションの個人化ブラウジング体験を有するために、同じデバイスから使用されてよい。ユーザによるこれらの装置及び方法からの別の使用は、他の接続された装置と、ユーザの好ましいビデオのいくつかの選択されたサブ部を共有することである。それはまた、監視カメラが本発明によるデータを提供する方法をサポートする場合には、監視下に置かれた建物の特定の領域で何が起こるかを監視するために、スマートフォン又はタブレットと共に使用されてもよい。
多くのさらなる修正及び変形は、単に例として与えられ、本発明の範囲を限定することを意図しておらず、その範囲は添付の特許請求の範囲によってのみ決定される、前述の例示的な実施形態を参照することにより、当業者に示唆されるであろう。特に、様々な実施形態からの異なる特徴は、適宜、入れ替えられ得る。