本発明の好ましい実施の形態について具体的に説明し、その例は添付された図面に示す。添付された図面を参照した以下の詳細な説明は、本発明の実施の形態によって実現されることができる実施の形態のみを説明するよりは、本発明の好ましい実施の形態を説明するためである。次の詳細な説明は、本発明に対する徹底した理解を提供するために細部事項を含む。しかしながら、本発明がこのような細部事項無しで実行されうることは、当業者にとって自明である。
本発明で使用される大部分の用語は、該当分野において広く使用される一般的なもの等から選択されるが、一部の用語は、出願人により任意に選択され、その意味は、必要により次の説明において詳細に述べる。よって、本発明は、用語の単純な名称または意味でない用語の意図した意味に基づいて理解されなければならない。
図1は本発明による360゜ビデオ提供のための全体アーキテクチャを示す図である。
本発明はユーザにVR(Virtual Reality、仮想現実)を提供するために、360゜コンテンツ又は全方位メディア(omnidirectional media)を提供する方法の案を提案する。VRとは、実際又は仮想の環境を複製(replicates)するための技術とその環境を意味する。VRは人工的にユーザに感覚的経験を提供し、これによりユーザは電子的にプロジェクションされた環境にいるような経験をすることができる。
360゜コンテンツはVRを具現、提供するためのコンテンツ全般を意味し、360゜ビデオ及び/又は360゜オーディオを含む。360゜ビデオはVRを提供するために必要な、全方向(360゜)が同時にキャプチャー又は再生されるビデオ又はイメージコンテンツを意味する。360゜ビデオは3Dモデルによって様々な形態の3D空間上に表されるビデオ又はイメージを意味し、例えば、360゜ビデオは球形(Spherical)面上に表されることができる。360゜オーディオもVRを提供するためのオーディオコンテンツであって、音響発生地が3次元の特定の空間上に位置すると認知できる、空間的(Spatial)オーディオコンテンツを意味する。360゜コンテンツは生成、処理されてユーザに伝送され、ユーザは360゜コンテンツを用いてVR経験を消費する。以下、360゜コンテンツ/ビデオ/イメージ/オーディオなどは、単位(度、degree)が省略された360コンテンツ/ビデオ/イメージ/オーディオなどと使用されるか、又はVRコンテンツ/ビデオ/イメージ/オーディオなどと使用されることができる。また、360゜コンテンツ/ビデオ/イメージ/オーディオなどは、全方位コンテンツ/ビデオ/イメージ/オーディオなどの用語とも混用できる。
本発明は特に360ビデオを効果的に提供する方法の案を提案する。360ビデオを提供するために、まず1つ以上のカメラにより360ビデオがキャプチャーされる。キャプチャーされた360ビデオは一連の過程を経て伝送され、受信側では受信されたデータを再び元来の360ビデオに加工してレンダリングすることができる。これにより360ビデオがユーザに提供される。
具体的には、360ビデオ提供のための全過程はキャプチャー過程(process)、準備過程、伝送過程、プロセシング過程、レンダリング過程及び/又はフィードバック過程を含む。
キャプチャー過程は、1つ以上のカメラで複数の視点の各々に対するイメージ又はビデオをキャプチャーする過程を意味する。キャプチャー過程により図示された(t1010)のようなイメージ/ビデオデータが生成される。図示された(t1010)の各平面は各視点に対するイメージ/ビデオを意味する。このキャプチャーされた複数のイメージ/ビデオをロー(raw)データとも言える。キャプチャー過程ではキャプチャーに関連するメタデータが生成されることができる。
該キャプチャーのためにはVRのための特殊カメラが使用されることができる。実施例によってコンピューターで生成された仮想の空間に対する360ビデオを提供しようとする場合、実際のカメラによるキャプチャーではないことがある。この場合、単に関連データが生成される過程をもって該当キャプチャー過程に代えることができる。
準備過程は、キャプチャーされたイメージ/ビデオ及びキャプチャー過程で発生したメタデータを処理する過程である。キャプチャーされたイメージ/ビデオは、この準備過程において、ステッチング過程、プロジェクション過程、リージョンごとのパッキング過程(Region−wise Packing)及び/又はエンコーディング過程などを経る。
まず各々のイメージ/ビデオはステッチング(Stitching)過程を経る。ステッチング過程は、各々のキャプチャーされたイメージ/ビデオを連結して1つのパノラマイメージ/ビデオ又は球形のイメージ/ビデオを形成する過程である。
その後、ステッチングされたイメージ/ビデオは、プロジェクション(Projection)過程を経る。プロジェクション過程において、ステッチングされたイメージ/ビデオは2Dイメージ上にプロジェクションされる。この2Dイメージは、文脈により2Dイメージフレームとも呼ばれる。2Dイメージにプロジェクションすることを、2Dイメージにマッピングするとも表現できる。プロジェクションされたイメージ/ビデオデータは、図示した(t1020)のような2Dイメージ形態にもなる。
2Dイメージ上にプロジェクションされたビデオデータは、ビデオコーディング効率などを高めるために、リージョンごとのパッキング過程(Region−wise Packing)を経る。リージョンごとのパッキングとは、2Dイメージ上にプロジェクションされたビデオデータをリージョン(Region)ごとに分けて処理を加える過程を意味する。ここで、リージョン(Region)とは、360ビデオデータがプロジェクションされた2Dイメージが分かれた領域を意味する。このリージョンは、実施例によって、2Dイメージを均等に分けて区分するか、或いは任意に分かれて区分されることができる。また実施例によってリージョンはプロジェクションスキームにより区分されることもできる。リージョンごとのパッキング過程は選択的(optional)過程であり、準備過程で省略することもできる。
実施例によって、この処理過程は、ビデオコーディングの効率を高めるために、各々のリージョンを回転したり2Dイメージ上に再配列したりする過程を含むことができる。例えば、リージョンを回転してリージョンの特定の辺が互いに近接することにより、コーディング時の効率を向上させることができる。
実施例によって、この処理過程は、360ビデオ上の領域ごとにレゾリューション(resolution)を差別化するために、特定のリージョンに対するレゾリューションを上げるか或いは下げる過程を含むことができる。例えば、360ビデオ上において相対的にもっと重要な領域に該当するリージョンは、他のリージョンよりレゾリューションを上げることができる。2Dイメージ上にプロジェクションされたビデオデータ又はリージョンごとのパッキングされたビデオデータは、ビデオコーデックを通じたエンコーディング過程を経ることができる。
実施例によって、準備過程は、さらにエディット(editing)過程などを含むことができる。このエディット過程においては、さらにプロジェクション前後のイメージ/ビデオデータに対する編集などが行われる。準備過程でも同様に、ステッチング/プロジェクション/エンコーディング/エディットなどに関するメタデータが生成されることができる。また、2Dイメージ上にプロジェクションされたビデオデータの初期視点、或いはROI(Region of Interest)などに関するメタデータが生成されることができる。
伝送過程は、準備過程を経たイメージ/ビデオデータ及びメタデータを処理して伝送する過程である。伝送のために任意の伝送プロトコルによる処理が行われる。伝送のための処理が行われたデータは、放送網及び/又はブロードバンドを介して伝達される。このデータはオン・デマンド(On Demand)方式で受信側に伝達されることもできる。受信側では様々な経路を通じて該当データを受信する。
プロセシング過程は、受信したデータをデコーディングし、プロジェクションされているイメージ/ビデオデータを3Dモデル上にリプロジェクション(Re−projection)する過程を意味する。この過程において、2Dイメージ上にプロジェクションされているイメージ/ビデオデータが3D空間上にリプロジェクションされることができる。この過程を文脈により、マッピング、プロジェクションとも呼ぶ。この時、マッピングされる3D空間は、3Dモデルによって異なる形態を有する。例えば、3Dモデルとしては、球形(Sphere)、キューブ(Cube)、シリンダー(Cylinder)又はピラミッド(Pyramid)などがある。
実施例によって、プロセシング過程は、さらにエディット(editing)過程、アップスケーリング(upscaling)過程などを含む。このエディット過程においては、さらにリプロジェクション前後のイメージ/ビデオデータに対する編集などが行われる。イメージ/ビデオデータが縮小されている場合は、アップスケーリング過程においてサンプルのアップスケーリングによりそのサイズを拡大することができる。必要な場合、ダウンスケーリングによりサイズを縮小する作業を行うこともできる。
レンダリング過程は、3D空間上にリプロジェクションされたイメージ/ビデオデータをレンダリングしてディスプレイする過程を意味する。リプロジェクションとレンダリングを合わせて、3Dモデル上にレンダリングするとも表現できる。3Dモデル上にリプロジェクションされた(又は3Dモデル上にレンダリングされた)イメージ/ビデオは、図示された(t1030)のような形態を有することができる。図示された(t1030)は球形(Sphere)の3Dモデルにリプロジェクションされた場合である。ユーザはVRディスプレイなどによりレンダリングされたイメージ/ビデオの一部領域を見ることができる。この時、ユーザが見る領域は図示された(t1040)のような形態であることができる。
フィードバック過程は、ディスプレイ過程から得られる様々なフィードバック情報を送信側に伝達する過程を意味する。フィードバック過程により、360ビデオの消費において双方向性(Interactivity)が提供される。実施例によって、フィードバック過程でヘッドオリエンテーション(Head Orientation)情報、ユーザが現在見ている領域を示すビューポート(Viewport)情報などが送信側に伝達される。実施例によって、ユーザはVR環境上に具現されたものと相互作用することもできるが、この場合、その相互作用に関連する情報がフィードバック過程で送信側或いはサービス供給者に伝達される。実施例によって、フィードバック過程は省略できる。
ヘッドオリエンテーション情報はユーザのヘッド位置、角度、動きなどに関する情報を意味する。これらの情報に基づいてユーザが現在360ビデオで見ている領域に関する情報、即ち、ビューポート情報を計算することができる。
ビューポート情報は、現在ユーザが360ビデオで見ている領域に関する情報である。これによりゲイズ分析(Gaze Analysis)が行われ、ユーザがどのような方式で360ビデオを消費するか、360ビデオのどの領域をどのくらい凝視するかなどを確認できる。ゲイズ分析は、受信側で行われて送信側にフィードバックチャネルを介して伝達される。VRディスプレイなどの装置は、ユーザのヘッド位置/方向、装置が支援する垂直(vertical)或いは水平(Horizontal)FOVなどに基づいて、ビューポート領域を抽出することができる。
実施例によって、上述したフィードバック情報は送信側に伝達されるだけではなく、受信側で消費されることもできる。即ち、上述したフィードバック情報を用いて受信側のデコーディング、リプロジェクション、レンダリング過程などが行われる。例えば、ヘッドオリエンテーション情報及び/又はビューポート情報を用いて現在ユーザが見ている領域に対する360ビデオのみを優先してデコーディング及びレンダリングすることができる。
ここで、ビューポート(viewport)又はビューポート領域は、ユーザが360ビデオで見ている領域を意味する。視点(viewpoint)はユーザが360ビデオで見ている地点であって、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とする領域であるが、その領域が占めるサイズ、形態などは後述するFOV(Field Of View)により決定される。
上述した360ビデオ提供のための全体アーキテクチャ内において、キャプチャー/プロジェクション/エンコーディング/伝送/デコーディング/リプロジェクション/レンダリングの一連の過程を経るイメージ/ビデオデータを、360ビデオデータと呼ぶ。360ビデオデータという用語はまた、かかるイメージ/ビデオデータに関連するメタデータ乃至シグナリング情報を含む概念としても使用される。
図2は本発明の一側面(aspect)による360゜ビデオの伝送装置を示す図である。
一側面によれば、本発明は360ビデオの伝送装置に関連する。本発明による360ビデオの伝送装置は、上述した準備過程乃至伝送過程に関連する動作を行う。本発明による360ビデオの伝送装置は、データ入力部、ステッチャー(Stitcher)、プロジェクション処理部、リージョンごとのパッキング処理部(図示せず)、メタデータ処理部、(送信側)フィードバック処理部、データエンコーダー、カプセル化処理部、伝送処理部及び/又は伝送部を、内部/外部エレメントとして含む。
データ入力部にはキャプチャーされた各視点ごとのイメージ/ビデオが入力される。この視点ごとのイメージ/ビデオは1つ以上のカメラによりキャプチャーされたイメージ/ビデオである。また、データ入力部にはキャプチャー過程で発生したメタデータが入力される。データ入力部は入力された視点ごとのイメージ/ビデオをステッチャーに伝達し、キャプチャー過程のメタデータをシグナリング処理部に伝達する。
ステッチャーはキャプチャーされた視点ごとのイメージ/ビデオに対するステッチング作業を行う。ステッチャーはステッチングされた360ビデオデータをプロジェクション処理部に伝達する。ステッチャーには、必要な場合、メタデータ処理部から必要なメタデータが伝達されてステッチング作業に用いることができる。ステッチャーはステッチング過程で発生したメタデータをメタデータ処理部に伝達する。ステッチング過程のメタデータには、ステッチングが行われたか否か、ステッチングタイプなどの情報が含まれている。
プロジェクション処理部は、ステッチングされた360ビデオデータを2Dイメージ上にプロジェクションすることができる。プロジェクション処理部は、様々なスキーム(scheme)によってプロジェクションを行うが、これについては後述する。プロジェクション処理部は、各視点ごとの360ビデオデータの該当深さ(depth)を考慮してマッピングを行う。プロジェクション処理部には、必要な場合、メタデータ処理部からプロジェクションに必要なメタデータが伝達されてプロジェクション作業に用いることができる。プロジェクション処理部は、プロジェクション過程で発生したメタデータをメタデータ処理部に伝達する。プロジェクション処理部のメタデータとしては、プロジェクションスキームの種類などがある。
リージョンごとのパッキング処理部(図示せず)は、上述したリージョンごとのパッキング過程を行うことができる。即ち、リージョンごとのパッキング処理部は、プロジェクションされた360ビデオデータをリージョンごとに分け、各リージョンを回転、再配列するか、或いは各リージョンのレゾリューションを変更するなどの処理を行う。上述したように、リージョンごとのパッキング過程は選択的(optional)過程であり、リージョンごとのパッキングが行われない場合、リージョンごとのパッキング処理部は省略できる。リージョンごとのパッキング処理部には、必要な場合、メタデータ処理部からリージョンごとのパッキングに必要なメタデータが伝達されてリージョンごとのパッキング作業に用いることができる。リージョンごとのパッキング処理部は、リージョンごとのパッキング過程で発生したメタデータをメタデータ処理部に伝達することができる。リージョンごとのパッキング処理部のメタデータとしては、各リージョンの回転程度、サイズなどがある。
上述したステッチャー、プロジェクション処理部及び/又はリージョンごとのパッキング処理部は、実施例によって1つのハードウェアコンポーネントで行われる。
メタデータ処理部は、キャプチャー過程、ステッチング過程、プロジェクション過程、リージョンごとのパッキング過程、エンコーディング過程、カプセル化過程及び/又は伝送のための処理過程で発生するメタデータを処理することができる。メタデータ処理部は、かかるメタデータを用いて360ビデオ関連メタデータを生成する。実施例によって、メタデータ処理部は360ビデオ関連メタデータをシグナリングテーブルの形態で生成することもできる。文脈により、360ビデオ関連メタデータは、メタデータ又は360ビデオ関連シグナリング情報とも呼ばれる。また、メタデータ処理部は獲得又は生成したメタデータを必要によって360ビデオの伝送装置の内部エレメントに伝達できる。メタデータ処理部は360ビデオ関連メタデータが受信側に伝送されるようにデータエンコーダー、カプセル化処理部及び/又は伝送処理部に伝達することができる。
データエンコーダーは、2Dイメージ上にプロジェクションされた360ビデオデータ及び/又はリージョンごとのパッキングされた360ビデオデータをエンコーディングすることができる。360ビデオデータは様々なフォーマットにエンコーディングできる。
カプセル化処理部は、エンコーディングされた360ビデオデータ及び/又は360ビデオ関連メタデータをファイルなどの形態でカプセル化することができる。ここで、360ビデオ関連メタデータは、上述したメタデータ処理部から伝達されたものである。カプセル化処理部は、該当データをISOBMFF、CFFなどのファイルフォーマットにカプセル化したり、その他のDASHセグメントなどの形態に処理したりすることができる。カプセル化処理部は、実施例によって360ビデオ関連メタデータをファイルフォーマット上に含ませることができる。360関連メタデータは例えば、ISOBMFFファイルフォーマット上の様々なレベルのボックス(box)に含まれるか或いはファイル内で所定のトラック内のデータに含まれる。実施例によって、カプセル化処理部は、360ビデオ関連メタデータ自体をファイルにカプセル化することができる。伝送処理部は、ファイルフォーマットによってカプセル化された360ビデオデータに伝送のための処理を行うことができる。伝送処理部は、任意の伝送プロトコルによって360ビデオデータを処理することができる。伝送のための処理には放送網を介した伝達のための処理、ブロードバンドを介した伝達のための処理を含む。実施例によって、伝送処理部には、360ビデオデータだけではなく、メタデータ処理部から360ビデオ関連メタデータが伝達され、そこに伝送のための処理を加えることもできる。
伝送部は、伝送処理された360ビデオデータ及び/又は360ビデオ関連メタデータを放送網及び/又はブロードバンドを介して伝送する。伝送部は放送網を介した伝送のためのエレメント及び/又はブロードバンドを介した伝送のためのエレメントを含むことができる。
本発明による360ビデオの伝送装置の一実施例によれば、360ビデオの伝送装置はさらに、データ貯蔵部(図示せず)を内部/外部エレメントとして含むことができる。データ貯蔵部は、エンコーディングされた360ビデオデータ及び/又は360ビデオ関連メタデータを伝送処理部に伝達する前に貯蔵することができる。このデータが貯蔵される形態はISOBMFFなどのファイル形態である。実時間に360ビデオを伝送する場合にはデータ貯蔵部が不要であることもあるが、オン・デマンド、NRT(Non Real Time)、ブロードバンドなどを介して伝達する場合にはカプセル化された360データがデータ貯蔵部に一定期間貯蔵されてから伝送されることもできる。
本発明による360ビデオの伝送装置の他の実施例によれば、360ビデオの伝送装置はさらに、(送信側)フィードバック処理部及び/又はネットワークインターフェース(図示せず)を内部/外部エレメントとして含むことができる。ネットワークインターフェースには、本発明による360ビデオの受信装置からフィードバック情報が伝達され、これを送信側フィードバック処理部に伝達する。送信側フィードバック処理部は、フィードバック情報をステッチャー、プロジェクション処理部、リージョンごとのパッキング処理部、データエンコーダー、カプセル化処理部、メタデータ処理部及び/又は伝送処理部に伝達する。実施例によって、フィードバック情報はメタデータ処理部に一旦伝達された後、再び各々の内部エレメントに伝達されることができる。フィードバック情報が伝達された内部エレメントは、今後の360ビデオデータ処理にフィードバック情報を反映することができる。
本発明による360ビデオの伝送装置のさらに他の実施例によれば、リージョンごとのパッキング処理部は、各リージョンを回転して2Dイメージ上にマッピングすることができる。この時、各リージョンは互いに異なる方向、互いに異なる角度に回転して2Dイメージ上にマッピングされる。リージョンの回転は、360ビデオデータが球形の面上においてプロジェクション前に隣接した部分、ステッチングされた部分などを考慮して行われる。リージョンの回転に関する情報、即ち、回転方向、角度などは360ビデオ関連メタデータによりシグナリングされる。本発明による360ビデオの伝送装置のさらに他の実施例によれば、データエンコーダーは各リージョンごとに異なるようにエンコーディングを行うことができる。データエンコーダーは特定のリージョンは高品質に、他のリージョンは低品質にエンコーディングすることができる。送信側フィードバック処理部は、360ビデオの受信装置から伝達されたフィードバック情報をデータエンコーダーに伝達して、データエンコーダーがリージョンごとに差別化したエンコーディング方法を使用するようにする。例えば、送信側フィードバック処理部は受信側から伝達されたビューポート情報をデータエンコーダーに伝達することができる。データエンコーダーはビューポート情報が指示する領域を含むリージョンに対して、他のリージョンよりもっと高い品質(UHDなど)にエンコーディングを行うことができる。
本発明による360ビデオの伝送装置のさらに他の実施例によれば、伝送処理部は、各リージョンごとに異なるように伝送のための処理を行う。伝送処理部はリージョンごとに異なる伝送パラメータ(モデュレーションオーダー、コードレートなど)を適用して、各リージョンごとに伝達されるデータの剛健性(robustenss)を異なるようにする。
この時、送信側のフィードバック処理部は、360ビデオの受信装置から伝達されたフィードバック情報を伝送処理部に伝達して、伝送処理部がリージョンごとに差別化された伝送処理を行うようにする。例えば、送信側のフィードバック処理部は受信側から伝達されたビューポート情報を伝送処理部に伝達する。伝送処理部は該当ビューポート情報が指示する領域を含むリージョンに対して、他のリージョンよりもっと高い剛健性を有するように伝送処理を行う。
上述した本発明による360ビデオの伝送装置の内部/外部エレメントは、ハードウェアで具現されるハードウェアエレメントであることができる。実施例によって、内部/外部エレメントは変更、省略されるか、或いは他のエレメントに代替、統合されることができる。実施例によって、付加エレメントが360ビデオの伝送装置に追加されることもできる。
図3は本発明の他の側面による360゜ビデオの受信装置を示す図である。
他の側面によれば、本発明は360ビデオの受信装置に関連する。本発明による360ビデオの受信装置は、上述したプロセシング過程及び/又はレンダリング過程に関連する動作を行う。本発明による360ビデオの受信装置は、受信部、受信処理部、脱カプセル化処理部、データデコーダー、メタデータパーサー、(受信側)フィードバック処理部、リプロジェクション処理部及び/又はレンダラを内部/外部エレメントとして含む。
受信部は、本発明による360ビデオの伝送装置が伝送した360ビデオデータを受信する。伝送されるチャネルによって受信部は放送網を介して360ビデオデータを受信し、ブロードバンドを介して360ビデオデータを受信する。
受信処理部は、受信された360ビデオデータに対して伝送プロトコルによる処理を行う。伝送側で伝送のための処理が行われることに対応して、受信処理部は上述した伝送処理部の逆過程を行うことができる。受信処理部は、得られた360ビデオデータを脱カプセル化処理部に伝達し、得られた360ビデオ関連メタデータをメタデータパーサーに伝達する。受信処理部が得た360ビデオ関連メタデータは、シグナリングテーブルの形態であることができる。
脱カプセル化処理部は、受信処理部から伝達されたファイル形態の360ビデオデータを脱カプセル化する。脱カプセル化処理部は、ISOBMFFなどによるファイルを脱カプセル化して、360ビデオデータ乃至360ビデオ関連メタデータを得る。得られた360ビデオデータはデータデコーダーに、得られた360ビデオ 関連メタデータはメタデータパーサーに伝達する。脱カプセル化処理部が得た360ビデオ関連メタデータは、ファイルフォーマット内のボックス或いはトラック形態であることができる。脱カプセル化処理部には、必要な場合、メタデータパーサーから脱カプセル化に必要なメタデータが伝達される。
データデコーダーは、360ビデオデータに対するデコーディングを行う。データデコーダーにはメタデータパーサーからデコーディングに必要なメタデータが伝達される。データデコーディング過程で得た360ビデオ関連メタデータは、メタデータパーサーに伝達されることもできる。
メタデータパーサーは、360ビデオ関連メタデータに対するパーシング(parsing)/デコーディングを行う。メタデータパーサーは得られたメタデータをデータ脱カプセル化処理部、データデコーダー、リプロジェクション処理部及び/又はレンダラに伝達することができる。
リプロジェクション処理部は、デコーディングされた360ビデオデータに対してリプロジェクションを行う。リプロジェクション処理部は、360ビデオデータを3D空間にリプロジェクションする。3D空間は使用される3Dモデルによって異なる形態を有することができる。リプロジェクション処理部には、メタデータパーサーからリプロジェクションに必要なメタデータが伝達される。例えば、リプロジェクション処理部には、使用される3Dモデルのタイプ及びその細部情報に関する情報がメタデータパーサーから伝達される。実施例によって、リプロジェクション処理部はリプロジェクションに必要なメタデータを用いて、3D空間上の特定の領域に該当する360ビデオデータのみを3D空間にリプロジェクションすることもできる。
レンダラは、リプロジェクションされた360ビデオデータをレンダリングする。上述したように、360ビデオデータが3D空間上にレンダリングされると表現することもできるが、このように2つの過程が同時に行われる場合、リプロジェクション処理部とレンダラが統合されて、これら全ての過程がレンダラで行われる。実施例によって、レンダラ(Renderer)はユーザの視点情報によってユーザが見ている部分のみをレンダリングすることもできる。
ユーザはVRディスプレイなどを通じてレンダリングされた360ビデオの一部領域を見ることができる。VRディスプレイは360ビデオを再生する装置であって、360ビデオの受信装置に含まれることができ(tethered)、別の装置として360ビデオの受信装置に連結されることもできる(un−tethered)。
本発明による360ビデオの受信装置の一実施例によれば、360ビデオの受信装置はさらに、(受信側)フィードバック処理部及び/又はネットワークインターフェース(図示せず)を内部/外部エレメントとして含む。受信側のフィードバック処理部は、レンダラ、リプロジェクション処理部、データデコーダー、脱カプセル化処理部及び/又はVRディスプレイからフィードバック情報を得て処理することができる。フィードバック情報は、ビューポート情報、ヘッドオリエンテーション情報、ゲイズ(Gaze)情報などを含む。ネットワークインターフェースは、フィードバック情報を受信側のフィードバック処理部から受けて、これを360ビデオの伝送装置に伝送できる。
上述したように、フィードバック情報は送信側に伝達されるだけではなく、受信側で消費されることもできる。受信側のフィードバック処理部は得られたフィードバック情報を360ビデオの受信装置の内部エレメントに伝達して、レンダリングなどの過程に反映させることができる。受信側のフィードバック処理部はフィードバック情報をレンダラ、リプロジェクション処理部、データデコーダー及び/又は脱カプセル化処理部に伝達することができる。例えば、レンダラは、フィードバック情報を活用してユーザが見ている領域を優先してレンダリングすることができる。また、脱カプセル化処理部、データデコーダーなどはユーザが見ている領域乃至見る予定の領域を優先して脱カプセル化、デコーディングできる。
上述した本発明による360ビデオの受信装置の内部/外部エレメントは、ハードウェアで具現されるハードウェアエレメントであることができる。実施例によって、内部/外部エレメントは変更、省略されるか、或いは他のエレメントに代替、統合されることができる。実施例によって、付加エレメントが360ビデオの受信装置に追加されることもできる。
本発明のさらに他の側面は、360ビデオを伝送する方法及び360ビデオを受信する方法に関連する。本発明による360ビデオを伝送/受信する方法は、各々上述した本発明による360ビデオ伝送/受信装置又はその装置の実施例により行われる。
上述した本発明による360ビデオの伝送/受信装置、伝送/受信方法の各々の実施例及びその内部/外部エレメント各々の実施例を互いに組み合わせることができる。例えば、プロジェクション処理部の実施例とデータエンコーダーの実施例を互いに組み合わせて、その場合の数ほどの360ビデオの伝送装置の実施例を形成することができる。このように組み合わせた実施例も本発明の範囲に属する。
図4は本発明の他の実施例による360゜ビデオの伝送装置/360゜ビデオの受信装置を示す図である。
上述したように、図示された(a)のようなアーキテクチャによって360コンテンツが提供される。360コンテンツはファイル形態で提供されるか或いはDASHなどのようにセグメント(Segment)に基づくダウンロード又はストリーミングサービスの形態で提供される。ここで360コンテンツはVRコンテンツとも呼ばれる。
上述したように、360ビデオデータ及び/又は360オーディオデータを得ることができる。(Acquisition)。
360オーディオデータは、オーディオプリプロセシング過程(Audio Preprocessing)、オーディオエンコーディング過程(Audio encoding)を経る。これらの過程でオーディオ関連メタデータが生成され、エンコーディングされたオーディオとオーディオ関連メタデータは伝送のための処理(file/Segment encapsulation)を経る。
360ビデオデータは上述した過程を経る。360ビデオの伝送装置のステッチャーは、360ビデオデータにステッチングを行うことができる(Visual stitching)。この過程は実施例によって省略でき、受信側で行われることもできる。360ビデオの伝送装置のプロジェクション処理部は、360ビデオデータを2Dイメージ上にプロジェクションすることができる(Projection and mapping(packing))。
このステッチング及びプロジェクション過程は、(b)に具体的に示されている。図示された(b)において、360ビデオデータ(Input Images)が伝達されると、そこにステッチング及びプロジェクションが行われる。プロジェクション過程は、具体的には、ステッチングされた360ビデオデータを3D空間上にプロジェクションし、プロジェクションされた360ビデオデータが2Dイメージ上に配列されることである。本明細書においては、この過程を360ビデオデータを2Dイメージ上にプロジェクションすると表現することもある。ここで、3D空間は球(sphere)又はキューブ(cube)などである。この3D空間は、受信側でリプロジェクションに使用される3D空間と同一であることができる。
2Dイメージはプロジェクテッドフレーム(C、Projected frame)とも言われる。この2Dイメージにはさらに、リージョンごとのパッキング(Region−wise packing)が選択的に行われる。リージョンごとのパッキングが行われる場合、各リージョン(Region)の位置、形態、サイズを指示することにより、2Dイメージ上のリージョンがパックフレーム(D、packed frame)上にマッピングされることができる。リージョンごとのパッキングが行われない場合、プロジェクテッドフレームはパックフレームと同一であることができる。リージョンについては後述する。プロジェクション過程及びリージョンごとのパッキング過程は、360ビデオデータの各リージョンが2Dイメージ上にプロジェクションされるとも表現できる。設計によって、360ビデオデータは中間過程なしにすぐパックフレームに変換されることもできる。
図示された(a)において、プロジェクションされた360ビデオデータは、イメージエンコーディング或いはビデオエンコーディングされる。同じコンテンツであっても異なる視点(viewpoints)ごとに存在できるので、同じコンテンツが互いに異なるビットストリームにエンコーディングされることができる。エンコーディングされた360ビデオデータは、上述したカプセル化処理部によってISOBMFFなどのファイルフォーマットに処理されることができる。又はカプセル化処理部は、エンコーディングされた360ビデオデータをセグメントに処理することができる。セグメントはDASHに基づく伝送のための個別トラックに含まれる。
360ビデオデータの処理と共に、上述したように360ビデオ関連メタデータが生成されることができる。このメタデータはビデオストリーム或いはファイルフォーマットに含まれて伝達される。このメタデータはエンコーディング過程やファイルフォーマットカプセル化、伝送のための処理などのような過程にも使用できる。
360オーディオ/ビデオデータは伝送プロトコルによって伝送のための処理が行われ、その後伝送される。上述した360ビデオの受信装置は、これを放送網又はブロードバンドを介して受信する。
図示された(a)において、VRサービスプラットホーム(VR service platform)は、上述した360ビデオの受信装置の一実施例に該当する。図示された(a)において、スピーカー/ヘッドホン(Loudspeakers/headphones)、ディスプレイ(Display)、ヘッド/アイトラッキングコンポーネント(Head/eye tracking)は、360ビデオの受信装置の外部装置或いはVRアプリケーションにより行われるものと示されているが、実施例によって360ビデオの受信装置は、これらを全て含むこともできる。実施例によって、ヘッド/アイトラッキングコンポーネントは、上述した受信側フィードバック処理部に該当することができる。
360ビデオの受信装置は、360オーディオ/ビデオデータに受信のための処理(File/Segment decapsulation)を行うことができる。360オーディオデータは、オーディオデコーディング(Audio decoding)、オーディオレンダリング(Audio rendering)の過程を経て、スピーカー/ヘッドホンを通じてユーザに提供される。
360ビデオデータは、イメージデコーディング或いはビデオデコーディング、レンダリング(Visual rendering)の過程を経て、ディスプレイを通じてユーザに提供される。ここで、ディスプレイはVRを支援するディスプレイであるか或いは一般ディスプレイである。
上述したように、レンダリング過程は、具体的には、360ビデオデータが3D空間上にリプロジェクションされ、リプロジェクションされた360ビデオデータがレンダリングされるものである。これを360ビデオデータが3D空間上にレンダリングされると表現できる。
ヘッド/アイトラッキングコンポーネントは、ユーザのヘッドオリエンテーション情報、ゲイズ情報、ビューポート(Viewport)情報などを得て処理することができる。これについては上述した。
受信側には上述した受信側の過程と通信するVRアプリケーションが存在する。
図5は本発明の3D空間を説明するために飛行機主軸(Aircraft Principal Axes)概念を示す図である。
本発明においては、3D空間における特定の地点、位置、方向、間隔、領域などを表現するために飛行機主軸概念が使用される。
即ち、本発明においては、プロジェクション前又はリプロジェクション後の3D空間について記載し、それに対するシグナリングを行うために飛行機主軸の概念が使用されることができる。実施例によって、X、Y、Z軸の概念又は球座標系を用いた方法が使用される。
飛行機は3次元に自由に回転できる。3次元をなす軸を各々、ピッチ(pitch)軸、ヨー(yaw)軸及びロール(roll)軸という。本明細書においては、これらを簡略にpitch、yaw、roll又はpitch方向、yaw方向、roll方向と表現することもある。
Pitch軸は、飛行機の先端が上/下に回転する方向の基準になる軸を意味する。示された飛行機の主軸概念において、Pitch軸は飛行機の翼から翼に続く軸を意味する。
Yaw軸は、飛行機の先端が左/右に回転する方向の基準になる軸を意味する。示された飛行機の主軸概念において、yaw軸は飛行機の上から下に続く軸を意味する。
Roll軸は、示された飛行機の主軸概念において飛行機の先端から後端に続く軸であって、roll方向の回転とは、roll軸を基準とする回転を意味する。
上述したように、pitch、yaw、rollの概念を通じて本発明における3D空間が記載される。
図6は本発明の一実施例によるプロジェクションスキームを示す図である。
上述したように、本発明による360ビデオの伝送装置のプロジェクション処理部は、ステッチングされた360ビデオデータを2Dイメージ上にプロジェクションすることができる。この過程において様々なプロジェクションスキームが活用される。
本発明による360ビデオの伝送装置のさらに他の実施例によれば、プロジェクション処理部はキュービックプロジェクション(Cubic Projection)スキームを用いてプロジェクションを行うことができる。例えば、ステッチングされた360ビデオデータは球形の面上に表されることができる。プロジェクション処理部はかかる360ビデオデータをキューブ(Cube、正六面体)形態に分けて、2Dイメージ上にプロジェクションすることができる。球形の面上の360ビデオデータは、キューブの各面に対応して、2Dイメージ上に(a)左側又は(a)右側のようにプロジェクションできる。
本発明による360ビデオの伝送装置のさらに他の実施例によれば、プロジェクション処理部は、シリンダー型プロジェクション(Cylindrical Projection)スキームを用いてプロジェクションを行うことができる。同様に、ステッチングされた360ビデオデータが球形の面上に表されることができると仮定した時、プロジェクション処理部はかかる360ビデオデータをシリンダー(Cylinder)形態に分けて2Dイメージ上にプロジェクションすることができる。球形の面上の360ビデオデータは、シリンダーの側面(side)と上面(top)、底面(bottom)に各々対応して、2Dイメージ上に(b)左側又は(b)右側のようにプロジェクションされることができる。
本発明による360ビデオの伝送装置のさらに他の実施例によれば、プロジェクション処理部は、ピラミッドプロジェクション(Pyramid Projection)スキームを用いてプロジェクションを行うことができる。同様に、ステッチングされた360ビデオデータが球形の面上に表されることができると仮定した時、プロジェクション処理部はかかる360ビデオデータをピラミッド形態と思い、各々の面を分けて2Dイメージ上にプロジェクションすることができる。球形の面上の360ビデオデータは、ピラミッドの底面(front)、ピラミッドの4方向の側面(Left top、Left bottom、Right top、Right bottom)に各々対応して、2Dイメージ上に(c)左側又は(c)右側のようにプロジェクションされることができる。
実施例によって、プロジェクション処理部は、上述したスキーム以外に等正方形プロジェクション(Equirectangular Projection)スキーム、パノラミックプロジェクション(Panoramic Projection)スキームなどを用いて、プロジェクションを行うことができる。
上述したように、リージョン(Region)とは、360ビデオデータがプロジェクションされた2Dイメージが分かれた領域を意味する。このリージョンはプロジェクションスキームによってプロジェクションされた2Dイメージ上の各面に一致する必要はない。しかし、実施例によって、プロジェクションされた2Dイメージ上の各面がリージョンと対応するようにリージョンが区分されて、リージョンごとのパッキングが行われることもできる。実施例によって、複数の面が1つのリージョンに対応することができ、1つの面が複数のリージョンに対応するようにリージョンが区分されることもできる。この場合、リージョンはプロジェクションスキームによって変化することができる。例えば、(a)において正六面体の各面(top、bottom、front、left、right、back)は各々リージョンであることができる。(b)において、シリンダーの側面(side)、上面(top)、底面(bottom)は各々リージョンであることができる。(c)において、ピラミッドの底面(front)、4方向の側面(Left top、Left bottom、Right top、Right bottom)は各々リージョンであることができる。
図7は本発明の一実施例によるタイル(tile)を示す図である。
2Dイメージにプロジェクションされた360ビデオデータ又はリージョンごとのパッキングまで行われた360ビデオデータは1つ以上のタイルに区分されることができる。示された(a)は1つの2Dイメージが16個のタイルに分けられた形態を示している。ここで、2Dイメージとは、上述したプロジェクテッドフレーム或いはパックフレームである。本発明による360ビデオの伝送装置のさらに他の実施例によれば、データエンコーダーは各々のタイルを独立的にエンコーディングすることができる。
上述したリージョンごとのパッキングとタイリング(tiling)は区分される。上述したリージョンごとのパッキングは、コーディング効率を高めるために又はレゾリューションを調整するために、2Dイメージ上にプロジェクションされた360ビデオデータをリージョンに区分して処理することを意味する。タイリングは、データエンコーダーがプロジェクテッドフレーム或いはパックフレームをタイルという区画に分け、該当タイルごとに独立的にエンコーディングを行うことを意味する。360ビデオが提供される時、ユーザは360ビデオの全ての部分を同時に消費しない。タイリングは制限された帯域幅(bandwidth)上にユーザが現在見ているビューポートなどの主要部分或いは一定部分に該当するタイルのみを受信側に伝送或いは消費することを可能にする。タイリングにより制限された帯域幅をもっと効率的に活用でき、受信側でも全ての360ビデオデータを同時に処理することに比べて演算の負荷を減らすことができる。
リージョンとタイルは区分されるので、2つの領域が同一である必要はない。しかし、実施例によって、リージョンとタイルは同じ領域を称することができる。実施例によって、タイルに合わせてリージョンごとのパッキングが行われてリージョンとタイルが同一になることができる。また、実施例によって、プロジェクションスキームによる各面とリージョンが同一である場合、プロジェクションスキームによる各面、リージョン、タイルが同一の領域を称することができる。文脈により、リージョンはVRリージョン、タイルをタイルリージョンと呼ぶことができる。
ROI(Region of Interest)は、360コンテンツ提供者が提案するユーザの関心領域を意味する。360コンテンツ提供者は360ビデオを制作する時、どの特定の領域にユーザが関心を持つと判断し、それを考慮して360ビデオを制作する。実施例によって、ROIは360ビデオのコンテンツにおいて重要な内容が再生される領域に該当する。
本発明による360ビデオの伝送/受信装置のさらに他の実施例によれば、受信側のフィードバック処理部はビューポート情報を抽出、収集してこれを送信側フィードバック処理部に伝達する。この過程においてビューポート情報は両側のネットワークインターフェースを用いて伝達できる。図示された(a)の2Dイメージにおいてビューポート(t6010)が示されている。ここで、ビューポートは2Dイメージ上の9つのタイルにかけていることができる。
この場合、360ビデオの伝送装置はさらに、タイリングシステムを含むことができる。実施例によって、タイリングシステムはデータエンコーダーの後に位置することもでき(図示された(b))、上述したデータエンコーダー或いは伝送処理部内に含まれることもでき、別個の内部/外部エレメントとして360ビデオの伝送装置に含まれることもできる。
タイリングシステムは、送信側のフィードバック処理部からビューポート情報を受ける。タイリングシステムは、ビューポート領域が含まれるタイルのみを選別して伝送することができる。図示された(a)の2Dイメージにおいて、合計16個のタイルのうち、ビューポート領域(t6010)を含む9つのタイルのみが伝送される。ここで、タイリングシステムは、ブロードバンドを介したユニキャスト方式でタイルを伝送できる。ユーザによってビューポート領域が異なるためである。
またこの場合、送信側のフィードバック処理部はビューポート情報をデータエンコーダーに伝達することができる。データエンコーダーはビューポート領域を含むタイルに対して他のタイルよりも高い品質でエンコーディングを行うことができる。
またこの場合、送信側のフィードバック処理部はビューポート情報をメタデータ処理部に伝達することができる。メタデータ処理部はビューポート領域に関連するメタデータを360ビデオの伝送装置の各々の内部エレメントに伝達するか或いは360ビデオ関連メタデータに含ませることができる。
かかるタイリング方式によって伝送帯域幅(bandwidth)を節約することができ、タイルごとに差別化された処理を行って効率的データ処理/伝送が可能になる。
上述したビューポート領域に関連する実施例は、ビューポート領域ではない他の特定の領域についても同様に適用できる。例えば、上述したゲイズ分析により、ユーザが最も関心を持っていると判断される領域、ROI領域、ユーザがVRディスプレイを通じて360ビデオに接する時に最初に再生される領域(初期視点、Initial Viewpoint)などについても、上述したビューポート領域のような方式の処理が行われる。
本発明による360ビデオの伝送装置のさらに他の実施例によれば、伝送処理部は、各タイルごとに異なるように伝送のための処理を行う。伝送処理部はタイルごとに異なる伝送パラメータ(モデュレーションオーダー、コードレートなど)を適用して、各タイルごとに伝達されるデータの剛健性(robustenss)を異なるようにする。
この時、送信側のフィードバック処理部は、360ビデオの受信装置から伝達されたフィードバック情報を伝送処理部に伝達し、伝送処理部がタイルごとに差別化された伝送処理を行うようにする。例えば、送信側のフィードバック処理部は受信側から伝達されたビューポート情報を伝送処理部に伝達する。伝送処理部は該当ビューポート領域を含むタイルに対して他のタイルより高い剛健性を有するように伝送処理を行う。
図8は本発明の一実施例による360゜ビデオ関連メタデータを示す図である。
上述した360ビデオ関連メタデータは、360ビデオに対する多様なメタデータを含む。文脈により、360ビデオ関連メタデータは、360ビデオ関連シグナリング情報とも呼ばれる。360ビデオ関連メタデータは別のシグナリングテーブルに含まれて伝送されることができ、DASH MPD内に含まれて伝送されることもでき、或いはISOBMFFなどのファイルフォーマットにbox形態に含まれて伝達されることもできる。360ビデオ関連メタデータがbox形態に含まれる場合、ファイル、フラグメント、トラック、サンプルエントリー、サンプルなどの様々なレベルに含まれて該当レベルのデータに関するメタデータを含むことができる。
実施例によって、後述するメタデータの一部はシグナリングテーブルで構成されて伝達され、その他の一部はファイルフォーマット内にbox或いはトラック形態に含まれることもできる。
本発明による360ビデオ関連メタデータの一実施例によると、360ビデオ関連メタデータは、プロジェクションスキームなどに関する基本メタデータ、立体(stereoscopic)関連メタデータ、初期視点(Initial View/Initial Viewpoint)関連メタデータ、ROI関連メタデータ、FOV(Field of View)関連メタデータ及び/又はクロップされた領域(cropped region)関連メタデータを含む。実施例によって360ビデオ関連メタデータは、上述したもの以外にもさらなるメタデータを含むことができる。
本発明による360ビデオ関連メタデータの実施例は、上述した基本メタデータ、立体関連メタデータ、初期視点関連メタデータ、ROI関連メタデータ、FOV関連メタデータ、クロップされた領域関連メタデータ及び/又は後に追加されるメタデータのうちのいずれか1つ以上を含む形態であることができる。本発明による360ビデオ関連メタデータの実施例は、各々が含む細部メタデータの場合の数によって多様に構成される。実施例によって360ビデオ関連メタデータは上述したこと以外にもさらなる情報を含むことができる。
基本メタデータには3Dモデル関連情報、プロジェクションスキーム関連情報などが含まれる。基本メタデータにはvr_geometryフィールド、projection_schemeフィールドなどが含まれる。実施例によって、基本メタデータはさらなる情報を含むこともできる。
vr_geometryフィールドは、該当360ビデオデータが支援する3Dモデルのタイプを指示することができる。上述したように、360ビデオデータが3D空間上にリプロジェクションされる場合、該当3D空間はvr_geometryフィールドが指示する3Dモデルによる形態を有することができる。実施例によって、レンダリング時に使用される3Dモデルは、vr_geometryフィールドが指示するリプロジェクションに使用される3Dモデルとは異なることができる。この場合、基本メタデータはさらに、レンダリング時に使用される3Dモデルを指示するフィールドを含むこともできる。該当フィールドが0、1、2、3の値を有する場合、3D空間は各々球形(Sphere)、キューブ(Cube)、シリンダー(Cylinder)、ピラミッド(Pyramid)の3Dモデルを従うことができる。該当フィールドがその他の値を有する場合は、今後の使用のために残しておくことができる(Reserved for Future Use)。実施例によって、360ビデオ関連メタデータはさらに、該当フィールドにより指示される3Dモデルに関する具体的な情報を含むことができる。ここで、3Dモデルに関する具体的な情報とは、例えば、球形の半径情報、シリンダーの高さ情報などを意味する。このフィールドは省略できる。
projection_schemeフィールドは、該当360ビデオデータが2Dイメージ上にプロジェクションされる時、使用されたプロジェクションスキームを指示することができる。該当フィールドが0、1、2、3、4、5の値を有する場合、各々等正方形のプロジェクション(Equirectangular Projection)スキーム、キュービックプロジェクションスキーム、シリンダー型のプロジェクションスキーム、タイルベース(tile−based)のプロジェクションスキーム、ピラミッドプロジェクションスキーム、パノラミックプロジェクションスキームが使用されたことができる。該当フィールドが6の値を有する場合、360ビデオデータがステッチング無しにすぐ2Dイメージ上にプロジェクションされた場合であることができる。該当フィールドがその他の値を有する場合は、今後の使用のために残しておくことができる(Reserved for Future Use)。実施例によって360ビデオ関連メタデータはさらに、該当フィールドによって特定されるプロジェクションスキームにより発生したリージョン(Region)に関する具体的な情報を含むことができる。ここで、リージョンに関する具体的な情報とは、例えば、リージョンの回転有無、シリンダーの上面(top)リージョンの半径情報などを意味する。
立体関連メタデータは360ビデオデータの3D関連属性に関する情報を含む。立体関連メタデータはis_stereoscopicフィールド及び/又はstereo_modeフィールドを含む。実施例によって立体関連メタデータはさらなる情報を含むことができる。
is_stereoscopicフィールドは、該当360ビデオデータが3Dを支援するか否かを指示することができる。該当フィールドが1であると3D支援、0であると3D未支援を意味する。このフィールドは省略できる。
stereo_modeフィールドは、該当360ビデオが支援する3Dレイアウトを指示することができる。このフィールドのみで該当360ビデオが3Dを支援するか否かを指示することができるが、この場合、上述したis_stereoscopicフィールドは省略できる。このフィールド値が0である場合、該当360ビデオはモノ(mono)モードであることができる。即ち、プロジェクションされた2Dイメージは1つのモノビュー(mono view)のみを含むことができる。この場合、該当360ビデオは3Dを支援しないこともできる。
このフィールド値が1、2である場合、該当360ビデオは各々左右(Left−Right)レイアウト、上下(top−Bottom)レイアウトに従う。左右レイアウト、上下レイアウトは、各々サイド−バイ−サイドフォーマット、トップ−ボトムフォーマットとも呼ばれる。左右レイアウトの場合、左映像/右映像がプロジェクションされた2Dイメージは、イメージフレーム上において各々左/右に位置する。上下レイアウトの場合、左映像/右映像がプロジェクションされた2Dイメージは、イメージフレーム上において各々上/下に位置する。該当フィールドがその他の値を有する場合は、今後の使用のために残しておくことができる(Reserved for Future Use)。
初期視点関連メタデータはユーザが360ビデオを最初に再生した時に見る視点(初期視点)に関する情報を含む。初期視点関連メタデータは、initial_view_yaw_degreeフィールド、initial_view_pitch_degreeフィールド及び/又はinitial_view_roll_degreeフィールドを含む。実施例によって、初期視点関連メタデータはさらなる情報を含むこともできる。
initial_view_yaw_degreeフィールド、initial_view_pitch_degreeフィールド、initial_view_roll_degreeフィールドは、該当360ビデオ再生時の初期視点を示す。即ち、再生時に最初に見るビューポートの真ん中の地点が、これらのフィールドにより表されることができる。各フィールドはその真ん中の地点が位置をyaw、pitch、roll軸を基準として回転した方向(符号)及びその程度(角度)で示すことができる。この時、FOVによって最初の再生時に見られるビューポートが決定される。FOVにより、指示された初期視点を基準とする初期ビューポートの幅及び高さ(width、height)が決定される。即ち、これらのフィールド及びFOV情報を用いて、360ビデオの受信装置はユーザに360ビデオの一定の領域を初期ビューポートとして提供することができる。
実施例によって、初期視点関連メタデータが指示する初期視点は、シーン(scene)ごとに変更される。即ち、360コンテンツの時間的流れによって360ビデオのシーンが変化するが、該当360ビデオのシーンごとにユーザが最初に見る初期視点或いは初期ビューポートが変更される。この場合、初期視点関連メタデータは各シーンごとの初期視点を指示することができる。このために、初期視点関連メタデータはさらに、該当初期視点が適用されるシーンを識別するシーン識別子を含むことができる。また360ビデオのシーンごとにFOVが変化することができるので、初期視点関連メタデータはさらに、該当シーンに該当するFOVを示すシーンごとのFOV情報を含むことができる。
ROI関連メタデータは、上述したROIに関連する情報を含む。ROI関連メタデータは、2d_roi_range_flagフィールド及び/又は3d_roi_range_flagフィールドを含む。これらのフィールドは各々ROI関連メタデータが2Dイメージに基づいてROIを表現するフィールドを含むか否か、3D空間に基づいてROIを表現するフィールドを含むか否かを指示することができる。実施例によって、ROI関連メタデータはさらに、ROIによる差分エンコーディング情報、ROIによる差分伝送処理情報などの追加情報を含むことができる。
ROI関連メタデータが2Dイメージに基づいてROIを表現するフィールドを含む場合、ROI関連メタデータは、min_top_left_xフィールド、max_top_left_xフィールド、min_top_left_yフィールド、max_top_left_yフィールド、min_widthフィールド、max_widthフィールド、min_heightフィールド、max_heightフィールド、min_xフィールド、max_xフィールド、min_yフィールド及び/又はmax_yフィールドを含むことができる。
min_top_left_xフィールド、max_top_left_xフィールド、min_top_left_yフィールド及びmax_top_left_yフィールドは、ROIの左上端の座標の最小/最大値を示すことができる。これらのフィールドは順に左上端の最小x座標、最大x座標、最小y座標及び最大y座標を示す。
min_widthフィールド、max_widthフィールド、min_heightフィールド及びmax_heightフィールドは、ROIの横サイズ(width)、縦サイズ(Height)の最小/最大値を示す。これらのフィールドは順に横サイズの最小値、横サイズの最大値、縦サイズの最小値及び縦サイズの最大値を示す。
min_xフィールド、max_xフィールド、min_yフィールド及びmax_yフィールドは、ROI内の座標の最小/最大値を示す。これらのフィールドは順にROI内の座標の最小x座標、最大x座標、最小y座標及び最大y座標を示す。これらのフィールドは省略できる。
ROI関連メタデータが3Dレンダリング空間上の座標に基づいてROIを表現するフィールドを含む場合、ROI関連メタデータは、min_yawフィールド、max_yawフィールド、min_pitchフィールド、max_pitchフィールド、min_rollフィールド、max_rollフィールド、min_field_of_viewフィールド及び/又はmax_field_of_viewフィールドを含むことができる。
min_yawフィールド、max_yawフィールド、min_pitchフィールド、max_pitchフィールド、min_rollフィールド及びmax_rollフィールドは、ROIが3D空間上において占める領域をyaw、pitch、rollの最小/最大値で示すことができる。これらのフィールドは順にyaw軸基準回転量の最小値、yaw軸基準回転量の最大値、pitch軸基準回転量の最小値、pitch軸基準回転量の最大値、roll軸基準回転量の最小値及びroll軸基準回転量の最大値を示す。
min_field_of_viewフィールド、max_field_of_viewフィールドは、該当360ビデオデータのFOVの最小/最大値を示す。FOVは360ビデオの再生時に同時にディスプレイされる視野範囲を意味する。min_field_of_viewフィールド、max_field_of_viewフィールドは各々FOVの最小値、最大値を示すことができる。これらのフィールドは省略できる。これらのフィールドは後述するFOV関連メタデータに含まれることもできる。
FOV関連メタデータは上述したFOVに関連する情報を含む。FOV関連メタデータはcontent_fov_flagフィールド及び/又はcontent_fovフィールドを含むことができる。実施例によって、FOV関連メタデータはさらに、上述したFOVの最小/最大値関連情報などの追加情報を含むこともできる。
content_fov_flagフィールドは、該当360ビデオに対して制作時に意図したFOVに関する情報が存在するか否かを指示することができる。このフィールド値が1である場合、content_fovフィールドが存在することができる。
content_fovフィールドは、該当360ビデオに対して制作時に意図したFOVに関する情報を示すことができる。実施例によって、該当360ビデオの受信装置の垂直(vertical)或いは水平(Horizontal)FOVによって、360映像のうち、ユーザに同時にディスプレイされる領域を決定される。或いは実施例によって、このフィールドのFOV情報を反映してユーザに同時にディスプレイされる360ビデオの領域が決定されることもできる。
クロップされた領域関連メタデータは、イメージフレーム上において実際の360ビデオデータを含む領域に関する情報を含む。イメージフレームは実際の360ビデオデータのプロジェクションされたアクティブビデオ領域(Active Video Area)と、そうではない領域を含む。この時、アクティブビデオ領域は、クロップされた領域又はデフォルトディスプレイ領域と称することができる。このアクティブビデオ領域は、実際のVRディスプレイ上において360ビデオとして見られる領域であり、360ビデオの受信装置又はVRディスプレイは、アクティブビデオ領域のみを処理/ディスプレイすることができる。例えば、イメージフレームの横縦比(aspect ratio)が4:3である場合、イメージフレームにおける上側の一部及び下側の一部を除いた領域のみが360ビデオデータを含むことができるが、この部分をアクティブビデオ領域と言える。
クロップされた領域関連メタデータは、is_cropped_regionフィールド、cr_region_left_top_xフィールド、cr_region_left_top_yフィールド、cr_region_widthフィールド及び/又はcr_region_heightフィールドを含むことができる。実施例によって、クロップされた領域関連メタデータはさらに、追加情報を含むことができる。
is_cropped_regionフィールドは、イメージフレームの全領域が360ビデオの受信装置或いはVRディスプレイにより使用されるか否かを示すフラッグであることができる。即ち、このフィールドはイメージフレーム全体がアクティブビデオ領域であるか否かを指示することができる。イメージフレームの一部のみがアクティブビデオ領域である場合は、さらに以下の4種類のフィールドを追加できる。
cr_region_left_top_xフィールド、cr_region_left_top_yフィールド、cr_region_widthフィールド及びcr_region_heightフィールドは、イメージフレーム上においてアクティブビデオ領域を示す。これらのフィールドは、各々アクティブビデオ領域の左上端のx座標、アクティブビデオ領域の左上端のy座標、アクティブビデオ領域の幅(width)、アクティブビデオ領域の高さ(Height)を示すことができる。幅と高さはピクセル単位で示すことができる。
上述したように、360゜ビデオ関連シグナリング情報又はメタデータは、任意に定義されたシグナリングテーブルに含まれることができ、ISOBMFF又はCommon File Formatなどのファイルフォーマットにbox形態に含まれることもでき、又はDASH MPD内に含まれて伝送されることもできる。なお、360゜メディアデータは、かかるファイルフォーマット又はDASH Segmentに含まれて伝送されることもできる。
以下、ISOBMFF及びDASH MPDについて順に説明する。
図9は本発明の一実施例によるメディアファイルの構造を示す図である。
図10は本発明の一実施例によるISOBMFF内のボックスの階層的構造を示す図である。
オーディオ又はビデオなどのメディアデータを貯蔵して伝送するために、定型化されたメディアファイルフォーマットが定義されることができる。実施例によって、メディアファイルはISO BMFF(ISO base media file format)に基づくファイルフォーマットを有することができる。
本発明によるメディアファイルは、少なくとも1つ以上のボックスを含む。ここで、ボックス(box)は、メディアデータ又はメディアデータに関連するメタデータなどを含むデータブロック或いはオブジェクトである。複数のボックスは互いに階層的構造を有し、これによりデータが分類されてメディアファイルが大容量メディアデータの貯蔵及び/又は伝送に適合した形態を有することになる。またメディアファイルは、ユーザがメディアコンテンツの特定の地点に移動するなど、メディア情報への接近に容易な構造を有する。
本発明によるメディアファイルはftypボックス、moovボックス及び/又はmdatボックスを含むことができる。
ftypボックス(ファイルタイプボックス)は、該当メディアファイルに対するファイルタイプ又は互換性関連情報を提供する。ftypボックスは該当メディアファイルのメディアデータに対する構成バージョン情報を含む。復号器はftypボックスを参照して該当メディアファイルを区分することができる。
moovボックス(ムービーボックス)は、該当メディアファイルのメディアデータに関するメタデータを含むボックスである。moovボックスは全てのメタデータのためのコンテナーの役割を果たす。moovボックスはメタデータ関連ボックスのうち、最上位層のボックスであることができる。実施例によって、moovボックスはメディアファイル内に1つのみが存在する。
mdatボックス(メディアデータボックス)は、該当メディアファイルの実際のメディアデータを入れるボックスである。メディアデータはオーディオサンプル及び/又はビデオサンプルを含むが、mdatボックスはかかるメディアサンプルを入れるコンテナーの役割を果たす。
実施例によって、上述したmoovボックスはさらにmvhdボックス、trakボックス及び/又はmvexボックスなどを下位ボックスとして含むことができる。
mvhdボックス(ムービーヘッダーボックス)は、該当メディアファイルに含まれるメディアデータのメディアプレゼンテーション関連情報を含む。即ち、mvhdボックスは該当メディアプレゼンテーションのメディア生成時間、変更時間、時間規格及び期間などの情報を含む。
trakボックス(トラックボックス)は、該当メディアデータのトラックに関連する情報を提供する。trakボックスはオーディオトラック又はビデオトラックに対するストリーム関連情報、プレゼンテーション関連情報、アクセス関連情報などの情報を含む。trakボックスはトラックの数によって複数個存在することができる。
trakボックスは、実施例によって、さらにtkhdボックス(トラックヘッダーボックス)を下位ボックスとして含むことができる。tkhdボックスはtrakボックスが示す該当トラックに関する情報を含むことができる。tkhdボックスは該当トラックの生成時間、変更時間、トラック識別子などの情報を含む。
mvexボックス(ムービー延長(extend)ボックス)は、該当メディアファイルに後述するmoofボックスがあり得ることを指示する。特定トラックの全てのメディアサンプルを知るために、moofボックスをスキャンする必要がある。
本発明によるメディアファイルは、実施例によって、複数のフラグメントに分かれることができる(t18010)。これにより、メディアファイルが分割されて貯蔵又は伝送される。メディアファイルのメディアデータ(mdatボックス)は複数のフラグメントに分かれ、各々のフラグメントはmoofボックスと分かれたmdatボックスを含むことができる。実施例によって、フラグメントを活用するためには、ftypボックス及び/又はmoovボックスの情報が必要である。
moofボックス(ムービーフラグメントボックス)は、該当フラグメントのメディアデータに関するメタデータを提供する。moofボックスは該当フラグメントのメタデータ関連ボックスのうち、最上位層のボックスであることができる。
mdatボックス(メディアデータボックス)は、上述したように、実際のメディアデータを含むことができる。このmdatボックスは、各々の該当フラグメントに該当するメディアデータのメディアサンプルを含む。
実施例によって、上述したmoofボックスはさらにmfhdボックス及び/又はtrafボックスなどを下位ボックスとして含むことができる。
mfhdボックス(ムービーフラグメントヘッダーボックス)は、分割された複数のフラグメント間の関連性に関連する情報を含む。mfhdボックスはシーケンス番号(sequence number)を含み、該当フラグメントのメディアデータが分割された何番目のデータであるかを示すことができる。また、mfhdボックスを用いて、分割されたデータのうち、漏れたことがあるか否かを確認することができる。
trafボックス(トラックフラグメントボックス)は、該当トラックフラグメントに関する情報を含む。trafボックスは該当フラグメントに含まれる分割されたトラックフラグメントに関するメタデータを提供する。trafボックスは該当トラックフラグメント内のメディアサンプルが復号化/再生されるようにメタデータを提供する。trafボックスはトラックフラグメントの数によって複数個が存在することができる。
実施例によって、上述したtrafボックスはさらにtfhdボックス及び/又はtrunボックスなどを下位ボックスとして含むことができる。
tfhdボックス(トラックフラグメントヘッダーボックス)は、該当トラックフラグメントのヘッダー情報を含む。tfhdボックスは上述したtrafボックスが示すトラックフラグメントのメディアサンプルに対して、基本的なサンプルサイズ、期間、オフセット、識別子などの情報を提供することができる。
trunボックス(トラックフラグメントランボックス)は、該当トラックフラグメント関連情報を含む。trunボックスはメディアサンプルごとの期間、サイズ、再生視点などのような情報を含む。
上述したメディアファイル乃至メディアファイルのフラグメントは、セグメントで処理されて伝送されることができる。セグメントには初期化セグメント(initialization Segment)及び/又はメディアセグメント(media Segment)がある。
図示された実施例(t18020)のファイルは、メディアデータは除いてメディアデコーダーの初期化に関連する情報などを含むファイルである。このファイルは、例えば、上述した初期化セグメントに該当する。初期化セグメントは上述したftypボックス及び/又はmoovボックスを含む。
図示された実施例(t18030)のファイルは、上述したフラグメントを含むファイルである。このファイルは、例えば、上述したメディアセグメントに該当する。メディアセグメントは上述したmoofボックス及び/又はmdatボックスを含む。またメディアセグメントはさらにstypボックス及び/又はsidxボックスを含むことができる。
stypボックス(セグメント タイプボックス)は分割されたフラグメントのメディアデータを識別するための情報を提供する。stypボックスは分割されたフラグメントに対して、上述したftypボックスのような役割を果たす。実施例によってstypボックスはftypボックスと同一のフォーマットを有することができる。
sidxボックス(セグメントインデックスボックス)は分割されたフラグメントに対するインデックスを示す情報を提供する。これにより、該当分割されたフラグメントが何番目のフラグメントであるかが指示される。
実施例によって(t18040)、さらにssixボックスを含むことができるが、ssixボックス(サブセグメントインデックスボックス)は、セグメントがサブセグメントにさらに分れる場合において、そのサブセグメントのインデックスを示す情報を提供することができる。
メディアファイル内のボックスは、図示された実施例(t18050)のようなボックス或いはフルボックス(FullBox)の形態に基づいて、より拡張した情報を含むことができる。この実施例において、sizeフィールド、largesizeフィールドは該当ボックスの長さをバイト単位などで示すことができる。versionフィールドは該当ボックスフォーマットのバージョンを示すことができる。typeフィールドは該当ボックスのタイプ或いは識別子を示すことができる。flagsフィールドは該当ボックスに関連するフラッグなどを示すことができる。
図11は本発明の一実施例によるDASH基盤の適応型(Adaptive)ストリーミングモデルの全般的な動作を示す図である。
図示された実施例(t50010)によるDASH基盤の適応型ストリーミングモデルは、HTTPサーバとDASHクライアントの間の動作について記載している。ここで、DASH(Dynamic Adaptive Streaming over HTTP)は、HTTP基盤の適応型ストリーミングを支援するためのプロトコルであり、ネットワーク状況によって動的にストリーミングを支援することができる。これにより、AVコンテンツ再生を続けて提供することができる。
まずDASHクライアントはMPDを得ることができる。MPDはHTTPサーバなどのサービス供給者から伝達される。DASHクライアントはMPDに記載されたセグメントへの接近情報を用いてサーバに該当セグメントを要求することができる。ここで、この要求はネットワーク状態を反映して行われる。
DASHクライアントは該当セグメントを得た後、これをメディアエンジンで処理して画面にディスプレイする。DASHクライアントは再生時間及び/又はネットワーク状況などを実時間に反映して、必要なセグメントを要求して得ることができる(Adaptive Streaming)。これにより、コンテンツを続けて再生することができる。
MPD(Media Presentation Description)は、DASHクライアントがセグメントを動的に獲得するための詳細情報を含むファイルであり、XML形態で表現されることができる。
DASHクライアントコントローラー(DASH Client Controller)は、ネットワーク状況を反映してMPD及び/又はセグメントを要求するコマンドを生成する。また、このコントローラーは得られた情報をメディアエンジンなどの内部ブロックで使用できるように制御する。
MPDパーサー(Parser)は得られたMPDを実時間にパーシングする。これにより、DASHクライアントコントローラーは必要なセグメントを得るコマンドを生成できるようになる。
セグメントパーサー(Parser)は得られたセグメントを実時間にパーシングする。セグメントに含まれた情報によってメディアエンジンなどの内部ブロックは特定の動作を行うことができる。
HTTPクライアントは必要なMPD及び/又はセグメントなどをHTTPサーバに要求することができる。またHTTPクライアントはサーバから獲得したMPD及び/又はセグメントをMPDパーサー又はセグメントパーサーに伝達する。
メディアエンジン(Media Engine)はセグメントに含まれたメディアデータを用いてコンテンツを画面上に示すことができる。この時、MPDの情報を活用できる。
DASHデータモデルはハイアラーキー(hierarchy)構造(t50020)を有することができる。メディアプレゼンテーションはMPDにより記述される。MPDはメディアプレゼンテーションを形成する複数のピリオド(Period)の時間的なシーケンスを記述する。ピリオドはメディアコンテンツの一区間を示す。
1つのピリオドにおいて、データはアダプテーションセットに含まれることができる。アダプテーションセットは、互いに交換可能な複数のメディアコンテンツコンポーネントの集合である。アダプテーションはレプリゼンテーションの集合を含む。レプリゼンテーションはメディアコンテンツコンポーネントに該当することができる。1つのレプリゼンテーション内において、コンテンツは複数のセグメントに時間的に分かれる。これは適切な接近性と伝達(delivery)のためである。各々のセグメントに接近するために各セグメントのURLが提供される。
MPDはメディアプレゼンテーションに関連する情報を提供でき、ピリオドエレメント、アダプテーションセットエレメント、レプリゼンテーションエレメントは各々、該当ピリオド、アダプテーションセット、レプリゼンテーションについて記述できる。レプリゼンテーションはサブレプリゼンテーションに分かれることができるが、サブレプリゼンテーションエレメントは該当サブレプリゼンテーションについて記述できる。
ここで、共通(Common)属性/エレメントが定義されるが、これらはアダプテーションセット、レプリゼンテーション、サブレプリゼンテーションなどに適用できる(含まれることができる)。共通属性/エレメントのうちには、エッセンシャルプロパティー(Essential Property)及び/又は補足プロパティー(Supplemental Property)があり得る。
エッセンシャルプロパティーは、該当メディアプレゼンテーション関連データを処理するにおいて、必須であると思われるエレメントを含む情報である。補足プロパティーは該当メディアプレゼンテーション関連データを処理するにおいて、使用可能なエレメントを含む情報である。実施例によって、後述するシグナリング情報は、MPDを通じて伝達される場合、エッセンシャルプロパティー及び/又は補足プロパティー内に定義されて伝達される。
DASH基盤のディスクリプターは@schemeIdUriフィールド、@valueフィールド及び/又は@idフィールドを含む。@schemeIdUriフィールドは該当ディスクリプターのスキーム(scheme)を識別するためのURIを提供する。@valueフィールドは@schemeIdUriフィールドが指示するスキームによってその意味が定義される値(value)を有する。即ち、@valueフィールドは該当スキームによるディスクリプターエレメントの値を有し、これらはパラメータとも呼ばれる。これらは互いに’、’で区分される。@idは該当ディスクリプターの識別子を示す。同一の識別子を有する場合、同一のスキームID、値(value)、パラメータを含むことができる。
360ビデオ関連メタデータの各々の実施例は、DASH基盤のディスクリプター形態で再度使用できる。DASHによって360ビデオデータが伝達される場合、360ビデオ関連メタデータはDASHディスクリプターの形態で記述されて、MPDなどに含まれて受信側に伝達される。このディスクリプターは上述したエッセンシャルプロパティーのディスクリプター及び/又は補足プロパティーのディスクリプターの形態で伝達される。これらのディスクリプターはMPDのアダプテーションセット、レプリゼンテーション、サブレプリゼンテーションなどに含まれて伝達されることができる。
本明細書は360ビデオの再生において、ディレクターズ・カット(director´s cut)のように意図又は勧奨される(recommended)視点(地点)又は領域に関する情報を伝達してユーザをしてプロデューサーが意図した視点(地点)又は領域を視聴可能にするために関連メタデータを定義、貯蔵及びシグナリングする方法の案を開示する。後述する領域情報又は視点情報はプロデューサーの意図した領域又は視点(地点)を示す領域情報又は視点情報である。なお、勧奨される視点(地点)又は領域に関する情報は、ユーザ又はユーザデバイスが方向又はビューポートを制御できないか或いは方向除去が解除された場合にユーザデバイスに表示される領域を意味する。
かかる方法の案のために伝達されるべき情報は、2D空間における領域又は2D空間における視点(地点)、又は3D空間における領域又は3D空間における視点(地点)に該当する。2D空間はキャプチャー又はエンコーディングされた矩形イメージ平面を意味し、3D空間は球形、円筒形、正方形などの360ビデオレンダリングのためのプロジェクト(projecting)空間又はプロジェクション構造(projection sturucture)を意味する。なお、ここで称する領域は上述したregion(領域)を意味し、3D空間の領域又は視点(地点)と2D空間の領域又は視点(地点)は互いに対応する関係であることができる。即ち、2D空間の領域又は視点(地点)は3D空間の領域又は視点(地点)が2次元フレームにプロジェクション/マッピングされたものであることができる。
<2D空間における領域及び視点情報伝達方法の案>
2D空間における領域及び視点(地点)情報は、ISO BMFF内にtimed metadataとして1つのトラック(track)に貯蔵されることができる。以下、2D空間における領域情報に関するメタデータと、2D空間における視点(地点)情報に関するメタデータの実施例について順に説明する。
図12は本発明の一実施例による2D空間における領域情報に関するメタデータを示す図である。
図12の(a)は2D空間における領域情報を貯蔵するトラックのサンプルエントリーの構成を示し、図12の(b)は2D空間において表現しようとする個別領域に対する個別サンプルの構成を示す。
2D空間における領域情報を貯蔵するトラックのサンプルエントリーは、reference_width、reference_height、min_top_left_x、max_top_left_x、min_top_left_y、max_top_left_y、min_width、max_width、min_height及び/又はmax_heightを含む。
reference_widthは2D空間の横サイズを示す。この時、2D空間の横サイズはピクセルの数で表現できる。
reference_heightは2D空間の縦サイズを示す。この時、2D空間の縦サイズはピクセルの数で表現できる。
min_top_left_xは、表現しようとする領域の左上端の地点に対する横座標の最小値を示す。
max_top_left_xは、表現しようとする領域の左上端の地点に対する横座標の最大値を示す。
min_top_left_yは、表現しようとする領域の左上端の地点に対する縦座標の最小値を示す。
max_top_left_yは、表現しようとする領域の左上端の地点に対する縦座標の最大値を示す。
min_widthは表現しようとする領域(2D空間内の領域)の横サイズの最小値を示す。この時、表現しようとする領域の横サイズの最小値はピクセルの数で表現できる。
max_widthは表現しようとする領域(2D空間内の領域)の横サイズの最大値を示す。この時、表現しようとする領域の横サイズの最大値はピクセルの数で表現できる。
min_heightは表現しようとする領域(2D空間内の領域)の縦サイズの最小値を示す。この時、表現しようとする領域の縦サイズの最小値はピクセルの数で表現できる。
max_heightは表現しようとする領域(2D空間内の領域)の縦サイズの最大値を示す。この時、表現しようとする領域の縦サイズの最大値はピクセルの数で表現できる。
2D空間において表現しようとする個別領域に対する個別サンプルは、top_left_x、top_left_y、width、height及び/又はinterpolateを含むことができる。
top_left_xは表現しようとする領域の左上端に対する横座標を示す。
top_left_yは表現しようとする領域の左上端に対する縦座標を示す。
widthは表現しようとする領域の横サイズを示す。この時、表現しようとする領域の横サイズはピクセルの数で表現できる。
heightは表現しようとする領域の縦サイズを示す。この時、表現しようとする領域の縦サイズはピクセルの数で表現できる。
interpolateは、以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値を線形補間値(linearly interpolated values)で埋めるか否かを指示することができる。一実施例において、interpolateが1である場合、以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値は線形補間値(linearly interpolated values)で埋めることができる。
図13は本発明の一実施例による2D空間における視点(地点)情報に関するメタデータを示す図である。
図13の(a)は2D空間における視点(地点)情報を貯蔵するトラックのサンプルエントリーの構成を示し、図13の(b)は2D空間において表現しようとする個別視点(地点)に対する個別サンプルの構成を示す。
2D空間における地点情報を貯蔵するトラックのサンプルエントリーは、reference_width、reference_height、min_x、max_x、min_y及び/又はmax_yを含む。
reference_widthは2D空間の横サイズを示す。この時、2D空間の横サイズはピクセルの数で表現できる。
reference_heightは2D空間の縦サイズを示す。この時、2D空間の縦サイズはピクセルの数で表現できる。
min_xは表現しようとする地点の横座標の最小値を示す。
max_xは表現しようとする地点の横座標の最大値を示す。
min_yは表現しようとする地点の縦座標の最小値を示す。
max_yは表現しようとする地点の縦座標の最大値を示す。
2D空間において表現しようとする個別地点に対する個別サンプルはx、y及び/又はinterpolateを含む。
xは表現しようとする地点の横座標を示す。
yは表現しようとする地点の横座標を示す。
interpolateは、以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値を線形補間値(linearly interpolated values)で埋めるか否かを指示する。一実施例において、interpolateが1である場合、以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値は線形補間値(linearly interpolated values)で埋めることができる。
<3D空間における領域及び視点情報の伝達方法の案>
3D空間における領域及び視点情報は、ISOBMFF内にtimed metadataとして1つのトラック(track)に貯蔵されることができる。以下、3D空間における領域情報に関するメタデータと、3D空間における視点(地点)情報に関するメタデータの実施例について順に説明する。
ここで、3D空間は球形(sphere)空間を意味し、360゜ビデオは球形面上に表現されることができる。上述した2D空間は3D空間が2次元にプロジェクション/マッピングされた2D平面を意味する。
図14は本発明の様々な実施例による3D空間における領域情報に関するメタデータを示す図である。
図14の(a)は本発明の一実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーの構成を示し、図14の(b)は本発明の他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーの構成を示す。
まず、図14の(a)を参照すると、本発明の一実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーは、min_yaw、max_yaw、min_pitch、max_pitch、min_roll、max_roll、min_field_of_view及び/又はmax_field_of_viewを含む。
min_yawは表現しようとする領域のyaw axisに対する回転量の最小値を示す。
max_yawは表現しようとする領域のyaw axisに対する回転量の最大値を示す。
min_pitchは表現しようとする領域のpitch axisに対する回転量の最小値を示す。
max_pitchは表現しようとする領域のpitch axisに対する回転量の最大値を示す。
min_rollは表現しようとする領域のroll axisに対する回転量の最小値を示す。
max_rollは表現しようとする領域のroll axisに対する回転量の最大値を示す。
min_field_of_viewは表現しようとする視野範囲(field of view)の最小値を示す。
max_field_of_viewは表現しようとする視野範囲(field of view)の最大値を示す。
min_field_of_view及びmax_field_of_viewが全部0である場合、該当サンプルエントリーを参照する各サンプルの領域は、1つの点であることができる。
次に、図14の(b)を参照すると、本発明の他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーは、center_yaw、center_pitch、center_roll、horizontal_field_of_view及び/又はvertical_field_of_viewを含む。
center_yawは表現しようとする領域のyaw axisに対する回転量の中間値を示す。
center_pitchは表現しようとする領域のpitch axisに対する回転量の中間値を示す。
center_rollは表現しようとする領域のroll axisに対する回転量の最小値を示す。
horizontal_field_of_viewは表現しようとする水平視野範囲(field of view)の値を示す。この値はcenter_yawを基準(中心)とする水平視野範囲であることができる。
vertical_field_of_viewは表現しようとする垂直視野範囲(field of view)の値を示す。この値はcenter_pitchを基準(中心)とする垂直視野範囲であることができる。
horizontal_field_of_view及びvertical_field_of_viewが全部0である場合、該当サンプルエントリーを参照する各サンプルの領域は、1つの点であることができる。
このサンプルエントリーのhorizontal_field_of_view及びvertical_field_of_viewは、各サンプルにおいて変更されない限り、各サンプルに適用できる。
一実施例において、本発明の一実施例及び/又は他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーは、さらにdynamic_range_flagを含む。かかるdynamic_range_flagは、該当サンプルエントリーが指示する水平及び垂直視野範囲が該当サンプルエントリーを参照する全てのサンプルに対しても変化せず維持されることを指示することができる。一例として、dynamic_range_flagが0である場合、サンプルエントリーの水平及び垂直視野範囲がサンプルエントリーを参照するサンプルにおいても維持されることを指示することができる。
図15は本発明の様々な実施例による3D空間において表現しようとする個別領域に関するメタデータを示す図である。
図15の(a)は本発明の一実施例による3D空間において表現しようとする個別領域に対する個別サンプルの構成を示し、図15の(b)は本発明の他の実施例による3D空間において表現しようとする個別領域に対する個別サンプルの構成を示す。
まず、図15の(a)を参照すると、本発明の一実施例による3D空間において表現しようとする個別領域に対する個別サンプルは、yaw、pitch、roll、field_of_view、及び/又はinterpolateを含むことができる。
yawは表現しようとする領域のyaw axisに対する回転量を示す。
pitchは表現しようとする領域のpitch axisに対する回転量を示す。
rollは表現しようとする領域のroll axisに対する回転量を示す。
一実施例において、yaw及びpitchはビューポートの中心を示し、rollはビューポートのroll角度を示す。
field_of_viewは表現しようとする視野範囲(field of view)を示す。Field of viewはhorizontal_field_of_view及びvertical_field_of_viewに細分化できる。
horizontal_field_of_viewは表現しようとする水平視野範囲の値を示す。この値はcenter_yawを基準(中心)とする水平視野範囲であることができる。
vertical_field_of_viewは表現しようとする垂直視野範囲の値を示す。この値はcenter_pitchを基準(中心)とする垂直視野範囲であることができる。
interpolateは以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値を線形補間値(linearly interpolated values)で埋めるか否かを指示することができる。一実施例において、interpolateが1である場合、以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値は、線形補間値(linearly interpolated values)で埋めることができる。
次に、図15の(b)を参照すると、本発明の他の実施例による3D空間において表現しようとする個別領域に対する個別サンプルは、yaw、pitch、roll及び/又はinterpolateを含むことができる。
yawは表現しようとする領域のyaw axisに対する回転量を示す。
pitchは表現しようとする領域のpitch axisに対する回転量を示す。
rollは表現しようとする領域のroll axisに対する回転量を示す。
interpolateは以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値を線形補間値(linearly interpolated values)で埋めるか否かを指示することができる。一実施例において、interpolateが1である場合、以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値は、線形補間値(linearly interpolated values)で埋めることができる。
図16は本発明のさらに他の実施例による3D空間における領域情報に関するメタデータを示す図である。
図16の(a)は本発明のさらに他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーの構成を示し、図16の(b)は本発明のさらに他の実施例による3D空間において表現しようとする個別領域に対する個別サンプルの構成を示す。
まず、図16の(a)を参照すると、本発明のさらに他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーは、region_type、reference_yaw_center、reference_pitch_center、reference_roll_center、reference_width、reference_height及び/又はreference_roll_rangeを含む。
region_typeは表現しようとする領域の種類を識別することができる。
一例として、region_typeが0である場合、該当領域はHMD(Head−mounted display)のようなユーザデバイスにおけるビューポートであることができる。この時、ビューポートはrectilinear projectionのような方法で生成される。この場合、該当領域は球面(spherical surface)に存在する2つの水平方向great circle(大圏、大円)と、2つの水平方向great circle(大圏、大円)の交点で構成される内部領域であることができる。即ち、該当領域は4つのgreat circleにより特定される球面上の領域であることができる。
一例として、region_typeが1である場合、該当領域はユーザデバイスのビューポート内に含まれるべき特定のyaw、pitch、rollの範囲で示されるビューポイントの集合であるビューポイントセット(viewpoint set)であり、この場合、該当領域は球面(sphere surface)に存在する2つの水平方向great circle(大圏、大円)と2つの水平方向small circle(小圏、小円)の交点で構成される内部領域であることができる。より具体的には、該当領域は球面に存在する2つのpitch circleと2つのyaw circleにより特定される球面上の領域であることができる。
なお、region_typeが1に設定される場合、ユーザデバイス(user device)におけるビューポートは、ユーザデバイスの固有の水平/垂直視野(Horizontal/vertical field of view)値によって構成し、ビューポイントセット(viewpoint set)の領域をビューポート(viewport)内に含ませる方法で使用されることもできる。
一実施例において、メタデータ内にregion_typeフィールドが含まれない場合、領域識別方法はregion_typeが意味する領域識別方法のうちの1つに設定される。即ち、メタデータ内にregion_typeフィールドが含まれない場合、領域識別方法はregion_typeが0である場合に予め設定されるか、或いはregion_typeが1である場合に予め設定されて、region_typeフィールドをシグナリングしないこともできる。
reference_yaw_centerは該当トラックに存在するサンプルが表現される領域を定義するreference spaceの中央点のyaw値を示す。この時、サンプルは後述する3D Spherical Coordinates Sampleにより定義できる。
reference_pitch_centerは該当トラックに存在するサンプルが表現される領域を定義するreference spaceの中央点のpitch値を示す。この時、サンプルは後述する3D Spherical Coordinates Sampleにより定義できる。
reference_roll_centerは該当トラックに存在するサンプルが表現される領域を定義するreference spaceの中央点のroll値を示す。この時、サンプルは後述する3D Spherical Coordinates Sampleにより定義できる。
reference_widthは該当トラックに存在するサンプルが表現される領域を定義するreference spaceの水平方向の幅を示す。この時、サンプルは後述する3D Spherical Coordinates Sampleにより定義できる。
reference_widthはregion_type値によってその意味が異なる。
一例として、reference_typeが0である場合、reference_widthはHMD(Head−mounted display)のようなユーザデバイスにおけるビューポートの水平視野(Horizontal field of view)を示す。この時、ビューポートはrectilinear projectionのような方法で生成できる。
他の例として、reference_typeが1である場合、reference_widthはビューポイントセット(viewpoint set)のためのreference spaceを構成する点のyaw値の範囲を示す。
Reference_heightは該当トラックに存在するサンプルが表現される領域を定義するreference spaceの垂直方向の高さを示す。この時、サンプルは後述する3D Spherical Coordinates Sampleにより定義できる。
reference_heightはregion_type値によってその意味が異なる。
一例として、reference_typeが0である場合、reference_heightはHMD(Head−mounted display)のようなユーザデバイス(user device)におけるビューポート(viewport)の垂直視野(vertical field of view)を示す。この時、ビューポートはrectilinear projectionのような方法で生成できる。
他の例として、reference_typeが1である場合、reference_heightはビューポイントセット(viewpoint set)のためのreference spaceを構成する点のpitch値の範囲を示す。
reference_roll_rangeは中央点を基準とするreference spaceのroll値の範囲を示す。
次に、図16の(b)を参照すると、本発明のさらに他の実施例による3D空間において表現しようとする個別領域に対する個別サンプルは、yaw_center、pitch_center、roll_center、width、height及び/又はinterpolateを含むことができる。
yaw_centerは表現しようとする領域の中央点のyaw値を示す。
pitch_centerは表現しようとする領域の中央点のpitch値を示す。
roll_centerは表現しようとする領域の中央点のroll値を示す。
widthは表現しようとする領域の水平方向の幅を示す。widthは上述したregion_type値によってその意味が異なることもある。
一例として、reference_typeが0である場合、widthはHMD(Head−mounted display)のようなユーザデバイス(user device)におけるビューポート(viewport)の水平視野(Horizontal field of view)を示す。この時、ビューポートはrectilinear projectionのような方法で生成できる。
他の例として、reference_typeが1である場合、widthはビューポイントセット(viewpoint set)のためのreference spaceを構成する点のyaw値の範囲を示す。
heightは表現しようとする領域の垂直方向の高さを示す。heightは上述したregion_typeの値によってその意味が異なることもある。
一例として、reference_typeが0である場合、heightはHMD(Head−mounted display)のようなユーザデバイス(user device)におけるビューポート(viewport)の垂直視野(vertical field of view)を示す。この時、ビューポートはrectilinear projectionのような方法で生成できる。
他の例として、reference_typeが1である場合、heightはビューポイントセット(viewpoint set)のためのreference spaceを構成する点のpitch値の範囲を示す。
interpolateは以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値を線形補間値(linearly interpolated values)で埋めるか否かを指示することができる。一実施例において、interpolateが1である場合、以前のサンプルが表現する領域と現在のサンプルが表現する領域の間の値は、線形補間値(linearly interpolated values)で埋めることができる。
図17は本発明のさらに他の実施例による3D空間における領域情報に関するメタデータを示す図である。
図17の(a)は本発明のさらに他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーの構成を示し、図17の(b)は本発明のさらに他の実施例による3D空間において表現しようとする個別領域に対する個別サンプルの構成を示す。
図17の実施例は、region_typeの値によって異なるfieldで構成できるという点で図16の実施例と異なる。
まず、図17の(a)を参照すると、本発明のさらに他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーは、region_type、reference_yaw_center、reference_pitch_center、reference_roll_center、reference_horizontal_field_of_view、reference_vertical_field_of_view、reference_viewpoint_yaw_range、reference_viewpoint_pitch_range及び/又はreference_roll_rangeを含む。
region_type、reference_yaw_center、reference_pitch_center、reference_roll_center及びreference_roll_rangeの場合、図16の(a)で説明した内容を適用できる。
この実施例において、region_typeが0である場合、reference_horizontal_field_of_view及びreference_vertical_field_of_viewがサンプルエントリーに含まれることができる。
reference_horizontal_field_of_viewは、HMD(Head−mounted display)のようなユーザデバイスにおいてreference spaceに対応するビューポートの水平視野(Horizontal field of view)を示す。この時、ビューポートはrectilinear projectionのような方法で生成できる。
reference_vertical_field_of_viewは、HMD(Head−mounted display)のようなユーザデバイスにおいてreference spaceに対応すするビューポートの垂直視野(vertical field of view)を示す。この時、ビューポートはrectilinear projectionのような方法で生成できる。
この実施例において、region_typeが1である場合、reference_viewpoint_yaw_range及びreference_viewpoint_pitch_rangeがサンプルエントリーに含まれることができる。
reference_viewpoint_yaw_rangeはビューポイントセットのためのreference spaceを構成する点のyaw値の範囲を示す。
reference_viewpoint_pitch_rangeはビューポイントセットのためのreference spaceを構成する点のpitch値の範囲を示す。
次に、図17の(b)を参照すると、本発明のさらに他の実施例による3D空間において表現しようとする個別領域に対する個別サンプルは、yaw_center、pitch_center、roll_center、horizontal_field_of_view、vertical_field_of_view、viewpoint_yaw_range、viewpoint_pitch_range及び/又はinterpolateを含む。
yaw_center、pitch_center、roll_center及びinterpolateの場合、図16の(b)で説明した内容を適用できる。
この実施例において、region_typeが0である場合、horizontal_field_of_view及びvertical_field_of_viewが該当サンプルに含まれることができる。
horizontal_field_of_viewは、HMD(Head−mounted display)のようなユーザデバイスにおいて該当領域に対応するビューポートの水平視野(Horizontal field of view)を示す。この時、ビューポートはrectilinear projectionのような方法で生成できる。
vertical_field_of_viewは、HMD(Head−mounted display)のようなユーザデバイスにおいて該当領域に対応するビューポートの垂直視野(vertical field of view)を示す。この時、ビューポートはrectilinear projectionのような方法で生成できる。
この実施例において、region_typeが1である場合、viewpoint_yaw_range及びviewpoint_pitch_rangeが該当サンプルに含まれることができる。
viewpoint_yaw_rangeはビューポイントセットを構成する点のyaw値の範囲を示す。
viewpoint_pitch_rangeはビューポイントセットを構成する点のpitch値の範囲を示す。
図18は本発明のさらに他の実施例による3D空間における領域情報に関するメタデータを示す図である。
図18の(a)は本発明のさらに他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーの構成を示し、図18の(b)は本発明のさらに他の実施例による3D空間において表現しようとする個別領域に対する個別サンプルの構成を示す。
図18の実施例は、サンプルエントリーはregion_typeの値によって異なるフィールドで構成され、個別サンプルはregion_typeが0である場合、1である場合の各々に含まれるフィールドを同時に含むように構成される実施例である。
まず、図18の(a)を参照すると、本発明のさらに他の実施例による3D空間における領域情報を貯蔵するトラックのサンプルエントリーは、reference_yaw_center、reference_pitch_center、reference_roll_center、reference_horizontal_field_of_view、reference_vertical_field_of_view、reference_viewpoint_yaw_range、reference_viewpoint_pitch_range及び/又はreference_roll_rangeを含む。
次に、図18の(b)を参照すると、本発明のさらに他の実施例による3D空間において表現しようとする個別領域に対する個別サンプルは、yaw_center、pitch_center、roll_center、horizontal_field_of_view、vertical_field_of_view、viewpoint_yaw_range、viewpoint_pitch_range及び/又はinterpolateを含む。
図18に示した実施例を図17の実施例と比較した時、図18の(b)の実施例はregion typeが0である場合に含まれるフィールドと、region typeが1である場合に含まれるフィールドが同時に該当サンプルに含まれることができるという点で差がある。
図18(図18の(a))の実施例において、表現しようとする領域のreference spaceは、reference_viewpoint_yaw_range及びreference_viewpoint_pitch_rangeの範囲に属する任意の点に対するビューポイントと、reference_horizontal_field_of_view及びreference_vertical_field_of_viewの値によって決められるビューポートの上位集合(superset)である。
図18(図18の(b))の実施例において、表現しようとする領域は、viewpoint_yaw_range及びviewpoint_pitch_rangeの範囲に属する任意の点に対するビューポイントと、horizontal_field_of_view及びvertical_field_of_viewの値によって決められるビューポートの上位集合(superset)である。
なお、図17及び図18の実施例において、同じ名称を有するフィールドは実質的に同一であるので、図18の各フィールドについては図17で説明した内容を適用できる。
図19は本発明の一実施例によるregion typeによって領域を定義する方法を説明する参考図である。
図19の(a)は球形態の3Dモデルを示す図であり、図19の(b)は2つのgreat circleと、2つのgreat circleの交点で構成される領域を示す図であり、図19の(c)は2つのgreat circleと、2つのsmall circleの交点で構成される領域を示す図である。
まず、great circle、small circle、pitch circle及びyaw circleの意味について説明する。
great circleは球(sphere)の中心を通る円を意味する。より具体的には、great circleは球の中心点を通過する平面と球の交差地点を意味する。great circleはorthodrome又はリーマン円(Riemannian circle)とも呼ばれる。なお、球の中心とgreat circleの中心は同じ位置にあることができる。
small circleは球(sphere)の中心を通らない円を意味する。
Pitch circleは同一のpitch値を有する全ての点を連結する球(sphere)表面上の円を意味する。Pitch circleは地球上の緯線(latitude)と同様に、great circleではないことができる。
yaw circleは同一のyaw値を有する全ての点を連結する球(sphere)表面上の円を意味する。Yaw circleは地球上の経線(longitude)と同様に、いつもgreat circleである。
上述したように、本発明の一実施例によるregion typeは球面上に存在する領域を特定するタイプを指示することができる。
図19の(b)を参照すると、本発明の一実施例によるregion typeが0である場合、球面上の領域を特定することが示されている。
region typeが0であるので、4つのgreat circleにより球面上の領域が特定される。より具体的には、2つのpitch circleと、2つのyaw circleにより球面上の領域が特定される。
一方、特定された球面上の領域の中心は、図示されたように、center_pitch及びcenter_yawで表現できる。かかるcenter_pitch及びcenter_yawは、horizontal field of view(又はwidth)及びvertical field of view(又はheight)のようなfield of view情報と共に、viewportを定義するために使用される。
言い換えれば、region_typeが0である場合、該当領域はcenter_yaw−horizontal_field_of_view/2及びcenter_yaw+horizontal_field_of_view/2のyaw値を有する2つの垂直方向のgreat circleと、center_pitch−vertical_field_of_view/2、center_pitch+vertical_field_of_view/2のpitch値を有する2つの水平方向のgreat circleを境界(boundary)とする内部局面であることができる。
図19の(c)を参照すると、本発明の一実施例によるregion typeが1である場合、球面上の領域を特定することが示されている。
region typeが1であるので、2つのgreat circleと2つのsmall circleにより球面上の領域が特定される。より具体的には、2つのpitch circleと、2つのyaw circleにより球面上の領域が特定される。ここで、2つのpitch circleはgreat circleではないsmall circleである。
一方、特定された球面上の領域の中心は、図示されたように、center_pitch及びcenter_yawで表現できる。かかるcenter_pitch及びcenter_yawはhorizontal field of view及びvertical field of viewのようなfield of view情報と共に、viewportを定義するために使用される。
言い換えれば、region_typeが1である場合、該当領域はcenter_yaw−horizontal_field_of_view/2及びcenter_yaw+horizontal_field_of_view/2のyaw値を有する2つの垂直方向のgreat circleと、center_pitch−vertical_field_of_view/2、center_pitch+vertical_field_of_view/2のpitch値を有する2つの水平方向のsmall circleを境界(boundary)とする内部局面であることができる。
<領域情報又は視点情報に関するメタデータトラックと360゜ビデオトラックの関係をシグナリングする方法の案>
領域情報又は視点情報に関するメタデータトラックとかかるメタデータを適用する360゜ビデオトラックは、以下の方法でシグナリングできる。
まず、360゜ビデオトラックの間の関係をシグナリングする方法の案について説明する。
一実施例において、1つのビデオフレーム(frame)が1つ以上のregionに分かれてコーディングされ、1つ以上のトラックを通じて該当regionに関するデータが伝達される場合、各トラックに関連する360゜ビデオ関連メタデータがbox形態に含まれることができる。ここで、360゜ビデオ関連メタデータは、図2、図3、図4及び図8などで説明した360゜ビデオ関連メタデータであることができる。なお、360゜ビデオ関連メタデータがbox形態に含まれる場合、360゜ビデオ関連メタデータはOMVideoConfigurationBoxクラスに定義できる。OMVideoConfigurationBoxはomvbボックスと称される。かかる360ビデオ関連メタデータはファイル、フラグメント、トラック、サンプルエントリー、サンプルなどの多様なレベルに含まれて伝達でき、含まれるレベルによって該当360ビデオ関連メタデータは該当するレベルのデータに関するメタデータを提供することができる(トラック、ストリーム、サンプルなど)。
なお、1つ以上のトラックのうち、特定のいくつかのトラックのみがOMVideoConfigurationBoxを含み、その他のトラックはOMVideoConfigurationBoxを含まない場合、この残りのトラックがOMVideoConfigurationBoxを含むトラックにレファレンスできるようにするシグナリングが必要である。このために、OMVideoConfigurationBoxを含まない残りのトラックのTrackReferenceTypeBoxにOMVideoConfigurationBoxを含むトラックを称するようにする情報を含めることができる。一実施例によれば、’omvb’というtrack reference typeを定義し、該当TrackReferenceTypeBoxに含まれたtrack_IDsを通じて360゜ビデオ関連メタデータを含むトラックを称することができる。
次に、領域情報又は視点情報に関するメタデータトラックと360゜ビデオトラックの間の関係をシグナリングする方法の案について説明する。
領域情報又は視点情報に関するメタデータトラックは360゜ビデオトラックとは別に貯蔵及び伝達される。即ち、領域情報又は視点情報に関するメタデータは360゜ビデオトラックと区別される別個のトラックで伝達される。このように、領域情報又は視点情報に関するメタデータがトラックに含まれて伝達される場合、領域情報又は視点情報に関するメタデータを含むトラックと、かかるメタデータトラックに関連する360゜ビデオトラックの間のレファレンスが要求されることができる。
一実施例によれば、ISOBMFFのボックスのうちの一つであるTrackReferenceBox(’tref’)ボックスに既に定義された’cdsc’reference typeを用いて領域情報又は視点情報に関するメタデータトラックと、該当メタデータトラックに関連する360゜ビデオトラックの間をレファレンスすることができる。
他の実施例によれば、TrackReferenceBox(’tref’)ボックスに’vdsc’というreference typeを新しく定義して領域情報又は視点情報に関するメタデータトラックと、該当メタデータトラックに関連する360゜ビデオトラックの間をレファレンスすることができる。
図20は本発明の一実施例によるtrefボックスを示す図である。
TrackReference(’tref’)ボックスは、該当ボックスに含まれたトラックと他のトラックの間のレファレンスを提供するボックスである。TrackReference(’tref’)ボックスは、所定のreference typeと、識別子を有するトラックレファレンスタイプボックス(track reference type box)を1つ以上含むことができる。
track_IDは含むトラックにおいてプレゼンテーション内の他のトラックに対する参照を提供する定数である。track_IDは再使用できず、0ではない。
reference_typeは以下の値のうち1つに設定される。また、reference_typeは以下に定義されていない値に設定されることもできる。
’hint’により参照されたトラックには、該当ヒント(Hint)トラックの原本メディア(original media)が含まれることができる。
’cdsc’トラックは参照されたトラックを説明する。このトラックは参照トラックに対するタイムメタデータを含むことができる。
’font’トラックは参照されたトラックにおいて伝達/定義されたフォント(font)を使用できる。
’hind’トラックは参照されたヒントトラックに依存する。即ち、このトラックは参照されたヒントトラックが使用される場合に使用可能である。
’vdep’トラックは参照されたビデオトラックに対する補助深さビデオ情報(auxiliary depth video information)を含む。
’vplx’トラックは参照されたビデオトラックに対する補助視差ビデオ情報(auxiliary parallax video information)を含む。
’subt’トラックは参照されたトラック又は該当トラックが属した代替グループの全てのトラックに対する字幕、タイムテキスト及び/又はオーバーレイグラフィック情報を含む。
’vdsc’トラックは、領域情報を伝達するメタデータトラックと、360ビデオトラックとを関連付けるreference typeである。一実施例において、このreference_typeを有するtrefボックスを含むトラックは、領域情報又は視点情報を伝達するメタデータトラックであることができる。この時、trefボックスに含まれたtrack_IDsは360ビデオトラックをレファレンスすることができる。他の実施例において、このreference_typeを有するtrefボックスを含むトラックは、360ビデオトラックであることができる。この時、trefボックスに含まれたtrack_IDsは領域情報又は視点情報を伝達するメタデータトラックをレファレンスすることができる。
また、領域情報又は視点情報に関するメタデータトラックと、該当メタデータトラックに関連する360゜ビデオトラックの間をレファレンスするために、reference type’cdsc’が使用されることもできる。
即ち、領域情報又は視点情報に関するメタデータトラックと、該当メタデータトラックに関連する360゜ビデオトラックの間をレファレンスするために、reference type’cdsc’又はreference type’vdsc’が使用されることができる。
<GPS情報伝達方法の案>
GSP情報はISO BMFF内にtimed metadataとして1つのトラックで貯蔵されることができる。
以下、GPS情報に関するメタデータの実施例について説明する。
図21は本発明の一実施例によるGPSに関するメタデータを示す図である。
図21の(a)は本発明の一実施例によるGPS関連情報を貯蔵するトラックのサンプルエントリーの構成を示し、図21の(b)は本発明の一実施例によるGPSデータを貯蔵する個別サンプルの構成を示し、図21の(c)は本発明の他の実施例によるGPSデータを貯蔵する個別サンプルの構成を示す。
GPS関連情報を貯蔵するトラックのサンプルエントリーは、coordinate_reference_sys及び/又はaltitude_flagを含むことができる。
coordinate_reference_sysはサンプルに含まれる緯度(latitude)、経度(longitude)、高度(altitude)値に対するcoordinate reference system(座標基準系、CRS)を示す。coordinate_reference_sysはURI(Uniform Resource Identifier)で表現されることができる。一例として、coordinate_reference_sysは“urn:ogc:def:CRS:EPSG::4979”を示すことができる。ここで、“urn:ogc:def:CRS:EPSG::4979”はEPSGデータベースにおいてcode4979であるCoordinate Reference System(CRS)を指示することができる。
altitude_flagはサンプルに高度値が含まれるか否かを示す。一実施例において、altitude_flagが1である場合、サンプルに高度値が含まれることを指示し、altitude_flagが0である場合は、サンプルに高度値が含まれないことを指示することができる。
GPSデータは個別サンプルに貯蔵される。個別サンプルに貯蔵されるGPSデータの構成に関する実施例は図21の(b)、(c)に示した通りである。
再度図21の(b)を参照すると、本発明の一実施例によるGPSデータを貯蔵する個別サンプルの構成を示す。図21の(b)に示されたGPSデータサンプルはlongitude、latitude及び/又はaltitudeを含む。
Longitudeは地点の経度値を示す。正の値は東経(eastern longitude)を示し、負の値は西経(western longitude)を示す。
Latitudeは地点の緯度値を示す。正の値は北緯(northern latitude)を示し、負の値は南緯(southern latitude)を示す。
Altitudeは地点の高度値を示す。一実施例において、サンプルエントリーのaltitude flagがサンプルに高度値が含まれていることを指示する場合(ex. altitude flag=1)、サンプルにAltitudeが存在することができる。他の実施例において、サンプルエントリーのaltitude flagがサンプルに高度値が含まれていないことを指示する場合(ex. altitude flag=0)、サンプルにAltitudeが存在しないことができる。サンプルにaltitudeが存在しない実施例については図21の(c)を参照して説明する。
再度図21の(c)を参照すると、本発明の他の実施例によるGPSデータを貯蔵する個別サンプルの構成を示す。図21の(c)に示されたGPSデータサンプルはlongitude及び/又はlatitudeを含むことができる。図21の(c)に示されたGPSデータサンプルはaltitudeを含まないことができる。
Longitudeは地点の経度値を示す。正の値は東経(eastern longitude)を示し、負の値は西経(western longitude)を示す。
Latitudeは地点の緯度値を示す。正の値は北緯(northern latitude)を示し、負の値は南緯(southern latitude)を示す。
<GPS情報伝達メタデータのトラックと360゜ビデオトラックの関係をシグナリングする方法の案>
GPS情報に関するメタデータのトラックとこのメタデータを適用する360゜ビデオトラックは、以下の方法でシグナリングできる。
まず、360゜ビデオトラックの間の関係をシグナリングする方法の案について説明する。
一実施例において、1つのビデオフレーム(frame)が1つ以上のregionに分かれてコーディングされ、1つ以上のトラックを通じて該当regionに関するデータが伝達される場合、各トラックに関連する360゜ビデオ関連メタデータがbox形態に含まれることができる。ここで、360゜ビデオ関連メタデータは、図2、図3、図4及び図8などで説明した360゜ビデオ関連メタデータであることができる。なお、360゜ビデオ関連メタデータがbox形態に含まれる場合、360゜ビデオ関連メタデータはOMVideoConfigurationBoxクラスに定義できる。OMVideoConfigurationBoxはomvbボックスと称される。かかる360ビデオ関連メタデータはファイル、フラグメント、トラック、サンプルエントリー、サンプルなどの様々なレベルに含まれて伝達でき、含まれるレベルによって該当360ビデオ関連メタデータは該当するレベルのデータに関するメタデータを提供することができる(トラック、ストリーム、サンプルなど)。
なお、1つ以上のトラックのうち、特定のいくつかのトラックのみがOMVideoConfigurationBoxを含み、その他のトラックはOMVideoConfigurationBoxを含まない場合、この残りのトラックがOMVideoConfigurationBoxを含むトラックにレファレンスできるようにするシグナリングが必要である。このために、OMVideoConfigurationBoxを含まない残りのトラックのTrackReferenceTypeBoxにOMVideoConfigurationBoxを含むトラックを称するようにする情報を含めることができる。一実施例によれば、’omvb’というtrack reference typeを定義し、該当TrackReferenceTypeBoxに含まれたtrack_IDsを通じて360゜ビデオ関連メタデータを含むトラックを称することができる。
次に、GPS情報に関するメタデータトラックと360゜ビデオトラックの間の関係をシグナリングする方法の案について説明する。
GPS情報に関するメタデータトラックは360゜ビデオトラックとは別に貯蔵及び伝達される。即ち、GPS情報に関するメタデータは360゜ビデオトラックと区別される別個のトラックで伝達される。このように、GPS情報に関するメタデータがトラックに含まれて伝達される場合、GPS情報に関するメタデータを含むトラックと、かかるメタデータトラックに関連する360゜ビデオトラックの間のレファレンスが要求されることができる。
一実施例によれば、ISOBMFFのボックスのうちの1つであるTrackReferenceBox(’tref’)ボックスに既に定義された’cdsc’reference typeを用いてGPS情報に関するメタデータトラックと、該当メタデータトラックに関連する360゜ビデオトラックの間をレファレンスすることができる。
他の実施例によれば、TrackReferenceBox(’tref’)ボックスに’gpsd’というreference typeを新しく定義してGPS情報に関するメタデータトラックと、該当メタデータトラックに関連する360゜ビデオトラックの間をレファレンスすることができる。
上述した図20を再度参照すると、図20は本発明の一実施例によるtrefボックスを示す。
TrackReference(’tref’)ボックスは、該当ボックスに含まれたトラックと他のトラックの間のレファレンスを提供するボックスである。TrackReference(’tref’)ボックスは、所定のreference typeと、識別子を有するトラックレファレンスタイプのボックス(track reference type box)を1つ以上含むことができる。ここでは、reference typeとしてgpsdが新しく定義されて使用されることができる。
track_IDは含むトラックにおいてプレゼンテーション内の他のトラックに対する参照を提供する定数である。track_IDは再使用できず、0ではない。
reference_typeは以下の値のうち1つに設定される。また、reference_typeは以下に定義されていない値に設定されることもできる。
’hint’により参照されたトラックには、該当ヒント(Hint)トラックの原本メディア(original media)が含まれることができる。
’cdsc’トラックは参照されたトラックを説明する。このトラックは参照トラックに対するタイムメタデータを含むことができる。
’font’トラックは参照されたトラックにおいて伝達/定義されたフォント(font)を使用できる。
’hind’トラックは参照されたヒントトラックに依存する。即ち、このトラックは参照されたヒントトラックが使用される場合に使用可能である。
’vdep’トラックは参照されたビデオトラックに対する補助深さビデオ情報(auxiliary depth video information)を含む。
’vplx’トラックは参照されたビデオトラックに対する補助時差ビデオ情報(auxiliary parallax video information)を含む。
’subt’トラックは参照されたトラック又は該当トラックが属した代替グループの全てのトラックに対する字幕、タイムテキスト及び/又はオーバーレイグラフィック情報を含む。
’gpsd’トラックは、GPS情報を伝達するメタデータトラックと、360ビデオトラックを関連付けるreference typeである。一実施例において、このreference_typeを有するtrefボックスを含むトラックは、GPS情報を伝達するメタデータトラックであることができる。この時、trefボックスに含まれたtrack_IDsは360ビデオトラックをレファレンスすることができる。他の実施例において、このreference_typeを有するtrefボックスを含むトラックは、360ビデオトラックであることができる。この時、trefボックスに含まれたtrack_IDsはGPS情報を伝達するメタデータトラックをレファレンスすることができる。
また、GPS情報に関するメタデータトラックと、該当メタデータトラックに関連する360゜ビデオトラックの間をレファレンスするために、reference type’cdsc’が使用されることもできる。
即ち、GPS情報に関するメタデータトラックと、該当メタデータトラックに関連する360゜ビデオトラックの間をレファレンスするために、reference type’cdsc’又はreference type’vdsc’が使用されることができる。
本明細書に開示された方法の案は、ISOBMFFのようなbox基盤のファイルフォーマットに基づいて360ビデオサービスを支援するコンテンツに対するファイルを生成するか、MPEG DASH上において動作可能なDASH Segmentを生成するか、又はMPEG MMT上において動作可能なMPUを生成する場合に適用できる。また、DASH client又はMMT clientを含む受信器は、360ビデオ関連メタデータ(フラッグ、パラメータなど)に基づいて、該当コンテンツを効果的にデコーディングし、ディスプレイすることができる。
上述した領域情報又は視点情報に関するメタデータ及び/又はGPS情報に関するメタデータのためのサンプルエントリー及び/又はサンプル(ex. 2DReagionCartesianCoordinatesSampleEntry、2DPointCartesianCoordinatesSampleEntry、3DCartesianCoordinatesSampleEntry、GPSSampleEntry)は、1つのISOBMFFファイル、DASH Segment又はMMT MPU内の複数のボックスに同時に存在することができる。
この場合、上位ボックスにて定義された領域情報又は視点情報及び/又はGPS情報に関するメタデータの値は、下位ボックスにて定義された360ビデオ関連フラッグ或いは360ビデオメタデータの値にoverrideできる。
以下、図12乃至図20を参照して説明した領域情報又は視点情報に関するメタデータをDASHに基づいて伝送及びシグナリングする方法の案に関する実施例を説明する。
<DASHを用いた領域情報又は視点情報に関するメタデータの伝送及びシグナリング方法の案>
メタデータの伝送のための別のアダプテーションセット(Adaptation Set)を構成する実施例
領域情報又は視点情報に関するメタデータがDASHを通じて伝送される場合、メタデータを伝送するための別のアダプテーションセット(Adaptation Set)が構成される。この場合、領域情報又は視点情報に関するメタデータが別のAdaptation Setで伝送されることを識別できるシグナリングがMPDに含まれる必要がある。一実施例においては、Role descriptorが、領域情報又は視点情報に関するメタデータが別のAdaptation Setで伝送されることを識別できるシグナリングとして使用される。
既存のMPDに存在するRoleのスキーム(scheme)と区分するために新しいschemeIdUri値が割り当てられることができる。一例として、Roleスキームのために“urn:mepg:dash:role:201X”のような新しいschemeIdUri値が割り当てられることができる。このような新しいschemeには領域情報又は視点情報に関するメタデータであることを知らせるvalueとして“dirc”が割り当てられることができる。なお、領域情報又は視点情報に関するメタデータであることを知らせるvalueとして割り当てられた“dirc”は一例であり、“dirc”以外の他のvalueが割り当てられることもできる。また、VR video或いは360ビデオを伝送するAdaptation Setの場合、valueに“main”が割り当てられることができる。
一方、VR videoを伝送するレプリゼンテーション(Representation)と領域情報又は視点情報に関するメタデータを伝送するレプリゼンテーション(Representation)の関係をシグナリングするために、Representation@associationId及びassociationTypeが使用されることができる。領域情報又は視点情報に関するメタデータを伝送するレプリゼンテーション(Representation)は、assosicationIdに該当メタデータが適用されるVR videoを伝送するレプリゼンテーション(Representation)のID(“VR_video”)を称しており、associationTypeに“dirc”を割り当てることができる。ここで、“dirc”は領域情報又は視点情報に関するメタデータであることを示す値に新しく定義されたものである。この方法はDASHだけではなく、ISO BMFF(ISO Base Media File Format)のトラック(track)の間の関係表現のためにも使用できる。即ち、同一の目的のためにassociationIdの代わりに’tref’ボックスのtrack_IDSを使用し、associationTypeの代わりに’tref’ボックスのreference_typeを使用することができる。
図22は本発明の一実施例による領域情報又は視点情報に関するメタデータの伝送をシグナリングするMPDを示す図である。
図22を参照すると、領域情報又は視点情報に関するメタデータが別のAdaptation Setで伝送されることを識別できるシグナリングがMPDに含まれている。
また、図22の実施例において、Role descriptorが、領域情報又は視点情報に関するメタデータが別のAdaptation Setで伝送されることを識別できるシグナリングとして使用されている。
図22の実施例においては、領域情報又は視点情報に関するメタデータが別のAdaptation Setで伝送されることを識別するために、Roleスキームに“urn:mpeg:dash:role:201X”が割り当てられ、valueに“dirc”が割り当てられたことを確認できる(H22020)。また、VR videoを伝送するAdaptation Setの場合、Roleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“main”が割り当てられたことを確認することができる(H22010)。
また、図22の実施例において、VR videoを伝送するレプリゼンテーション(Representation)と領域情報又は視点情報に関するメタデータを伝送するレプリゼンテーション(Representation)の関係をシグナリングするために、Representation@associationId及びassociationTypeが使用されたことを確認することができる。領域情報又は視点情報に関するメタデータを伝送するレプリゼンテーション(Representation、Representation id=“directors_cut”)は、assosicationIdに該当メタデータが適用されるVR videoを伝送するレプリゼンテーション(Representation)のid(“VR_video”)を称しており、associationTypeに“dirc”が割り当てられている(H22030)。
図22の実施例のように、領域情報又は視点情報に関するメタデータが伝送されることをシグナリングするために新しいRole schemeを定義できる。一方、領域情報又は視点情報に関するメタデータが伝送されることをシグナリングするために、既存のRole schemeと互換可能な方法を使用できる。
図23は本発明の他の実施例による領域情報又は視点情報に関するメタデータの伝送をシグナリングするMPDを示す図である。
図23を参照すると、領域情報又は視点情報に関するメタデータが別のAdaptation Setに伝送されることを識別できるシグナリングがMPDに含まれている。
図23を参照すると、Roleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“metadata”が割り当てられたことを確認できる(H23020)。また、VR videoを伝送するAdaptation Setの場合、Roleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“main”が割り当てられたことを確認できる(H23010)。即ち、図23の実施例は、既存のmetadataを伝送するAdaptation Setの識別方法(Role@schemeIdUri=“urn:mpeg:dash:role:2011”、value=“metadata”)を領域情報又は視点情報に関するメタデータを伝送するAdaptation Setの識別に適用した実施例であると言える。
また、図23の実施例において、VR videoを伝送するレプリゼンテーション(Representation)と領域情報又は視点情報に関するメタデータを伝送するレプリゼンテーション(Representation)の関係をシグナリングするために、Representation@associationId及びassociationTypeが使用されることを確認できる。領域情報又は視点情報に関するメタデータを伝送するレプリゼンテーション(Representation、Representation ID=“directors_cut”)は、assosicationIdに該当メタデータが適用されるVR videoを伝送するレプリゼンテーション(Representation)のid(“VR_video”)を称しており、associationTypeに“dirc”が割り当てられている(H23030)。
以下、図22及び図23を参照して説明した別のAdaptation Setにより、領域情報又は視点情報に関するメタデータを伝送及びシグナリングする方法に関連する受信器の動作について説明する。
図24は本発明の一実施例による受信器を示すブロック図である。
図24を参照すると、本発明の一実施例による受信器は、DASHクライアント(DASH client、h24020)、セグメントパーサー(Segment parser、H24030)、ビデオデコーダー(video decoder、H24040)、DIRCパーサー(DIRC parser、H24050)及び/又はプロジェクター/レンダラ/センサ(projector/renderer/sensors、H24060)を含む。
MPD、VRコンテンツ及び/又は領域情報又は視点情報に関するメタデータは、DASHサーバ(DASH server、H24010)から提供されて、DASHクライアント(H24020)が受信する。この時、受信器のDASHクライアント(H24020)は、データパケット形態のVRコンテンツ、MPD及び/又は領域情報又は視点情報に関するメタデータをDASHサーバ(H24010)から受信できる。DASHクライアント(H24020)はDASHサーバ(H24010)にMPD、VRコンテンツ及び/又は領域情報又は視点情報に関するメタデータを要求できる。DASHクライアント(H24020)は受信したパケットからMPDとSegmentを生成できる。
DASHクライアント(H24020)は、受信されたMPDをパーシングしてコンテンツ(VRコンテンツ)に関する情報を得る。この時、DASHクライアント(H24020)は、図22及び図23で説明した領域情報又は視点情報に関するメタデータが伝送されるアダプテーションセットに関するシグナリングにより領域情報又は視点情報に関するメタデータの有無を識別できる。また、DASHクライアント(H24020)は、受信器のケイパビリティー(capability)、及び/又はコンテンツの使用目的によってDIRCパーサー及びDIRCのためのセグメントパーサーを活性化できる(図面の点線を参照)。例えば、受信器が領域情報又は視点情報に関するメタデータを処理できないか、目的に応じて領域情報又は視点情報に関するメタデータを使用しない場合、領域情報又は視点情報に関するメタデータが伝送されるアダプテーションセットは使用されないことができる(skip)。なお、セグメントはセグメントパーサー(H24030)に伝達される。
セグメントパーサー(H24030)は、受信されたセグメントをパーシングして、ビデオビットストリーム及び領域情報又は視点情報に関するメタデータ(DIRC metadata)を各々ビデオデコーダー(H24040)及びDIRCパーサー(H24050)に伝達する。なお、セグメントパーサー(H20030)は、パーシング対象により機能的に区分される。即ち、セグメントパーサー(H24030)は、ビデオのためのセグメントをパーシングするセグメントパーサーと、領域情報又は視点情報に関するメタデータのためのセグメントパーサーに区分される。
ビデオデコーダー(H24040)は、ビデオストリームをデコーディングしてプロジェクター/レンダラ/センサ(projector/renderer/sensors、H24060)に伝達できる。
DIRCパーサー(H24050)は、DIRC metadataをパーシングしてパーシングされた情報(DIRC info.)をプロジェクター/レンダラ/センサ(projector/renderer/sensors、H24060)に伝達できる。
プロジェクター/レンダラ/センサ(projector/renderer/sensors、H24060)には、ビデオデコーダー(H24040)からビデオストリームが伝達され、DIRC Parser(H24050)には、DIRC metadataが伝達される。また、プロジェクター/レンダラ/センサ(projector/renderer/sensors、H24060)は、DIRC情報を使用してVideoデータをユーザに提供する。プロジェクター/レンダラ/センサ(projector/renderer/sensors、H24060)が、DIRC情報を使用してユーザにVRコンテンツを提供する方法は、アプリケーションによって異なる。一例として、DIRCが示すプロデューサーの意図視点をユーザに自動操縦(auto navigation)の形態で見せることができる。他の例として、ユーザの視点によってVRコンテンツを見せるが、プロデューサーの意図視点を誘導できる方向表示などを提供することもできる。
図25は本発明のさらに他の実施例による領域情報又は視点情報に関するメタデータの伝送をシグナリングするMPDを示す図である。
図25に示された実施例は、上述した図22及び図23の実施例とは異なり、VRビデオが2以上の空間領域で構成され、2以上の空間領域に区画されたVRビデオが2以上のアダプテーションセットを通じて伝送される実施例に関する。図25の具体的な例において、VRビデオは左側空間領域と右側空間領域に区画され、左側空間領域と右側空間領域は各々VR video tileに該当する。なお、2つのVR video tileは各々2つのアダプテーションセットに該当する。2つのVR video tileの空間的関係は、SRD(SupplementalProperty@schemeIdUri=“urn:mpeg:dash :srd:2014”)を通じて記述される。より具体的には、左側空間領域に該当するVR video tileの空間的情報は、<SupplementalProperty schemeIdUri="urn:mpeg:dash:srd:2014" value="1、0、0、1920、1920、3840、1920、0"/>で記述され(H25010)、右側空間領域に該当するVR video tileの空間的情報は<SupplementalProperty schemeIdUri="urn:mpeg:dash:srd:2014" value="1、0、1920、1920、1920、3840、1920、0"/>で記述される(H25020)。
また、領域情報又は視点情報に関するメタデータは、図22及び図23の実施例と同様に、Role@value=“dirc”又は“metadata”を通じて識別できる。この実施例は、図22の実施例のように、新しいRole schemeを定義し、Role@value=“dirc”に割り当てて領域情報又は視点情報に関するメタデータを識別する方法を使用している(H25030)。
また、Representation@associationIdは、2つ以上の空間領域に区画されたVR video tileのRepresentation又は1つのRepresentation(base tile trackを伝送するRepresentation)を指示することができる。この実施例は2つの空間領域に区画されたVR video tile1及びVR video tile2を指示している(H25040)。
以下、図25に説明するVRビデオが2以上の空間領域で構成され、2以上の空間領域に区画されたVRビデオが2以上のアダプテーションセットを通じて伝送される実施例において、領域情報又は視点情報に関するメタデータを伝送及びシグナリングする方法に関連する受信器の動作について説明する。
図26は本発明の他の実施例による受信器を示すブロック図である。
図26を参照すると、本発明の他の実施例による受信器は、DASHクライアント(DASH client、H26020)、セグメントパーサー(Segment parser、H26030)、ビデオデコーダー(video decoder、H26040)、DIRCパーサー(DIRC parser、H26050)及び/又はプロジェクター/レンダラ/センサ(projector/renderer/sensors、H26060)を含む。
MPD、VRコンテンツ及び/又は領域情報又は視点情報に関するメタデータは、DASHサーバ(DASH server、H26010)から提供されてDASHクライアント(H26020)が受信できる。この時、受信器のDASHクライアント(H26020)は、データパケット形態のVRコンテンツ、MPD及び/又は領域情報又は視点情報に関するメタデータをDASHサーバ(H26010)から受信できる。DASHクライアント(H26020)は、DASHサーバ(H26010)にMPD、VRコンテンツ及び/又は領域情報又は視点情報に関するメタデータを要求できる。DASHクライアント(H26020)は、受信されたパケットからMPDとSegmentを生成できる。
図26の実施例において、DASHサーバ(H26010)から伝送されるデータパケットは、全体VRビデオの一部空間領域(ex.VR video tile)に該当することができる。即ち、DASHサーバ(H26010)から伝送されるVR video contentは、ユーザの初期視点を含む一部空間領域(tile)に該当するか或いは後述するDIRCパーサー(H26050)から伝達される情報(DIRC info.)が指示するプロデューサーの意図視点又は領域を含む一部空間領域(tile)に該当することができる。
DASHクライアント(H26020)は、受信されたMPDをパーシングしてコンテンツ(VRコンテンツ)に関する情報を得る。この時、DASHクライアント(H26020)は、図24に示した領域情報又は視点情報に関するメタデータが伝送されるアダプテーションセットに関するシグナリングにより領域情報又は視点情報に関するメタデータの有無を識別できる。また、DASHクライアント(H26020)は、受信器のケイパビリティー(capability)及び/又はコンテンツの使用目的に応じてDIRCパーサー及びDIRCのためのセグメントパーサーを活性化できる(図面の点線を参照)。例えば、受信器が領域情報又は視点情報に関するメタデータを処理できないか或いは目的に応じて領域情報又は視点情報に関するメタデータを使用しない場合、領域情報又は視点情報に関するメタデータが伝送されるアダプテーションセットは使用されないことができる(skip)。なお、セグメントはセグメントパーサー(H26030)に伝達できる。
セグメントパーサー(H26030)は、受信されたセグメントをパーシングして、ビデオビットストリーム及び領域情報又は視点情報に関するメタデータ(DIRC metadata)を各々ビデオデコーダー(H26040)及びDIRCパーサー(H26050)に伝達する。なお、セグメントパーサー(H26030)は、パーシング対象により機能的に区分される。即ち、セグメントパーサー(H26030)は、ビデオのためのセグメントをパーシングするセグメントパーサーと、領域情報又は視点情報に関するメタデータのためのセグメントパーサーに区分される。
ビデオデコーダー(H26040)は、ビデオストリームをデコーディングしてプロジェクター/レンダラ/センサ(projector/renderer/sensors、H26060)に伝達する。
DIRCパーサー(H26050)は、DIRC metadataをパーシングしてパーシングされた情報(DIRC info.)をプロジェクター/レンダラ/センサ(projector/renderer/sensors、H26060)に伝達する。
また、DIRCパーサー(H26050)は、パーシングされた情報(DIRC info.)をDASHクライアント(H26010)に伝達する。DASHクライアント(H26010)に伝達された情報(DIRC info.)は、DASHクライアント(H26010)がプロデューサーの意図視点又は領域を含む一部空間領域(tile)に該当するアダプテーションセット(adaptation set)を選択するために使用される。
プロジェクター/レンダラ/センサ(projector/renderer/sensors、H26060)にはビデオデコーダー(H26040)からビデオストリームが伝達され、DIRC Parser(H26050)にはDIRC metadataが伝達される。また、プロジェクター/レンダラ/センサ(projector/renderer/sensors、H26060)はDIRC情報を使用してVideoデータをユーザに提供する。プロジェクター/レンダラ/センサ(projector/renderer/sensors、h26060)がDIRC情報を使用してユーザにVRコンテンツを提供する方法は、アプリケーションによって異なる。一例として、DIRCが示すプロデューサーの意図視点をユーザに自動操縦(auto navigation)の形態で見せることができる。他の例として、ユーザの視点によってVRコンテンツを見せるが、プロデューサーの意図視点を誘導できる方向表示などを提供することもできる。
図24乃至図26に説明した実施例は、VRビデオを伝送及びシグナリングするアダプテーションセットと、メタデータを伝送及びシグナリングするアダプテーションセットが個々に存在する実施例に関する。
以下、図27乃至図29を参照して、1つのアダプテーションセット内にVRビデオとメタデータを共に伝送及びシグナリングする実施例について説明する。
1つのAdaptation Set内のビデオとメタデータを伝送する実施例
視点情報又は領域情報に関するメタデータは、図22乃至図26に説明した場合とは異なり、1つのAdaptation Set内でVR videoと共に伝送されることができる。この場合、ビデオデータとメタデータは1つのファイル(Segment又はISO BMFF)を通じて伝送できる。より具体的には、実施例において、VRビデオとメタデータは1つのファイル内で個々のトラックで構成されることができ、メタデータが含まれた1つのビデオトラックで構成されることもできる。
以下、VRビデオとメタデータが1つのファイル内で個々のトラックで構成される実施例と、メタデータが含まれた1つのビデオトラックで構成される実施例について順に説明する。
図27は本発明のさらに他の実施例による領域情報又は視点情報に関するメタデータの伝送をシグナリングするMPDを示す図である。
図27の実施例は、VRビデオと領域情報又は視点情報に関するメタデータが個々のトラックで構成される実施例を示す。VRビデオと領域情報又は視点情報に関するメタデータは、1つのアダプテーションセット(Adaptation Set)及び1つのファイル内に個々のトラックで構成されて伝送される。
図27の実施例において、VRビデオトラックとメタデータトラックは、MPD内でAdaptationset下位のContentComponentで識別でき、各々“video”、“application”のcontentTypeを有する(H27010、H27020)。各々のContentComponentは下位要素としてRoleを有し、Roleは上述した個々のAdpatation Setを通じたメタデータ伝送と同様の方法で、VRビデオ及び/又はメタデータ(領域情報又は視点情報に関するメタデータ)の伝送有無を識別可能にする。即ち、VR videoの場合、Roleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“main’が割り当てられる。また、領域情報又は視点情報に関するメタデータの場合、Roleスキームに“urn:mpeg:dash:role:201x”が割り当てられ、valueに“dirc”が割り当てられるか、或いはRoleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“metadata”が割り当てられることができる。
図27の実施例の場合、VR videoについては、Roleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“main’が割り当てられ(H27030)、領域情報又は視点情報に関するメタデータについては、Roleスキームに“urn:mpeg:dash:role:201x”が割り当てられ、valueに“dirc”が割り当てられる(H27040)。
図28は本発明のさらに他の実施例による領域情報又は視点情報に関するメタデータの伝送をシグナリングするMPDを示す図である。
図28の実施例は、VRビデオと領域情報又は視点情報に関するメタデータが1つのトラックで構成されるものである。VRビデオと領域情報又は視点情報に関するメタデータは、1つのアダプテーションセット(Adaptation Set)及び1つのファイル内に1つのトラックで構成されて伝送される。
1つのファイルには基本的に1つのビデオトラックが存在する。領域情報又は視点情報に関するメタデータは、sample group descriptionのようにトラックに付属するメタデータの形態で貯蔵される。この場合、MPDにはビデオとメタデータを含む1つのAdaptation Setが存在し、2つのRoleが存在して、該2つのRoleが各々ビデオとメタデータの伝送有無を識別可能にする。即ち、VR videoの場合、Roleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“main’が割り当てられる。また、領域情報又は視点情報に関するメタデータの場合、Roleスキームに“urn:mpeg:dash:role:201x”が割り当てられ、valueに“dirc”が割り当てられるか、或いはRoleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“metadata”が割り当てられることができる。
なお、図28の実施例の場合、図27の実施例とは異なり、アダプテーションセットの下位にVRビデオ及びメタデータを識別するためにContentComponentが存在しない。
図28の実施例の場合、VR videoについては、Roleスキームに“urn:mpeg:dash:role:2011”が割り当てられ、valueに“main’が割り当てられ(H28030)、領域情報又は視点情報に関するメタデータについては、Roleスキームに“urn:mpeg:dash:role:201x”が割り当てられ、valueに“dirc”が割り当てられる(H28040)。
以下、図27及び図28に説明した1つのAdaptation Setにより領域情報又は視点情報に関するメタデータを伝送及びシグナリングする方法に関連した受信器の動作について説明する。
図29は本発明のさらに他の実施例による受信器を示すブロック図である。
図29を参照すると、本発明のさらに他の実施例による受信器は、DASHクライアント(DASH client、H29020)、セグメントパーサー(Segment parser、H29030)、ビデオデコーダー(video decoder、G29040)、DIRCパーサー(DIRC parser、G29050)及び/又はプロジェクター/レンダラ/センサ(projector/renderer/sensors、G29060)を含む。
MPD、VRコンテンツ及び/又は領域情報又は視点情報に関するメタデータは、DASHサーバ(DASH server、H29010)から提供されて、DASHクライアント(H29020)が受信する。この時、受信器のDASHクライアント(H29020)は、データパケット形態のVRコンテンツ、MPD及び/又は領域情報又は視点情報に関するメタデータをDASHサーバ(H29010)から受信できる。DASHクライアント(H29020)は、DASHサーバ(H29010)にMPD、VRコンテンツ及び/又は領域情報又は視点情報に関するメタデータを要求できる。DASHクライアント(H29020)は、受信されたパケットからMPDとSegmentを生成できる。
DASHクライアント(H29020)は、受信されたMPDをパーシングしてコンテンツ(VRコンテンツ)に関する情報を得る。この時、DASHクライアント(H29020)は、図27及び図28に示した領域情報又は視点情報に関するメタデータが伝送されるアダプテーションセットに関するシグナリングにより領域情報又は視点情報に関するメタデータの有無を識別できる。また、DASHクライアント(H29020)は、受信器のケイパビリティー(capability)及び/又はコンテンツの使用目的によって、DIRCパーサー及びDIRCのためのセグメントパーサーを活性化できる(図面の点線を参照)。例えば、受信器が領域情報又は視点情報に関するメタデータを処理できないか、目的に応じて領域情報又は視点情報に関するメタデータを使用しない場合、領域情報又は視点情報に関するメタデータが伝送されるアダプテーションセットは使用されないことができる(skip)。なお、セグメントはセグメントパーサー(H29030)に伝達されることができる。
セグメントパーサー(H29030)は、受信されたセグメントをパーシングして、ビデオビットストリーム及び領域情報又は視点情報に関するメタデータ(DIRC metadata)を各々ビデオデコーダー(H29040)及びDIRCパーサー(H29050)に伝達する。なお、セグメントパーサー(H29030)は、パーシング対象により機能的に区分される。即ち、セグメントパーサー(H29030)は、ビデオのためのセグメントをパーシングするセグメントパーサーと、領域情報又は視点情報に関するメタデータのためのセグメントパーサーに区分される。
ビデオデコーダー(H29040)は、ビデオストリームをデコーディングしてプロジェクター/レンダラ/センサ(projector/renderer/sensors、H29060)に伝達できる。
DIRCパーサー(H29050)は、DIRC metadataをパーシングしてパーシングされた情報(DIRC info.)をプロジェクター/レンダラ/センサ(projector/renderer/sensors、H29060)に伝達できる。
プロジェクター/レンダラ/センサ(projector/renderer/sensors、H29060)にはビデオデコーダー(H29040)からビデオストリームが伝達され、DIRC Parser(H29050)にはDIRC metadataが伝達される。また、プロジェクター/レンダラ/センサ(projector/renderer/sensors、H29060)はDIRC情報を使用してVideoデータをユーザに提供できる。プロジェクター/レンダラ/センサ(projector/renderer/sensors、H29060)がDIRC情報を使用してユーザにVRコンテンツを提供する方法は、アプリケーションによって異なる。一例として、DIRCが示すプロデューサーの意図視点をユーザに自動操縦(auto navigation)の形態で見せることができる。他の例として、ユーザの視点によってVRコンテンツを見せるが、プロデューサーの意図視点を誘導できる方向表示などを提供することもできる。
<MPEG−2 TSを用いた領域情報又は視点情報に関するメタデータの伝送及びシグナリング方法の案>
図12乃至図20に説明した領域情報又は視点情報に関するメタデータは、MPEG−2 TSを通じて伝送されることもできる。より具体的には、領域情報又は視点情報に関するメタデータは、PES packet(packetized elementary stream Packet)を通じて伝送されるか、或いはTS(transport stream)のAdaptation Fieldを通じて伝送される。
以下、領域情報又は視点情報に関するメタデータが固有のPIDを有するPES Packetを通じて伝送される実施例及びTSのAdaptation Fieldを通じて伝送される実施例について順に説明する。
PESで伝送する実施例
一実施例によれば、領域情報又は視点情報に関するメタデータは以下のような方式でPESパケットを通じて伝送される。領域情報又は視点情報に関するメタデータを含むPESパケットのストリーム識別子(stream_id)がprivate streamを指示するように設定され、該当private streamのストリームタイプ(stream_type)が領域情報又は視点情報に関するメタデータストリームを指示するように設定される。
図30はストリーム識別子と該ストリーム識別子に割り当てられたストリームの情報を示す図であり、図31はストリームタイプと当ストリームタイプに割り当てられたストリームの情報の一部を示す図であり、図32はPES Packetを通じて伝送されるaccess unitを示す図である。
まず、図30を参照すると、stream_idが’1011 1101’である場合、該当ストリームはprivate_stream_1を識別する。stream_id=’1011 1101’である場合であって、stream_typeが’0x27’である場合、該当ストリームは領域情報又は視点情報に関するメタデータに関連するストリーム(VR Director’s cut information stream)に該当する(図26のnote11を参照)。また、図31を参照すると、stream_typeが’0x27’である場合、該当ストリームが領域情報又は視点情報に関するメタデータに関連するストリーム(VR Director’s cut information stream)に該当することを指示していることを確認できる。
次に、図32を参照すると、1つ以上のPES Packetを通じて伝送されるaccess unitの構成が示されている。図32のaccess unit(VDCI_AU)は、vdci_descriptor()を含み、vdci_descriptor()は領域情報又は視点情報に関するメタデータを含むことができる。このvdci_descriptor()については後述する。
Adaptation Filed内に伝送する実施例
一実施例によれば、領域情報又は視点情報に関するメタデータは以下のような方式でTSのadaptation fieldを通じて伝送される。領域情報又は視点情報に関するメタデータがadaptation fieldに含まれて伝送される場合、flagフィールドにより領域情報又は視点情報に関するメタデータを含むディスクリプターの有無を指示でき、該当flagフィールドが領域情報又は視点情報に関するメタデータを含むディスクリプターの存在を指示する場合、領域情報又は視点情報に関するメタデータを含むディスクリプターはadaptation fieldに含まれることができる。
図33は本発明の一実施例によるadaptation fieldを示す図である。
図33を参照すると、adaptation fieldはvcdi_descriptor_not_present_flagを含む。vcdi_descriptor_not_present_flagはvcdi_descriptor()の存在有無を識別する。図33の実施例において、vcdi_descriptor_not_present_flagが0に設定される場合、adaptaion_filed()内にvcdi_descriptor()が存在することになる。
TSのコンポーネントが領域情報又は視点情報に関するメタデータをAdaptation Field内に含むことができるか否かは、extension descriptorを通じて識別可能である。extension_descroptor_tagが既に設定された値に割り当てられた場合、該当コンポーネントのadaptation fieldが領域情報又は視点情報に関するメタデータに対するディスクリプターを含めることを指示できる。
図34は本発明の一実施例によるextension descriptorを示す図であり、図35はextension descriptorに含まれるextension descriptor tagのvalueと、このvalueに該当する説明を示す図であり、図36は本発明の一実施例によるvdci extension descriptorを示す図である。
まず、図34を参照すると、本発明の一実施例によるextension descriptorは、descriptor tag、descriptor length及びextension descriptor tagを含み、extension descriptor tagの値(value)によってディスクリプターを含むことができる。
descriptor tagはこのディスクリプターを識別できる。図34の実施例において、descriptor tagはextension descriptorを識別する値に設定される。具体的には、実施例において、descriptor tagはextension descriptorを指示するために’63’に設定される。但し、descriptor tagの具体的な値は実施例によって異なる。
descriptor lengthは該当ディスクリプターの長さをバイト単位で記述できる。
extension descriptor tagはエクステンションディスクリプター(extension descriptor)に含まれる具体的なディスクリプターを識別できる。
図35を参照すると、extension descriptor tagのvalueによってextension descriptorに含まれる具体的なディスクリプターが何であるかが示されている。図34及び図35に示したように、extension descriptor tagが0x02である場合、extension descriptorはObjectDescriptorUpdate descriptorを含むことができ、extension descriptor tagが0x03である場合、extension descriptorはHEVC_timing_and_HRD_descriptorを含むことができ、extension descriptor tagが0x04である場合、extension descriptorはaf_extenstions_descriptorを含むことができ、またextension descriptor tagが0x05である場合は、extension descriptorはvdci_extenstions_descriptorを含むことができる。
図36を参照すると、本発明の一実施例によるvdci_extenstions_descriptorが示されている。
本発明の一実施例によるvdci_extenstions_descriptorは、vdci descriptor typeを含むことができる。
vdci descriptor typeは後述するvdci descriptorの種類やタイプを指示できる。一例として、vdci descriptor typeが’0x01’である場合、vdci descriptorは2D_vcdi_descriptor()であり、vdci descriptor typeは’0x02’である場合は、vdci descriptorはspherical_vcdi_descriptor()であることができる。
図37乃至図38は本発明の一実施例によるvdci descriptorを示す。
より具体的には、図37は本発明の一実施例による2D vdci descriptorを示し、図38は本発明の一実施例によるsphrecal vcdi descriptorを示す。
まず、図37を参照すると、本発明の一実施例による2D vcdi descriptorが示されている。
2D_vcdi_descriptorは、2D_vcdi_descr_tag、2D_vdci_descr_length、reference_region_flag、duration_flag、next_vcdi_flag、reference_width、reference_height、top_left_x、top_left_y、width、height、interpolate、duration、next_top_left_x、next_top_left_y、next_width、next_height及び/又はnext_interpolateを含む。
2D_vcdi_descr_tagは、固有の値を割り当てて2Dvdci descriptorを識別できる。
2D_vdci_descr_lengthは、2Dvdci descriptorの長さをバイト数で示すことができる。
reference_region_flagは、reference_width及びreference_heightフィールドの有無を指示できる。一実施例において、reference_region_flagが1に設定される場合、reference_width及びreference_heightフィールドが存在することを示す。
duration_flagは、durationフィールドの有無を指示できる。一実施例において、duration_flagが1に設定される場合、durationフィールドが存在することを示す。
next_vcdi_flagは、next_top_left_x、next_top_left_y、next_width及びnext_heightフィールドの有無を指示できる。一実施例において、next_vcdi_flagが1に設定される場合、next_top_left_x、next_top_left_y、next_width及びnext_heightフィールドが存在することを示す。
durationは現在領域の持続時間を示す。他の実施例において、durationは現在の領域の表現時間と次の領域の表現時間の差を示すことができる。
reference_widthは2D空間における横サイズを示す。この時、2D空間の横サイズはピクセルの数で表現できる。
reference_heightは2D空間における縦サイズを示す。この時、2D空間の縦サイズはピクセルの数で表現できる。
top_left_xは表現しようとする領域の左上端の地点の横座標を示す。
top_left_yは表現しようとする領域の左上端の地点の縦座標を示す。
widthは表現しようとする領域の横サイズを示す。この時、表現しようとする領域の横サイズはピクセルの数で表現できる。
heightは表現しようとする領域の縦サイズを示す。この時、表現しようとする領域の縦サイズはピクセルの数で表現できる。
interpolateは、以前の領域と現在の領域の間の値を線形補間値で埋めるか否かを指示できる。一実施例において、interpolateが1に設定される場合、以前の領域と現在の領域の間の値は線形補間値(linearly interpolated values)で埋めることができる。
next_top_left_xは表現しようとする次の領域の左上端の地点の横座標を示す。
next_top_left_yは表現しようとする次の領域の左上端の地点の縦座標を示す。
next_widthは表現しようとする次の領域の横サイズを示す。この時、表現しようとする領域の横サイズはピクセルの数で表現できる。
next_heightは表現しようとする次の領域の縦サイズを示す。この時、表現しようとする領域の縦サイズはピクセルの数で表現できる。
next_interpolateは、現在の領域と次の領域の間の値を線形補間値で埋めるか否かを指示できる。一実施例において、next_interpolate が1に設定される場合、現在の領域と次の領域の間の値は線形補間値(linearly interpolated values)で埋めることができる。
次に、図38を参照すると、本発明の一実施例によるspherical vdci descriptorが示されている。
spherical_vcdi_descriptorは、spherical_vcdi_descr_tag、spherical_vdci_descr_length、reference_region_flag、duration_flag、next_vcdi_flag、reference_min_yaw、reference_max_yaw、reference_min_pitch、reference_max_pitch、yaw、pitch、roll、field_of_view、interpolate、duration、next_yaw、next_pitch、next_roll、next_field_of_view及び/又はnext_interpolateを含む。
spherical_vcdi_descr_tagは固有の値を割り当ててspherical vdci descriptorを識別することができる。
spherical_vdci_descr_lengthはspherical vdci descriptorの長さをバイトの数で表すことができる。
reference_region_flagはreference_min_yaw、reference_max_yaw、reference_min_pitch及びreference_max_pitchフィールドの有無を指示できる。一実施例において、reference_region_flagが1に設定される場合、reference_min_yaw、reference_max_yaw、reference_min_pitch及びreference_max_pitchフィールドが存在することを示す。
duration_flagはdurationフィールドの有無を指示できる。一実施例において、duration_flagが1に設定される場合 durationフィールドが存在することを示す。
next_vcdi_flagはnext_yaw、next_pitch、next_roll、next_field_of_view及びnext_interpolateフィールドの有無を指示できる。一実施例において、next_vcdi_flagが1に設定される場合、next_yaw、next_pitch、next_roll、next_field_of_view及びnext_interpolateフィールドが存在することを示す。
durationは現在の領域の持続時間を示す。又は現在の領域の表現時間と次の領域の表現時間の差を示す。
reference_min_yawは3D空間のyaw axisに対する回転量の最小値を示す。
reference_max_yawは3D空間のyaw axisに対する回転量の最大値を示す。
reference_min_pitchは3D空間のpitch axisに対する回転量の最小値を示す。
reference_max_pitchは3D空間のpitch axisに対する回転量の最大値を示す。
yawは表現しようとする領域のyaw axisに対する回転量を示す。
pitchは表現しようとする領域のpitch axisに対する回転量を示す。
rollは表現しようとする領域のroll axisに対する回転量を示す。
field_of_viewは表現しようとする領域の視野範囲(field of view)を示す。
interpolateは、以前の領域と現在の領域の間の値を線形補間値で埋めるか否かを指示できる。一実施例において、interpolateが1に設定される場合、以前の領域と現在の領域の間の値は線形補間値(linearly interpolated values)で埋めることができる。
next_yawは表現しようとする次の領域のyaw axisに対する回転量を示す。
next_pitchは表現しようとする次の領域のpitch axisに対する回転量を示す。
next_rollは表現しようとする次の領域のroll axisに対する回転量を示す。
next_field_of_viewは表現しようとする次の領域の視野範囲(field of view)を示す。
next_interpolateは現在の領域と次の領域の間の値を線形補間値で埋めるか否かを指示できる。一実施例において、next_interpolateが1に設定される場合、現在の領域と次の領域の間の値は線形補間値(linearly interpolated values)で埋めることができる。
一方、図37及び図38に示された2D vdci descriptor及びspherical_vcdi_descriptorは各々、2D空間における領域情報又は視点情報に関するメタデータ及び3D空間における領域情報又は視点情報に関するメタデータの具体的な例であり、図12乃至図20に説明されたメタデータ情報が選択的にディスクリプターに含まれることができ、このディスクリプターに含まれた情報が選択的に省略されることもできる。
以下、図29乃至図38に説明したMPEG−2 TSにより領域情報又は視点情報に関するメタデータを伝送及びシグナリングする方法に関連する受信器の動作について説明する。
図39は本発明のさらに他の実施例による受信器を示すブロック図である。
図39を参照すると、本発明のさらに他の実施例による受信器は、MPEG−2 TS レシーバー(MPEG−2 TS receiver、H39020)、ビデオデコーダー(video decoder、H39030)、DIRCパーサー(DIRC parser、H39040)及び/又はプロジェクター/レンダラ/センサ(projector/renderer/sensors、H39050)を含む。
VRコンテンツ及び/又は領域情報又は視点情報に関するメタデータは、MPEG−2 TS トランスミッター(MPEG−2 TS transmitter、H39010)から提供されてMPEG−2 TSレシーバー(MPEG−2 TS receiver、H39020)が受信できる。この時、受信器のMPEG−2 TSレシーバー(H39020)は、MPEG−2 TSパケット形態のVRコンテンツ及び/又は領域情報又は視点情報に関するメタデータをMPEG−2 TSトランスミッター(H39010)から受信できる。MPEG−2 TSレシーバー(H39020)は、受信されたMPEG−2 TSパケットを解釈してビデオストリーム(Video bitstream)及び領域情報又は視点情報に関するメタデータ(DIRC metadata)を生成できる。
この時、MPEG−2 TSレシーバー(H39020)は、上述したPES又はAdaptation Fieldを通じて伝送される領域情報又は視点情報に関するメタデータ識別方法を通じて該当メタデータの存在有無を識別できる。
また、MPEG−2 TSレシーバー(H39020)は、受信器のケイパビリティー(capability)及び/又はコンテンツの使用目的によってDIRCパーサーを活性化できる(図面の点線を参照)。例えば、受信器が領域情報又は視点情報に関するメタデータを処理できないか、目的に応じて領域情報又は視点情報に関するメタデータを使用しない場合、領域情報又は視点情報に関するメタデータは使用されないことができる(skip)。なお、MPEG−2 TSレシーバー(H39020)は、ビデオストリーム(Video bitstream)及び領域情報又は視点情報に関するメタデータ(DIRC metadata)を各々ビデオデコーダー(H39030)とDIRCパーサー(H39040)に伝達できる。
ビデオデコーダー(H39030)は、ビデオストリームをデコーディングしてプロジェクター/レンダラ/センサ(projector/renderer/sensors、H39050)に伝達できる。
DIRCパーサー(H39040)は、DIRC metadataをパーシングしてパーシングされた情報(DIRC info.)をプロジェクター/レンダラ/センサ(projector/renderer/sensors、H39050)に伝達できる。
プロジェクター/レンダラ/センサ(projector/renderer/sensors、H39050)には、ビデオデコーダー(H39030)からビデオストリームが伝達され、DIRC Parser(H39040)には、DIRC metadataが伝達される。また、プロジェクター/レンダラ/センサ(projector/renderer/sensors、H39050)は、DIRC情報を使用してVideoデータをユーザに提供する。プロジェクター/レンダラ/センサ(projector/renderer/sensors、H39050)がDIRC情報を使用してユーザにVRコンテンツを提供する方法は、アプリケーションによって異なる。一例として、DIRCが示すプロデューサーの意図視点をユーザに自動操縦(auto navigation)の形態で見せることができる。他の例として、ユーザの視点に応じてVRコンテンツを見せるが、プロデューサーの意図視点を誘導できる方向表示などを提供することもできる。
<Video Coding Layerを用いた領域情報又は視点情報に関するメタデータの伝送及びシグナリング方法の案>
図12乃至図20に説明した領域情報又は視点情報に関するメタデータは、VCL(Video Coding Layer)を通じて伝送できる。より具体的には、領域情報又は視点情報に関するメタデータは、VCL SEI(Supplemental Enhancement Information)messageの形態で伝送できる。
図40は本発明の一実施例による領域情報又は視点情報に関するメタデータがSEI messageに含まれた形態を示す図である。
まず、図40の上端を参照すると、本発明の一実施例によるSEI messageのペイロードは2D空間における領域情報又は視点情報に関するメタデータを含む。
本発明の一実施例によるSEI messageのペイロードは、directors_cut_id、reference_region_flag、duration_flag、next_vcdi_flag、reference_width、reference_height、top_left_x、top_left_y、width、height、interpolate、duration、next_top_left_x、next_top_left_y、next_width、next_height及び/又はnext_interpolateを含む。
directors_cut_idは、該当2D空間における領域情報又は視点情報に関するメタデータの固有識別子を示す。directors_cut_idは、同一のストリーム上に複数の2D空間における領域情報又は視点情報に関するメタデータが存在する場合、各々を区別するための用途に使用できる。即ち、同一のdirectors_cut_idを有するメタデータは、1つの2D空間における領域情報又は視点情報を示すメタデータシーケンスをなす。
本発明の一実施例によるSEI messageのペイロードに含まれた他のフィールドについては、図33に説明した2D_vcdi_descriptor()についての説明内容を適用できる。
次に、図40の下端を参照すると、本発明の他の実施例によるSEI messageのペイロードは3D空間における領域情報又は視点情報に関するメタデータを含む。
本発明の他の実施例によるSEI messageのペイロードは、directors_cut_id、reference_region_flag、duration_flag、next_vcdi_flag、reference_min_yaw、reference_max_yaw、reference_min_pitch、reference_max_pitch、yaw、pitch、roll、field_of_view、interpolate、duration、next_yaw、next_pitch、next_roll、next_field_of_view及び/又はnext_interpolateを含む。
directors_cut_idは該当3D空間における領域情報又は視点情報に関するメタデータの固有識別子を示す。directors_cut_idは、同一のストリーム上に複数の3D空間における領域情報又は視点情報に関するメタデータが存在する場合、各々を区別するための用途に使用できる。即ち、同一のdirectors_cut_idを有するメタデータは、1つの3D空間における領域情報又は視点情報を示すメタデータシーケンスをなす。
本発明の一実施例によるSEI messageのペイロードに含まれた他のフィールドについては、図34に説明したspherical_vcdi_descriptor()についての説明内容を適用できる。
図41は本発明のさらに他の実施例による領域情報又は視点情報に関するメタデータがSEI messageに含まれた形態を示す図である。
図41に示された本発明のさらに他の実施例によるメタデータは、3D空間における領域情報又は視点情報に関するメタデータを含む。
本発明のさらに他の実施例によるSEI messageは、上述した4つのgreat circleにより1つ以上の領域の境界を設定できる。即ち、本発明のさらに他の実施例によるSEI messageは、図16乃至図19に説明したregion typeが1である場合に該当する方式で境界を設定できる。
ここで、設定される領域はディスプレイのために勧奨されるビューポートである。
図41を参照すると、本発明のさらに他の実施例によるSEI messageのペイロードは、omni_viewport_id、omni_viewport_cancel_flag、omni_viewport_persistence_flag、omni_viewport_cnt_minus1、omni_viewport_yaw_center、omni_viewport_pitch_center、omni_viewport_roll_center、omni_viewport_yaw_range及び/又はomni_viewport_pitch_rangeを含む。
omni_viewport_idは、1つ以上の領域を識別する識別番号を指示できる。より具体的には、実施例において、omni_viewport_idは勧奨されたビューポート領域の目的を識別するために使用される識別番号を指示できる。
omni_viewport_cancel_flagは、以前のomnidirectional viewport SEI messageの持続性有無を指示できる。一実施例において、omni_viewport_cancel_flagが1である場合、以前のomnidirectional viewport SEI messageの持続性を取り消すことができ、omni_viewport_cancel_flagが0である場合、omnidirectional viewport SEI messageが続くことを指示することができる。
omni_viewport_persistence_flagは、現在のレイヤ(current layer)に対するomnidirectional viewport SEI messageの持続性有無を指示できる。一実施例において、omni_viewport_persistence_flagが0である場合、omnidirectional viewport SEI messageは現在デコーディングされたピクチャのみに適用されることを指示でき、omni_viewport_persistence_flagが1である場合、omnidirectional viewport SEI messageは現在のレイヤに対してomnidirectional viewport SEI messageが適用されることを指示できる。なお、omni_viewport_persistence_flagが1である場合にも、所定の条件を満たすと、omnidirectional viewport SEI messageがこれ以上適用されないように設定できる。
omni_viewport_cnt_minus1は、このSEI messageが示す領域の数を指示できる。より具体的には、実施例において、omni_viewport_cnt_minus1はこのSEI messageが示す勧奨ビューポート領域の数を指示できる。
omni_viewport_yaw_centerは該当領域の中央点のyaw値を指示できる。より具体的には、実施例において、omni_viewport_yaw_center[i]はi番目の領域の中央点のyaw値を指示でき、この時、領域は勧奨ビューポート領域であることができる。
omni_viewport_pitch_centerは該当領域の中央点のpitch値を指示できる。より具体的には、実施例において、omni_viewport_pitch_center[i]はi番目の領域の中央点のpitch値を指示でき、この時、領域は勧奨ビューポート領域であることができる。
omni_viewport_roll_centerは該当領域の中央点のroll値を指示できる。より具体的には、実施例において、omni_viewport_roll_center[i]はi番目の領域の中央点のroll値を指示でき、この時、領域は勧奨ビューポート領域であることができる。
omni_viewport_yaw_rangeは該当領域の範囲又はサイズをyaw値を通じて指示できる。より具体的には、実施例において、omni_viewport_yaw_range[i]はi番目の領域の範囲又はサイズをyaw値を通じて指示でき、この時、領域は勧奨ビューポート領域であることができる。
omni_viewport_pitch_rangeは該当領域の範囲又はサイズをpitch値を通じて指示できる。より具体的には、実施例において、omni_viewport_pitch_range[i]はi番目の領域の範囲又はサイズをpitch値を通じて指示でき、この時、領域は勧奨ビューポート領域であることができる。
なお、図40に示したvr_2D_directors_cut(payloadSize)は、2D空間における領域情報又は視点情報に関するメタデータの具体的な例示であり、図40及び図41に示したvr_2D_directors_cut(payloadSize)及びomnidirectional_viewport(payloadSize)は、3D空間における領域情報又は視点情報に関するメタデータの具体的な例示であり、図12乃至図20に説明したメタデータ情報が選択的にこのSEI messageに含まれることができ、このSEI messageに含まれた情報は選択的に省略することもできる。
以下、図40及び図41に説明したVCL(Video Coding Layer)により領域情報又は視点情報に関するメタデータを伝送及びシグナリングする方法に関連する受信器の動作について説明する。
図42は本発明のさらに他の実施例による受信器を示すブロック図である。
図42を参照すると、本発明のさらに他の実施例による受信器は、ネットワーククライアント/コンテンツパーサー(network client/content parser、H42020)、ビデオデコーダー(video decoder、H42030)、DIRCパーサー(DIRC parser、H42040)及び/又はプロジェクター/レンダラ/センサ(projector/renderer/sensors、H42050)を含む。
VRコンテンツ及び/又は領域情報又は視点情報に関するメタデータを含むビデオデータは、コンテンツ/ネットワークサーバ(H42010)から提供されて、ネットワーククライアント/コンテンツパーサー(H42020)が受信できる。この時、受信器のネットワーククライアント/コンテンツパーサー(H42020)は、ネットワークパケット又はファイル形態のビデオデータをコンテンツ/ネットワークサーバ(H42010)から受信できる。ネットワーククライアント/コンテンツパーサー(H42020)は、受信されたネットワークパケット又はファイルを解釈してビデオストリーム(Video bitstream)を生成できる。
ネットワーククライアント/コンテンツパーサー(H42020)は、ビデオストリーム(Video bitstream)をビデオデコーダー(H42030)に伝達できる。
ビデオデコーダー(H42030)はビデオストリームをデコーディングできる。ビデオデコーダー(H42030)はビデオストリームをデコーディングして、ビデオデータと領域情報又は視点情報に関するメタデータ(DIRC metadata)を得ることができる。
ビデオデコーダー(H42030)はプロジェクター/レンダラ/センサ(projector/renderer/sensors、H42050)に伝達できる。
また、ビデオデコーダー(H42030)は、受信器のケイパビリティー(capability)、及び/又はコンテンツの使用目的に応じてDIRCパーサー(H42040)を活性化し、領域情報又は視点情報に関するメタデータ(DIRC metadata)をDRICパーサー(H42040)に伝達できる。例えば、受信器が領域情報又は視点情報に関するメタデータを処理できないか或いは目的に応じて領域情報又は視点情報に関するメタデータを使用しない場合、領域情報又は視点情報に関するメタデータは使用されないことができる(skip)。
DIRCパーサー(H42040)はDIRC metadataをパーシングしてパーシングされた情報(DIRC info.)をプロジェクター/レンダラ/センサ(projector/renderer/sensors、H42050)に伝達できる。
プロジェクター/レンダラ/センサ(projector/renderer/sensors、H42050)にはビデオデコーダー(H42030)からビデオストリームが伝達され、DIRC Parser(H42040)にはDIRC metadataが伝達される。また、プロジェクター/レンダラ/センサ(projector/renderer/sensors、H42050)は、DIRC情報を使用してVideoデータをユーザに提供できる。プロジェクター/レンダラ/センサ(projector/renderer/sensors、H42050)がDIRC情報を使用してユーザにVRコンテンツを提供する方法は、アプリケーションによって異なる。一例として、DIRCが示すプロデューサーの意図視点をユーザに自動操縦(auto navigation)の形態で見せることができる。他の例として、ユーザの視点によってVRコンテンツを見せるが、プロデューサーの意図視点を誘導できる方向表示などを提供することもできる。
<360゜ビデオサービスのためのコンテンツの送受信過程及びメタデータ>
図43は本発明の一実施例による360゜ビデオサービスのためのコンテンツ及びメタデータを送受信する過程を示す図である。
図43を参照すると、360゜ビデオサービスのためのコンテンツ及びメタデータを送受信するために送信側の構成及び受信側の構成が示されている。ここで、送信側の構成は360゜ビデオの伝送装置に含まれた構成であることができ、受信側の構成は360゜ビデオの受信装置に含まれた構成であることができる。また、送信側の構成及び過程は360゜ビデオを生成する構成及び過程を含むことができる。
以下、図43を参照して、360゜ビデオサービスのためのコンテンツ及びメタデータを送受信する過程について説明する。
まず、360゜ビデオ送信装置は、1つ以上のカメラを用いて複数の方向に対してキャプチャーされた1つ以上のimage(input image)を生成できる(SH43010)。ここで、360゜ビデオ送信装置は全方位(omnidirectional、360゜)に対するイメージをキャプチャーできる。このように複数の方向に対するイメージをキャプチャーする過程を、獲得過程(acquisition)と称する。
続いて、360゜ビデオ送信装置は、キャプチャーされた複数のイメージ(input images)を3次元幾何構造(geometry)上においてステッチングできる(SH43020)。この時、3次元幾何構造(geometry)としては、球(sphere)、キューブ(cube)などが使用される。ステッチング過程はキャプチャーされた複数のイメージ(input images)を3次元幾何構造(geometry)上において連結して1つのパノラマイメージ(panorama image)又は球形イメージ(spherical image)を形成する過程である。この実施例では、イメージステッチングを通じて球形のイメージ(spherical image)を生成する場合を示している。
次に、360゜ビデオ送信装置は、360゜ビデオ(VR video)のレンダリング(rendering)特性に対するレンダリングメタデータを生成できる(SH43030)。このように360゜ビデオ(VR video)に対するレンダリングメタデータを生成する過程を、オーサリング過程(authoring)と称する。
その後に、360゜ビデオ送信装置はステッチングされたイメージを定型化された幾何構造であるプロジェクションフォーマット(projection format)に投影(projection)して矩形形態のフレーム(packed frame、packed image)を構成できる(projection/mapping、SH43040)。
この過程は定型化された幾何構造であるプロジェクションフォーマット(projection format)に投影(projection)して、projected frame(projected image)を生成するプロジェクション過程(projection)と、projected frame(projected image)をpacked frame(packed image)にマッピングさせる過程(mapping)に細分化される。
ここで、プロジェクションのためのプロジェクションフォーマット(projection format)には、equirectangular、cubicなどがあり得る。なお、プロジェクション過程を通じて、ステッチングされたイメージは2Dフレーム上にプロジェクションされることができる。
また、マッピング過程はprojected frameを構成する矩形領域の配置及び/又は解像度などを調整してpacked frameを構成できる。この時、特定の領域のqualityを高めることも可能である。ここで、特定の領域は、特定ユーザの視点領域であるか、或いは上述したプロデューサーの意図視点領域である。
かかるマッピング過程は、領域(リージョン、region)ごとのパッキング過程と称することができる。リージョンごとのパッキング過程は選択的に行われ、リージョンごとのパッキング過程が行われない場合、projected frame(projected image)とpacked frame(packed image)は同一であることができる。
なお、360゜ビデオ送信装置はプロジェクション/マッピング過程におけるプロジェクション特性及び/又はマッピング特性に関するメタデータを生成できる。
その後に、360゜ビデオ送信装置は、packed frame(packed image)を符号化(encoding)してコーディングされたビデオピクチャ(coded video picture)を生成できる(video encoding、SH43050)。
次に、360゜ビデオ送信装置は、コーディングされたビデオピクチャ(coded video picture)を含むファイル(file)又はセグメント(Segment)を生成できる(SH43060)。なお、この実施例において、360゜ビデオ送信装置は、コーディングされたビデオピクチャ(coded video picture)だけではなく、レンダリングメタデータ(rendering metadata)及びprojection/mappingメタデータを含むファイル(file)又はセグメント(Segment)を生成する。
360゜ビデオ送信装置は、DASH(Dynamic Adaptive Streaming over HTTP) MPD(Media Presentation Description)を生成し、MPDとセグメント(Segment)を送信できる(SH43070)。
360゜ビデオの受信装置はDASH MPDを受信及びパーシングし、セグメントを要求して受信することができる(SH43080)。
360゜ビデオの受信装置はファイル又はセグメントを受信し、ファイル又はセグメントからコーディングされたビデオピクチャ(Coded video picture)を抽出できる(SH43090)。なお、この実施例において、レンダリングメタデータ(rendering metadata)及びprojection/mappingメタデータは、ファイル又はセグメントに含まれているので、360゜ビデオの受信装置はファイル又はセグメントからレンダリングメタデータ(rendering metadata)及びprojection/mappingメタデータを抽出してパーシングすることができる。
次に、360゜ビデオの受信装置はコーディングされたビデオピクチャ(Coded video picture)を復号化(decoding)してpacked frame(packed image)を生成できる(SH43100)。
その後、360゜ビデオの受信装置は、packed frame(packed image)を3次元幾何構造(geometry)のイメージ形態に復元できる。この実施例において、360゜ビデオの受信装置は、packed frame(packed image)を3次元幾何構造(geometry)の球形イメージ(spherical image)に復元できる(SH43110)。この時、360゜ビデオの受信装置はprojection/mappingメタデータを用いて3次元イメージを復元できる。
また、360゜ビデオの受信装置は、3次元幾何構造のイメージ(球形イメージ、spherical image)を3次元空間上にレンダリングできる(SH43130)。この時、360゜ビデオの受信装置はレンダリングメタデータ(rendering metadata)を用いて3次元イメージを3次元空間上にレンダリングできる。
また、360゜ビデオの受信装置はさらに後述するユーザの視点(user viewport)情報を用いて3次元イメージを3次元空間上にレンダリングできる。
その後、360゜ビデオの受信装置は3次元空間上のイメージをディスプレイに表出できる(SH43140)。
なお、360゜ビデオの受信装置は動作中にユーザの頭/目の動きを感知してユーザの視点(user viewport)情報を追跡(tracking)できる(SH43120)。トラッキングされたユーザの視点(user viewport)情報は実時間に生成されて360゜ビデオをレンダリングする過程に使用できる。
かかるユーザの視点(user viewport)情報は、360゜ビデオをレンダリングする過程以外の他の過程にも使用できる。例えば、View−dependent processingが適用される場合、ユーザの視点(user viewport)情報に依存して各段階が行われる。
具体的に、ユーザの視点(user viewport)情報に依存して、該当ユーザの視点を含む領域に関連するビデオデータに対してビデオデコーディングが行われることができる(case A)。
また、ユーザの視点(user viewport)情報に依存して、該当ユーザの視点を含む領域に関連するファイル又はセグメントに対して脱カプセル化が行われることができる(case BFセル)。
または、ユーザの視点(user viewport)情報に依存して、該当ユーザの視点を含む領域に関連するセグメントに対する受信が行われることができる(case C)。
以下、図43に説明したレンダリングメタデータ及びprojection/mapping メタデータに含まれる情報について図44を参照して説明する。
図44は本発明の一実施例によるレンダリングメタデータ及びprojection/mappingメタデータに含まれる情報の一例を示す図である。
まず、本発明の一実施例によるレンダリングメタデータは、vr_mapping_type、center_yaw、center_pitch、min_yaw、max_yaw、min_pitch、max_pitch、Region Mapping Information(i.e.、EquiMapVideoInfoBox、CubeMapVideoInfoBox)及び/又はstereo modeを含む。
vr_mapping_typeは、360゜ビデオがマッピングされるマッピングタイプに関する情報を示す。一実施例によれば、vr_mapping_typeのvalueが0である場合、equirectangularのマッピングタイプを指示し、vr_mapping_typeのvalueが1である場合、cubicのマッピングタイプを指示し、vr_mapping_typeのvalueが2である場合、cylinder又はpanoramaのマッピングタイプを指示し、vr_mapping_typeのvalueが3である場合、pyramidのマッピングタイプを指示することができる。
即ち、vr_mapping_type情報は、360゜ビデオを2Dイメージ(フレーム)上にマッピングする時に使用したプロジェクションスキーム(projection scheme)を指示するといえる。この一実施例において、vr_mapping_typeのvalueが0である場合、equirectangular projectionが使用されたことを指示し、vr_mapping_typeのvalueが1である場合、cubic projectionが使用されたことを指示し、vr_mapping_typeのvalueが2である場合、cylinder projection又はpanorama projectionが使用されたことを指示し、vr_mapping_typeのvalueが3である場合、pyramid projectionが使用されたことを指示することができる。
center_yawフィールドは、360ビデオデータがプロジェクションされた2Dイメージの中央ピクセル及び3D空間上の中点に関連する情報を提供できる。一実施例において、center_yawフィールドは、3D空間の中点がキャプチャースペース座標系の座標原点或いはワールド座標系の原点に比べて回転した程度を示す。かかる実施例において、center_yawフィールドは回転した程度をyaw値で示すことができる。
center_pitchフィールドは、360ビデオデータがプロジェクションされた2Dイメージの中央ピクセル及び3D空間上の中点に関連する情報を提供できる。一実施例において、center_pitchフィールドは3D空間の中点がキャプチャースペース座標系の座標原点或いはワールド座標系の原点に比べて回転した程度を示す。かかる実施例において、center_pitchフィールドは回転した程度をpitch値で示すことができる。
min_yawフィールドは3D空間上において占める領域をyawの最小値で示すことができる。これらのフィールドはyaw軸基準回転量の最小値を示す。
max_yawフィールドは3D空間上において占める領域をyawの最大値で示すことができる。これらのフィールドはyaw軸基準回転量の最大値を示す。
min_pitchフィールドは3D空間上において占める領域をpitchの最小値で示すことができる。これらのフィールドはpitch軸基準回転量の最小値を示す。
max_pitchフィールドは3D空間上において占める領域をpitchの最大値で示すことができる。これらのフィールドはpitch軸基準回転量の最大値を示す。
Region Mapping Information(i.e.,EquiMapVideoInfoBox、CubeMapVideoInfoBox)は、360゜ビデオを2Dドメインにプロジェクションした結果であるプロジェクテッドピクチャ(projected picture)と実際のエンコーダーの入力により使用されるパックピクチャ(packed picture)を構成する領域間のマッピング関係を指示できる。又はRegion Mapping Information(i.e.,EquiMapVideoInfoBox、CubeMapVideoInfoBox)は、パックピクチャを構成する領域と3Dドメイン上の球面領域(sphere region)の間のマッピング関係を指示することもできる。
stereo modeフィールドは、該当360゜ビデオが支援する3Dレイアウトを指示できる。また、stereo modeフィールドは、該当360゜ビデオが3Dを支援するか否かも指示できる。一実施例において、stereo modeフィールド値が0である場合、該当360゜ビデオはモノ(monoscopic)モードであることができる。即ち、プロジェクションされた2Dイメージは、1つのモノビュー(monoscopic view)のみを含むことができる。この場合、該当360゜ビデオは3Dを支援しないことができる。
stereo modeフィールド値が1又は2である場合、該当360゜ビデオは各々左右(Left-Right)レイアウト、上下(top-Bottom)レイアウトを従う。左右レイアウト、上下レイアウトは各々、サイド−バイ−サイドフォーマット、トップ−ボトムフォーマットとも呼ばれる。左右レイアウトの場合、左映像/右映像がプロジェクションされた2Dイメージは、イメージフレーム上において各々左/右に配置できる。上下レイアウトの場合、左映像/右映像がプロジェクションされた2Dイメージはイメージフレーム上において各々上/下に配置できる。stereo modeフィールドが異なる値を有する場合は、今後の使用のために残しておくことができる(Reserved for Future Use)。
次に、本発明の一実施例によるレンダリングメタデータは、initial_yaw、initial_pitch、initial_roll、viewport_vfov及び/又はviewport_hfovを含むことができる。
本発明の一実施例によるレンダリングメタデータは、初期視点(initial viewpoint)に関する情報を含むことができる。初期視点に関する情報は、図8のinitial view関連メタデータを意味する。
initial_yaw、initial_pitch及びinitial_rollフィールドは、該当360ビデオ再生時の初期視点を示す。即ち、再生時に最初に見られるビューポートの真ん中の地点が、これら3つのフィールドにより示されることができる。
initial_yawフィールドは該当360ビデオ再生時の真ん中の地点が位置をyaw軸を基準として回転した方向(符号)及びその程度(角度)で示すことができる。
initial_pitchフィールドは該当360ビデオ再生時の真ん中の地点が位置をPitch軸を基準として回転した方向(符号)及びその程度(角度)で示すことができる。
initial_rollフィールドは該当360ビデオ再生時の真ん中の地点が位置をroll軸を基準として回転した方向(符号)及びその程度(角度)で示すことができる。
viewport_vfovはビューポートの垂直視野範囲(vertical field of view)の値を示す。一実施例において、viewport_vfovはinitial_pitchを基準(中心)とした垂直視野範囲であることができる。
viewport_hfovはビューポートの水平視野範囲(Horizontal field of view)の値を示す。一実施例において、viewport_hfovはinitial_yawを基準(中心)とした水平視野範囲であることができる。
他の実施例において、レンダリングメタデータは初期視点に関する情報だけではなく、ROI(Region Of Interest)関連情報を提供することもできる。ROI関連情報は図8のROI関連メタデータを意味し、勧奨領域(recommeneded region)を指示するために使用されることができる。また、ROI関連情報はプロデューサーの意図領域などを示すために使用されることもできる。
図43に説明したprojection/mappingメタデータは、図45のようなボックス形態でファイルに含まれることができる。
図45は本発明の他の実施例によるprojection/mappingメタデータを含むボックスを示す図である。
本発明の一実施例によるvrvdボックスは、global_yaw、global_pitch、global_roll、projection_format、format_uri、mapping_flag、num_regions、pf_width、pf_height、quality_ranking、pf_reg_width、pf_reg_height、pf_reg_top、pf_reg_left、pf_reg_min_yaw、pf_reg_max_yaw、pf_reg_min_pitch、pf_reg_max_pitch、pf_reg_roll、rect_width、rect_height、rect_top、rect_left及び/又はrect_rotationを含む。
global_yaw、global_pitch及びglobal_rollは各々、プロジェクションのyaw、pitch及びrollを記述できる。より具体的には、global_yaw、global_pitch及びglobal_rollは、プロジェクテッドフレーム(projected frame)に対応する3Dレンダリングモデルのyaw、pitch及びrollを記述できる。
一実施例において、global_yaw、global_pitch及びglobal_rollは各々、プロジェクションのyaw、pitch及びrollを全域座標系(global coordinate system)を基準として16.16の固定小数点の度単位で記述できる。
projection_formatは、プロジェクションフォーマットを記述できる。一実施例において、projection_formatは、[CICP:Coding independent media description code points]に挙げられたようにプロジェクションフォーマットを記述できる。
format_uriはprojection_formatを定義するURIを記述できる。一実施例において、format_uriはprojection_formatをUTF−8文字のNULL終了文字列で定義するURIを記述できる。
mapping_flagは領域ごとのマッピング(region−wise mapping)又は領域ごとのパッキング(region−wise packing)の適用有無を指示できる。一実施例において、mapping_flagが0であると、領域ごとのマッピング(region−wise mapping)又は領域ごとのパッキング(region−wise packing)が適用されないことを指示でき、mapping_flagが1であると、領域ごとのマッピング(region−wise mapping)又は領域ごとのパッキング(region−wise packing)が適用されたことを指示できる。
領域ごとのマッピング又は領域ごとのパッキングが適用されない場合、パッキングされたフレーム(packed frame)はプロジェクテッドフレーム(projected frame)と同じ表現形式を有し、この場合、領域(regions)が指定されて品質順位を記述できる。
num_regionsは、プロジェクテッドフレーム(projected frame)においてパッキングされたフレーム(packed frame)にマッピングされる領域(regions)の数を指示できる。一実施例において、num_regionsが0であると、パッキングされたフレーム(packed frame)はプロジェクテッドフレーム(projected frame)と同じ表現形式を有することができる。
pf_width及びpf_heightは各々、プロジェクテッドフレーム(projected frame)の幅と高さを記述できる。
quality_rankingは該当領域(region)の品質順位を記述できる。一実施例において、quality_rankingが0であると、品質順位が定義されないことを示す。また、一実施例において、quality_ranking[i]がquality_ranking[j]より小さいと、index iが示す領域がindex jが示す領域より高い品質を有することを示すことができる。
pf_reg_widthは領域(region)の幅を記述できる。より具体的には、pf_reg_width[i]はi番目の領域(region)の幅を記述することができる。
一実施例において、iがnum_regions−1より小さいと、pf_reg_width[i]は0ではない。
また、pf_reg_width[num_regions−1]は0であることができ、pf_reg_width[num_regions−1]が0である場合、mapping_flagは1であり、num_regions−1番目の領域(i=num_regions−1である領域)はプロジェクテッドフレーム(projected frame)のうち、以前の領域(i<num_region−1である領域)によりカバーされない全ての区域(areas)を含む。
pf_reg_heightは領域(region)の高さを記述できる。より具体的には、pf_reg_height[i]はi番目の領域(region)の高さを記述できる。
pf_rect_top及びpf_reg_leftはプロジェクテッドフレーム(projected frame)内の領域(region)の最上端のサンプル行と、最も左側のサンプル列を記述できる。より具体的には、pf_rect_top[i]及びpf_reg_left[i]は、プロジェクテッドフレーム(projected frame)のi番目の領域(region)の最上端のサンプル行と、最も左側のサンプル列を記述できる。一実施例において、pf_rect_top及びpf_reg_leftの値は、各々0以上pf_height及びpf_width未満の範囲内であることができる。ここで、0はプロジェクテッドフレーム(projected frame)の最上端の左側コーナー(top−left corner)を意味する。
pf_reg_min_yaw及びpf_reg_max_yawは、プロジェクテッドフレーム(projected frame)の領域(region)に対応する3Dレンダリングモデルのyaw値の最小値及び最大値を各々示す。より具体的には、pf_reg_min_yaw[i]及びpf_reg_max_yaw[i]は、プロジェクテッドフレーム(projected frame)のi番目の領域(region)に対応する3Dレンダリングモデルのyaw値の最小値及び最大値を各々示すことができる。
pf_reg_min_pitch及びpf_reg_max_pitchは、プロジェクテッドフレーム(projected frame)の領域(region)に対応する3Dレンダリングモデルのpitch値の最小値及び最大値を各々示す。より具体的には、pf_reg_min_pitch[i]及びpf_reg_max_pitch[i]は、プロジェクテッドフレーム(projected frame)のi番目の領域(region)に対応する3Dレンダリングモデルのpitch値の最小値及び最大値を各々示すことができる。
pf_reg_rollは、プロジェクテッドフレーム(projected frame)の領域(region)に対応する3Dレンダリングモデルのroll値を示す。より具体的には、pf_reg_roll[i]はプロジェクテッドフレーム(projected frame)のi番目の領域(region)に対応する3Dレンダリングモデルのroll値を示すことができる。
rect_width、rect_height、rect_top及びrect_leftは、パッキングされたフレーム内の領域(region)の幅、高さ、最上端のサンプル行、最左側のサンプル列を各々記述できる。より具体的には、rect_width[i]、rect_height[i]、rect_top[i]及びrect_left[i]は、パッキングされたフレーム内のi番目の領域(region)の幅、高さ、最上端のサンプル行、最左側のサンプル列を各々記述できる。
rect_rotationはパッキングされたフレーム(packed frame)内の領域(region)の回転値を記述できる。より具体的には、rect_rotation[i]はパッキングされたフレーム(packed frame)内におけるi番目の領域(region)の中心を基準として該当i番目の領域の回転値を記述できる。
<プロデューサーの意図視点/領域、統計的選好視点/領域に対するROIメタデータを送受信する方法の案>
以下、プロデューサーの意図視点/領域、統計的選好視点/領域に対するROIメタデータを送受信する方法の案と、その具体的な送受信動作の過程について説明する。
VRビデオサービスにおいて、プロデューサーの意図視点/領域(director’s cut)、統計的な選好視点/領域(most−interested regions)に関する情報をROIメタデータ形態で伝送できる。2つの場合の送受信動作の過程は以下の通りである。
図46は本発明の他の実施例による360゜ビデオサービスのためのコンテンツ及びメタデータを送受信する過程を示す図面である。
図46に示された360゜ビデオサービスのためのコンテンツ及びメタデータを送受信する過程の基本的な内容は、図43に説明した内容と実質的に同一である。従って、異なる部分を中心として説明する。
一実施例によるROIタデータはプロデューサーが意図したビューポート及び/又は方向を指示するプロデューサーの意図視点/領域(director’s cut)に関する情報を伝送することができる。
このプロデューサーの意図視点/領域(director’s cut)に関する情報は、制作中又は制作後に監督(director)又はコンテンツプロデューサーの意図により決定された情報である。
このプロデューサーの意図視点/領域(director’s cut)に関する情報は、ユーザ装置(user device)においてアプリケーションに特化された方法でVRビデオをレンダリングするために使用できる。
このプロデューサーの意図視点/領域(director’s cut)に関する情報に含まれるビューポート及び/又は回転情報は、球座標内に表現されることができる。
このプロデューサーの意図視点/領域(director’s cut)に関する情報は、プロジェクション/マッピング過程前に編集されて受信側に伝達することができる。受信側のユーザ装置において、このプロデューサーの意図視点/領域(director’s cut)に関する情報は、リプロジェクション/マッピング過程後に使用されることができる。即ち、VRビデオレンダリングのための3Dモデル(球面イメージ)にこのプロデューサーの意図視点/領域(director’s cut)に関する情報を適用できる。
なお、このプロデューサーの意図視点/領域(director’s cut)に関する情報の編集及び使用は、3Dモデル(球面イメージ)で行われるので、2次元のパッキングされたフレーム(packed frame)又はコーディングされたビデオピクチャ(coded video picture)より直観的な情報を提供できる。従って、プロデューサーがプロデューサーの意図視点/領域(director’s cut)に関する情報を容易に編集でき、ユーザデバイスもVRイメージを容易にレンダリングできる。
図47は本発明のさらに他の実施例による360゜ビデオサービスのためのコンテンツ及びメタデータを送受信する過程を示す図である。
図47に示された360゜ビデオサービスのためのコンテンツ及びメタデータを送受信する過程の基本的な内容は、図43に説明した内容と実質的に同一である。従って、異なる部分を中心として説明する。
他の実施例によるROIメタデータは、統計的な選好視点/領域(most−interested regions)に関する情報を伝送できる。かかる統計的な選好視点/領域(most−interested Regions)に関する情報は、VRビデオ適応型ストリーミング(VR video prefetching)においてデータプリフェッチング(prefetching)に使用できる。
統計的な選好視点/領域(most−interested regions)に関する情報は、サービス/コンテンツ提供者によるユーザ統計から導き出すか或いはサービス/コンテンツ提供者による予測により決定することができる。
統計的な選好視点/領域(most−interested regions)に関する情報は、プリフェッチングを目的として要求するデータをユーザ装置(user device)が選択するために使用できる。
この統計的な選好視点/領域(most−interested regions)に関する情報は、プロジェクション/マッピング過程前に編集(editing)されて受信側に伝達される。また、統計的な選好視点/領域(most−interested regions)に含まれるビューポート及び/又は回転情報は、上述したプロデューサーの意図視点/領域(director’s cut)に関する情報の場合と同様の方式で球座標内に表現されることができる。
また、統計的な選好視点/領域(most−interested regions)に関する情報は、ユーザ装置(user device)がプリフェッチングを要求するセグメントを決定するために使用されることができる。即ち、統計的な選好視点/領域(most−interested regions)に関する情報は、DASH MPD及びセグメントを受信する過程で使用できる。
なお、2D座標(2Dcartesian coordinates)のROIメタデータは、キューブ構造の各面(face)のセグメントの記述に非効率的であるが、球座標(spherical coordinates)は、ROIメタデータを連続したセグメントに記述する時に有利である。但し、プロジェクションフォーマットが球(sphere)に限定されることではないので、他のプロジェクションフォーマットが適用されることができる。
上述したROIメタデータの送受信過程に使用されるメタデータの構文及び意味は、図48においても同様である。
図48は本発明の一実施例によるROIメタデータを示す図である。
ROIメタデータトラックは’cdsc(content describes)’トラック参照を通じて説明するトラックに連結できる。
かかるメタデータトラックに連結されたメディアトラックは、’tref’ボックスを通じて他のメディアトラックに連結されることもできる。
SphericalCoordinatesサンプルエントリー(’sphc’)は、参照されたトラックに関連する空間情報を提供し、かかる参照されたトラックは球形座標系(spherical coordinate system)で表現される。
図48の上端を参照すると、SphericalCoordinatesサンプルエントリーは、reference_min_yaw、reference_max_yaw、reference_min_pitch及びreference_max_pitchを含む。
reference_min_yaw、reference_max_yaw、reference_min_pitch及びreference_max_pitchは、全てのROI座標(yaw、pitch、roll及びfield_of_view)が計算される基準球面空間(reference spherical space)においてyaw及びpitch値の範囲を度単位で(in degree)提供できる。
reference_min_yawは基準球面空間(reference spherical space)においてyawの最小値を示す。
reference_max_yawは基準球面空間(reference spherical space)においてyawの最大値を示す。
reference_min_pitchは基準球面空間(reference spherical space)においてpitchの最小値を示す。
reference_max_pitchは基準球面空間(reference spherical space)においてpitchの最小値を示す。
SphericalCoordinatesサンプルエントリーに関連するSpherical coordinatesサンプルは、図48の下端と同じ構文に従う。
図48の下端を参照すると、Spherical coordinatesサンプルは、Yaw、Pitch、roll、field_of_view、duration及び/又はinterpolateを含む。
Yawは、参照されたトラック(referenced track)のメディアサンプルに関連する領域(region)の中心点において、yaw軸を基準として回転した角度を度単位で(in degree)示すことができる。
Pitchは、参照されたトラック(referenced track)のメディアサンプルに関連する領域(region)の中心点において、Pitch軸を基準として回転した角度を度単位で(in degree)示すことができる。
rollは、参照されたトラック(referenced track)のメディアサンプルに関連する領域(region)の中心点において、roll軸を基準として回転した角度を度単位で(in degree)示すことができる。
field_of_viewは参照されたトラック(referenced track)のメディアサンプルに関連する領域(region)の視野角(field of view degree)を示す。
durationは該当spherical coordinateサンプルの持続時間を示す。この値の時間単位は’mvhd’又は該当メタデータトラックの’mdhd’ボックスが提供するtimescaleである。
interpolateは連続サンプルに対する時間連続性を示す。一実施例において、interpolateがtrueである場合、アプリケーションは以前のサンプルと現在のサンプル間のROI座標値を線形的に補間でき、interpolateがfalseである場合、以前のサンプルと現在のサンプルの間に補間は行われない。ROIメタデータトラックに対する同期化サンプル(sync samples)のinterpolate値は0である。
本発明の一側面によれば、全方位ビデオを伝送する方法が開示される。
図49は本発明の一実施例による全方位ビデオを伝送する方法を示すフローチャートである。
本発明の一実施例による全方位ビデオを伝送する方法は、全方位ビデオのためのイメージを得る段階(SH49100)、全方位ビデオのためのイメージを3次元プロジェクションのストラクチャーに投影する段階(SH49200)、3次元プロジェクションのストラクチャーに投影されたイメージを2次元フレームにパッキングする段階(SH49300)、2次元フレームにパッキングされたイメージをエンコーディングする段階(SH49400)及びエンコーディングされたイメージ及び全方位ビデオに関するメタデータを含むデータ信号を伝送する段階(SH49500)を含む。
全方位ビデオのためのイメージを得る段階(SH49100)において、全方位ビデオのためのイメージを得ることができる。図1、図2及び図4に説明したように、全方位ビデオのためのイメージは全方位カメラ(360゜カメラ、VRカメラ)を用いて全方位ビデオのためのイメージをキャプチャーして得るか、或いは全方位ビデオに該当するデータを生成することにより得ることができる。
全方位ビデオのためのイメージを得る段階(SH49100)は、図1のキャプチャー過程(t1010)に対応し、図2のデータ入力部における動作に対応し、図4の獲得(acquisition)に対応し、また図43、図46及び図47の獲得過程(acquistion)に対応する。
全方位ビデオのためのイメージを3次元プロジェクションのストラクチャーに投影する段階(SH49200)は、全方位ビデオのためのイメージを3次元プロジェクション構造(3Dprojection structure)又は3次元モデル(3Dmodel)にプロジェクションする段階である。一実施例において、3次元プロジェクション構造(3Dprojection structure)又は3次元モデル(3Dmodel)としては、球形(Sphere)、キューブ(Cube)、シリンダー(Cylinder)又はピラミッド(Pyramid)がある。
全方位ビデオのためのイメージを3次元プロジェクションのストラクチャーに投影する段階(SH49200)は、図1の準備過程(t1010)のプロジェクションに対応し、図2のプロジェクション処理部における動作に対応し、図4のプロジェクション(projection)に対応し、また図43、図46及び図47のプロジェクション/マッピング過程(projection/mapping)のプロジェクションに対応する。
一実施例において、全方位ビデオを伝送する方法は、全方位ビデオのためのイメージを得る段階(SH49100)と、全方位ビデオのためのイメージを3次元プロジェクションのストラクチャーに投影する段階(SH49200)の間に、さらに全方位ビデオのためのイメージを連結する段階であるステッチング段階を含む。即ち、全方位ビデオのためのイメージはステッチングを通じて連結され、連結されたイメージが3次元プロジェクション構造(3Dprojection structure)に投影(projection)される。
3次元プロジェクションのストラクチャーに投影されたイメージを2次元フレームにパッキングする段階(SH49300)は、3次元プロジェクションのストラクチャーに投影された3次元イメージを2次元フレームにマッピングする段階である。3次元プロジェクションのストラクチャーに投影された3次元イメージは3次元領域情報を通じて表現され、2次元フレームにパッキングされたイメージ(packed image)は2次元領域情報を通じて表現されることができる。
この時、2次元領域情報と3次元領域情報は互いに対応する。即ち、2次元領域情報が指示する2次元フレーム上の領域又は地点は、3次元領域情報が指示する3次元プロジェクション構造上の領域又は地点に対応することができる。
ここで、2次元領域情報は、図12、図13、図37、図40、図44及び図45に説明した情報であり、3次元領域情報は図14、図15、図16、図17、図18、図38、図40、図41、図44及び図45に説明した情報である。また2次元領域情報及び3次元領域情報は、全方位ビデオに関するメタデータに含まれる情報である。
一方、3次元プロジェクションのストラクチャーに投影されたイメージを2次元フレームにパッキングする段階(SH49300)は、図1の準備過程(t1010)の2Dイメージマッピングに対応し、図2のプロジェクション処理部における2Dプロジェクション動作に対応し、図4のプロジェクション及びマッピング(projection and mapping)のマッピング過程に対応し、図43、図46及び図47のプロジェクション/マッピング過程(projection/mapping)のマッピングに対応する。
一実施例において、3次元プロジェクションのストラクチャーに投影されたイメージを2次元フレームにパッキングする段階(SH49300)は、3次元プロジェクションのストラクチャーに投影されたイメージを所定の領域に区画する段階及び所定の領域ごとに区画されたサブイメージを2次元フレームにパッキングする段階を含む。
かかる3次元プロジェクションのストラクチャーに投影されたイメージを所定の領域に区画する段階及び所定の領域ごとに区画されたサブイメージを2次元フレームにパッキングする段階は、図1のリージョンごとのパッキング過程に対応し、図2のリージョンごとのパッキング部の動作に対応し、図4のリージョンごとのパッキング過程(region−wise packing)に対応する。なお、リージョンごとのパッキングが行われた場合、所定の領域ごとに区画されたサブイメージは、各々パッキングされたフレームに対応する。リージョンごとのパッキングが行われない場合、2次元フレームはパッキングされたフレームと同一であることができる。
2次元フレームにパッキングされたイメージをエンコーディングする段階(SH49400)は、パッキングされたイメージを所定の符号化方式により符号化する(encoding)段階である。
2次元フレームにパッキングされたイメージをエンコーディングする段階(SH49400)は、図1の準備過程(t1010)のエンコーディング過程に対応し、図2のデータエンコーダーの動作に対応し、図4のビデオエンコーディング又はイメージエンコーディング過程に対応し、図43、図46及び図47のビデオエンコーディング過程(video encoding)に対応する。
一実施例において、リージョンごとのパッキングが行われる場合、2次元フレームにパッキングされたイメージをエンコーディングする段階(SH49400)は、各々のリージョンに対応するパッキングされたイメージ(packed image)ごとにエンコーディングする段階である。この時、各々のパッキングされたイメージに対する符号化方式は互いに異なることもできる。
エンコーディングされたイメージ及び全方位ビデオに関するメタデータを含むデータ信号を伝送する段階(SH49500)は、エンコーディングされたイメージ及び全方位ビデオに関するメタデータを含むデータ信号を受信装置に伝送する段階である。
エンコーディングされたイメージ及び全方位ビデオに関するメタデータを含むデータ信号を伝送する段階(SH49500)は、図1の伝送過程に対応し、図2の伝送部における動作に対応し、図4の伝達(delivery)に対応する。
一実施例において、データ信号は放送信号であり、放送信号を通じてエンコーディングされたイメージ及び全方位ビデオに関するメタデータが伝送されることができる。
代替の実施例において、エンコーディングされたイメージは放送網を介して伝送され、全方位ビデオに関するメタデータはブロードバンド網を介して伝送されるが、逆にエンコーディングされたイメージはブロードバンド網を介して伝送され、全方位ビデオに関するメタデータは放送網を介して伝送されることもでき、エンコーディングされたイメージ及び全方位ビデオに関するメタデータがいずれもブロードバンド網を介して伝送されることもできる。
全方位ビデオに関するメタデータは、受信装置が全方位ビデオを処理するために必要な一体の情報を意味する。全方位ビデオに関するメタデータは図8のメタデータの全部又は一部に該当し、図12乃至図19、図20乃至図23、図25、図27、図28、図30乃至図38、図40、図41、図44、図45及び/又は図48の情報を意味する。
具体的な実施例において、全方位ビデオに関するメタデータは3次元プロジェクションのストラクチャーに投影されたイメージに関する3次元領域情報又は2次元フレームパッキングされたイメージに関する2次元領域情報を含むことができる。ここで、2次元領域情報は図12、図13、図37、図40、図44及び図45に説明した情報であり、3次元領域情報は図14、図15、図16、図17、図18、図38、図40、図41、図44及び図45に説明した情報である。また、2次元領域情報及び3次元領域情報は、全方位ビデオに関するメタデータに含まれる情報であることができる。
より具体的には、実施例において、3次元領域情報は、球形の3次元プロジェクションのストラクチャーにプロジェクションされた3次元イメージの領域を指示するために使用できる。即ち、3次元領域情報は球面の領域を指示する情報であることができる(図14、図15、図16、図17、図18、図38 図40、図41、図44及び図45)。かかる実施例において、3次元領域情報は水平視野範囲を指示する水平視野情報及び垂直視野範囲を指示する垂直視野情報を含む。また、3次元領域情報はさらに、水平視野範囲及び垂直視野範囲の中心を指示するためのヨー(yaw)軸の角度及びピッチ(pitch)軸の角度を各々指示するヨー情報及びピッチ情報を含むことができる。一実施例において、水平視野情報及び垂直視野情報は、図14乃至図18のfield_of_view、min_field_of_view、max_field_of_view、horizontal_field_of_view、vertical_ field_of_view、reference_width、reference_height、width、height、reference_horizontal_field_of_view、reference_vertical_field_of_view、reference_viewpoint_yaw_range、reference_viewpoint_pitch_range、horizontal_field_of_view、vertical_field_of_view、viewpoint_yaw_range及び/又はviewpoint_pitch_rangeである。
また、一実施例において、水平視野範囲及び垂直視野範囲の中心を指示するためのヨー(yaw)軸の角度及びピッチ(pitch)軸の角度を各々指示するヨー情報及びピッチ情報は、図14乃至図18のcenter_yaw、yaw、center_pitch、pitch、reference_yaw_center、reference_pitch_center、reference_roll_center、yaw_center、pitch_center及び/又はroll_centerである。
また、より具体的には、実施例において、全方位ビデオに関するメタデータは、上記球面の領域を特定する領域タイプを識別する領域タイプ情報を含む。該領域タイプは、上記球に属する4つの大圏(great circle)により領域を特定する第1タイプ及び上記球に属する2つの大圏(great circle)と2つの小圏(small circle)により領域を特定する第2タイプを含み、大圏は球の中心を通る円を意味し、小圏は球の中心を通らない円を意味する。ここで、領域タイプは図16乃至図19に説明したregion_typeを意味する。
また、全方位ビデオに関するメタデータは、ROI情報、勧奨領域(recommended region)情報、又は全方位ビデオプロデューサーが意図した視点に関する情報を指示する。
かかる全方位ビデオに関するメタデータは、ISOBMFFファイルフォーマット、DASH MPD/Segment、MPEG−2 TSのPESパケット又はadaptaion field、及び/又はVCLのSEI messageを通じて伝送される。
一実施例において、全方位ビデオに関するメタデータは、DASH(Dynamic Adaptive Streaming over HTTP)のアダプテーションセット(adaptation set)に含まれて伝送される。これについての説明は、図22乃至図29と該当図面の説明に詳しく説明されている。
他の実施例において、全方位ビデオに関するメタデータは、MPEG−2 TSのPES(Packetized Elementary Stream)パケット又はTS(transport Stream)のアダプテーションフィールド(adaptaion field)に含まれて伝送される。これについての説明は、図30乃至図39と該当図面の説明に詳しく説明されている。
また他の実施例において、全方位ビデオに関するメタデータは、VCL(Video Coding layer)のSEI message(Supplemental Enhancement Layer)に含まれて伝送される。これについての説明は、図40乃至図42と該当図面の説明に詳しく説明されている。なお、一実施例において、上記球面の領域は、図41に説明したように、上記球に属する4つの大圏により領域が特定される。
本発明の他の側面によれば、全方位ビデオを伝送する装置が開示される。
図50は本発明の一実施例による全方位ビデオを伝送する装置を示すブロック図である。
本発明の一実施例による全方位ビデオを伝送する装置は、全方位ビデオのためのイメージを得るイメージ獲得部(H50100)、全方位ビデオのためのイメージを3次元プロジェクションのストラクチャーに投影するプロジェクション部(H50200)、3次元プロジェクションのストラクチャーに投影されたイメージを2次元フレームにパッキングするパッキング部(H50300)、2次元フレームにパッキングされたイメージをエンコーディングするエンコーダー(H50400)及びエンコーディングされたイメージ及び全方位ビデオに関するメタデータを含むデータ信号を伝送する伝送部(H50500)を含む。
イメージ獲得部(H50100)の動作は、図49に説明した本発明の一実施例による全方位ビデオを伝送する方法における全方位ビデオのためのイメージを得る段階(SH49100)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
プロジェクション部(H50200)の動作は、図49に説明した本発明の一実施例による全方位ビデオを伝送する方法における全方位ビデオのためのイメージを3次元プロジェクションのストラクチャーに投影する段階(SH49200)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
パッキング部(H50300)の動作は、図49に説明した本発明の一実施例による全方位ビデオを伝送する方法における3次元プロジェクションのストラクチャーに投影されたイメージを2次元フレームにパッキングする段階(SH49300)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
エンコーダー(H50400)の動作は、図49に説明した本発明の一実施例による全方位ビデオを伝送する方法における2次元フレームにパッキングされたイメージをエンコーディングする段階(SH49400)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
伝送部(H50500)の動作は、図49に説明した本発明の一実施例による全方位ビデオを伝送する方法におけるエンコーディングされたイメージ及び全方位ビデオに関するメタデータを含むデータ信号を伝送する段階(SH49500)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
一実施例において、全方位ビデオを伝送する装置はさらにステッチャー(図示せず)を含むことができる。このステッチャーは全方位ビデオのためのイメージを連結できる。ステッチャーの動作は図49に説明した本発明の一実施例による全方位ビデオを伝送する方法におけるステッチング段階の動作に対応し、該当段階に関連する説明を適用できる。
また、一実施例において、パッキング部(H50300)は、3次元プロジェクションのストラクチャーに投影されたイメージを所定の領域に区画した後、所定の領域ごとに区画されたサブイメージを2次元フレームにパッキングすることができる。このパッキング部のリージョンごとのパッキング動作は、図49に説明した本発明の一実施例による全方位ビデオを伝送する方法におけるリージョンごとのパッキング段階の動作に対応し、該当段階に関連する説明を適用できる。
全方位ビデオに関するメタデータは、受信装置が全方位ビデオを処理するために必要な一体の情報を意味する。全方位ビデオに関するメタデータに関する内容は、本発明の一実施例による全方位ビデオを伝送する方法に説明した内容をそのまま適用できる。
本発明のさらに他の側面によれば、全方位ビデオを受信する方法が開示される。
図51は本発明の一実施例による全方位ビデオを受信する方法を示すフローチャートである。
本発明の一実施例による全方位ビデオを受信する方法は、全方位ビデオのためのイメージ及び全方位ビデオに関するメタデータを含むデータ信号を受信する段階(SH51100)、全方位ビデオに関するメタデータをパーシングする段階(SH51200)、全方位ビデオのためのイメージをデコーディングする段階(SH51300)、及び全方位ビデオのためのイメージを3次元モデルにリプロジェクションする段階(SH51400)を含む。
本発明の一実施例による全方位ビデオを受信する方法は、上述した本発明の一実施例による全方位ビデオを伝送する方法に対応する受信の側面の方法である。
全方位ビデオのためのイメージ及び全方位ビデオに関するメタデータを含むデータ信号を受信する段階(SH51100)は、全方位ビデオのためのイメージ及び全方位ビデオに関するメタデータを含むデータ信号を受信する段階であり、かかるデータ信号は送信装置から伝送されたものである。
全方位ビデオのためのイメージは、本発明の一実施例による全方位ビデオを送信する方法におけるエンコーディングされたイメージを意味する。即ち、ここで、全方位ビデオのためのイメージは、図49のSH49100段階、SH49200段階、SH49300段階及びSH49400段階で生成されたエンコーディングされたイメージである。
全方位ビデオのためのイメージ及び全方位ビデオに関するメタデータを含むデータ信号を受信する段階(SH51100)は、図1の受信過程に対応し、図3の受信部における動作に対応し、図4の受信過程に対応する。
一実施例において、データ信号は放送信号であり、放送信号を通じて全方位ビデオのためのイメージ及び全方位ビデオに関するメタデータを伝送できる。
代替の実施例において、全方位ビデオのためのイメージは放送網を介して伝送され、全方位ビデオに関するメタデータはブロードバンド網を介して伝送されるが、逆に全方位ビデオのためのイメージはブロードバンド網を介して伝送され、全方位ビデオに関するメタデータは放送網を介して伝送されることができ、全方位ビデオのためのイメージ及び全方位ビデオに関するメタデータがいずれもブロードバンド網を介して伝送されることもできる。
全方位ビデオに関するメタデータは、受信装置が全方位ビデオを処理するために必要な一体の情報を意味する。全方位ビデオに関するメタデータは、図8のメタデータの全部又は一部に該当することができ、図12乃至図19、図20乃至図23、図25、図27、図28、図30乃至図38、図40、図41、図44、図45及び/又は図48の情報を意味することができる。
具体的な実施例において、全方位ビデオに関するメタデータは、3次元プロジェクションのストラクチャーに投影されたイメージに対する3次元領域情報又は2次元フレームにパッキングされたイメージに対する2次元領域情報を含む。ここで、2次元領域情報は図12、図13、図37、図40、図44及び図45に説明した情報であり、3次元領域情報は図14、図15、図16、図17、図18、図38、図40、図41、図44及び図45に説明した情報であることができる。また、2次元領域情報及び3次元領域情報は、全方位ビデオに関するメタデータに含まれる情報であることができる。
より具体的には、実施例において、3次元領域情報は球形の3次元プロジェクションのストラクチャーにプロジェクションされた3次元イメージの領域を指示するために使用できる。即ち、3次元領域情報は球面の領域を指示する情報であることができる(図14、図15、図16、図17、図18、図38 図40、図41、図44及び図45)。この実施例において、3次元領域情報は、水平視野範囲を指示する水平視野情報及び垂直視野範囲を指示する垂直視野情報を含む。また、3次元領域情報はさらに、水平視野範囲及び垂直視野範囲の中心を指示するためのヨー(yaw)軸の角度及びピッチ(pitch)軸の角度を各々指示するヨー情報及びピッチ情報を含む。一実施例において、水平視野情報及び垂直視野情報は、図14乃至図18のfield_of_view、min_field_of_view、max_field_of_view、horizontal_field_of_view、vertical_ field_of_view、reference_width、reference_height、width、height、reference_horizontal_field_of_view、reference_vertical_field_of_view、reference_viewpoint_yaw_range、reference_viewpoint_pitch_range、horizontal_field_of_view、vertical_field_of_view、viewpoint_yaw_range及び/又はviewpoint_pitch_rangeである。
また、一実施例において、水平視野範囲及び垂直視野範囲の中心を指示するためのヨー(yaw)軸の角度及びピッチ(pitch)軸の角度を各々指示するヨー情報及びピッチ情報は、図14乃至図18のcenter_yaw、yaw、center_pitch、pitch、reference_yaw_center、reference_pitch_center、reference_roll_center、yaw_center、pitch_center及び/又はroll_centerである。
また、より具体的には、実施例において、全方位ビデオに関するメタデータは球面の領域を特定する領域タイプを識別する領域タイプ情報を含む。領域タイプは、上記球に属する4つの大圏(great circle)により領域を特定する第1タイプ、及び上記球に属する2つの大圏(great circle)と2つの小圏(small circle)により領域を特定する第2タイプを含み、大圏は上記球の中心を通る円を意味し、小圏は上記球の中心を通らない円を意味する。ここで、領域タイプは図16乃至図19に説明したregion_typeを意味する。
また、全方位ビデオに関するメタデータはROI情報、勧奨領域(recommended region)情報、又は全方位ビデオプロデューサーが意図した視点に関する情報を指示できる。
この全方位ビデオに関するメタデータは、ISOBMFFファイルフォーマット、DASH MPD/Segment、MPEG−2 TSのPESパケット又はadaptaion field、及び/又はVCLのSEI messageを通じて伝送される。
一実施例において、全方位ビデオに関するメタデータは、DASH(Dynamic Adaptive Streaming over HTTP)のアダプテーションセット(adaptation set)に含まれて伝送される。これに関する説明は、図22乃至図29と該当図面の説明に詳しく説明されている。
他の実施例において、全方位ビデオに関するメタデータは、MPEG−2 TSのPES(Packetized Elementary Stream)パケット又はTS(transport Stream)のアダプテーションフィールド(adaptaion field)に含まれて伝送される。これに関する説明は、図30乃至図39と該当図面の説明に詳しく説明されている。
また他の実施例において、全方位ビデオに関するメタデータは、VCL(Video Coding layer)のSEI message(Supplemental Enhancement Layer)に含まれて伝送される。これに関する説明は、図40乃至図42と該当図面の説明に詳しく説明されている。なお、一実施例において、上記球面の領域は、図41に説明したように、上記球に属する4つの大圏により領域が特定される。
全方位ビデオに関するメタデータをパーシングする段階(SH51200)は、データ信号に含まれた全方位ビデオに関するメタデータをパーシングする段階である。
上述したように、全方位ビデオに関するメタデータは、ISOBMFFファイルフォーマット、DASH MPD/Segment、MPEG−2 TSのPESパケット又はadaptaion field及び/又はVCLのSEI messageを通じて伝送できるので、全方位ビデオに関するメタデータは各レベルにおいてパーシングされることができる。
全方位ビデオのためのイメージをデコーディングする段階(SH51300)は、エンコーディングされたイメージを符号化した方式に対応する復号化方式を使用して、エンコーディングされたイメージをデコーディングする段階である。
全方位ビデオのためのイメージをデコーディングする段階(SH51300)は、図1のプロセシング過程のデコーディング過程に対応し、図3のデータデコーダーの動作に対応し、図4のビデオデコーディング又はイメージデコーディング過程に対応し、図43、図46及び図47のビデオデコーディング過程(video decoding)に対応する。
一実施例において、リージョンごとのパッキングが行われる場合、全方位ビデオのためのイメージをデコーディングする段階(SH51300)は、各リージョンに対応するパッキングされたイメージ(packed image)ごとにデコーディングする段階である。この時、各パッキングされたイメージに対する復号化方式が異なることができる。
なお、全方位ビデオに関するメタデータがVCLのSEI messageを通じて伝送される実施例である場合、全方位ビデオに関するメタデータは(SH51300)の段階で抽出できる。
全方位ビデオのためのイメージを3次元モデルにリプロジェクションする段階(SH51400)は、2次元フレームにパッキングされたイメージを3次元モデルにリプロジェクションする段階である。SH51300の段階でデコーディングされた全方位ビデオのためのイメージは、2次元フレームにパッキングされたイメージを意味するので、この段階(SH51400)は2次元フレームにパッキングされたイメージを3次元モデルにリプロジェクションする段階を意味する。ここで、3次元モデルは、本発明の一実施例による全方位ビデオを伝送する方法における3次元プロジェクションの構造と同一であることができる。
全方位ビデオのためのイメージを3次元モデルにリプロジェクションする段階(SH51400)は、図1のレンダリング過程(t1030)に対応し、図3のリプロジェクション処理部の動作に対応し、図4のビデオレンダリング過程に対応し、図43、図46及び図47のリプロジェクション過程(re−projection)及びVRビデオレンダリング過程(VR video rendering)に対応する。
一実施例において、本発明の一実施例による全方位ビデオを受信する方法は、さらにフィードバック段階を含むことができる。このフィードバック段階は、ユーザデバイスのビューポート情報又は回転情報を出力する段階であって、このユーザデバイスのビューポート情報又は回転情報に基づいて視聴領域に対応するデータが処理される。このユーザデバイスのビューポート情報又は回転情報を含むフィードバック情報は、リプロジェクション段階又はレンダリング段階以前に提供されるか、イメージデコーディング段階以前に提供されることができ、或いは伝送ファイル又はセグメントを脱カプセル化する段階以前に提供されることもできる。さらに、フィードバック情報は送信側に伝送されることもできる。
このフィードバック段階は、図1のフィードバック過程に対応し、図3のフィードバック処理部における動作に対応し、図4のVRアプリケーションのトラッキング過程に対応し、図43、図46及び図47のトラッキング過程(Head/eye tracking)に対応する。
本発明のさらに他の側面によれば、全方位ビデオを受信する装置が開示される。
図52は本発明の一実施例による全方位ビデオを受信する装置を示すブロック図である。
本発明の一実施例による全方位ビデオを受信する装置は、全方位ビデオのためのイメージ及び全方位ビデオに関するメタデータを含むデータ信号を受信する受信部(H52100)、全方位ビデオに関するメタデータをパーシングするメタデータパーサー(H52200)、全方位ビデオのためのイメージをデコーディングするデコーダー(H52300)、及び全方位ビデオのためのイメージを3次元モデルにリプロジェクションするレンダリング部(H52400)を含む。
受信部(H52100)の動作は、図51に説明した本発明の一実施例による全方位ビデオを受信する方法における全方位ビデオのためのイメージ及び全方位ビデオに関するメタデータを含むデータ信号を受信する段階(SH51100)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
メタデータパーサー(H52200)の動作は、図51に説明した本発明の一実施例による全方位ビデオを受信する方法における全方位ビデオに関するメタデータをパーシングする段階(SH51200)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
デコーダー(H52300)の動作は、図51に説明した本発明の一実施例による全方位ビデオを受信する方法における全方位ビデオのためのイメージをデコーディングする段階(SH51300)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
レンダリング部(H52400)の動作は、図51に説明した本発明の一実施例による全方位ビデオを受信する方法における全方位ビデオのためのイメージを3次元モデルにリプロジェクションする段階(SH51400)に記載の動作に対応するので、該当段階に関連する説明を適用できる。
一実施例において、全方位ビデオを受信する装置は、さらにフィードバック処理部(図示せず)を含むことができる。このフィードバック処理部は、ユーザデバイスのビューポート及び/又は回転をトラッキングしてビューポート情報及び/又は回転情報を生成して出力する。
全方位ビデオに関するメタデータは、受信装置が全方位ビデオを処理するために必要な一体の情報を意味する。全方位ビデオに関するメタデータについては、本発明の一実施例による全方位ビデオを受信する方法に説明した内容をそのまま適用できる。
上述した装置の内部コンポーネントは、メモリに貯蔵された連続する実行過程を行うプロセッサであるか、或いはそれ以外のハードウェアで構成されたハードウェアコンポーネントであることができる。これらは装置の内部/外部に位置することができる。
上述したモジュールは、実施例によって省略されることができ、或いは類似/同一の動作を行うモジュールに置き換えることができる。
上述した各々のパート、モジュール又はユニットは、メモリ(又は貯蔵ユニット)に貯蔵された連続する実行過程を行うプロセッサでるか、或いはハードウェアパートである。上述した実施例に記載された各々の段階は、プロセッサ又はハードウェアパートにより行われることができる。上述した実施例に記載された各々のモジュール/ブロック/ユニットは、ハードウェア/プロセッサとして動作できる。また、本発明が提示する方法は、コードとして行われることができる。このコードは、プロセッサが読み取り可能な貯蔵媒体に記録されることができ、よって装置(apparatus)が提供するプロセッサにより読み取られることができる。
説明の便宜のために各図を区分して説明したが、各図に示した実施例を併合して新しい実施例を実現するように設計することも可能である。そして、通常の技術者の必要によって、以上説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも、本発明の権利範囲に属する。
本発明に係る装置及び方法は、以上説明した実施例の構成及び方法が限定的に適用されるものではなく、上述した実施例の様々な変形が可能なように、各実施例の全部又は一部を選択的に組み合せて構成することもできる。
一方、本発明が提案する方法を、ネットワークデバイスに具備された、プロセッサで読み取り可能な記録媒体に、プロセッサで読み取り可能なコードとして具現することができる。プロセッサで読み取り可能な記録媒体は、プロセッサで読み取り可能なデータが記憶されるいずれの種類の記録装置をも含む。プロセッサで読み取り可能な記録媒体の例には、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ記憶装置などがあり、また、インターネットを介した伝送などのようなキャリアウェーブの形態で具現されるものも含む。また、プロセッサで読み取り可能な記録媒体は、ネットワークで接続されたコンピューターシステムに分散され、分散方式でプロセッサで読み取り可能なコードが記憶されて実行されてもよい
また、以上では、本発明の好適な実施例について図示及び説明したが、本発明は、上述した特定の実施例に限定されず、特許請求の範囲で請求する本発明の要旨から逸脱しない限度で、当該発明の属する技術の分野における通常の知識を有する者にとって様々な変形実施が可能であることは無論である。これらの変形実施も、本発明の技術的思想や展望から個別的に理解してはならない
本発明の思想や範囲を逸脱することなく、本発明において様々な変更及び変形が可能であることは当業者に理解される。したがって、本発明は、添付された請求項及びその同等範囲内で提供される本発明の変更及び変形を含むことと意図される。
本明細書において装置及び方法発明が全て言及され、装置及び方法発明の全ての説明は互いに補完して適用されることができる。
[発明を実施するための形態]
様々な実施例が発明を実施するための最善の形態で説明された。