本発明は、多様な変更を加えることができ、様々な実施例を有することができ、特定の実施例を図面に例示して詳細に説明する。しかし、これは本発明を特定の実施形態に限定するものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定するために使われるものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本明細書で「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はこれらを組合せたものが存在することを指定するものであり、一つ又はそれ以上の他の特徴、数字、ステップ、動作、構成要素、部品又はこれらを組合せたものの存在又は付加の可能性を予め排除しないと理解しなければならない。
一方、本発明で説明される図面上の各構成は、映像符号化/復号装置で互いに異なる特徴的な機能に関する説明の便宜のために独立して図示したものであり、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されるということを意味しない。例えば、各構成のうち二つ以上の構成が統合されて一つの構成になることもでき、一つの構成が複数の構成に分けられることもできる。各構成が統合及び/又は分離された実施例も本発明の本質から外れない限り本発明の権利範囲に含まれる。
以下、添付図面を参照して、本発明の好ましい実施例をさらに詳細に説明する。以下、図面上、同一の構成要素に対しては同一の参照符号を使用し、同一の構成要素に対して重複した説明は省略する。
図1は本発明による360°ビデオ提供のためのアーキテクチャ全体を示す図である。
本発明はユーザに仮想現実(Virtual Reality、VR)を提供するために、360°コンテンツを提供する案を提案する。VRとは、実際又は仮想の環境を複製(replicates)するための技術とその環境を意味する。VRは人工的にユーザに感覚的経験を提供し、これによりユーザは電子的にプロジェクションされた環境にいるような経験をすることができる。
360°コンテンツはVRを実現、提供するためのコンテンツ全般を意味し、360°ビデオ及び/又は360°オーディオを含む。360°ビデオはVRを提供するために必要な、全方向(360°)が同時にキャプチャ又は再生されるビデオ又はイメージコンテンツを意味する。以下、360°ビデオとは、360°ビデオを意味する。360°ビデオは3Dモデルによって様々な形態の3D空間上に表されるビデオ又はイメージを意味し、例えば、360°ビデオは球形の(Spherical)面上に表されることができる。360°オーディオもVRを提供するためのオーディオコンテンツであって、音響発生地が3次元の特定の空間上に位置すると認知できる、空間的(Spatial)オーディオコンテンツを意味する。360°コンテンツは生成、処理されてユーザに送信され、ユーザは360°コンテンツを用いてVR経験を消費する。
本発明は特に360°ビデオを効果的に提供する案を提案する。360°ビデオを提供するために、まず1つ以上のカメラにより360°ビデオがキャプチャされる。キャプチャされた360°ビデオは一連の過程を経て送信され、受信側では受信されたデータを再び元来の360°ビデオに加工してレンダリングすることができる。これにより360°ビデオがユーザに提供される。
具体的には、360°ビデオ提供のための全過程はキャプチャ過程(process)、準備過程、送信過程、プロセシング過程、レンダリング過程及び/又はフィードバック過程を含む。
キャプチャ過程は、1つ以上のカメラで複数のビューポイントの各々に対するイメージ又はビデオをキャプチャする過程を意味する。キャプチャ過程により図示された図1の(110)のようなイメージ/ビデオデータが生成される。図示した図1の(110)の各平面は各ビューポイントに対するイメージ/ビデオを意味する。このキャプチャされた複数のイメージ/ビデオをロー(raw)データとも言える。キャプチャ過程ではキャプチャに関連するメタデータが生成されることができる。
このキャプチャのためには、VRのための特殊カメラが使用される。実施例によってコンピューターで生成された仮想の空間に対する360°ビデオを提供しようとする場合、実際のカメラによるキャプチャではないことがある。この場合、単に関連データが生成される過程をもって該当キャプチャ過程に代えることができる。
準備過程は、キャプチャされたイメージ/ビデオ及びキャプチャ過程で発生したメタデータを処理する過程である。キャプチャされたイメージ/ビデオは、この準備過程において、スティッチング(stitching)過程、プロジェクション(projection)過程、リージョンごとのパッキング過程(Region-wise Packing)及び/又は符号化過程などを経る。
まず各々のイメージ/ビデオはスティッチング(Stitching)過程を経る。スティッチング過程は、各々のキャプチャされたイメージ/ビデオを連結して1つのパノラマイメージ/ビデオ又は球形のイメージ/ビデオを形成する過程である。
その後、スティッチングされたイメージ/ビデオは、プロジェクション(Projection)過程を経る。プロジェクション過程において、スティッチングされたイメージ/ビデオは2Dイメージ上にプロジェクションされる。この2Dイメージは、文脈により2Dイメージフレームとも呼ばれる。2Dイメージにプロジェクションすることを、2Dイメージにマッピングするとも表現できる。プロジェクションされたイメージ/ビデオデータは、図示した図1の(120)のような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モデル上にレンダリングされた)イメージ/ビデオは、図示された図1の(130)のような形態を有することができる。図示された図1の(130)は球形(Sphere)の3Dモデルにリプロジェクションされた場合である。ユーザはVRディスプレイなどによりレンダリングされたイメージ/ビデオの一部領域を見ることができる。この時、ユーザが見る領域は図示された図1の(140)のような形態であることができる。
フィードバック過程は、ディスプレイ過程から得られる様々なフィードバック情報を送信側に伝達する過程を意味する。フィードバック過程により、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°ビデオデータという用語はまた、かかるイメージ/ビデオデータに関連するメタデータ乃至シグナリング情報を含む概念としても使用される。
上記オーディオ又はビデオなどのメディアデータを格納して送信するために、定型化されたメディアファイルフォーマットを定義できる。実施例によってメディアファイルは、ISO BMFF(ISO base media file format)に基づくファイルフォーマットを有することができる。
図2及び図3は本発明の一実施例によるメディアファイルの構造を示す図である。
本発明によるメディアファイルは、少なくとも一つ以上のボックスを含む。ここで、ボックス(box)は、メディアデータ又はメディアデータに関連するメタデータなどを含むデータブロック或いはオブジェクトである。複数のボックスは互いに階層的構造を有し、これによりデータが分類されてメディアファイルが大容量メディアデータの格納及び/又は送信に適合した形態になる。またメディアファイルは、ユーザがメディアコンテンツの特定の地点に移動するなど、メディア情報への接近に容易な構造を有する。
本発明によるメディアファイルはftypボックス、moovボックス及び/又はmdatボックスを含む。
ftypボックス(ファイルタイプボックス)は、該当メディアファイルに対するファイルタイプ又は互換性関連情報を提供する。ftypボックスは該当メディアファイルのメディアデータに対する構成バージョン情報を含む。復号器はftypボックスを参照して該当メディアファイルを区分することができる。
moovボックス(ムービーボックス)は、該当メディアファイルのメディアデータに関するメタデータを含むボックスである。moovボックスは全てのメタデータのためのコンテナの役割を果たす。moovボックスはメタデータ関連ボックスのうち、最上位階層のボックスである。実施例によって、moovボックスはメディアファイル内に一つのみ存在する。
mdatボックス(メディアデータボックス)は、該当メディアファイルの実際のメディアデータを入れるボックスである。メディアデータはオーディオサンプル及び/又はビデオサンプルを含むが、mdatボックスはかかるメディアサンプルを入れるコンテナの役割を果たす。
実施例によっては、上述したmoovボックスは、さらにmvhdボックス、trakボックス及び/又はmvexボックスなどを下位ボックスとして含むことができる。
mvhdボックス(ムービーヘッダボックス)は、該当メディアファイルに含まれるメディアデータのメディアプレゼンテーション関連情報を含む。即ち、mvhdボックスは該当メディアプレゼンテーションのメディア生成時間、変更時間、時間規格、期間などの情報を含む。
trakボックス(トラックボックス)は、該当メディアデータのトラックに関連する情報を提供する。trakボックスはオーディオトラック又はビデオトラックに対するストリーム関連情報、プレゼンテーション関連情報、アクセス関連情報などの情報を含む。Trakボックスはトラックの数によって複数個存在する。
trakボックスは、実施例によって、さらにtkhdボックス(トラックヘッダボックス)を下位ボックスとして含む。tkhdボックスはtrakボックスが示す該当トラックに関する情報を含む。tkhdボックスは該当トラックの生成時間、変更時間、トラック識別子などの情報を含む。
mvexボックス(ムービー延長(extend)ボックス)は、該当メディアファイルに後述するmoofボックスがあり得ることを指示する。特定トラックの全てのメディアサンプルを知るために、moofボックスをスキャンする必要がある。
本発明によるメディアファイルは、実施例によって、複数のフラグメントに分かれることができる(200)。これにより、メディアファイルが分割されて格納又は送信される。メディアファイルのメディアデータ(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)がある。
図示された実施例(210)のファイルは、メディアデータを除いて、メディア復号器の初期化に関連する情報などを含むファイルである。このファイルは、例えば、上述した初期化セグメントに該当する。初期化セグメントは上述したftypボックス及び/又はmoovボックスを含む。
図示された実施例(220)のファイルは、上述したフラグメントを含むファイルである。このファイルは、例えば、上述したメディアセグメントに該当する。メディアセグメントは上述したmoofボックス及び/又はmdatボックスを含む。さらにメディアセグメントはstypボックス及び/又はsidxボックスを含むことができる。
stypボックス(セグメントタイプボックス)は、分割されたフラグメントのメディアデータを識別するための情報を提供する。stypボックスは分割されたフラグメントに対して、上述したftypボックスのような役割を果たす。実施例によって、stypボックスはftypボックスと同じフォーマットを有することができる。
sidxボックス(セグメントインデックスボックス)は、分割されたフラグメントに対するインデックスを示す情報を提供する。これにより、該当する分割されたフラグメントが何番目のフラグメントであるかが指示される。
実施例によって(230)、さらにssixボックスを含むことができるが、ssixボックス(サブセグメントインデックスボックス)は、セグメントがサブセグメントにさらに分かれる場合において、そのサブセグメントのインデックスを示す情報を提供する。
メディアファイル内のボックスは、図示された実施例(250)のようなボックス或いはフルボックス(FullBox)の形態に基づいて、より拡張した情報を含むことができる。この実施例において、sizeフィールド、largesizeフィールドは該当ボックスの長さをバイト単位などで示す。versionフィールドは該当ボックスフォーマットのバージョンを示す。typeフィールドは該当ボックスのタイプ或いは識別子を示す。flagsフィールドは該当ボックスに関連するフラッグなどを示す。
一方、本発明の360°ビデオに対するフィールド(属性)は、DASH基盤の適応型(Adaptive)ストリーミングモデルに含まれて伝達されることができる。
図4はDASH基盤の適応型ストリーミングモデルの全般的な動作の一例を示す図である。示された実施例(400)による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クライアントコントローラーは必要なセグメントを得るコマンドを生成することができる。
セグメントパーサーは得られたセグメントを実時間にパーシングする。セグメントに含まれた情報によってメディアエンジンなどの内部ブロックは特定の動作を行うことができる。
HTTPクライアントは必要なMPD及び/又はセグメントなどをHTTPサーバに要求する。またHTTPクライアントはサーバから獲得したMPD及び/又はセグメントをMPDパーサー又はセグメントパーサーに伝達する。
メディアエンジン(Media Engine)はセグメントに含まれたメディアデータを用いてコンテンツを画面上に示す。この時、MPDの情報が活用される。
DASHデータモデルは階層的構造(410)を有することができる。メディアプレゼンテーションはMPDにより記述される。MPDはメディアプレゼンテーションを形成する複数の区間(Period)の時間的なシーケンスを記述する。ピリオドはメディアコンテンツの一区間を示す。
1つの区間において、データはアダプテーションセットに含まれることができる。アダプテーションセットは、互いに交換可能な複数のメディアコンテンツコンポーネントの集合である。アダプテーションはレプリゼンテーションの集合を含む。レプリゼンテーションはメディアコンテンツコンポーネントに該当する。1つのレプリゼンテーション内において、コンテンツは複数のセグメントに時間的に分かれる。これは適切な接近性と伝達(delivery)のためである。各々のセグメントに接近するために、各セグメントのURLが提供される。
MPDはメディアプレゼンテーションに関連する情報を提供し、期間エレメント、アダプテーションセットエレメント、レプリゼンテーションエレメントは各々、該当期間、アダプテーションセット、レプリゼンテーションについて記述できる。レプリゼンテーションはサブ-レプリゼンテーションに分かれるが、サブ-レプリゼンテーションエレメントは該当サブ-レプリゼンテーションについて記述することができる。
ここで、共通(Common)属性/エレメントが定義されるが、これらはアダプテーションセット、レプリゼンテーション、サブ-レプリゼンテーションなどに適用できる(含まれることができる)。共通属性/エレメントのうちには、エッセンシャルプロパティー(Essential Property)及び/又は補足プロパティー(Supplemental Property)があり得る。
エッセンシャルプロパティーは、該当メディアプレゼンテーション関連データを処理するにおいて、必須であると思われるエレメントを含む情報である。補足プロパティーは該当メディアプレゼンテーション関連データを処理するにおいて、使用可能なエレメントを含む情報である。実施例によって、後述するディスクリプタは、MPDを通じて伝達される場合、エッセンシャルプロパティー及び/又は補足プロパティー内に定義されて伝達される。
一方、本発明はユーザに没入型メディア/実感メディア(Immersive media)の経験を提供するために、上述した360°コンテンツを提供する案以外に、3DoF+(3Degrees of Freedom+)コンテンツを提供する案を提案する。
上述した既存の3DoF基盤のVRシステム(即ち、上述した既存の360°コンテンツ基盤のシステム)では、ユーザに該ユーザの固定位置での互いに異なる方向(viewing orientation)に対する視覚的/聴覚的経験を提供した反面、3DoF+基盤のVRシステムでは、互いに異なる位置(viewpoint)、互いに異なる視点(viewing position)での互いに異なる方向に対する拡張した視覚的/聴覚的経験を提供することを目標としている。即ち、3DoF+基盤のVRシステムは、複数の位置(viewpoints)での複数の視点(viewing position)にレンダリングされる360°コンテンツを提供するシステムである。
3DoF+VRシステムでさらに定義される位置及び視点の概念について、以下のように説明することができる。
図5は3DoF+VRシステムを例示する図である。
具体的には、図5の(a)を参照すると、3DoF+VRシステムにおいて、360°コンテンツが提供される複数のビューポイント(viewpoints)が例示されている。例えば、図5の(a)に示すように、特定の空間(公演場など)において複数の特定の位置が360°コンテンツが提供されるビューポイントとして考慮される。この場合、同じ特定の空間に存在するビューポイントの各々で提供される映像/音声は同じ時間の流れを有すると仮定することができる。
一方、特定のビューポイントでは複数の視点(viewing position)に対する360°コンテンツがレンダリングされることができる。従って、特定のビューポイントでのユーザの視点変化(head motion)によって、互いに異なる視覚的/聴覚的経験を提供できる。ここで、360°コンテンツは3DoF+コンテンツとも呼ばれ、3DoF+コンテンツは3DoF+ビデオ及び3DoF+オーディオを含む。
例えば、図5の(a)に示した3DoF+コンテンツでのcamera_id_type[i]フィールドの値は1に指定することができる。ここで、camera_id_type[i]フィールドは、i番目のカメラの目的、実施例又はタイプなどを示す。camera_id_type[i]フィールドについて詳しくは後述する。
camera_id_type[i]フィールドの値が1である場合、特定のビューポイントで3DoF+アプリケーションを支援する他のヘッド位置(head position)が定義され、これによりヘッド運動視差(head motion parallax)を支援できる。
なお、camera_id_type[i]フィールドの値は2に指定することができる。camera_id_type[i]フィールドの値が2である場合、ヘッド位置及びヘッドディレクションが提供される。また、3DoF+アプリケーションにおいて両眼視差(binocular disparity)を支援する時、左側アイビュー又は右側アイビューのサブピクチャはcamera_id_type[i]フィールドの値を3とすることにより表示できる。即ち、camera_id_type[i]フィールドの値が3である場合、camera_id_type[i]フィールドは両眼視差が支援される左側アイビュー又は右側アイビューのサブピクチャを示すことができる。
一方、3DoF+コンテンツに対するcamera_id[i]フィールド及び対応するcamera_id_type[i]フィールドなどのカメラレンズ情報によりスティッチング又はレンダリングプロセッサのようなポストプロセッサ(post-processor)がピクチャを分析する前に該ピクチャを処理することができる。スティッチング又はレンダリングプロセッサは、上記カメラレンズ情報を用いて特定の目的によってサブピクチャを選択することができる。例えば、上記カメラレンズ情報に基づいて平面視ディスプレイ(monoscopic display)のための一つのビューがディスプレイされることができ、特定のビューポイント又はヘッド位置などによって選択的に処理することができる。
カメラレンズ情報のさらに他の適用例としてはパノラマイメージ生成がある。パノラマイメージは、同時間に複数のカメラによりキャプチャされたイメージ又は単一のカメラにより複数の位置でキャプチャされたイメージに基づいて生成される。また、配列(array)での複数のカメラによりキャプチャされたライトフィールドビデオ(light field video)でカメラレンズ情報に基づいて各々のカメラの位置及びレンズ特性などを示すことができる。
図5の(b)は特定のビューポイントでの複数の視点の3D空間を例示する図である。例えば、3D空間は球(sphere)である。特定のビューポイントでのユーザの視点変化によって互いに異なる視覚的/聴覚的経験を提供できるので、各視点の相対的な位置を反映した映像/音声/テキスト情報を提供できる。
また、特定のビューポイントの特定の視点では、既存の360°コンテンツのように様々な方向の視覚的/聴覚的情報を伝達できる。即ち、特定のビューポイントの特定の視点に対する360°コンテンツが3D空間にレンダリングされることができる。この場合、映像/音声/テキストなどを含むメインソースだけではなく、更なる様々なソースが統合されて提供され、更なるソースに関する情報はユーザの視聴方向(viewing orientation)に連携されるか、又は独立して伝達されることができる。
図5の(c)は特定の視点の360°ビデオがレンダリングされる3D空間を例示する図である。図5の(c)に示したように、球面上の各点は、球座標系を用いて、r(球の半径)、θ(z軸を基準として回転方向及び程度)、φ(x-y平面のz軸に向かう回転方向及び程度)により表すことができる。実施例によって、球面はワールド座標系と一致するか、又は前面カメラ(front camera)の主点(principal point)を球面の(r、0、0)地点と仮定することができる。
一方、球面上の各点の位置は、飛行機の主軸の概念(Aircraft Principal Axes)に基づいて示すことができる。例えば、球面上の各点の位置は、ピッチ(pitch)、ヨー(yaw)及びロール(roll)により表すことができる。
飛行機は3次元に自由に回転する。3次元をなす軸を各々ピッチ(pitch)軸、ヨー(yaw)軸及びロール(roll)軸という。本明細書においては、これらを簡略にpitch、yaw、roll又はpitch方向、yaw方向、roll方向とも表現する。Pitch軸は飛行機の先端が上/下に回転する方向の基準になる軸を意味する。示された飛行機の主軸の概念において、Pitch軸は飛行機の翼から翼に続く軸を意味する。Yaw軸は飛行機の先端が左/右に回転する方向の基準になる軸を意味する。示された飛行機の主軸の概念において、yaw軸は飛行機の上から下に続く軸を意味する。roll軸は示された飛行機の主軸の概念において飛行機の先端から後端に続く軸であって、roll方向の回転とは、roll軸を基準とする回転を意味する。上述したように、pitch、yaw、rollの概念により、本発明における3D空間を記載できる。実施例によってX、Y、Z軸概念又は球座標系を用いた方法を使用できる。
図6は本発明による3DoF+ビデオ提供のためのアーキテクチャ全体を示す図である。
図6を参照すると、3DoF+ビデオデータ及び/又は3DoF+オーディオデータが得られる。具体的には、3DoF+コンテンツのキャプチャのためにHDCA(High Density Camera Array)、Lenslet(microlens)カメラなどが使用され、3DoF+ビデオキャプチャのためにデザインされた新しいデバイスにより得ることもできる。図6に示した得られた映像(610)のように、キャプチャしたカメラの位置によって生成されたイメージ/ビデオデータ集合が複数個ある。即ち、多数の位置での視点変化(head motion)による多数の映像/音声情報が得られる。この場合、映像情報は視覚的(texture)情報だけではなく、深さ(depth)情報を含むことができる。図6示した得られた映像(610)のように、互いに異なる撮影位置(viewpoint)による互いに異なる視点の複数の情報が各々得られる。また3DoF+コンテンツのキャプチャ過程において、カメラの内部/外部の設定値などを示すメタデータが生成される。なお、カメラではなく、コンピューターで生成された映像の場合には、キャプチャ過程に代えることができる。
映像獲得過程が行われた場合、組み合わせ(Composition)過程が行われる。組み合わせ過程は、映像/音声入力装置により得られた映像(610)及び外部メディアにより入力された映像(ビデオ/イメージなど)、音声(オーディオ/効果音響など)、テキスト(字幕など)をユーザ経験に含ませるために合成する過程であると定義できる。
得られた映像(610)の前処理(pre-procession)過程は、キャプチャされたイメージ/ビデオ及びキャプチャ過程で伝達されたメタデータを処理する過程である。前処理過程は、スティッチング(Stitching)過程、色補正(color correction)過程、プロジェクション過程、コーディング効率を高めるために主視点(primary view)と副視点(secondary view)に分離する視点分離(view segmenation)過程及び符号化過程などの送信前コンテンツを処理する全ての形態の前処理段階を含む。
より詳しくは、スティッチング過程は、各カメラの位置において360方向でキャプチャされた映像を各々のカメラ位置を中心とするパノラマ、或いは球形の形態に映像を連結するイメージ/ビデオを形成する過程である。
その後、スティッチングされたイメージ/ビデオは、プロジェクション(Projection)過程を経る。プロジェクション過程は、各々のスティッチングされた映像を2Dイメージに投影してプロジェクションされたピクチャ(620)を導き出す過程を意味する。ここで、プロジェクションは2Dイメージにマッピングするとも表現できる。各カメラ位置でマッピングした映像は主視点と副視点に分離でき、ビデオコーディングの効率を高めるために、視点ごとに異なる解像度(resolution)を適用でき、主視点内でもマッピング映像の配置や解像度を変更することで、コーディング時の効率を高めることができる。視点による映像分離過程はビューセグメンテーション(view segmentation)過程ともいえる。また、副視点はキャプチャ環境によってはないこともできる。副視点は、主視点から他の主視点にユーザが移動する場合に、移動過程中に再生されるイメージ/ビデオを意味し、主視点に比べて低い解像度を有するが、必要によっては同じ解像度を有することもできる。また、場合によっては、受信機で副視点が仮想の情報として新しく生成されることができる。
実施例によって、さらに前処理過程はエディット(editing)過程を含む。エディット過程は、360°ビデオのリージョンの間の境界をなくすか、色相/明るさの差を減らすか、又は映像の視覚的効果を追加する過程である。また前処理過程は、領域によって映像を再配置するパッキング(packing)過程、映像情報を圧縮する符号化過程を含む。プロジェクションされたピクチャ(620)のように、互いに異なる撮影位置(viewpoint)による互いに異なる視点(viewpoint)の複数のプロジェクション映像に基づいてプロジェクションされたピクチャが生成されることができる。
さらに前処理過程では、プロジェクション前後のイメージ/ビデオデータに対する編集などが行われて、メタデータが生成されることができる。前処理過程において、イメージ/ビデオの提供時に最初に再生する初期時点、ユーザの初期位置及びROI(Region of Interest)などに関するメタデータが生成される。
図6に示したメディア送信過程(Delivery)は、前処理過程で得られたイメージ/ビデオデータ及びメタデータを処理して送信する過程である。イメージ/ビデオデータ及びメタデータの送信のために、任意の送信プロトコルによる処理が行われ、前処理されたデータは放送網及び/又はブロードバンドにより伝達される。前処理されたデータは、オン・デマンド(on demand)方式により受信側に伝達されることができる。
プロセシング過程は、受信されたイメージ/ビデオデータ及びメタデータを復号する過程と、復号されたプロジェクションされたピクチャのイメージ/ビデオデータを3次元(3Dimension、3D)モデルにマッピング或いはプロジェクションするリプロジェクション(re-projection)過程と、仮想視点の生成及び合成過程などのイメージ/ビデオを再生するためのイメージ生成前の全ての過程を含む。マッピングされる3Dモデル或いはプロジェクションマップとしては、既存の360°ビデオのように球形(sphere)、キューブ(cube)、シリンダー(cylinder)又はピラミッド(pyramid)などがある。又は3Dモデル或いはプロジェクションマップは既存の360°ビデオのプロジェクションマップの変形された形態であり、場合によっては自由形態のプロジェクションマップであることもできる。
ここで、仮想視点の生成及び合成過程は、主視点と副視点の間に、或いは主視点と主視点の間にユーザが移動する場合に再生されるイメージ/ビデオデータを生成して合成する過程である。仮想視点の生成のために、キャプチャ及び前処理過程で伝達されたメタデータを処理する過程が必要であり、場合によっては仮想視点で360イメージ/ビデオの全体ではなく、一部のみが生成/合成されることもできる。
さらにプロセシング過程は、エディット(editing)過程、アップスケーリング(up scaling)、ダウンスケーリング(down scaling)過程などを含むことができる。エディット過程においては、プロセシング過程後に再生前に必要な追加編集過程が適用されることができる。必要によっては送信されたイメージ/ビデオをアップスケーリング或いはダウンスケーリングする作業が行われる。
レンダリング過程は、送信或いは生成されてリプロジェクションされたイメージ/ビデオをディスプレイできるようにレンダリングする過程である。場合によっては、レンダリングとリプロジェクション過程をレンダリングと総称する。従って、レンダリング過程にリプロジェクション過程が含まれることができる。リプロジェクションは、図6の(630)のような形態にユーザ中心の360°ビデオ/イメージとユーザが移動方向に沿って移動した位置の各々を中心として形成される360°ビデオ/イメージが形成される形態で多数のリプロジェクション結果物があり得る。ユーザはディスプレイするデバイスによって360°ビデオ/イメージの一部領域を見ることができ、この時、ユーザが見る領域は図6の(640)のような形態であることができる。また、ユーザが移動する場合、360°ビデオ/イメージの全体がレンダリングされることではなく、ユーザが見ている位置に該当する映像のみがレンダリングされる。また360°ビデオ受信装置は、ユーザの位置と移動に関するメタデータが伝達されて、移動する位置(即ち、移動すると予測される位置)のビデオ/イメージをさらにレンダリングすることができる。
フィードバック過程は、ディスプレイ過程で得られる様々なフィードバック情報を送信側に伝達する過程である。フィードバック過程により360°コンテンツとユーザの間に双方向性(interactivity)が発生し、実施例によっては、フィードバック過程でユーザの頭とポジション位置情報(head/position orientation)及びユーザが現在見ている領域(viewport)に関する情報などが伝達されることができる。該当情報はフィードバック過程中に送信側或いはサービス提供者側に伝達されることができ、実施例によっては、フィードバック過程が行われないこともできる。
ユーザの位置情報はユーザのヘッド位置、角度、動き及び移動距離などに関する情報を意味し、該当情報に基づいてユーザが見ている位置(viewport)の情報を計算できる。
図7は本発明によるカメラレンズ情報及び/又は追加カメラレンズ情報に基づいて360°ビデオをパノラマイメージにスティッチングする一例を示す図である。
図8a及び図8bは360°ビデオ送信装置/360°ビデオ受信装置で行われる360コンテンツ/3DoF+コンテンツ提供のためのアーキテクチャ全体を例示する図である。
図8a及び図8bに示したアーキテクチャなどにより360コンテンツ/3DoF+コンテンツが提供される。3DoF+コンテンツはファイル形態で提供されるか、又はDASHなどのようにセグメント基盤のダウンロード又はストリーミングサービス形態で提供される。
具体的には、図8aを参照すると、上述したように、3DoF+コンテンツの360°ビデオデータ及び/又は360°オーディオデータが得られる。即ち、360カメラで360°ビデオが撮影され、360°ビデオ送信装置は360°ビデオデータを得ることができる。360°ビデオ送信装置の情報を得る部分では、センサの方向(sensor orientation)、センサの情報獲得視点(sensor position)、センサの情報獲得位置(point)によって、互いに異なる情報を同時に或いは連続して得ることができる。また映像の場合、360°ビデオ送信装置の情報獲得を行う部分では、視聴方向(viewing orientation)、視点(viewing position)、ビューポイント(viewpoint)による映像情報を同時に或いは連続して得ることができ、この時、映像情報はビデオ、イメージ、オーディオ、位置情報などを含む。
360°オーディオデータは、オーディオ前処理過程(Audio Preprocessing)、オーディオ符号化過程(Audio encoding)を経る。この過程においてオーディオ関連メタデータが生成され、符号化されたオーディオとオーディオ関連メタデータは送信のための処理(file/segment encapsulation)を経る。
360°ビデオデータは上述したような過程を経る。図8aを参照すると、360°ビデオ送信装置のスティッチャーは360°ビデオデータにスティッチングを行う(Visual stitching)。例えば、360°ビデオデータはテクスチャ(texture)情報及び深さ(depth)情報を含み、360°ビデオ送信装置はテクスチャ情報及び深さ情報を各々得て、各コンポーネントの特性によってテクスチャ情報及び深さ情報に互いに異なる前処理過程(video pre-processing)を行う。例えば、テクスチャ情報の場合、360°ビデオ送信装置はイメージセンサ位置情報を用いて同じ位置で得られた同一視点の互いに異なる方向(viewing orientation)の映像を用いて360°全方位映像を構成し、このために映像スティッチング(stitching)過程を行う。この過程は、実施例によっては省略可能であり、受信側で行うこともできる。
また図8aを参照すると、360°ビデオ送信装置のプロジェクション処理部は、360°ビデオデータを2Dイメージ上にプロジェクションすることができる(Projection and mapping(packing))。プロジェクション処理部には360°ビデオデータ(Input Images)が伝達され、この場合、スティッチング及びプロジェクション過程を行うことができる。より具体的には、プロジェクション過程では、スティッチングされた360°ビデオデータを3D空間上にプロジェクションして、プロジェクションされた360°ビデオデータが2Dイメージ上に配列される。この明細書ではかかる過程を360°ビデオデータを2Dイメージ上にプロジェクションすると表現することもある。ここで、3D空間は球(sphere)又はキューブ(cube)である。この3D空間は受信側でリプロジェクションに使用される3D空間と同一であることもできる。
2Dイメージはプロジェクションされたフレーム(Projected frame)又はプロジェクションされたピクチャ(Projected picture)とも呼ばれる。2Dイメージにリージョンごとに、さらにパッキング(Region-wise packing)過程が選択的に行われることもできる。リージョンごとにパッキング過程が行われる場合、各リージョン(Region)の位置、形態、サイズを指示することにより、2Dイメージ上のリージョンがパッキングされたフレーム(packed frame)上にマッピングされることができる。パッキングされたフレームは、パッキングされたピクチャ(packed picture)とも呼ばれる。プロジェクションされたフレームにリージョンごとのパッキング過程が行われない場合、プロジェクションされたフレームはパッキングされたフレームと同一であることができる。リージョンについては後述する。プロジェクション過程及びリージョンごとのパッキング過程を、360°ビデオデータの各リージョンが2Dイメージ上にプロジェクションされるとも表現できる。設計によっては、360°ビデオデータは中間過程なしに、パッキングされたフレームにすぐ変換されることもできる。
一般的には深度カメラ(depth camera)により深さ映像が得られ、この場合、テクスチャ映像のような形態で深さ映像が生成されることができる。或いは、別途測定されたデータに基づいて深さデータが生成されることもできる。コンポーネントごとに映像が生成された後、360°ビデオ送信装置は、効率的な圧縮のためのビデオフォーマットへの追加変換(packing)を行うか、又は実際に必要な部分を分けて再構成する過程(sub-picture generation)を行うことができる。
得られた映像データ(或いは主にサービスするためのデータ)以外に、さらに与えられる映像/音声/テキスト情報を共にサービスする場合、さらに提供される情報を最終再生時に合成するための情報が生成されて、提供されることができる。例えば、360°ビデオ送信装置の組み合わせ生成部(Composition generation)では、製作者の意図に基づいて、外部で生成されたメディアデータ(さらに提供される情報が映像である場合、ビデオ/イメージ情報、音声である場合は、オーディオ/効果音響、テキストである場合は、字幕などに対するデータ)を最終再生部で合成するための情報を生成することができ、情報は組み合わせメタデータ(composition metadata)で伝達されることができる。
図8aを参照すると、360°ビデオデータに関するパッキングされたフレームは、イメージ符号化或いはビデオ符号化される。一方、同じ3DoF+コンテンツであっても、視点(viewpoint)ごとに360°ビデオデータが存在し、この場合、コンテンツの各ビューポイントごとの360°ビデオデータは互いに異なるビットストリームに符号化されることもできる。符号化された360°ビデオデータは、上述したカプセル化処理部によってISOBMFFなどのファイルフォーマットに処理される。又はカプセル化処理部は、符号化された360°ビデオデータをセグメントに処理する。セグメントはDASHに基づく送信のための個別トラックに含まれることができる。
360°ビデオデータの処理と共に、上述したように、360°ビデオ関連メタデータが生成される。このメタデータはビデオストリーム或いはファイルフォーマットに含まれて伝達される。このメタデータは符号化過程やファイルフォーマットカプセル化、送信のための処理などの過程でも使用できる。
360オーディオ/ビデオデータには送信プロトコルによって送信のための処理が行われ、その後に送信される。上述した360°ビデオ受信装置は、それを放送網又はブロードバンドにより受信する。
一方、図8aに示したように、スピーカー/ヘッドホン(Loudspeakers/headphones)、ディスプレイ、ヘッド/アイトラッキングコンポーネント(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アプリケーションが存在することができる。
図8bは360°ビデオの処理過程及びプロジェクションスキームによるリージョンごとのパケット過程が適用された2Dイメージを例示する図である。図8bを参照すると、入力された360°ビデオデータの処理過程を示すことができる。具体的には、図8bを参照すると、入力された視点の360°ビデオデータは様々なプロジェクションスキームによって3Dプロジェクション構造にスティッチング及びプロジェクションされ、3Dプロジェクション構造にプロジェクションされた360°ビデオデータは2Dイメージで示すことができる。即ち、360°ビデオデータがスティッチングされて、2Dイメージにプロジェクションされることができる。360°ビデオデータがプロジェクションされた2Dイメージは、プロジェクションされたフレーム(projected frame)とも表すことができる。またプロジェクションされたフレームでは、上述したリージョンごとのパッキング過程が行われる。即ち、プロジェクションされたフレーム上のプロジェクションされた360°ビデオデータを含む領域をリージョンに区分し、各リージョンを回転、再配列するか、又は各リージョンの解像度(resolution)を変更するなどの処理が行われる。即ち、リージョンごとのパッキング過程は、プロジェクションされたフレームを一つ以上のパッキングされたフレーム(packed frame)にマッピングする過程を示す。リージョンごとのパッキング過程は選択的(optional)であり、リージョンごとのパッキング過程が適用されない場合は、パッキングされたフレームとプロジェクションされたフレームが同一であることができる。リージョンごとのパッキング過程が適用される場合には、プロジェクションされたフレームの各リージョンが、パッキングされたフレームのリージョンにマッピングされることができ、プロジェクションされたフレームの各リージョンがマッピングされるパッキングされたフレームのリージョンの位置、模様及びサイズを示すメタデータが導き出されることができる。
図9は360°ビデオ受信装置においてカメラレンズ情報に基づいて360°ビデオを処理する一例を示す図である。
図9を参照すると、復号されたピクチャから抽出されたサブピクチャから球形イメージ(sphere image)又は球形イメージが生成される。復号された絵から抽出されたサブピクチャから生成される。
例えば、図9を参照すると、円形イメージ及び四角形領域の積集合に該当するアクティブ領域(active area)が、球形イメージ(sphere image)又は球形イメージの生成のためのサブピクチャとして抽出されることができる。球形イメージ及び四角形領域は、circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールド、rect_region_top[i]フィールド、rect_region_left[i]フィールド、rect_region_width[i]フィールド、rect_region_height[i]フィールド、full_radius[i]フィールド、scene_radius[i]フィールドに基づいて導き出される。circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールド、rect_region_top[i]フィールド、rect_region_left[i]フィールド、rect_region_width[i]フィールド、rect_region_height[i]フィールド、full_radius[i]フィールド、scene_radius[i]フィールドについて詳しくは後述する。
図9を参照すると、レンズ欠陥(lens defect)によるサブピクチャのリダイヤル歪み(redial distortion)は、redial_distortion_type[i]フィールドに基づいて導き出されたモデルに基づいて修正できる。その後、サブピクチャは、lens_projection_type[i]フィールドに基づいて導き出されたモデリングされた(modelled)投影方程式(projection equation)、又はangle_projection[i][j]フィールド及びpolynomial_coeff_projection[i][j][k]フィールドが示す角度の関数である多項式係数によって導き出された投影方程式によりマッピングされる。redial_distortion_type[i]フィールド、lens_projection_type[i]フィールド、angle_projection[i][j]フィールド、polynomial_coeff_projection[i][j][k]フィールドについて詳しくは後述する。
また、レンズ歪み(lens distortion)は、所定のパラメータ(angle_correction[i][j]フィールド、polynomial_coeff_correction[i][j][k]フィールド)に基づいて補正できる。
一方、特定のレンズによりキャプチャされたイメージ(即ち、復号されたピクチャ)に対する回転及びオフセットが存在する場合、マッピングされた球形イメージは、local_sphere_rotation_azimuth[i]フィールド、local_sphere_rotation_elevation[i]フィールド、local_sphere_rotation_tilt[i]フィールドに基づいて、グローバル球座標系で相対的に回転することができる。また球中心のオフセット(sphere center offset)は、local_sphere_rotation_azimuth[i]フィールド、local_sphere_rotation_elevation[i]フィールド、local_sphere_rotation_tilt[i]フィールドに基づいて、ビューポイントのヘッド位置のアイビューの単位球(unit sphere)を構成するレンズに対応する球中心と一致するように補正できる。local_sphere_rotation_azimuth[i]フィールド、local_sphere_rotation_elevation[i]フィールド、local_sphere_rotation_tilt[i]フィールドについて詳しくは後述する。
一方、上述したように、スティッチング過程は、球形イメージにより行われることができる。例えば、復号されたピクチャが互いに異なるビューポイント、ヘッド位置のサブピクチャを含む場合、特定のビューポイント、ヘッド位置及び/又はアイビューに対するサブピクチャを抽出するために、camera_id[i]フィールド及びcamera_id_type[i]フィールドが使用される。一例として、ビューポート従属プロセシング(viewport dependent processing)の場合、camera_id[i]フィールド、camera_id_type[i]フィールド、FOV(field of view)情報及び/又は回転情報(rotation information)に基づいて、処理時間及び遅延減少の観点で効率性を増加できるサブピクチャが選択される。
図10は本発明を適用可能な360°ビデオ送信装置の構成の概略を示す図である。
本発明による360°ビデオ送信装置は、上述した準備過程或いは送信過程に関連する動作を行う。360°ビデオ送信装置は、データ入力部、組み合わせ情報処理部、スティッチャー(Stitcher)、プロジェクション処理部、(リージョンごとの)パッキング処理部、サブピクチャ処理部、データ符号器、カプセル化処理部、ファイル抽出部、送信処理部、送信部、ビューポイント(viewpoint)/視点/方向(viewing orientation)情報及びメタデータ処理部及び/又は(送信側)フィードバック処理部を内部/外部エレメントとして含む。入力されたデータがカメラ出力映像である場合、360°ビデオ送信装置は球(sphere)映像(即ち、3D空間にレンダリングされる360°映像)構成のためのスティッチングを視点/視点/コンポーネントごとに進行する。視点/視点/方向情報及びメタデータ処理部をメタデータ処理部と示すことができる。
データ入力部にはキャプチャされた各ビューポイントに対するイメージ/ビデオが入力される。このビューポイントごとのイメージ/ビデオは、一つ以上のカメラによりキャプチャされたイメージ/ビデオである。即ち、ビューポイントごとのイメージ/ビデオは、複数の視点に対するイメージ/ビデオを含む。またデータ入力部にはキャプチャ過程で発生したメタデータが入力される。データ入力部は入力された視点ごとのイメージ/ビデオをスティッチャーに伝達し、キャプチャ過程のメタデータをシグナリング処理部に伝達する。
スティッチャーはキャプチャされた視点ごとのイメージ/ビデオに対するスティッチング作業を行う。スティッチャーはスティッチングされた360°ビデオデータをプロジェクション処理部に伝達する。必要な場合、スティッチャーはメタデータ処理部から必要なメタデータを受けてスティッチング作業に使用する。スティッチャーはスティッチング過程で発生したメタデータをメタデータ処理部に伝達する。スティッチング過程のメタデータとしては、スティッチングが行われたか否か、スティッチングタイプなどの情報がある。
プロジェクション処理部はスティッチングされた360°ビデオデータを2Dイメージ上にプロジェクションする。プロジェクション処理部は様々なスキーム(scheme)によってプロジェクションを行うが、これについては後述する。プロジェクション処理部は各視点ごとの360°ビデオデータの該当深さを考慮してマッピングを行う。必要な場合、プロジェクション処理部はメタデータ処理部からプロジェクションに必要なメタデータを受けてプロジェクション作業に使用する。プロジェクション処理部はプロジェクション過程で発生したメタデータをメタデータ処理部に伝達する。プロジェクション処理部のメタデータとしては、プロジェクションスキームの種類などがある。
(リージョンごとの)パッキング処理部は上述したリージョンごとのパッキング過程を行う。即ち、リージョンごとのパッキング処理部はプロジェクションされた360°ビデオデータをリージョンごとに分け、各リージョンを回転、再配列するか、或いは各リージョンの解像度(resolution)を変更するなどの処理を行う。上述したように、リージョンごとのパッキング過程は選択的(optional)な過程であり、リージョンごとのパッキングが行われない場合は、リージョンごとのパッキング処理部は省略できる。必要な場合、リージョンごとのパッキング処理部はメタデータ処理部からリージョンごとのパッキングに必要なメタデータを受けてリージョンごとのパッキング作業に使用することができる。リージョンごとのパッキング処理部はリージョンごとのパッキング過程で発生したメタデータをメタデータ処理部に伝達する。リージョンごとのパッキング処理部のメタデータとしては、各リージョンの回転程度、サイズなどがある。
上述したスティッチャー、プロジェクション処理部及び/又はリージョンごとのパッキング処理部は、実施例によっては、一つのハードウェアコンポーネントで行われることもできる。
サブピクチャ処理部はアプリケーションによって複数の映像を統合映像に形成するためのパッキング或いは詳細領域の映像に分けるサブピクチャを生成する。入力されたデータに映像/音声/テキスト追加情報が含まれた場合、追加情報を中心映像に追加してディスプレイする方法に関する情報が生成され、該情報は追加情報と共に送信される。
メタデータ処理部は、キャプチャ過程、スティッチング過程、プロジェクション過程、リージョンごとのパッキング過程、符号化過程、カプセル化過程及び/又は送信のための処理過程で発生し得るメタデータを処理する。メタデータ処理部では、かかるメタデータを用いて360°ビデオ関連メタデータを生成する。実施例によって、メタデータ処理部は360°ビデオ関連メタデータをシグナリングテーブルの形態で生成することもできる。シグナリングの文脈により、360°ビデオ関連メタデータは、メタデータ又は360°ビデオ関連シグナリング情報とも呼ばれる。また、メタデータ処理部は獲得又は生成したメタデータを必要によって360°ビデオ送信装置の内部エレメントに伝達する。メタデータ処理部は360°ビデオ関連メタデータが受信側に送信されるように、データ符号器、カプセル化処理部及び/又は送信処理部に伝達することができる。
データ符号器は、2Dイメージ上にプロジェクションされた360°ビデオデータ及び/又はリージョンごとのパッキングされた360°ビデオデータを符号化する。360°ビデオデータは様々なフォーマットに符号化できる。
カプセル化処理部は、符号化された360°ビデオデータ及び/又は360°ビデオ関連メタデータをファイルなどの形態でカプセル化することができる。ここで、360°ビデオ関連メタデータは、上述したメタデータ処理部から伝達されたものである。カプセル化処理部は、該当データをISOBMFF、CFFなどのファイルフォーマットにカプセル化したり、その他のDASHセグメントなどの形態に処理したりすることができる。カプセル化処理部は、実施例によって360°ビデオ関連メタデータをファイルフォーマットに含ませることができる。360関連メタデータは、例えば、ISOBMFFファイルフォーマット上の様々なレベルのボックスに含まれるか、或いはファイル内で所定のトラック内のデータに含まれる。実施例によって、カプセル化処理部は、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°ビデオ送信装置に代替、統合されることができる。
図11は本発明を適用可能な360°ビデオ受信装置の構成の概略を示す図である。
本発明による360°ビデオ受信装置は、上述したプロセシング過程及び/又はレンダリング過程に関連する動作を行う。360°ビデオ受信装置は、受信部、受信処理部/ファイル抽出部、カプセル除去(decapsulation)処理部、データ復号器、メタデータパーザ、インパッキング/セレクション処理部、レンダラー、組み合わせ処理部、(受信側)フィードバック処理部及び/又はリプロジェクション処理部を内部/外部エレメントとして含む。なお、シグナリングパーザはメタデータパーザとも呼ばれる。
受信部は、本発明による360°ビデオ送信装置が送信した360°ビデオデータを受信する。送信されるチャネルによって受信部は放送網により360°ビデオデータを受信し、ブロードバンドを介して360°ビデオデータを受信する。受信部は送信部から伝達されたビットストリームを受信した後、必要なファイルを抽出する。
受信処理部は、受信された360°ビデオデータに対して送信プロトコルによる処理を行う。送信側で送信のための処理が行われたことに対応するように、受信処理部は上述した送信処理部の逆過程を行う。受信処理部は得られた360°ビデオデータをカプセル除去処理部に伝達し、得られた360°ビデオ関連メタデータはメタデータパーザに伝達する。受信処理部が得る360°ビデオ関連メタデータはシグナリングテーブルの形態である。
カプセル除去処理部は受信処理部から伝達されたファイル形態の360°ビデオデータをカプセル除去する。カプセル除去処理部はISOBMFFなどによるファイルをカプセル除去して、360°ビデオデータ或いは360°ビデオ関連メタデータを得ることができる。カプセル除去処理部は生成されたファイルフォーマット内の映像ストリームをフィードバック処理部で伝達されたビューポイント/視点/方向情報及びビデオメタデータを用いて選別し、選別したビットストリームを復号器で映像情報に再構成する。得られた360°ビデオデータはデータ復号器に、得られた360°ビデオ関連メタデータはメタデータパーザに伝達する。カプセル除去処理部が得る360°ビデオ関連メタデータはファイルフォーマット内のボックス或いはトラック形態である。必要な場合、カプセル除去処理部にはメタデータパーザからカプセル除去に必要なメタデータが伝達される。
データ復号器は360°ビデオデータに対する復号を行う。データ復号器にはメタデータパーザから復号に必要なメタデータが伝達されることもできる。データ復号過程で得られた360°ビデオ関連メタデータはメタデータパーザに伝達されることもできる。
パッキングされた映像の場合、アンパッキング/セレクション処理部はメタデータにより伝達されたパッキング情報に基づいて、パッキングされた映像に対するアンパッキングを行う。また必要によって、アンパッキング/セレクション処理部はフィードバック処理部から伝達されたビューポイント/視点/方向に適する映像及び必要なコンポーネントを選択する過程を行う。
メタデータパーザは360°ビデオ関連メタデータに対するパーシング/復号を行う。メタデータパーザは、得られたメタデータをデータカプセル除去処理部、データ復号器、リプロジェクション処理部及び/又はレンダラーに伝達することができる。
リプロジェクション処理部は復号された360°ビデオデータに対してリプロジェクションを行う。リプロジェクション処理部は360°ビデオデータを3D空間にリプロジェクションすることができる。3D空間は使用される3Dモデルによって異なる形態を有する。リプロジェクション処理部はメタデータパーザからリプロジェクションに必要なメタデータが伝達されることもできる。例えば、リプロジェクション処理部には使用される3Dモデルのタイプ及びその詳細情報に関する情報がメタデータパーザから伝達される。実施例によってリプロジェクション処理部はリプロジェクションに必要なメタデータを用いて、3D空間上の特定の領域に該当する360°ビデオデータのみを3D空間にリプロジェクションすることもできる。
レンダラーはリプロジェクションされた360°ビデオデータをレンダリングする。上述したように、360°ビデオデータが3D空間上にレンダリングされると表現することもできるが、このように2つの過程が同時に起こる場合、リプロジェクション処理部とレンダラーが統合されて、レンダラーでこれらの全過程が進行されることができる。実施例によって、レンダラーはユーザの視点情報によってユーザが見ている部分のみをレンダリングすることもできる。
なお、レンダラーは映像のテクスチャ、深さ、オーバーレイ情報などを再生するために適合するフォーマットに再構成するレンダリング過程を行う。最終映像を生成する前に、互いに異なるレイヤの情報を統合する組み合わせ過程が行われることもでき、ディスプレイビューポートに適合する映像が生成されて再生されることができる。
ユーザはVRディスプレイなどによりレンダリングされた360°ビデオの一部領域を見ることができる。VRディスプレイは360°ビデオを再生する装置であって、360°ビデオ受信装置に含まれるか(tethered)、又は別途の装置として360°ビデオ受信装置に連結される(un-tethered)。
本発明による360°ビデオ受信装置の一実施例によれば、さらに360°ビデオ受信装置は、(受信側)フィードバック処理部及び/又はネットワークインターフェース(図示せず)を内部/外部エレメントとして含む。受信側のフィードバック処理部はレンダラー、リプロジェクション処理部、データ復号器、カプセル除去処理部及び/又はVRディスプレイからフィードバック情報を得て処理することができる。フィードバック情報はビューポート情報、ヘッドオリエンテーション情報、ゲイズ(Gaze)情報などを含む。ネットワークインターフェースはフィードバック情報を受信側のフィードバック処理部から受けて、それを360°ビデオ送信装置に送信する。
上述したように、フィードバック情報は送信側に伝達されるだけではなく、受信側で消費されることもできる。受信側のフィードバック処理部は得られたフィードバック情報を360°ビデオ受信装置の内部エレメントに伝達して、レンダリングなどの過程に反映させることができる。受信側のフィードバック処理部はフィードバック情報をレンダラー、リプロジェクション処理部、データ復号器及び/又はカプセル除去処理部に伝達する。例えば、レンダラーはフィードバック情報を活用してユーザが見ている領域を優先してレンダリングする。また、カプセル除去処理部、データ復号器などは、ユーザが見ている領域或いは見る領域を優先してカプセル除去、復号することができる。
上述した本発明による360°ビデオ受信装置の内部/外部エレメントは、ハードウェアで実現されるハードウェアエレメントである。実施例によって、内部/外部エレメントは変更、省略されるか、又は他のエレメントに代替、統合されることができる。実施例によって、付加エレメントが360°ビデオ受信装置に追加されることもできる。
本発明のさらに他の観点は、360°ビデオを送信する方法及び360°ビデオを受信する方法に関連する。本発明による360°ビデオを送信/受信する方法は、各々上述した本発明による360°ビデオ送信/受信装置又はその装置の実施例により行われる。
上述した本発明による360°ビデオ送信/受信装置、送信/受信方法の各々の実施例及びその内部/外部エレメントの各々の実施例を互いに組み合わせることができる。例えば、プロジェクション処理部の実施例とデータ符号器の実施例とを組み合わせて、その場合の数だけの360°ビデオ送信装置の実施例を作ることができる。このように組み合わせられた実施例も本発明の範囲に含まれる。
一方、上述したように、360°ビデオに対するカメラ及びレンズの特性によって歪み(distortion)が発生し、この場合、映像の品質などを向上させるために、360°ビデオ送信装置及び360°ビデオ受信装置は360°ビデオに対する歪みを補正して処理することができる。例えば、360°ビデオ送信装置/360°ビデオ受信装置は、360°ビデオに対する歪みを補正して2Dイメージにプロジェクションすることができる。又は360°ビデオ送信装置/360°ビデオ受信装置は、360°ビデオに対するスティッチング過程及び/又はレンダリング過程で歪みを補正することができる。
360°ビデオに対する歪みを補正するためには、360°ビデオに対するカメラ及び/又はレンズに関する情報が必要である。カメラ及び/又はレンズによって特性が異なるので、特性によって発生する歪みを考慮して補正が行われる。
よって本発明はカメラ及びレンズパラメータに関するカメラレンズ情報を定義し、シグナリングする案を提案する。実施例によって、カメラレンズ情報はビデオコーデックのメタデータ形態で伝達され、HEVC(High efficiency video coding)又はVVC(Versatile Video Coding)のようなビデオコーデックのSEIメッセージにより伝達されるか、又はVPS、SPS、PPSなどの形態で伝達される。また実施例によって、デジタル有線/無線インターフェース、システムレベルのファイルフォーマットなどによってもカメラレンズ情報が伝達される。
例えば、カメラレンズ情報は、以下の表のようにSEIメッセージに含まれる形態で示すことができる。
表1を参照すると、SEIメッセージはカメラレンズ情報に該当するcamera_lens_information及び/又は追加カメラレンズ情報に該当するsupplemental_camera_lens_informationを含む。camera_lens_informationはカメラレンズ情報SEIメッセージと示すことができ、supplemental_camera_lens_informationは追加カメラレンズ情報SEIメッセージと示すことができる。一方、カメラレンズ情報はビューポイント、ヘッド位置及び/又はアイビューのトラック情報と示すことができ、追加カメラレンズ情報は追加ビューポイント、ヘッド位置及び/又はアイビューのトラック情報と示すことができる。
一方、CLVS内のカメラレンズ情報SEIメッセージの存在は、CLVS内のコーディングされたビデオピクチャが魚眼レンズ(fisheye lens)又は複数のカメラ、カメラ構造又はカメラアレイ(camera arrays)の組み合わせを含む複数のレンズを有するカメラ構造又はカメラアレイによりキャプチャされた複数のサブピクチャを含むことを示す。
360°ビデオ受信装置は、カメラレンズ情報SEIメッセージに含まれた情報を3DoF、3DoF+、6DoF又はパノラマイメージのようなアプリケーションに対するomnidirectionalカメラ出力をより適切にレンダリングするために使用する。カメラ及びレンズ情報SEIメッセージは、SEIメッセージを含む現在のCLVSに適用できる。CVLSにカメラ及びレンズ情報SEIメッセージが存在する場合、カメラレンズ情報SEIメッセージはCLVSの1番目のアクセス装置(access unit)に存在する必要があり、CLVSの他のアクセス装置にも存在することができる。
camera_lens_informationは、以下の表のように導き出すことができる。
表2を参照すると、camera_lens_informationは、camera_lens_info_idフィールド及び/又はcamera_lens_info_cancel_flagフィールドを含む。
camera_lens_info_idフィールドは該当カメラレンズ情報の目的を識別する識別子を示す。例えば、camera_lens_info_idフィールドの値はSEIメッセージのカメラレンズ情報の使用例を示す。又は、camera_lens_info_idフィールドの値は受信機性能を支援するために使用され、又はcamera_lens_info_idフィールドの値は単一のイメージで構成可能なサブピクチャを示すことができる。例えば、単一のイメージは球形イメージ(sphere image)又はパノラマイメージ(panorama image)である。
一例として、同じ値のcamera_lens_info_idフィールドを含む一つ以上のカメラレンズ情報が存在する場合、複数のカメラレンズ情報に含まれたフィールドは同一であることができる。また、異なる値のcamera_lens_info_idフィールドを含む複数のカメラレンズ情報が存在することができる。この場合、camera_lens_info_idフィールドは、複数のカメラレンズ情報が互いに異なる目的のために使用される情報であることを示し、又はカメラレンズ情報に基づいて順に訂正(correction)又はプロジェクション(projection)のカスケード(cascading)が適用されることを示す。ここで、順序は応用プログラムにより指定される。camera_lens_info_idフィールドの値は0乃至215-1の範囲内に存在する。
camera_lens_info_cancel_flagフィールドは、現在レイヤに適用される出力順序上、カメラレンズ情報前のカメラレンズ情報に対する持続性が取り消されたか否かを示す。例えば、camera_lens_info_cancel_flagフィールドの値が1である場合、camera_lens_info_cancel_flagフィールドはカメラレンズ情報前のカメラレンズ情報に対する持続性が取り消されたことを示す。またcamera_lens_info_cancel_flagフィールドの値が0である場合は、camera_lens_info_cancel_flagフィールドはカメラレンズ情報前のカメラレンズ情報に対する持続性が取り消されていないことを示す。
表2を参照すると、camera_lens_informationは、camera_lens_info_persistence_flagフィールド、supplemental_info_present_flagフィールド、view_dimension_idc_flagフィールド及び/又はnum_camera_id_minus1フィールドを含む。
camera_lens_info_persistence_flagフィールドは、現在レイヤに対するカメラレンズ情報SEIメッセージの持続性を示す。例えば、camera_lens_info_persistence_flagフィールドの値が0である場合、カメラレンズ情報は現在の復号されたピクチャ(current decoded picture)のみに適用できる。camera_lens_info_persistence_flagフィールドの値が1である場合は、カメラレンズ情報は現在レイヤで出力順序上、後述する条件のうちのいずれかを満たすまで維持される。即ち、カメラレンズ情報が現在レイヤで出力順序上、後述する条件のうちのいずれかを満たすまで適用できる。
上記の条件は以下の通りである。
-現在レイヤの新しいCLVSが開始される場合
-ビットストリームが終了する場合
-現在レイヤに適用できるカメラレンズ情報を含むアクセスユニットの現在レイヤのピクチャpicBが出力され、PicOrderCnt(picB)がPicOrderCnt(picA)より大きい場合
ここで、picAは現在のピクチャを示し、PicOrderCnt(picB)はpicBのピクチャオーダカウント(picture order count)に対する復号プロセスの呼び出し(invocation)直後のpicBのPicOrderCntVal値を示し、PicOrderCnt(picA)はpicBのピクチャオーダカウントに対する復号プロセスの呼び出し直後のpicAのPicOrderCntVal値を示す。
supplemental_info_present_flagフィールドは、カメラレンズ情報を含むSEIメッセージの外部にカメラレンズ情報に関する追加情報(supplemental information)が存在するか否かを示す。例えば、supplemental_info_present_flagフィールドの値が1である場合、supplemental_info_present_flagフィールドはカメラレンズ情報に関する追加情報がカメラレンズ情報のcamera_lens_info_idフィールドの値とは異なる値を有するcamera_lens_info_idフィールドに関するカメラレンズ情報又は追加カメラレンズ情報に含まれることを示す。また、supplemental_info_present_flagフィールドの値が0である場合は、supplemental_info_present_flagフィールドはカメラレンズ情報に関する追加情報が存在しないことを示す。
view_dimension_idc_flagフィールドは、カメラレンズ情報にview_dimension_idcフィールドが存在するか否かを示す。例えば、view_dimension_idc_flagフィールドの値が1である場合、view_dimension_idc_flagフィールドはカメラレンズ情報にview_dimension_idcフィールドが存在することを示し、view_dimension_idc_flagフィールドの値が1である場合は、view_dimension_idc_flagフィールドはカメラレンズ情報にview_dimension_idcフィールドが存在しないことを示す。
view_dimension_idcフィールドは魚眼レンズの整列(alignment)及び視野方向(viewing direction)を示す。例えば、view_dimension_idcフィールドの値が0である場合、view_dimension_idcフィールドはnum_circular_imagesフィールドの値は2であり、camera_center_elevationフィールド、camera_center_tiltフィールド、camera_center_offset_xフィールド、camera_center_offset_yフィールド及びcamera_center_offset_zフィールドの値は円形イメージが整列された光学軸を有し、互いに逆方向を向く値であり、field_of_viewフィールドの値の和は360*216以上であることを示す。ここで、num_circular_imagesフィールドは円形イメージの数を示す。
例えば、view_dimension_idcフィールドの値が1である場合、view_dimension_idcフィールドはnum_circular_imagesフィールドの値が2であり、camera_center_elevationフィールド、camera_center_tiltフィールド、camera_center_offset_xフィールド、camera_center_offset_yフィールド及びcamera_center_offset_zフィールドの値は円形イメージが平行な(parallel)光学軸(optical axes)を有し、光学軸がカメラ中心点と交差する(intersecting)線に直交(orthogonal)する値であり、iが0である場合、i番目のカメラは左側ビューであることを示す。即ち、view_dimension_idcフィールドの値が1である場合、0番目のカメラは左側ビューに対するカメラを示す。
また、例えば、view_dimension_idcフィールドの値が2である場合は、view_dimension_idcフィールドはnum_circular_imagesフィールドの値が2であり、camera_center_elevationフィールド、camera_center_tiltフィールド、camera_center_offset_xフィールド、camera_center_offset_yフィールド及びcamera_center_offset_zフィールドの値は円形イメージが平行な光学軸を有し、光学軸がカメラ中心点と交差する線に直交する値であり、iが0である場合、i番目のカメラは右側ビューであることを示す。即ち、view_dimension_idcフィールドの値が2である場合、0番目のカメラは右側ビューに対するカメラを示す。
また、例えば、view_dimension_idcフィールドの値が7である場合は、view_dimension_idcフィールドはomnidirectional fisheyeビデオSEIメッセージ内の構文要素(syntax element)に対する更なる制約が含蓄されていないことを示すことができる。
一方、view_dimension_idcフィールドの値が3乃至6である場合には、今後の使用(future use)のために予約されている(reserved)。
num_circular_images_minus1フィールドの値に1を加えた値は、カメラidの数を示す。
表2を参照すると、camera_lens_informationは、camera_id[i]フィールド、camera_id_type[i]フィールド、camera_location_per_viewpoint_x[i]フィールド、camera_location_per_viewpoint_y[i]フィールド、camera_location_per_viewpoint_z[i]フィールド、camera_rotation_per_viewpoint_yaw[i]フィールド、camera_rotation_per_viewpoint_pitch[i]フィールド、camera_rotation_per_viewpoint_roll[i]フィールド、camera_location_per_head_position_x[i]フィールド、camera_location_per_head_position_y[i]フィールド、camera_location_per_head_position_z[i]フィールド、camera_rotation_per_head_position_yaw[i]フィールド、camera_rotation_per_head_position_pitch[i]フィールド、camera_rotation_per_head_position_roll[i]フィールド、left_eye_view_flag[i]フィールド、camera_location_per_eye_x[i]フィールド、camera_location_per_eye_y[i]フィールド、camera_location_per_eye_z[i]フィールド、camera_rotation_per_eye_yaw[i]フィールド、camera_rotation_per_eye_pitch[i]フィールド及び/又はcamera_rotation_per_eye_roll[i]フィールドを含む。
camera_id[i]フィールドはカメラの識別に使用される識別番号(identifying number)を示す。即ち、camera_id[i]フィールドはi番目のカメラの識別子を示す。camera_id[i]フィールドの値は一つ又は複数のレンズで構成されたi番目のカメラを示すために使用される。また、camera_id[i]フィールドは特定の目的に対する一つのイメージ又は複数のイメージを示すためにも使用できる。一つのイメージ又は複数のイメージはi番目のカメラに対応するイメージである。例えば、camera_id[i]フィールドが特定のカメラ位置に対応するサブピクチャを示し、又はcamera_id[i]フィールドがビューポイント/ヘッド位置の両眼視差(binocular disparity)を支援するサブピクチャペア(sub-picture pair)を示し、又はcamera_id[i]フィールドが特定のレンズに対応するセンサの波長及び/又はカラーフィルターを示すことができる。
camera_id_type[i]フィールドはcamera_id[i]フィールドのタイプ、使用例(use case)又は目的を示す。即ち、camera_id_type[i]フィールドはcamera_id[i]フィールドが示すi番目のカメラに対するイメージのタイプ、使用例又は目的を示すことができる。
例えば、camera_id_type[i]フィールドの値が0である場合、camera_id_type[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャ(即ち、camera_id[i]フィールドが示すサブピクチャ)に対するタイプが指定されていないことを示すことができる。
camera_id_type[i]フィールドの値が1である場合、camera_id_type[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャがビューポイントの球を構成することを示す。即ち、camera_id_type[i]フィールドの値が1である場合、camera_id_type[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャがビューポイントの球を構成するピクチャ(例えば、ビューポイントの球にレンダリングされるピクチャ)であることを示す。ここで、ビューポイントの球は該ビューポイントでの3D空間を示す。この場合、ビューポイントの視野球(viewing sphere)の中心アンカー(center anchor)に対応するカメラロケーション及びオリエンテーションなどの追加情報を処理してビューポイントとは異なるビューポイントを示すことができる。
また、camera_id_type[i]フィールドの値が2である場合は、camera_id_type[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャがヘッド位置の球を構成することを示す。即ち、camera_id_type[i]フィールドの値が2である場合、camera_id_type[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャがヘッド位置の球を構成するピクチャ(例えば、ヘッド位置の球にレンダリングされるピクチャ)であることを示す。ここで、ヘッド位置の球は該ヘッド位置での3D空間を示す。この場合、ヘッド位置の視野球の中心に対応するカメラロケーション及びオリエンテーションなどの追加情報を処理してヘッド位置とは異なるヘッド位置を示すことができる。
また、camera_id_type[i]フィールドの値が3である場合は、camera_id_type[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャが立体ビデオ(stereoscopic video)を構成することを示す。即ち、camera_id_type[i]フィールドの値が3である場合は、camera_id_type[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャが立体ビデオを構成するピクチャであることを示す。この場合、アイビューの視野球の中心に対応するアイビュー、カメラロケーション及びオリエンテーションなどの追加情報を処理してアイビューとは異なるアイビューを示すことができる。一方、camera_id_type[i]フィールドの値が4乃至15である場合には、今後の使用のために予約されている。
camera_location_per_viewpoint_x[i]フィールド、camera_location_per_viewpoint_y[i]フィールド及びcamera_location_per_viewpoint_z[i]フィールドは、2-16ミリメートル単位でcamera_id[i]フィールドに対するビューポイントの位置を示すことができる。即ち、camera_location_per_viewpoint_x[i]フィールド、camera_location_per_viewpoint_y[i]フィールド及びcamera_location_per_viewpoint_z[i]フィールドは、2-16ミリメートル単位でcamera_id[i]フィールドに対するビューポイントのx成分、y成分及びz成分を示す。ビューポイントの位置はビューポイントアンカーの中心位置に対応する。例えば、ビューポイントアンカーの中心位置はセンターヘッド位置の単位球センター(unit sphere center)である。camera_location_per_viewpoint_x[i]フィールド、camera_location_per_viewpoint_y[i]フィールド及びcamera_location_per_viewpoint_z[i]フィールドの値は、-32768*216-1(即ち、-2147483647)乃至32768*216(即ち、2147483648)の範囲内に存在することができる。
camera_rotation_per_viewpoint_yaw[i]フィールド、camera_rotation_per_viewpoint_pitch[i]フィールド及びcamera_rotation_per_viewpoint_roll[i]フィールドは、2-16°(degrees)単位でcamera_id[i]フィールドに対するビューポイントに対するヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す。ヨー角度、ピッチ角度、ロール角度はcamera_id[i]フィールドに対するビューポイントアンカーの単位球に適用でき、ビューポイントアンカーの単位球上の座標はローカル座標軸(local coordinate axes)からグローバル座標軸(global coordinate axes)に変換されることができる。camera_rotation_per_viewpoint_yaw[i]フィールドの値は、-180*216(即ち、-11796480)乃至180*216-1(即ち、11796479)の範囲内に存在することができる。camera_rotation_per_viewpoint_pitch[i]フィールドの値は、-90*216(即ち、-5898240)乃至90*216(即ち、5898240)の範囲内に存在することができる。camera_rotation_per_viewpoint_roll[i]フィールドの値は-180*216(即ち、-11796480)乃至180*216-1(即ち、11796479)の範囲内に存在することができる。一方、camera_rotation_per_viewpoint_yaw[i]フィールド、camera_rotation_per_viewpoint_pitch[i]フィールド及びcamera_rotation_per_viewpoint_roll[i]フィールドは、2-16°単位でcamera_id[i]フィールドに対するビューポイントに対するアジムス(azimuth)角度、エレベーション(elevation)角度、傾斜(tilt)角度を示すこともできる。
camera_location_per_head_position_x[i]フィールド、camera_location_per_head_position_y[i]フィールド及びcamera_location_per_head_position_z[i]フィールドは、2-16ミリメートル単位でcamera_id[i]フィールドに対するヘッド位置の位置を示す。即ち、camera_location_per_head_position_x[i]フィールド、camera_location_per_head_position_y[i]フィールド及びcamera_location_per_head_position_z[i]フィールドは、2-16ミリメートル単位でcamera_id[i]フィールドに対するヘッド位置のx成分、y成分及びz成分を示すことができる。ヘッド位置の位置はヘッド位置アンカーの中心位置に対応する。例えば、ヘッド位置アンカーの中心位置はセンターヘッド位置の単位球センター(unit sphere center)であることができる。camera_location_per_head_position_x[i]フィールド、camera_location_per_head_position_y[i]フィールド及びcamera_location_per_head_position_z[i]フィールドの値は-32768*216-1(即ち、-2147483647)乃至32768*216(即ち、2147483648)の範囲内に存在する。
camera_rotation_per_head_position_yaw[i]フィールド、camera_rotation_per_head_position_pitch[i]フィールド及びcamera_rotation_per_head_position_roll[i]フィールドは、2-16°単位でcamera_id[i]フィールドに対するヘッド位置に対するヨー(yaw)角度、ピッチ(pitch)角度、ロール(roll)角度を示す。ヨー角度、ピッチ角度及びロール角度はcamera_id[i]フィールドに対するヘッド位置アンカーの単位球に適用でき、ヘッド位置アンカーの単位球上の座標はローカル座標軸からグローバル座標軸に変換されることができる。camera_location_per_head_position_yaw[i]フィールドの値は-180*216(即ち、-11796480)乃至180*216-1(即ち、11796479)の範囲内に存在する。camera_location_head_position_pitch[i]フィールドの値は-90*216(即ち、-5898240)乃至90*216(即ち、5898240)の範囲内に存在する。camera_location_per_head_position_roll[i]フィールドの値は-180*216(即ち、-11796480)乃至180*216-1(即ち、11796479)の範囲内に存在する。なお、camera_rotation_per_head_position_yaw[i]フィールド、camera_rotation_per_head_position_pitch[i]フィールド及びcamera_rotation_per_head_position_roll[i]フィールドは、2-16°単位でcamera_id[i]フィールドに対するビューポイントに対するアジムス(azimuth)角度、エレベーション(elevation)角度、傾斜(tilt)角度を示すこともできる。
left_eye_view_flag[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャが左側アイビュー(left eye view)であるか又は右側アイビュー(right eye view)であるかを示す。例えば、left_eye_view_flag[i]フィールドの値が1である場合、left_eye_view_flag[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャが左側アイビューであることを示し、left_eye_view_flag[i]フィールドの値が0である場合は、left_eye_view_flag[i]フィールドはcamera_id[i]フィールドに対応するサブピクチャが右側アイビューであることを示す。
camera_location_per_eye_x[i]フィールド、camera_location_per_eye_y[i]フィールド及びcamera_location_per_eye_z[i]フィールドは、2-16ミリメートル単位でcamera_id[i]フィールドに対するアイビューの位置を示す。即ち、camera_location_per_eye_x[i]フィールド、camera_location_per_eye_y[i]フィールド及びcamera_location_per_eye_z[i]フィールドは、2-16ミリメートル単位でcamera_id[i]フィールドに対するアイビューのx成分、y成分及びz成分を示すことができる。アイビューは左目(left eye)又は右目(right eye)の単位球に対応することができる。camera_location_per_eye_x[i]フィールド、camera_location_per_eye_y[i]フィールド及びcamera_location_per_eye_z[i]フィールドの値は-32768*216-1(即ち、-2147483647)乃至32768*216(即ち、2147483648)の範囲内に存在する。
camera_rotation_per_eye_yaw[i]フィールド、camera_rotation_per_eye_pitch[i]フィールド及びcamera_rotation_per_eye_roll[i]フィールドは、2-16°単位でcamera_id[i]フィールドに対するアイビューに対するヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す。ヨー角度、ピッチ角度及びロール角度は、camera_id[i]フィールドに対するアイビューの単位球に適用でき、アイビューの単位球上の座標はローカル座標軸からグローバル座標軸に変換できる。camera_rotation_per_eye_yaw[i]フィールドの値は-180*216(即ち、-11796480)乃至180*216-1(即ち、11796479)の範囲内に存在する。camera_rotation_eye_pitch[i]フィールドの値は-90*216(即ち、-5898240)乃至90*216(即ち、5898240)の範囲内に存在する。camera_rotation_per_eye_roll[i]フィールドの値は-180*216(即ち、-11796480)乃至180*216-1(即ち、11796479)の範囲内に存在する。一方、camera_rotation_per_eye_yaw[i]フィールド、camera_rotation_per_eye_pitch[i]フィールド及びcamera_rotation_per_eye_roll[i]フィールドは、2-16°単位でcamera_id[i]フィールドに対するビューポイントに対するアジムス(azimuth)角度、エレベーション(elevation)角度、傾斜(tilt)角度を示すこともできる。
表2を参照すると、camera_lens_informationは、num_subpicture_minus1フィールド、scene_radius_flag[i]フィールド、local_sphere_center_offset_flag[i]フィールド、local_sphere_rotation_flag[i]フィールド、lens_distortion_correction_flag[i]フィールド及び/又はnum_camera_idx_minus1フィールドを含む。
num_subpicture_minus1フィールドの値に1を加えた値は、コーディングされたピクチャのサブピクチャの数を示す。
scene_radius_flag[i]フィールド、local_sphere_center_offset_flag[i]フィールド、local_sphere_rotation_flag[i]フィールド及びlens_distortion_correction_flag[i]フィールドは各々、カメラレンズ情報に各フィールドに対するフィールドが存在するか否かを示す。
より具体的には、scene_radius_flag[i]フィールドはカメラレンズ情報に(i+1)番目のサブピクチャに対する円形領域(circular region)に関する情報が存在するか否かを示す。即ち、scene_radius_flag[i]フィールドはカメラレンズ情報に(i+1)番目のサブピクチャに対するscene_radius[i]フィールドが存在するか否かを示す。ここで、(i+1)番目のサブピクチャは符号化されたピクチャ内の(i+1)番目の円形領域である。また、(i+1)番目の円形領域に対する円形領域は、(i+1)番目の円形領域においてカメラ本体(camera body)のような妨害物が見えない領域を示す。例えば、scene_radius_flag[i]フィールドの値が1である場合、scene_radius_flag[i]フィールドはカメラレンズ情報に(i+1)番目の円形領域に対するscene_radius[i]フィールドが存在することを示し、scene_radius_flag[i]フィールドの値が0である場合、scene_radius_flag[i]フィールドはカメラレンズ情報に(i+1)番目の円形領域に対するscene_radius[i]フィールドが存在しないことを示す。scene_radius[i]フィールドについて詳しくは後述する。
local_sphere_center_offset_flag[i]フィールドはカメラレンズ情報にi番目の円形領域に対するカメラレンズの焦点中心(focal center)のオフセット情報が存在するか否かを示す。即ち、local_sphere_center_offset_flag[i]フィールドは、カメラレンズ情報に(i+1)番目の円形領域に対するlocal_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドが存在するか否かを示す。例えば、local_sphere_center_offset_flag[i]フィールドの値が1である場合、local_sphere_center_offset_flag[i]フィールドはカメラレンズ情報に(i+1)番目の円形領域に対するlocal_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドが存在することを示し、local_sphere_center_offset_flag[i]フィールドの値が0である場合は、local_sphere_center_offset_flag[i]フィールドはカメラレンズ情報に(i+1)番目の円形領域に対するlocal_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドが存在しないことを示す。local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドについて詳しくは後述する。
また、local_sphere_rotation_flag[i]フィールドは、カメラレンズ情報にクロップされた出力ピクチャ(cropped output picture)の(i+1)番目の円形領域の中心点に対応する球領域(sphere region)の球面座標(spherical coordinate)に関する情報が存在するか否かを示す。即ち、local_sphere_rotation_flag[i]フィールドは、カメラレンズ情報に(i+1)番目の円形領域に対するlocal_sphere_center_azimuth[i]フィールド、local_sphere_center_elevation[i]フィールド及びlocal_sphere_center_tilt[i]フィールドが存在するか否かを示す。例えば、local_sphere_rotation_flag[i]フィールドの値が1である場合、local_sphere_rotation_flag[i]フィールドはカメラレンズ情報に(i+1)番目の円形領域に対するlocal_sphere_center_azimuth[i]フィールド、local_sphere_center_elevation[i]フィールド及びlocal_sphere_center_tilt[i]フィールドが存在することを示し、local_sphere_rotation_flag[i]フィールドの値が0である場合は、local_sphere_rotation_flag[i]フィールドはカメラレンズ情報に(i+1)番目の円形領域に対するlocal_sphere_center_azimuth[i]フィールド、local_sphere_center_elevation[i]フィールド及びlocal_sphere_center_tilt[i]フィールドが存在しないことを示す。local_sphere_center_azimuth[i]フィールド、local_sphere_center_elevation[i]フィールド及びlocal_sphere_center_tilt[i]フィールドについて詳しくは後述する。
また、lens_distortion_correction_flag[i]フィールドは、カメラレンズ情報に(i+1)番目の円形領域に対するカメラレンズの歪み(distortion)関連情報が存在するか否かを示す。即ち、lens_distortion_correction_flag[i]フィールドは、カメラレンズ情報に(i+1)番目の円形領域に対するnum_angle_correction_minus1[i]フィールド、angle_correction[i][j]フィールド、num_polynomial_coeff_correction_minus1[i][j]フィールド及びpolynomial_coeff_correction[i][j][k]フィールドが存在するか否かを示す。例えば、lens_distortion_correction_flag[i]フィールドの値が1である場合、lens_distortion_correction_flag[i]フィールドはカメラレンズ情報に(i+1)番目の円形領域に対するnum_angle_correction_minus1[i]フィールド、angle_correction[i][j]フィールド、num_polynomial_coeff_correction_minus1[i][j]フィールド及びpolynomial_coeff_correction[i][j][k]フィールドが存在することを示し、lens_distortion_correction_flag[i]フィールドの値が0である場合は、lens_distortion_correction_flag[i]フィールドはカメラレンズ情報に(i+1)番目の円形領域に対するnum_angle_correction_minus1[i]フィールド、angle_correction[i][j]フィールド、num_polynomial_coeff_correction_minus1[i][j]フィールド及びpolynomial_coeff_correction[i][j][k]フィールドが存在しないことを示す。num_angle_correction_minus1[i]フィールド、angle_correction[i][j]フィールド、num_polynomial_coeff_correction_minus1[i][j]フィールド及びpolynomial_coeff_correction[i][j][k]フィールドについて詳しくは後述する。
num_camera_idx_minus1フィールドの値に1を加えた値は、i番目のサブピクチャを参照するカメラインジケーター(camera indicator)の数を示す。又はnum_camera_idx_minus1フィールドの値に1を加えた値は、(i+1)番目のサブピクチャを参照するカメラインジケーターの数を示す。ここで、(i+1)番目のサブピクチャは(i+1)番目の円形領域である。
表2を参照すると、camera_lens_informationは、camera_idx[i][j]フィールド、circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールド、rect_region_top[i]フィールド、rect_region_left[i]フィールド、rect_region_width[i]フィールド、rect_region_height[i]フィールド、full_radius[i]フィールド、scene_radius[i]フィールド、local_sphere_rotation_azimuth[i]フィールド、local_sphere_rotation_elevation[i]フィールド、local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド、local_sphere_center_offset_z[i]フィールド、field_of_view[i]フィールド、lens_projection_type[i]フィールド、scaling_factor[i]フィールド、num_angle_projection_minus1[i]フィールド、angle_projection[i][j]フィールド、num_polynomial_coeff_projection_minus1[i][j]フィールド、polynomial_coeff_projection[i][j][k]フィールド、num_angle__correction_minus1[i]フィールド、angle_correction[i][j]フィールド、num_polynomial_coeff_correction_minus1[i][j]フィールド、polynomial_coeff_correction[i][j][k]フィールド及び/又はredial_distortion_type[i]フィールドを含む。
camera_idx[i][j]フィールドは、カメラレンズ情報SEIメッセージに存在するcamera_idに対するi番目のサブピクチャのj番目のカメラインジケーターを示す。又はcamera_idx[i][j]フィールドは、カメラレンズ情報SEIメッセージに存在するcamera_idに対する(i+1)番目のサブピクチャの(j+1)番目のカメラインジケーターを示す。ここで、(i+1)番目のサブピクチャは(i+1)番目の円形領域である。
circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールドは、2-16ルマサンプル単位でコーディングされたピクチャにおいて(i+1)番目の円形領域の中心点を示すことができる。即ち、circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールドは、2-16ルマサンプル単位で(i+1)番目の円形領域の中心点の水平座標(x成分)及び垂直座標(y成分)を示すことができる。circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールドの値は0乃至65536*216-1(即ち、4294967295)の範囲内に存在する。
rect_region_top[i]フィールド、rect_region_left[i]フィールド、rect_region_width[i]フィールド、rect_region_height[i]フィールドは、ルマサンプル単位で(i+1)番目の円形領域を含む(i+1)番目の四角形領域の左上端コーナーの位置(左上端点の位置)、幅及び高さを示すことができる。rect_region_top[i]フィールド、rect_region_left[i]フィールド、rect_region_width[i]フィールド、rect_region_height[i]フィールドは、ルマサンプル単位で(i+1)番目の四角形領域の左上端コーナーの位置の水平座標(x成分)及び垂直座標(y成分)、幅及び高さを示すことができる。
full_radius[i]フィールドは(i+1)番目の円形領域の半径(radius)を示す。(i+1)番目の円形領域の半径は、(i+1)番目の円形領域の中心点から最も外側(outermost)のサンプル境界までの長さである。中心点はcircular_region_center_x[i]フィールド及びcircular_region_center_y[i]フィールドが2-16ルマサンプル単位で示すことができる。また、(i+1)番目の円形領域の半径は、field_of_view[i]フィールドが示す(i+1)番目の円形領域に対する(i+1)番目のレンズの最大視野に対応する。又は半径はfield_of_view[i]フィールドが示すi番目の円形領域に対するi番目のレンズの最大視野に対応する。full_radius[i]フィールドの値は0乃至65536*216-1(即ち、4294967295)の範囲内に存在する。
なお、(i+1)番目の円形領域の実際のサンプル領域は、rect_region_top[i]フィールド、rect_region_left[i]フィールド、rect_region_width[i]フィールド、rect_region_height[i]フィールドに基づいて導き出される四角形領域と、circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールド及びfull_radius[i]フィールドに基づいて導き出される円形領域との内部積集合に該当する領域である。
scene_radius[i]フィールドは、(i+1)番目の円形領域内の円形領域の半径を示す。ここで、(i+1)番目の円形領域内の円形領域は、(i+1)番目の円形領域においてカメラ本体(camera body)のような妨害物が見えない領域を示す。(i+1)番目の円形領域内の円形領域の半径は、scene_radius[i]フィールドが2-16ルマサンプル単位で示すことができる。また、scene_radius[i]フィールドの値はfull_radius[i]フィールドの値と等しいか又は小さく、0乃至65536*216-1(即ち、4294967295)の範囲内に存在する。円形領域はコンテンツ供給子がスティッチング過程で使用するように提案した領域である。
local_sphere_rotation_azimuth[i]フィールド、local_sphere_rotation_elevation[i]フィールドは、クロップされた出力ピクチャ(cropped output picture)の(i+1)番目の円形領域の中心点に対応する球領域の球面座標を示す。即ち、local_sphere_rotation_azimuth[i]フィールドは、(i+1)番目の円形領域の中心点に対応する球領域の球面座標のアジムス角度(azimuth angle)を示し、local_sphere_rotation_elevation[i]フィールドは、(i+1)番目の円形領域の中心点に対応する球領域の球面座標のエレベーション角度(elevation angle)を示す。ここで、local_sphere_rotation_azimuth[i]フィールド、local_sphere_rotation_elevation[i]フィールドは、2-16°単位で中心点に対応する球領域の球面座標のアジムス角度及びエレベーション角度を示すことができる。local_sphere_rotation_azimuth[i]フィールドの値は、-180*216(即ち、-11796480)乃至180*216-1(即ち、11796479)の範囲内に存在する。また、local_sphere_rotation_elevation[i]フィールドの値は、-90*216(即ち、-5898240)乃至90*216(即ち、5898240)の範囲内に存在する。
local_sphere_rotation_tilt[i]フィールドは、(i+1)番目の円形領域の中心点に対応する球領域の球面座標の傾斜角度(tilt angle)を示す。ここで、local_sphere_rotation_tilt[i]フィールドは、2-16°単位で中心点に対応する球領域の球面座標の傾斜角度を示す。local_sphere_rotation_tilt[i]フィールドの値は-180*216(即ち、-11796480)乃至180*216-1(即ち、11796479)の範囲内に存在する。
local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドは、(i+1)番目の円形領域に対するカメラレンズの焦点中心(focal center)のオフセットを示す。カメラレンズの焦点中心はカメラ構成全体の焦点中心の原点を基準とするオフセットで示すことができる。即ち、local_sphere_center_offset_x[i]フィールドは、(i+1)番目の円形領域に対するカメラレンズの焦点中心のxオフセットを示し、local_sphere_center_offset_y[i]フィールドは、(i+1)番目の円形領域に対するカメラレンズの焦点中心のyオフセットを示し、local_sphere_center_offset_z[i]フィールドは、(i+1)番目の円形領域に対するカメラレンズの焦点中心のzオフセットを示す。ここで、local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドは、2-16ミリメートル単位でカメラレンズの焦点中心のxオフセット、yオフセット及びzオフセットを示すことができる。local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドの値は、0乃至65536*216-1(即ち、4294967295)の範囲内に存在する。
一方、360°ビデオ生成において、local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドは、単位球の球中心(sphere center)のxyz位置を示す。(i+1)番目のサブピクチャ((i+1)番目の円形領域)は、単位球の球中心を基準としてマッピングされ、単位球にスティッチングされた360°ビデオが提供される。local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドが存在しない場合、local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド及びlocal_sphere_center_offset_z[i]フィールドの値は0に導き出される。
field_of_view[i]フィールドは、コーディングされたピクチャの(i+1)番目の円形領域の球形ドメイン範囲(spherical domain coverage)を示す。ここで、field_of_view[i]フィールドは2-16°単位で球形ドメインの範囲を示すことができる。field_of_view[i]フィールドの値は0乃至360*216の範囲内に存在する。
lens_projection_type[i]フィールドは(i+1)番目の円形領域に対するレンズプロジェクション(lens projection)のタイプを示す。例えば、lens_projection_type[i]フィールドの値が0である場合、lens_projection_type[i]フィールドは(i+1)番目の円形領域に対するレンズプロジェクションのタイプが指定されていないことを示し、lens_projection_type[i]フィールドの値が1である場合、lens_projection_type[i]フィールドは(i+1)番目の円形領域に対するレンズプロジェクションのタイプが透視投影(perspective projection)であることを示し、lens_projection_type[i]フィールドの値が2である場合は、lens_projection_type[i]フィールドは(i+1)番目の円形領域に対するレンズプロジェクションのタイプが立体射影(stereographic projection)であることを示し、lens_projection_type[i]フィールドの値が3である場合は、lens_projection_type[i]フィールドは(i+1)番目の円形領域に対するレンズプロジェクションのタイプが等距離射影(equidistance projection)であることを示し、lens_projection_type[i]フィールドの値が4である場合は、lens_projection_type[i]フィールドは(i+1)番目の円形領域に対するレンズプロジェクションのタイプが正弦法則投影(sine-law projection)であることを示し、lens_projection_type[i]フィールドの値が5である場合は、lens_projection_type[i]フィールドは(i+1)番目の円形領域に対するレンズプロジェクションのタイプが等立体角射影(equi-solid projection)であることを示し、lens_projection_type[i]フィールドの値が255である場合は、lens_projection_type[i]フィールドは(i+1)番目の円形領域に対するレンズプロジェクションのタイプが角多項式投影(angular polynomial projection)であることを示す。また、lens_projection_type[i]フィールドの値が6乃至254である場合は、今後の使用(future use)のために予約されている。
図12は半径方向プロジェクション関数(radial projection functions)を例示する図である。半径方向プロジェクション関数は上述したレンズプロジェクションのタイプを示す。
scaling_factor[i]フィールドは2-8単位で(i+1)番目のレンズプロジェクションタイプの倍率(scaling factor)を示す。(i+1)番目のレンズプロジェクションタイプは(i+1)番目の円形領域に対するレンズプロジェクションタイプを示す。field_of_view[i]フィールドの値は0乃至256*2-8-1の範囲内に存在する。
num_angle_projection_minus1[i]フィールドの値に1を加えた値は、(i+1)番目の円形領域のプロジェクション関数の角度方向(angular direction)を示す角度の値(angular values)の数を示す。num_angle_projection_minus1[i]フィールドの値が0である場合、num_angle_projection_minus1[i]フィールドは、(i+1)番目の円形領域の球座標プロジェクション(sphere coordinate projection)関数に対する円形領域内のルマサンプルが全ての角度の値に対して対称(symmetric)であると仮定されることを示す。
angle_projection[i][j]フィールドは、(i+1)番目の円形領域の(j+1)番目の多項式関数(polynomial function)の方向を示す角度の値(angular value)を示す。即ち、angle_projection[i][j]フィールドは、(i+1)番目の円形領域の(j+1)番目の角度の値を示す。ここで、angle_projection[i][j]フィールドは2-7°単位で角度の値を示す。angle_projection[i][j]フィールドの値は0乃至360*27-1の範囲内に存在する。
num_polynomial_coeff_projection_minus1[i][j]フィールドの値に1を加えた値は、(i+1)番目の円形領域において(j+1)番目の角度の値に対応する(j+1)番目のレンズ歪み補正関数(lens distortion correction function)の多項式係数の数を示す。ここで、(j+1)番目のレンズ歪み補正関数は(j+1)番目の多項式関数を示す。多項式関数は角曲線関数変換(angular curve function transformation)でもある。
polynomial_coeff_projection[i][j][k]フィールドは、(i+1)番目の円形領域においてルマサンプルと中心点の間の半径距離(radial distance)の(j+1)番目の角曲線関数変換のk番目の多項式係数値を示す。又はpolynomial_coeff_projection[i][j][k]フィールドは、(i+1)番目の円形領域においてルマサンプルと中心点の間の半径距離の(j+1)番目の角曲線関数変換の(k+1)番目の多項式係数値を示す。(k+1)番目の多項式係数値はfull_radius[i]フィールドに基づいて正規化された値であって、ルマサンプルと中心点に対応するベクトルの間の角度の値である。また、ルマサンプルと中心点は(i+1)番目の円形領域のレンズの焦点(focal point)に対応する原点を有する球座標で示すことができる。polynomial_coeff_projection[i][j][k]フィールドの値は、-128*224(即ち、2147483648)乃至128*224-1(即ち、2147483647)の範囲内に存在する。
num_angle_correction_minus1[i]フィールドの値に1を加えた値は、(i+1)番目の円形領域のレンズ歪み補正関数の角度方向を示す角度の値の数を示す。num_angle_correction_minus1[i]フィールドの値が0である場合、num_angle_correction_minus1[i]フィールドは(i+1)番目の円領域のレンズ歪み補正関数に対する円形領域内のルマサンプルが全ての角度の値に対して対称(symmetric)であると仮定することができる。
angle_correction[i][j]フィールドは、(i+1)番目の円形領域の(j+1)番目のレンズ歪み補正関数の(i+1)番目の円形領域の中心点から境界への方向を示す角度の値(angular value)を示す。即ち、angle_correction[i][j]フィールドは、(i+1)番目の円形領域の(j+1)番目の角度の値を示す。ここで、angle_correction[i][j]フィールドは2-7°単位で角度の値を示すことができる。angle_correction[i][j]フィールドの値は0乃至360*27-1の範囲内に存在する。
num_polynomial_coeff_correction_minus1[i][j]フィールドの値に1を加えた値は、(i+1)番目の円形領域において(j+1)番目の角度の値に対応する(j+1)番目のレンズ歪み補正関数の多項式係数の数を示す。
polynomial_coeff_correction[i][j][k]フィールドは、2-24ルマサンプル単位で(i+1)番目の円形領域の(j+1)番目のレンズ歪み補正関数のk番目の多項式係数値を示す。又は、polynomial_coeff_correction[i][j][k]フィールドは、2-24ルマサンプル単位で(i+1)番目の円形領域の(j+1)番目のレンズ歪み補正関数の(k+1)番目の多項式係数値を示す。polynomial_coeff_correction[i][j][k]フィールドの値は、-128*224(即ち、2147483648)乃至128*224-1(即ち、2147483647)の範囲内に存在する。
radial_distortion_type[i]フィールドは(i+1)番目の円形領域に対するレンズ半径方向の歪み(lens radial distortion)のタイプを示す。例えば、radial_distortion_type[i]フィールドの値が0である場合、radial_distortion_type[i]フィールドは(i+1)番目の円形領域に対するレンズ半径方向の歪みのタイプが指定されていないことを示し、radial_distortion_type[i]フィールドの値が1である場合は、radial_distortion_type[i]フィールドは(i+1)番目の円形領域に対するレンズ半径方向の歪みのタイプがたる形歪曲(Barrel distortion)であることを示し、radial_distortion_type[i]フィールドの値が2である場合は、radial_distortion_type[i]フィールドは(i+1)番目の円形領域に対するレンズ半径方向の歪みのタイプが糸巻き型歪曲(Pincushion distortion)であることを示し、radial_distortion_type[i]フィールドの値が3である場合は、radial_distortion_type[i]フィールドは(i+1)番目の円形領域に対するレンズ半径方向の歪みのタイプが陣笠型歪曲(Mustache distortion)であることを示す。一方、radial_distortion_type[i]フィールドの値が4乃至254である場合は、今後の使用のために予約されている。
図13は複数のタイプの半径方向の歪みを例示する図である。撮影するレンズによって円形イメージに異なるタイプの半径方向の歪みが発生することができるので、図10は複数のタイプの半径方向の歪みを示す。図13の(a)はたる形歪曲(Barrel distortion)を示し、図13の(b)は糸巻き型歪曲(Pincushion distortion)を示し、図13の(c)は陣笠型歪曲(Mustache distortion)を示す。
一方、Brown’s distortion model又はBrown-Conrady modelに基づいて、円形イメージに対する半径方向の歪みを修正することができる。また、Brown-Conrady modelに基づいて、半径方向の歪み及びレンズの物理的要素(physical elements)が完璧に整列されないことから発生する接線歪み(tangential distortion)を修正することができる。接線歪みは偏心歪み(decentering distortion)と示すことができる。
円形イメージの半径方向の歪みを修正する過程は、以下のように導き出すことができる。
歪みを修正する過程により、円形イメージの(xd、yd)座標のサンプルは数式に基づいて導き出された(xu、yu)座標に移動することができる。これにより、円形イメージの歪みを除去することができる。
ここで、rは歪曲されたイメージポイントと歪み中心との距離を示し、xd、ydは指定されたレンズを使用して360°ビデオがプロジェクションされたピクチャの歪曲されたイメージポイントのx成分、y成分を示し、xu、yuは理想的なピンホールカメラ(ideal pinhole camera)を使用して360°ビデオがプロジェクションされたピクチャの歪曲されていないイメージポイントのx成分、y成分を示す。また、xc、ycは歪み中心(distortion center)のx成分、y成分を示す。歪み中心を主点(principal point)と仮定することができる。Knはn番目の半径方向の歪み係数を示し、Pnはn番目の接線歪み係数を示す。半径方向の歪み係数及び接線歪み係数は、円形イメージの半径方向の歪みのタイプに基づいて導き出すことができる。
rは以下のように導き出すことができる。
上述した半径方向の歪み関連情報は、球座標にマッピングされていないイメージが存在する場合に、2Dドメインの歪みを補正するために使用することができる。
円形領域のサンプル位置において、グローバル座標軸に対する球座標系への変換過程は、後述する通りである。後述する変換過程は、iが0である円形領域において、iがnum_subpictures_minus1フィールドの値である円形領域まで順に適用されることができる。又は後述する変換過程は、iが0である円形領域において、iが特定値である円形領域まで順に適用されることができ、特定の値はcamera_idx[i][j]フィールドに示されるサブピクチャに対応する円形領域の数である。
上記変換過程の入力は以下の通りである。
-ルマサンプル単位のサンプル位置(x、y)
-2-16ルマサンプル単位のcircular_region_center_x[i]フィールド及びcircular_region_center_y[i]フィールドに基づいて導き出されるi番目のイメージ(又は(i+1)番目の円形領域)の中心点位置(xc、yc)及びfull_radius[i]フィールドに基づいて導き出されるi番目の円形イメージ(又は(i+1)番目の円形領域)の半径rc
-2-16°単位のfield_of_view[i]フィールドに基づいて導き出されるi番目の円形領域(又は(i+1)番目の円形領域)に対応するレンズのFOV(Fied Of View)θv
-2-16°単位のlocal_sphere_center_azimuth[i]フィールド、local_sphere_center_elevation[i]フィールド及びlocal_sphere_center_tilt[i]フィールドに基づいて導き出される回転パラメータ(rotation parameters)αc、βc、γc
-多項式係数の数n、レンズプロジェクションタイプm、倍率(scale factor)σ、角度方向(angular direction)ωjに対する2-24°単位の(i+1)番目の円形領域の多項式係数pk(ωj)
上記変換過程の出力は以下の通りである。
-サンプル位置(x、y)に対するグローバル座標軸に対する球座標位置(φ、θ)
(i+1)番目の円形領域でのサンプル位置を球座標系での位置に変換する過程を以下の表のように行うことができる。変換過程は(i+1)番目の円形領域を球座標系にマッピングする過程であると示すこともできる。
ここで、φ'に関する数式は、以下の表のように、lens_projection_type[i]フィールドに基づいて導き出すことができる。
又は、φ'はφ'に対する角度方向θ'に隣接する角度方向(nearest angular directions)から補間関数Fに基づいて、以下の数式のように導き出すことができる。
ωj及びωj+1は角度方向θ'に隣接する角度方向を示し、θ'はωjより大きく、ωj+1より小さい。
なお、上記表1を参照すると、SEIメッセージは、追加カメラレンズ情報に該当するsupplemental_camera_lens_informationを含む。
supplemental_camera_lens_informationは、以下の表のように導き出すことができる。
表5を参照すると、supplemental_camera_lens_informationは、num_circular_imagesフィールドを含む。
num_circular_imagesフィールドはsupplemental_camera_lens_informationが適用されるコーディングされたピクチャの円形イメージの数を示す。例えば、num_circular_imagesフィールドの値は2であることができる。又はnum_circular_imagesフィールドの値は2を除いた0ではない値である。ここで、num_circular_imagesフィールドはnum_subpictureSフィールドと示し、円形イメージは円形領域又はサブピクチャと示すこともできる。
表5を参照すると、num_camera_idx_minus1フィールド、camera_idx[i][j]フィールド、image_flip[i]フィールド、image_scale_axis_angle[i]フィールド、image_scale_x[i]フィールド、image_scale_y[i]フィールド、num_angle_for_displaying_fov[i]フィールド、displayed_fov[i][j]フィールド、overlapped_fov[i][j]フィールド、num_local_fov_region[i]フィールド、start_radius[i][j]フィールド、end_radius[i][j]フィールド、start_angle[i][j]フィールド、end_angle[i][j]フィールド、radius_delta[i][j]フィールド、angle_delta[i][j]フィールド、local_fov_weight[i][j][k][l]フィールド、num_polynomial_coefficients_lsc[i]フィールド、polynomial_coefficient_K_lsc_R[i][j]フィールド、polynomial_coefficient_K_lsc_G[i][j]フィールド、polynomial_coefficient_K_lsc_B[i][j]フィールド、num_deadzonesフィールド、deadzone_left_horizontal_offset[i]フィールド、deadzone_top_vertical_offset[i]フィールド、deadzone_width[i]フィールド及び/又はdeadzone_height[i]フィールドを含む。
num_camera_idx_minus1フィールドの値に1を加えた値は、i番目のサブピクチャを参照するカメラインジケーターの数を示す。又は、num_camera_idx_minus1フィールドの値に1を加えた値は、(i+1)番目のサブピクチャを参照するカメラインジケーターの数を示す。ここで、(i+1)番目のサブピクチャは(i+1)番目の円形領域である。
camera_idx[i][j]フィールドは、カメラレンズ情報SEIメッセージに存在するcamera_idに対するi番目のサブピクチャのj番目のカメラインジケーターを示す。又は、camera_idx[i][j]フィールドは、カメラレンズ情報SEIメッセージに存在するcamera_idに対する(i+1)番目のサブピクチャの(j+1)番目のカメラインジケーターを示す。ここで、(i+1)番目のサブピクチャは(i+1)番目の円形領域である。
image_flip[i]フィールドは、(i+1)番目の円形領域がフリップされているか否か、どのようにフリップされたかを示す。従って、image_flip[i]フィールドはスティッチング過程及び/又はレンダリング過程において、(i+1)番目の円形領域に対するリバースフリップ過程(reverse flipping operation)を適用する必要があるか否かを示すことができる。例えば、image_flip[i]フィールドの値が0である場合、image_flip[i]フィールドは(i+1)番目の円形領域がフリップされていないことを示す。また、image_flip[i]フィールドの値が1である場合は、image_flip[i]フィールドは(i+1)番目の円形領域が垂直方向(vertically)にフリップされていることを示す。また、image_flip[i]フィールドの値が2である場合は、image_flip[i]フィールドは(i+1)番目の円形領域が水平方向(horizontally)にフリップされていることを示す。また、image_flip[i]フィールドの値が3である場合は、image_flip[i]フィールドは(i+1)番目の円形領域が垂直方向及び水平方向にフリップされていることを示す。
image_scale_axis_angle[i]フィールド、image_scale_x[i]フィールド及びimage_scale_y[i]フィールドは、特定の軸に沿って(i+1)番目の円形領域のサイズがスケーリングされているか否か、及びどのようにスケーリングされたかを示す。image_scale_axis_angle[i]フィールド、image_scale_x[i]フィールド及びimage_scale_y[i]フィールドの値は、固定小数点16(fixed-point 16)であることができる。image_scale_axis_angle[i]フィールド、image_scale_x[i]フィールド及びimage_scale_y[i]フィールドは、カメラ-ミラー設定(camera-mirror settings)の自然なエラーを考慮するために使用できる。特定の軸はimage_scale_axis_angle[i]フィールドの値が示す単一角度(single angle)と定義することができる。単一角度の単位は°である。例えば、単一角度が0である場合、水平ベクトルは完全に水平であり、垂直ベクトルは完全に垂直である場合を示す。image_scale_x[i]フィールド及びimage_scale_y[i]フィールドはスケーリング(scaling)を示す。なお、image_scale_axis_angle[i]フィールド、image_scale_x[i]フィールド及びimage_scale_y[i]フィールドは、アフィンパラメータ(affine parameters)とも呼ばれ、以下の式を満たすことができる。
上記数4は実際のサンプル座標(u、v)と理想的なサンプル座標(uN、vN)の関係を示す数式であり、cx及びcyは各々image_center_x[i]フィールドの値とimage_center_y[i]フィールドの値を示す。なお、c、d及びeは各々image_scale_x[i]フィールドの値、image_scale_axis_angle[i]フィールドの値及びimage_scale_y[i]フィールドの値を示す。
num_angle_for_displaying_fov[i]フィールドは、ディスプレイされる領域と重複する領域を定義する角度の数を示す。num_angle_for_displaying_fov[i]フィールドの値に基づいてdisplayed_fov[i][j]フィールド及びoverlapped_fov[i][j]フィールドの値が同間隔に定義され、displayed_fov[i][j]フィールド及びoverlapped_fov[i][j]フィールドの値は12時方向から時計方向に順に定義される。
displayed_fov[i][j]フィールドは、(i+1)番目の円形領域において隣接する円形領域との混合(blending)過程なしにディスプレイされるように推薦された領域を示す。
overlapped_fov[i][j]フィールドは、(i+1)番目の円形領域の球面上において隣接する円形領域と重複するFOV(field of view)を示す。overlapped_fov[i][j]フィールドが示すFOVは、隣接する円形領域の領域とFOVのうちの一つのみがディスプレイされるか、又は隣接する円形領域との混合過程を適用してディスプレイされるように推薦された領域を示す。
num_local_fov_region[i]フィールドは、(i+1)番目の円形領域の他のFOV(field of view)を有するローカルを有するローカルフィッティング領域(local fitting region)の数を示す。
start_radius[i][j]フィールド、end_radius[i][j]フィールド、start_angle[i][j]フィールド及びend_angle[i][j]フィールドは、ローカルフィッティング/ワーピング(warping)に対する(j+1)番目の領域を示す。ローカルフィッティング/ワーピングは、部分的にディスプレイするために実際のFOVを変換することを示す。start_radius[i][j]フィールド及びend_radius[i][j]フィールドの値は、固定小数点16(fixed-point 16)であることができる。start_radius[i][j]フィールドは(j+1)番目の領域の最小半径の値を示し、end_radius[i][j]フィールドは(j+1)番目の領域の最大半径の値を示す。start_angle[i][j]フィールド及びend_angle[i][j]フィールドは(j+1)番目の領域の12時方向から始まって時計方向に増加する最小角度及び最大角度の値を示す。ここで、start_angle[i][j]フィールド及びend_angle[i][j]フィールドは、2-16°単位で上記角度の値を示す。start_angle[i][j]フィールド及びend_angle[i][j]フィールドの値は、-180*216乃至180*216-1の範囲内に存在する。
radius_delta[i][j]フィールドは、各半径に対して他のFOVを示すデルタ半径の値(delta radius value)を示す。radius_delta[i][j]フィールドは、固定小数点16(fixed-point 16)であることができる。
angle_delta[i][j]フィールドは、各角度に対して異なるFOVを示すデルタ角度の値(delta angle value)を示す。start_angle[i][j]フィールド及びangle_delta[i][j]フィールドは2-16°単位で上記デルタ角度の値を示すことができる。
local_fov_weight[i][j][k][l]フィールドは、角度インデックスi及び半径インデックスjに指定された位置のFOV、即ち、start_radius[i][j]フィールド、end_radius[i][j]フィールド、start_angle[i][j]フィールド、end_angle[i][j]フィールドに基づいて導き出された位置のFOVに対する重みを示す。local_fov_weight[i][j][k][l]フィールドの値は8.24固定小数点の形式である。local_fov_weight[i][j][k][l]フィールドの正の値(positive value)はFOVの拡張を示し、local_fov_weight[i][j][k][l]フィールドの負の数(negative value)のFOVの縮小を示す。
num_polynomial_coefficients_lsc[i]フィールドは、(i+1)番目の円形領域のLSC(lens shading compensation)パラメータの多項式係数(polynomial coefficients)の数を示す。
polynomial_coefficient_K_lsc_R[i][j]フィールド、polynomial_coefficient_K_lsc_G[i][j]フィールド及びpolynomial_coefficient_K_lsc_B[i][j]フィールドは、半径方向(radial direction)の色を減少させるレンズ(例えば、魚眼レンズ)のシェーディング補正(shading compensation)を補正するためのLSCパラメータを示す。polynomial_coefficient_K_lsc_R[i][j]フィールド、polynomial_coefficient_K_lsc_G[i][j]フィールド及びpolynomial_coefficient_K_lsc_B[i][j]フィールドの値は、8.24固定小数点の形式である。オリジナル色に乗じられる補償重み(compensating weight)は、曲線関数(curve function)に近似化でき、補償重みを示す曲線関数は以下のように導き出すことができる。
ここで、rは正規化された半径(normalized radius)を示す。即ち、full_radius[i]フィールドに基づいて正規化された(i+1)番目の円形領域の中心での半径を示す。
PはLSCパラメータを示す。ここで、polynomial_coefficient_K_lsc_R[i][j]フィールド、polynomial_coefficient_K_lsc_G[i][j]フィールド及びpolynomial_coefficient_K_lsc_B[i][j]フィールドは各々、レッド(red)に対するLSCパラメータ、グリーン(green)に対するLSCパラメータ、ブルー(blue)にLSCパラメータを示し、この場合、レッドに対する重み係数(weighting factor)、グリーンに対する重み係数及びブルーに対する重み係数を各々計算することができる。
また、Nはnum_polynomial_coefficients_lsc[i]フィールドの値に導き出されることができる。即ち、Nは(i+1)番目の円形領域のLSCパラメータの多項式係数の数を示す。
一方、displayed_fov[i][j]フィールド及びoverlapped_fov[i][j]フィールドの値は、field_of_view[i]フィールドの値より小さいか又は等しい。field_of_view[i]フィールドの値は各レンズの物理的属性により決定される反面、displayed_fov[i][j]フィールド及びoverlapped_fov[i][j]フィールドの値は複数のレンズ構成によって決定される。例えば、num_circular_imagesフィールドの値が2であり、2つのレンズが対称に(symmetrically)位置する場合、displayed_fov[i][j]フィールド及びoverlapped_fov[i][j]フィールドの値は基本的に各々180と190に設定される。しかし、displayed_fov[i][j]フィールド及びoverlapped_fov[i][j]フィールドの値はレンズの構成及び360°ビデオコンテンツの特性によって変更可能である。例えば、displayed_fovの値(例えば、左側カメラレンズは170、右側カメラは190)とoverlapped_fovの値(例えば、左側カメラは185及び右側カメラは190)を有するスティッチングの品質(stitching quality)がデフォルト値のdisplayed_fov及びoverlapped_fov(即ち、180及び190)を有する品質より良好な場合、又はカメラの物理的構成が非対称(asymmetric)である場合、同一ではないdisplay_fovフィールド及びoverlapped_fovフィールドの値が導き出されることができる。また、N個の(N>2)イメージ(即ち、円形領域)の場合、一つのdisplayed_fovフィールドの値で各イメージの正確な領域を示すことができない。即ち、displayed_fovフィールドは方向によって異なる。よって、N個のイメージを制御するために、上述したnum_angle_for_displaying_fov[i]フィールドを提案できる。例えば、num_angle_for_displaying_fov[i]フィールドの値が12である場合は、イメージは12個のセクターに分かれ、各々のセクター角度は30°である。
num_deadzonesフィールドは、コーディングされたピクチャのデッドゾーン(deadzone)の数を示す。デッドゾーンはコーディングされたピクチャの使用されないサンプルを含む四角形領域(rectangular area)、即ち、360°ビデオがマッピングされない四角形領域を示す。
deadzone_left_horizontal_offset[i]フィールド及びdeadzone_top_vertical_offset[i]フィールドは、該当デッドゾーンの左上端位置(左上端点の位置)を示す。deadzone_width[i]フィールドは該当デッドゾーンの幅、deadzone_height[i]フィールドは該当デッドゾーンの高さを示す。360°ビデオに対するビット量を減らすために、デッドゾーン内の全てのサンプルは同じサンプル値に設定されることができる。例えば、デッドゾーン内の全てのサンプルは黒色を示すサンプル値に設定されることができる。
なお、カメラ又はレンズの焦点距離(focal length)(fx、fy)、主点(principal point)(cx、cy)、skew係数skew_cなどのカメラ内部のパラメータと回転及び平行移動パラメータなどのカメラ外部パラメータも、上述したカメラレンズ情報SEIメッセージ又は追加カメラレンズ情報SEIメッセージにより定義されることができる。
図14はカメラレンズにより360°ビデオをキャプチャする一例を示す図である。図14の(a)及び(b)を参照すると、カメラ又はレンズの焦点距離によってキャプチャされる360°ビデオが導き出される。(Xc、Yc、Zc)座標のサンプルは、像平面(image plane)の(fxXc/Zc、fyYc/Zc)位置でキャプチャされ、標準化されたサンプルの位置は像平面の位置において焦点距離だけ分かれて(Xc/Zc、Yc/Zc)のように導き出されることができる。標準化された像平面のカメラ又はレンズの焦点において、焦点距離が1である位置の像平面を示すことができる。
なお、図14の(c)は特定の角度だけ傾いてキャプチャされた360°ビデオのサンプルを示す。傾いた程度を示す特定の角度は、上述したskew係数skew_cに基づいて導き出される。例えば、skew係数は以下のように導き出すことができる。
一方、上述したカメラレンズ情報及び/又は追加カメラレンズ情報は、上述したようにISOBMFFファイル内のボックス形態で伝達される。360°ビデオデータはISOBMFFファイルに基づいて格納、送信され、カメラレンズ情報及び/又は追加カメラレンズ情報はISOBMFFファイル内のボックス形態で伝達される。
実施例によって、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、該当ビデオトラック(ストリーム)、サンプル、サンプルグループなどにより格納/伝達される360°ビデオデータに対してシグナリングされる。また実施例によって、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、該当360°ビデオデータが格納/送信されるトラックの視覚サンプルエントリー(visual sample entry)の下位に存在する。また実施例によって、ビデオ情報はCFFなどのフォーマットにより伝達されることもできる。
一例として、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、SEI NALユニットを含む。他の例として、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、該当360°ビデオ情報に関連するVisualSampleEntry、AVCSampleEntry、MVCSampleEntry、SVCSampleEntry、HEVCSampleEntryなどに含まれることができる。
また実施例によって、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、領域によって関連情報を提供するSEI又はVUI(Video Usability Information)などに含まれることもできる。これにより、ファイルフォーマットに含まれているビデオフレームに対して、領域ごとに互いに異なるシグナリング情報が提供されることができる。
また実施例によって、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、時限メタデータ(timed metadata)内に含まれて伝達されることもできる。
時限メタデータで伝達されるカメラレンズ情報及び/又は追加カメラレンズ情報の内容が、ビデオサンプル全体に同一に適用される場合、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、該当時限メタデータトラックのヘッダ(moov又は moofボックスなど)内のサンプルエントリーに含まれることができる。
又は、時限メタデータで伝達されるカメラレンズ情報及び/又は追加カメラレンズ情報の内容が、ビデオサンプルによって異なるように適用される必要がある場合は、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、時限メタデータサンプルに含まれることができる。この場合、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスのフィールドは、該当ビデオサンプルに適用される。
又は、時限メタデータで伝達されるカメラレンズ情報及び/又は追加カメラレンズ情報の内容が、ビデオシーケンス全体に適用される必要がある場合は、カメラレンズ情報及び/又は追加カメラレンズ情報に対するボックスは、上述したように、時限メタデータトラックのサンプルエントリーに含まれ、ボックスの情報(フィールド)がビデオシーケンス全体に適用されるようにその意味を拡張される。
一方、カメラレンズ情報及び/又は追加カメラレンズ情報はDASHにより伝達されることもできる。
DASH基盤のディスクリプタは、@schemeIdUriフィールド、@valueフィールド及び/又は@idフィールドを含む。@schemeIdUriフィールドは、該当ディスクリプタのスキーム(scheme)を識別するためのURIを提供する。@valueフィールドは、@schemeIdUriフィールドが指示するスキームによって、その意味が定義される値を有する。即ち、@valueフィールドは、該当スキームによるディスクリプタエレメント値を有することができ、これらはパラメータとも呼ばれる。これらは互いに‘,’によって区分される。@idは該当ディスクリプタの識別子を示す。同じ識別子を有する場合、同じスキームID、値、パラメータを含む。
DASHによってカメラレンズ情報及び/又は追加カメラレンズ情報が伝達される場合、カメラレンズ情報及び/又は追加カメラレンズ情報はDASHディスクリプタ形態に記載されて、MPDなどに含まれて受信側に伝達される。カメラレンズ情報及び/又は追加カメラレンズ情報に対するディスクリプタは、上述した必須属性(essential property)のディスクリプタ及び/又は補足属性(supplemental property)のディスクリプタの形態で伝達される。これらのディスクリプタは、MPDのアダプテーションセット(Adaptation Set)、レプレゼンテーション、サブ-レプレゼンテーションなどに含まれて伝達されることができる。
上述した全ての実施例によるカメラレンズ情報及び/又は追加カメラレンズ情報は、DASH基盤のディスクリプタ形態にも記載できる。即ち、上述した全てのカメラレンズ情報及び/又は追加カメラレンズ情報の実施例について、各シグナリングフィールドが@valueのパラメータに置き換えて記載されることができる。
上述した本発明によるカメラレンズ情報及び/又は追加カメラレンズ情報の実施例は、互いに組み合わせることができる。本発明による360°ビデオ送信装置及び/又は360°ビデオ受信装置の実施例において、カメラレンズ情報及び/又は追加カメラレンズ情報は、上述した実施例によるカメラレンズ情報及び/又は追加カメラレンズ情報である。
図15は本発明による360°ビデオ送信装置による360°映像データ処理方法の概略を示す。図15に示された方法は、図10に示された360°ビデオ送信装置により行われる。具体的には、例えば、図15のS1500は360°ビデオ送信装置のデータ入力部により行われ、S1510は360°ビデオ送信装置のプロジェクション処理部により行われ、S1520は360°ビデオ送信装置のデータ符号器により行われ、S1530は360°ビデオ送信装置のメタデータ処理部により行われ、S1540は360°ビデオ送信装置の送信処理部により行われることができる。送信処理部は送信部に含まれることができる。
360°ビデオ送信装置は少なくとも一つのレンズを有するカメラによりキャプチャされた360°映像を含む対象円形領域を得る(S1500)。360°ビデオ送信装置は少なくとも一つのレンズを有するカメラによりキャプチャされた360°映像を含む対象円形領域を得る。例えば、レンズは魚眼レンズである。ここで、360°映像は3DoF+コンテンツに対する360°映像であり、3DoF+コンテンツに対する360°映像は、複数のビューポイント、複数のヘッド位置及び/又は複数のアイビューに対する360°映像を示す。
360°ビデオ送信装置は対象円形領域をピクチャにマッピングする(S1510)。360°ビデオ送信装置は対象円形領域をピクチャの四角形領域にマッピングする。360°ビデオ送信装置は複数の円形領域を得て、ピクチャは少なくとも一つの四角形領域を含む。この場合、360°ビデオ送信装置は複数の円形領域のうち、少なくとも一つの円形領域を四角形領域にマッピングする。
また、360°ビデオ送信装置はピクチャの四角形領域を回転、再配列するか、又は四角形領域の解像度を変更するなどの処理を行う。処理過程はリージョンごとのパッキング過程(region-wise packing)又はフレームパッキング(frame packing)とも呼ばれる。
また、360°ビデオ送信装置はピクチャの対象円形領域の歪みを修正する。これにより、360°ビデオ送信装置は修正されたピクチャを導き出すことができる。
360°ビデオ送信装置は対象円形領域がマッピングされたピクチャを符号化する(S1520)。360°ビデオ送信装置はピクチャを符号化することができる。また、360°ビデオ送信装置は対象円形領域に関するメタデータを符号化することができる。
360°ビデオ送信装置は360°映像に関するメタデータを生成する(S1530)。
メタデータはカメラレンズ情報を含む。
カメラレンズ情報は、上述したcamera_lens_info_idフィールド、camera_lens_info_cancel_flagフィールド、camera_lens_info_persistence_flagフィールド、supplemental_info_present_flagフィールド、view_dimension_idc_flagフィールド、view_dimension_idcフィールド、num_camera_id_minus1フィールド、camera_id[i]フィールド、camera_id_type[i]フィールド、camera_location_per_viewpoint_x[i]フィールド、camera_location_per_viewpoint_y[i]フィールド、camera_location_per_viewpoint_z[i]フィールド、camera_rotation_per_viewpoint_yaw[i]フィールド、camera_rotation_per_viewpoint_pitch[i]フィールド、camera_rotation_per_viewpoint_roll[i]フィールド、camera_location_per_head_position_x[i]フィールド、camera_location_per_head_position_y[i]フィールド、camera_location_per_head_position_z[i]フィールド、camera_rotation_per_head_position_yaw[i]フィールド、camera_rotation_per_head_position_pitch[i]フィールド、camera_rotation_per_head_position_roll[i]フィールド、left_eye_view_flag[i]フィールド、camera_location_per_eye_x[i]フィールド、camera_location_per_eye_y[i]フィールド、camera_location_per_eye_z[i]フィールド、camera_rotation_per_eye_yaw[i]フィールド、camera_rotation_per_eye_pitch[i]フィールド、camera_rotation_per_eye_roll[i]フィールド、num_subpicture_minus1フィールド、scene_radius_flag[i]フィールド、local_sphere_center_offset_flag[i]フィールド、local_sphere_rotation_flag[i]フィールド、lens_distortion_correction_flag[i]フィールド、num_camera_idx_minus1フィールド、camera_idx[i][j]フィールド、circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールド、rect_region_top[i]フィールド、rect_region_left[i]フィールド、rect_region_width[i]フィールド、rect_region_height[i]フィールド、full_radius「i]フィールド、scene_radius[i]フィールド、local_sphere_rotation_azimuth[i]フィールド、local_sphere_rotation_elevation[i]フィールド、local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド、local_sphere_center_offset_z[i]フィールド、field_of_view「i]フィールド、lens_projection_type[i]フィールド、scaling_factor[i]フィールド、num_angle_projection_minus1[i]フィールド、angle_projection[i][j]フィールド、num_polynomial_coeff_projection_minus1[i][j]フィールド、polynomial_coeff_projection[i][j][k]フィールド、num_angle__correction_minus1[i]フィールド、angle_correction[i][j]フィールド、num_polynomial_coeff_correction_minus1[i][j]フィールド、polynomial_coeff_correction[i][j][k]フィールド及び/又はredial_distortion_type[i]フィールドを含む。
フィールドの意味は上述した通りである。
具体的には、一例として、カメラレンズ情報は対象円形領域に対するカメラタイプを示す情報を含む。カメラタイプはビューポイント、ヘッド位置及びアイビューのうちのいずれか一つである。
例えば、カメラタイプを示す情報の値が1である場合、対象円形領域に対するカメラタイプがビューポイントに導き出され、カメラタイプを示す情報の値が2である場合は、対象円形領域に対するカメラタイプがヘッド位置に導き出され、カメラタイプを示す情報の値が3である場合には、対象円形領域に対するカメラタイプがアイビューに導き出される。
対象円形領域はカメラタイプを示す情報が示すカメラタイプに対するイメージであり、カメラレンズ情報は対象円形領域に対するカメラタイプ関連情報を含む。カメラタイプを示す情報はcamera_id_type[i]フィールドを示すことができる。
例えば、カメラレンズ情報は、対象円形領域に対する対象ビューポイントのx成分、y成分及びz成分を示す情報を含む。即ち、カメラレンズ情報は、対象円形領域に対する対象ビューポイントの位置を示す情報を含む。対象円形領域に対する対象ビューポイントのx成分、y成分及びz成分を示す情報は、camera_location_per_viewpoint_x[i]フィールド、camera_location_per_viewpoint_y[i]フィールド、camera_location_per_viewpoint_z[i]フィールドを示すことができる。また、カメラレンズ情報は、対象円形領域に対する対象ビューポイントのヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報を含む。即ち、カメラレンズ情報は、対象円形領域に対する対象ビューポイントの回転角度を示す情報を含む。対象円形領域に対する対象ビューポイントのヨー角度、ピッチ角度及びロール角度を示す情報は、camera_rotation_per_viewpoint_yaw[i]フィールド、camera_rotation_per_viewpoint_pitch[i]フィールド、camera_rotation_per_viewpoint_roll[i]フィールドを示す。この場合、例えば、カメラタイプを示す情報の値が1であることができる。即ち、カメラタイプを示す情報が示す対象円形領域に対するカメラタイプがビューポイントであることができる。
又は、例えば、カメラレンズ情報は、対象円形領域に対する対象ヘッド位置のx成分、y成分及びz成分を示す情報を含む。即ち、カメラレンズ情報は、対象円形領域に対する対象ヘッド位置の位置を示す情報を含む。対象円形領域に対する対象ヘッド位置のx成分、y成分及びz成分を示す情報は、camera_location_per_head_position_x[i]フィールド、camera_location_per_head_position_y[i]フィールド、camera_location_per_head_position_z[i]フィールドを示すことができる。また、カメラレンズ情報は、対象円形領域に対する対象ヘッド位置のヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報を含む。即ち、カメラレンズ情報は、対象円形領域に対する対象ヘッド位置の回転角度を示す情報を含む。対象円形領域に対する対象ヘッド位置のヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報は、camera_rotation_per_head_position_yaw[i]フィールド、camera_rotation_per_head_position_pitch[i]フィールド、camera_rotation_per_head_position_roll[i]フィールドを示す。この場合、例えば、カメラタイプを示す情報の値が2であることができる。即ち、カメラタイプを示す情報が示す対象円形領域に対するカメラタイプがヘッド位置であることができる。
又は、例えば、カメラレンズ情報は、対象円形領域に対する対象アイビューのx成分、y成分及びz成分を示す情報を含む。即ち、カメラレンズ情報は、対象円形領域に対する対象アイビューの位置を示す情報を含む。対象円形領域に対する対象アイビューのx成分、y成分及びz成分を示す情報は、camera_location_per_eye_x[i]フィールド、camera_location_per_eye_y[i]フィールド、camera_location_per_eye_z[i]フィールドを示すことができる。また、カメラレンズ情報は、対象円形領域に対する対象アイビューのヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報を含む。即ち、カメラレンズ情報は、対象円形領域に対する対象アイビューの回転角度を示す情報を含む。対象円形領域に対する対象アイビューのヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報は、camera_rotation_per_eye_yaw[i]フィールド、camera_rotation_per_eye_pitch[i]フィールド、camera_rotation_per_eye_roll[i]フィールドを示す。また、カメラレンズ情報は、対象円形領域に対する対象アイビューが左側アイビューであるか否かを示すフラグを含む。フラグ値が1である場合、対象アイビューは左側アイビューであり、フラグ値が0である場合は、対象アイビューは右側アイビューであることができる。フラグはleft_eye_view_flag[i]フィールドを示すことができる。この場合、例えば、カメラタイプを示す情報の値は3である。即ち、カメラタイプを示す情報が示す対象円形領域に対するカメラタイプがアイビューであることができる。
他の例として、カメラレンズ情報は対象円形領域のレンズプロジェクションタイプを示す情報を含む。このレンズプロジェクションタイプは、透視投影(perspective projection)、立体投影(stereographic projection)、等距離投影(equidistance projection)、正弦法則投影(sine-law projection)、等立体投影(equisolid projection)及び角多項式投影(angular polynomial projection)のうちの一つである。
例えば、レンズプロジェクションタイプを示す情報の値が1である場合、対象円形領域のレンズプロジェクションタイプは透視投影に導き出され、レンズプロジェクションタイプを示す情報の値が2である場合、対象円形領域のレンズプロジェクションタイプは立体投影に導き出され、レンズプロジェクションタイプを示す情報の値が3である場合、対象円形領域のレンズプロジェクションタイプは等距離投影に導き出され、レンズプロジェクションタイプを示す情報の値が4である場合は、対象円形領域のレンズプロジェクションタイプは正弦法則投影に導き出され、レンズプロジェクションタイプを示す情報の値が5である場合は、対象円形領域のレンズプロジェクションタイプは等立体投影に導き出され、レンズプロジェクションタイプを示す情報の値が255である場合は、対象円形領域のレンズプロジェクションタイプは角多項式投影に導き出されることができる。また、レンズプロジェクションタイプを示す情報の値が0である場合は、対象円形領域のレンズプロジェクションタイプは未指定であることができる。レンズプロジェクションタイプを示す情報は、lens_projection_type[i]フィールドを示す。
例えば、対象円形領域のレンズプロジェクションタイプが透視投影、立体投影、等距離投影、正弦法則投影又は等立体投影である場合、カメラレンズ情報は対象円形領域に対する倍率を示す情報を含む。即ち、レンズプロジェクションタイプを示す情報の値が1以上5以下である場合、カメラレンズ情報は対象円形領域に対する倍率を示す情報を含む。対象円形領域に対する倍率を示す情報はscaling_factor[i]フィールドを示す。
他の例として、カメラレンズ情報はプロジェクション関数に関する情報を含む。プロジェクション関数に関する情報は、対象円形領域に対するプロジェクション関数の数を示す情報を含む。プロジェクション関数の数を示す情報は、num_angle_projection_minus1[i][j]フィールドを示すことができる。
プロジェクション関数に関する情報は、対象円形領域に対するプロジェクション関数が適用される角度を示す情報を含む。プロジェクション関数が適用される角度を示す情報は、angle_projection[i][j]フィールドを示すことができる。
プロジェクション関数に関する情報は、対象円形領域に対するプロジェクション関数の係数の数を示す情報を含む。プロジェクション関数の係数の数を示す情報は、num_polynomial_coeff_projection_minus1[i][j]フィールドを示すことができる。
プロジェクション関数に関する情報は、対象円形領域に対するプロジェクション関数の係数を示す情報を含む。プロジェクション関数の係数を示す情報は、polynomial_coeff_projection[i][j][k]フィールドを示すことができる。
また、他の例として、カメラレンズ情報は対象円形領域の歪み修正のための歪み補正関数(distortion correction function)関連情報が存在するか否かを示すフラグを含む。例えば、フラグ値が1である場合、カメラレンズ情報は歪み補正関数に関する情報を含む。またフラグ値が0である場合は、カメラレンズ情報は歪み補正関数に関する情報を含まない。フラグはlens_distortion_correction_flag[i]フィールドを示す。
歪み補正関数に関する情報は、対象円形領域に対する歪み補正関数の数を示す情報を含む。歪み補正関数の数を示す情報はnum_angle_correction_minus1[i][j]フィールドを示す。
歪み補正関数に関する情報は、対象円形領域に対する歪み補正関数が適用される角度を示す情報を含む。歪み補正関数が適用される角度を示す情報はangle_correction[i][j]フィールドを示す。
歪み補正関数に関する情報は、対象円形領域に対する歪み補正関数の係数の数を示す情報を含む。歪み補正関数の係数の数を示す情報はnum_polynomial_coeff_correction_minus1[i][j]フィールドを示す。
歪み補正関数に関する情報は、対象円形領域に対する歪み補正関数の係数を示す情報を含む。歪み補正関数の係数を示す情報はpolynomial_coeff_correction[i][j][k]フィールドを示す。
プロジェクション関数に関する情報及び/又は歪み補正関数に関する情報に基づいて対象円形領域の歪み修正のための多項式関数が導き出され、この多項式関数に基づいて対象円形領域の歪みが修正される。
他の例として、カメラレンズ情報は対象円形領域の半径方向の歪み(radial distortion)タイプを示す情報を含む。半径方向の歪みタイプは、たる形歪曲(Barrel distortion)、糸巻き型歪曲(Pincushion distortion)及び陣笠型歪曲(Mustache distortion)のうちの一つである。
例えば、半径方向の歪みタイプを示す情報の値が1である場合、対象円形領域の半径方向の歪みタイプはたる形歪曲に導き出され、半径方向の歪みタイプを示す情報の値が2である場合は、対象円形領域の半径方向の歪みタイプは糸巻き型歪曲に導き出され、半径方向の歪みタイプを示す情報の値が3である場合は、対象円形領域の半径方向の歪みタイプは陣笠型歪曲に導き出すことができる。
対象円形領域の半径方向の歪みは、上述した数1に基づいて修正できる。この場合、数1における半径方向の歪み係数及び接線歪み係数は、対象円形領域の半径方向の歪みタイプに基づいて導き出すことができる。
このメタデータは追加カメラレンズ情報を含む。
追加カメラレンズ情報は、上述したnum_subpicturesフィールド、num_camera_idx_minus1フィールド、camera_idx[i][j]フィールド、image_flip「i]フィールド、image_scale_axis_angle[i]フィールド、image_scale_x[i]フィールド、image_scale_y[i]フィールド、num_angle_for_displaying_fov[i]フィールド、displayed_fov[i][j]フィールド、overlapped_fov[i][j]フィールド、num_local_fov_region[i]フィールド、start_radius[i][j]フィールド、end_radius[i][j]フィールド、start_angle[i][j]フィールド、end_angle[i][j]フィールド、radius_delta[i][j]フィールド、angle_delta[i][j]フィールド、local_fov_weight[i][j][k][l]フィールド、num_polynomial_coefficients_lsc[i]フィールド、polynomial_coefficient_K_lsc_R[i][j]フィールド、polynomial_coefficient_K_lsc_G[i][j]フィールド、polynomial_coefficient_K_lsc_B[i][j]フィールド、num_deadzonesフィールド、deadzone_left_horizontal_offset[i]フィールド、deadzone_top_vertical_offset[i]フィールド、deadzone_width[i]フィールド及び/又はdeadzone_height[i]フィールドを含む。
フィールドの意味は上述した通りである。
一方、メタデータはSEIメッセージにより送信される。メタデータはMPD(Media Presentation Description)のアダプテーションセット(AdaptationSet)、レプレゼンテーション(Representation)又はサブ-レプレゼンテーション(SubRepresentation)に含まれることもできる。例えば、魚眼ビデオ情報は、MPDに含まれたDASH(Dynamic Adaptive Streaming over HTTP)ディスクリプタの形態で送信されることができる。ここで、SEIメッセージは2Dイメージの復号又は2Dイメージの3D空間へのディスプレイに対する補助のために使用されることができる。
360°ビデオ送信装置は符号化されたピクチャ及びメタデータに対して格納又は送信のための処理を行う(S1540)。360°ビデオ送信装置は符号化された360°ビデオデータ及び/又はメタデータをファイルなどの形態でカプセル化(encapsulation)することができる。360°ビデオ送信装置は符号化された360°ビデオデータ及び/又はメタデータを格納又は送信するために、ISOBMFF、CFFなどのファイルフォーマットにカプセル化するか、又はその他のDASHセグメントなどの形態に処理する。360°ビデオ送信装置はメタデータをファイルフォーマット上に含むことができる。例えば、メタデータはISOBMFFファイルフォーマット上の様々なレベルのボックスに含まれるか、又はファイル内で別のトラック内のデータとして含まれることができる。また、360°ビデオ送信装置はメタデータ自体をファイルにカプセル化することができる。360°ビデオ送信装置はファイルフォーマットによってカプセル化された360°ビデオデータに送信のための処理を加えることができる。360°ビデオ送信装置は任意の送信プロトコルによって360°ビデオデータを処理することができる。送信のための処理には放送網を介した伝達のための処理、又はブロードバンドなどの通信ネットワークによる伝達のための処理を含む。また、360°ビデオ送信装置はメタデータに送信のための処理を加えることもできる。360°ビデオ送信装置は送信処理された360°ビデオデータ及びメタデータを放送網及び/又はブロードバンドにより送信することができる。
本発明によれば、カメラレンズ情報に基づいて3DoF+コンテンツに対する360°映像データから対象ビューポイント、対象ヘッド位置及び/又は対象アイビューに対する円形領域を導き出してレンダリングできるので、これによりユーザの3DoF+コンテンツ消費においてインタラクティブな経験(interactive experience)を提供することができる。
また本発明によれば、カメラレンズ情報に含まれたプロジェクション関数に関する情報及び/又は歪み補正関数に関する情報に基づいてレンズの特性を反映して多項式関数を導き出すことができ、多項式関数に基づいて360°映像がプロジェクションされたピクチャに発生した歪みを修正して、360°映像データを3D空間により正確にマッピングする案を提案することができる。
図16は本発明による360°映像データ処理方法を行う360°ビデオ送信装置の概略を示す図である。図15に示した方法は図16に示した360°ビデオ送信装置で行うことができる。具体的には、例えば、図16の360°ビデオ送信装置のデータ入力部は図15のS1500を行い、図16の360°ビデオ送信装置のプロジェクション処理部は図15のS1510を行い、図16の360°ビデオ送信装置のデータ符号器は図15のS1520を行い、図16の360°ビデオ送信装置のメタデータ処理部は図15のS1530を行い、また図16の360°ビデオ送信装置の送信処理部は図15のS1540を行うことができる。送信処理部は送信部に含まれることができる。
図17は本発明による360°ビデオ受信装置による360°映像データ処理方法の概略を示す図である。図17に示した方法は図11に示した360°ビデオ受信装置で行うことができる。具体的には、例えば、図17のS1700は360°ビデオ受信装置の受信部により行われ、S1710は360°ビデオ受信装置の受信処理部により行われ、S1720は360°ビデオ受信装置のデータ復号器により行われ、S1730は360°ビデオ受信装置のレンダラーにより行われる。
360°ビデオ受信装置は360°映像データを受信する(S1700)。360°ビデオ受信装置は放送網を介して360°ビデオ送信装置からシグナリングされた360°映像データを受信する。また360°ビデオ受信装置はブロードバンドなどの通信ネットワーク又は格納媒体により360°映像データを受信することもできる。ここで、360°映像データは3DoF+コンテンツに対する360°映像データであり、3DoF+コンテンツに対する360°映像データは複数のビューポイント、複数のヘッド位置及び/又は複数のアイビューに対する360°映像データを示す。
360°ビデオ受信装置は360°映像データから符号化されたピクチャに関する情報及びメタデータを得る(S1710)。360°ビデオ受信装置は受信された360°映像データに対して送信プロトコルによる処理を行い、360°映像データから符号化されたピクチャに関する情報及びメタデータを得る。また、360°ビデオ受信装置は上述した360°ビデオ送信装置の送信のための処理の逆過程を行う。
このメタデータはカメラレンズ情報を含む。
カメラレンズ情報は、上述したcamera_lens_info_idフィールド、camera_lens_info_cancel_flagフィールド、camera_lens_info_persistence_flagフィールド、supplemental_info_present_flagフィールド、view_dimension_idc_flagフィールド、view_dimension_idcフィールド、num_camera_id_minus1フィールド、camera_id[i]フィールド、camera_id_type[i]フィールド、camera_location_per_viewpoint_x[i]フィールド、camera_location_per_viewpoint_y[i]フィールド、camera_location_per_viewpoint_z[i]フィールド、camera_rotation_per_viewpoint_yaw[i]フィールド、camera_rotation_per_viewpoint_pitch[i]フィールド、camera_rotation_per_viewpoint_roll[i]フィールド、camera_location_per_head_position_x[i]フィールド、camera_location_per_head_position_y[i]フィールド、camera_location_per_head_position_z[i]フィールド、camera_rotation_per_head_position_yaw[i]フィールド、camera_rotation_per_head_position_pitch[i]フィールド、camera_rotation_per_head_position_roll[i]フィールド、left_eye_view_flag[i]フィールド、camera_location_per_eye_x[i]フィールド、camera_location_per_eye_y[i]フィールド、camera_location_per_eye_z[i]フィールド、camera_rotation_per_eye_yaw[i]フィールド、camera_rotation_per_eye_pitch[i]フィールド、camera_rotation_per_eye_roll[i]フィールド、num_subpicture_minus1フィールド、scene_radius_flag[i]フィールド、local_sphere_center_offset_flag[i]フィールド、local_sphere_rotation_flag[i]フィールド、lens_distortion_correction_flag[i]フィールド、num_camera_idx_minus1フィールド、camera_idx[i][j]フィールド、circular_region_center_x[i]フィールド、circular_region_center_y[i]フィールド、rect_region_top[i]フィールド、rect_region_left[i]フィールド、rect_region_width[i]フィールド、rect_region_height[i]フィールド、full_radius[i]フィールド、scene_radius[i]フィールド、local_sphere_rotation_azimuth[i]フィールド、local_sphere_rotation_elevation[i]フィールド、local_sphere_center_offset_x[i]フィールド、local_sphere_center_offset_y[i]フィールド、local_sphere_center_offset_z[i]フィールド、field_of_view[i]フィールド、lens_projection_type[i]フィールド、scaling_factor[i]フィールド、num_angle_projection_minus1[i]フィールド、angle_projection[i][j]フィールド、num_polynomial_coeff_projection_minus1[i][j]フィールド、polynomial_coeff_projection[i][j][k]フィールド、num_angle__correction_minus1[i]フィールド、angle_correction[i][j]フィールド、num_polynomial_coeff_correction_minus1[i][j]フィールド、polynomial_coeff_correction[i][j][k]フィールド及び/又はredial_distortion_type[i]フィールドを含む。
フィールドの意味は上述した通りである。
より具体的には、一例として、カメラレンズ情報は対象円形領域に対するカメラタイプを示す情報を含む。カメラタイプはビューポイント、ヘッド位置及びアイビューのうちの一つである。
例えば、カメラタイプを示す情報の値が1である場合、対象円形領域に対するカメラタイプはビューポイントに導き出され、カメラタイプを示す情報の値が2である場合は、対象円形領域に対するカメラタイプはヘッド位置に導き出され、カメラタイプを示す情報の値が3である場合は、対象円形領域に対するカメラタイプはアイビューに導き出されることができる。
対象円形領域はカメラタイプを示す情報が示すカメラタイプに対するイメージであり、カメラレンズ情報は対象円形領域に対するカメラタイプに関する情報を含む。カメラタイプを示す情報はcamera_id_type[i]フィールドを示す。
例えば、カメラレンズ情報は対象円形領域に対する対象ビューポイントのx成分、y成分及びz成分を示す情報を含む。即ち、カメラレンズ情報は対象円形領域に対する対象ビューポイントの位置を示す情報を含む。対象円形領域に対する対象ビューポイントのx成分、y成分及びz成分を示す情報は、camera_location_per_viewpoint_x[i]フィールド、camera_location_per_viewpoint_y[i]フィールド、camera_location_per_viewpoint_z[i]フィールドを示す。また、カメラレンズ情報は対象円形領域に対する対象ビューポイントのヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報を含む。即ち、カメラレンズ情報は対象円形領域に対する対象ビューポイントの回転角度を示す情報を含む。対象円形領域に対する対象ビューポイントのヨー角度、ピッチ角度及びロール角度を示す情報は、camera_rotation_per_viewpoint_yaw[i]フィールド、camera_rotation_per_viewpoint_pitch[i]フィールド、camera_rotation_per_viewpoint_roll[i]フィールドを示す。この場合、例えば、カメラタイプを示す情報の値が1である。即ち、カメラタイプを示す情報が示す対象円形領域に対するカメラタイプがビューポイントであることができる。
又は、例えば、カメラレンズ情報は対象円形領域に対する対象ヘッド位置(head position)のx成分、y成分及びz成分を示す情報を含む。即ち、カメラレンズ情報は対象円形領域に対する対象ヘッド位置の位置を示す情報を含む。対象円形領域に対する対象ヘッド位置のx成分、y成分及びz成分を示す情報は、camera_location_per_head_position_x[i]フィールド、camera_location_per_head_position_y[i]フィールド、camera_location_per_head_position_z[i]フィールドを示す。また、カメラレンズ情報は対象円形領域に対する対象ヘッド位置のヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報を含む。即ち、カメラレンズ情報は対象円形領域に対する対象ヘッド位置の回転角度を示す情報を含む。対象円形領域に対する対象ヘッド位置のヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報は、camera_rotation_per_head_position_yaw[i]フィールド、camera_rotation_per_head_position_pitch[i]フィールド、camera_rotation_per_head_position_roll[i]フィールドを示す。この場合、例えば、カメラタイプを示す情報の値が2である。即ち、カメラタイプを示す情報が示す対象円形領域に対するカメラタイプがヘッド位置である。
又は、例えば、カメラレンズ情報は対象円形領域に対する対象アイビュー(eye view)のx成分、y成分及びz成分を示す情報を含む。即ち、カメラレンズ情報は対象円形領域に対する対象アイビューの位置を示す情報を含む。対象円形領域に対する対象アイビューのx成分、y成分及びz成分を示す情報は、camera_location_per_eye_x[i]フィールド、camera_location_per_eye_y[i]フィールド、camera_location_per_eye_z[i]フィールドを示す。また、カメラレンズ情報は対象円形領域に対する対象アイビューのヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報を含む。即ち、カメラレンズ情報は対象円形領域に対する対象アイビューの回転角度を示す情報を含む。対象円形領域に対する対象アイビューのヨー(yaw)角度、ピッチ(pitch)角度及びロール(roll)角度を示す情報は、camera_rotation_per_eye_yaw[i]フィールド、camera_rotation_per_eye_pitch[i]フィールド、camera_rotation_per_eye_roll[i]フィールドを示す。また、カメラレンズ情報は対象円形領域に対する対象アイビューが左側アイビューであるか否かを示すフラグを含む。フラグ値が1である場合、対象アイビューは左側アイビューであり、フラグ値が0である場合は、対象アイビューは右側アイビューである。フラグはleft_eye_view_flag[i]フィールドを示すことができる。この場合、例えば、カメラタイプを示す情報の値が3である。即ち、カメラタイプを示す情報が示す対象円形領域に対するカメラタイプがアイビューである。
他の例として、カメラレンズ情報は、対象円形領域のレンズプロジェクションタイプを示す情報を含む。このレンズプロジェクションタイプは、透視投影(perspective projection)、立体投影(stereographic projection)、等距離投影(equidistance projection)、正弦法則投影(sine-law projection)、等立体投影(equisolid projection)及び角多項式投影(angular polynomial projection)のうちの一つである。
例えば、レンズプロジェクションタイプを示す情報の値が1である場合、対象円形領域のレンズプロジェクションタイプが透視投影に導き出され、レンズプロジェクションタイプを示す情報の値が2である場合は、対象円形領域のレンズプロジェクションタイプが立体投影に導き出され、レンズプロジェクションタイプを示す情報の値が3である場合は、対象円形領域のレンズプロジェクションタイプが等距離投影に導き出され、レンズプロジェクションタイプを示す情報の値が4である場合は、対象円形領域のレンズプロジェクションタイプが正弦法則投影に導き出され、レンズプロジェクションタイプを示す情報の値が5である場合は、対象円形領域のレンズプロジェクションタイプが等立体投影に導き出され、レンズプロジェクションタイプを示す情報の値が255である場合は、対象円形領域のレンズプロジェクションタイプは角多項式投影に導き出される。また、レンズプロジェクションタイプを示す情報の値が0である場合は、対象円形領域のレンズプロジェクションタイプは未指定であることができる。レンズプロジェクションタイプを示す情報は、lens_projection_type[i]フィールドを示す。
例えば、対象円形領域のレンズプロジェクションタイプが透視投影、立体投影、等距離投影、正弦法則投影又は等立体投影である場合、カメラレンズ情報は対象円形領域に対する倍率を示す情報を含む。即ち、レンズプロジェクションタイプを示す情報の値が1以上5以下である場合、カメラレンズ情報は対象円形領域に対する倍率を示す情報を含む。対象円形領域に対する倍率を示す情報はscaling_factor[i]フィールドを示す。
他の例として、カメラレンズ情報はプロジェクション関数に関する情報を含む。プロジェクション関数に関する情報は、対象円形領域に対するプロジェクション関数の数を示す情報を含む。プロジェクション関数の数を示す情報は、num_angle_projection_minus1[i][j]フィールドを示すことができる。
プロジェクション関数に関する情報は、対象円形領域に対するプロジェクション関数が適用される角度を示す情報を含む。プロジェクション関数が適用される角度を示す情報は、angle_projection[i][j]フィールドを示すことができる。
プロジェクション関数に関する情報は、対象円形領域に対するプロジェクション関数の係数の数を示す情報を含む。プロジェクション関数の係数の数を示す情報は、num_polynomial_coeff_projection_minus1[i][j]フィールドを示すことができる。
プロジェクション関数に関する情報は、対象円形領域に対するプロジェクション関数の係数を示す情報を含む。プロジェクション関数の係数を示す情報は、polynomial_coeff_projection[i][j][k]フィールドを示すことができる。
他の例として、カメラレンズ情報は対象円形領域の歪み修正のための歪み補正関数(distortion correction function)に関する情報が存在するか否かを示すフラグを含む。例えば、フラグ値が1である場合、カメラレンズ情報は歪み補正関数に関する情報を含む。フラグ値が0である場合は、カメラレンズ情報は歪み補正関数に関する情報を含まない。フラグはlens_distortion_correction_flag[i]フィールドを示すことができる。
歪み補正関数に関する情報は、対象円形領域に対する歪み補正関数の数を示す情報を含む。歪み補正関数の数を示す情報はnum_angle_correction_minus1[i][j]フィールドを示すことができる。
歪み補正関数に関する情報は、対象円形領域に対する歪み補正関数が適用される角度を示す情報を含む。歪み補正関数が適用される角度を示す情報はangle_correction[i][j]フィールドを示すことができる。
歪み補正関数に関する情報は、対象円形領域に対する歪み補正関数の係数の数を示す情報を含む。歪み補正関数の係数の数を示す情報はnum_polynomial_coeff_correction_minus1[i][j]フィールドを示すことができる。
歪み補正関数に関する情報は、対象円形領域に対する歪み補正関数の係数を示す情報を含む。歪み補正関数の係数を示す情報はpolynomial_coeff_correction[i][j][k]フィールドを示すことができる。
360°ビデオ受信装置は歪み補正関数に関する情報に基づいて対象円形領域の歪み(distortion)修正のための歪み補正関数を導き出すことができ、歪み補正関数に基づいて対象円形領域の歪みを修正することができる。
他の例として、カメラレンズ情報は対象円形領域の半径方向の歪み(radial distortion)タイプを示す情報を含む。半径方向の歪みタイプは、たる形歪曲(Barrel distortion)、糸巻き型歪曲(Pincushion distortion)及び陣笠型歪曲(Mustache distortion)のうちの一つである。
例えば、半径方向の歪みタイプを示す情報の値が1である場合、対象円形領域の半径方向の歪みタイプはたる形歪曲に導き出され、半径方向の歪みタイプを示す情報の値が2である場合は、対象円形領域の半径方向の歪みタイプは糸巻き型歪曲に導き出され、半径方向の歪みタイプを示す情報の値が3である場合は、対象円形領域の半径方向の歪みタイプは陣笠型歪曲に導き出すことができる。
360°ビデオ受信装置は上述した数1に基づいて対象円形領域の半径方向の歪みを修正することができる。この場合、数1の半径方向の歪み係数及び接線歪み係数は、対象円形領域の半径方向の歪みタイプに基づいて導き出すことができる。
このメタデータは追加カメラレンズ情報を含む。
追加カメラレンズ情報は、上述したnum_subpictureSフィールド、num_camera_idx_minus1フィールド、camera_idx[i][j]フィールド、image_flip[i]フィールド、image_scale_axis_angle[i]フィールド、image_scale_x[i]フィールド、image_scale_y[i]フィールド、num_angle_for_displaying_fov[i]フィールド、displayed_fov[i][j]フィールド、overlapped_fov[i][j]フィールド、num_local_fov_region[i]フィールド、start_radius[i][j]フィールド、end_radius[i][j]フィールド、start_angle[i][j]フィールド、end_angle[i][j]フィールド、radius_delta[i][j]フィールド、angle_delta[i][j]フィールド、local_fov_weight[i][j][k][l]フィールド、num_polynomial_coefficients_lsc[i]フィールド、polynomial_coefficient_K_lsc_R[i][j]フィールド、polynomial_coefficient_K_lsc_G[i][j]フィールド、polynomial_coefficient_K_lsc_B[i][j]フィールド、num_deadzonesフィールド、deadzone_left_horizontal_offset[i]フィールド、deadzone_top_vertical_offset[i]フィールド、deadzone_width[i]フィールド及び/又はdeadzone_height[i]フィールドを含む。
このフィールドの意味は上述した通りである。
一方、メタデータはSEIメッセージにより受信される。メタデータはMPD(Media Presentation Description)のアダプテーションセット、レプレゼンテーション又はサブ-レプレゼンテーションに含まれることもできる。例えば、魚眼ビデオ情報は、MPDに含まれたDASH(Dynamic Adaptive Streaming over HTTP)ディスクリプタの形態で受信される。ここで、SEIメッセージは2Dイメージの復号又は2Dイメージの3D空間へのディスプレイに対する補助のために使用される。
360°ビデオ受信装置は符号化されたピクチャに関する情報に基づいて対象円形領域(circular region)を含むピクチャを復号する(S1720)。360°ビデオ受信装置は符号化されたピクチャに関する情報に基づいて対象円形領域を含むピクチャを復号する。対象円形領域は360°映像を含む領域である。
360°ビデオ受信装置はカメラレンズ情報に基づいて対象円形領域を処理してレンダリングする(S1730)。
例えば、360°ビデオ受信装置はカメラレンズ情報に基づいてピクチャから対象円形領域を導き出すことができる。一例として、360°ビデオ受信装置はカメラレンズ情報に基づいて特定の位置に対する対象ビューポイントを導き出し、対象ビューポイントに対する対象円形領域を導き出すことができる。他の例として、360°ビデオ受信装置はカメラレンズ情報に基づいて特定の位置に対する対象ヘッド位置を導き出し、対象ヘッド位置に対する対象円形領域を導き出すことができる。他の例として、360°ビデオ受信装置はカメラレンズ情報に基づいて特定の位置に対する対象アイビューを導き出し、対象アイビューに対する対象円形領域を導き出すことができる。ここで、特定の位置はローカル座標系(local coordinate system)及びグローバル座標系(global coordinate system)のうちのいずれか一つにより示した位置及び/又は回転角度であり、特定の位置はユーザが選択した位置及び/又は回転角度である。ローカル座標系はx成分、y成分及びz成分で座標を示す座標系であり、グローバル座標系はヨー角度、ピッチ角度及びロール角度で座標を示す座標系である。
一例として、メタデータのカメラレンズ情報は対象円形領域を記載する情報及び対象円形領域がマッピングされた四角形領域を記載する情報を含む。360°ビデオ受信装置は四角形領域を記載する情報に基づいて四角形領域を導き出すことができ、対象円形領域を記載する情報に基づいて四角形領域にマッピングされた対象円形領域を導き出すことができる。この場合、四角形領域と対象円形領域がマッピングされた領域の内部積集合に該当する領域が実際360°映像データであることができる。その他の有効でない領域は黒色などで示して区分できる。実施例によって、360°ビデオ受信装置は四角形領域と対象円形領域がマッピングされた領域の積集合に該当する領域を導き出すこともできる。
一例として、カメラレンズ情報は360°映像データがマッピングされていないデッドゾーンに関する情報を含む。360°ビデオ受信装置は360°映像データがマッピングされていないデッドゾーンに関する情報に基づいて360°映像データがマッピングされていないデッドゾーンを導き出すことができる。
また、カメラレンズ情報はレンズプロジェクションタイプを示す情報を含み、360°ビデオ受信装置はレンズプロジェクションタイプに基づいて導き出された球座標系マッピング数式に基づいて対象円形領域を3D空間にマッピングすることができる。より具体的には、例えば、360°ビデオ受信装置はレンズプロジェクションタイプに基づいて導き出された球座標系マッピング数式に基づいて対象円形領域を平面にプロジェクションすることができる。ここで、平面はERP(Equirectangular Projection、正距円筒プロジェクション)平面である。このプロジェクション過程は、対象円形領域を球座標系などの3D空間にリプロジェクションするための中間段階である。
カメラレンズ情報はプロジェクション関数に関する情報及び/又は歪み補正関数に関する情報を含む。360°ビデオ受信装置はプロジェクション関数に関する情報及び/又は歪み補正関数に関する情報に基づいて対象円形領域の歪み修正のための多項式関数を導き出すことができ、多項式関数に基づいて対象円形領域の歪みを修正することができる。
カメラレンズ情報は対象円形領域の半径方向の歪みタイプを示す情報を含み、360°ビデオ受信装置は上記数1に基づいて対象円形領域の半径方向の歪みを修正することができる。
360°ビデオ受信装置は最終的に合成されたERP平面(ピクチャ)に基づいてレンダリングを行って、該当するビューポートを生成する。
本発明によれば、カメラレンズ情報に基づいて3DoF+コンテンツに対する360°映像データから対象ビューポイント、対象ヘッド位置及び/又は対象アイビューに対する円形領域を導き出してレンダリングすることができるので、これによりユーザの3DoF+コンテンツ消費においてインタラクティブな経験を提供することができる。
本発明によれば、カメラレンズ情報に含まれたプロジェクション関数に関する情報及び/又は歪み補正関数に関する情報に基づいてレンズの特性を反映して多項式関数を導き出すことができ、多項式関数に基づいて360°映像がプロジェクションされたピクチャに発生した歪みを修正して360°映像データを3D空間により正確にマッピングする案を提案することができる。
図18は本発明による360°映像データ処理方法を行う360°ビデオ受信装置の概略を示す図である。図17に示した方法は図18に示した360°ビデオ受信装置により行うことができる。具体的には、例えば、図18の360°ビデオ受信装置の受信部は図17のS1700を行い、図18の360°ビデオ受信装置の受信処理部は図17のS1710を行い、図18の360°ビデオ受信装置のデータ復号器は図17のS1720を行い、図18の360°ビデオ受信装置のレンダラーは図17のS1730を行うことができる。
上記段階は実施例によって省略されるか、類似/同一の動作を行う他の段階に代替することもできる。
本発明の一実施例による360°ビデオ送信装置は、上述したデータ入力部、スティッチャー、シグナリング処理部、プロジェクション処理部、データ符号器、送信処理部及び/又は送信部を含む。各々の内部コンポーネントは上述した通りである。本発明の一実施例による360°ビデオ送信装置及びその内部コンポーネントは、上述した本発明の360°ビデオを送信する方法の実施例を行うことができる。
本発明の一実施例による360°ビデオ受信装置は、上述した受信部、受信処理部、データ復号器、シグナリングパーザ、リプロジェクション処理部及び/又はレンダラーを含む。各々の内部コンポーネントは上述した通りである。本発明の一実施例による360°ビデオ受信装置及びその内部コンポーネントは、上述した本発明の360°ビデオを受信する方法の実施例を行うことができる。
上述した装置の内部コンポーネントは、メモリに格納された連続する実行過程を行うプロセッサであるか、それ以外のハードウェアで構成されたハードウェアコンポーネントである。これらは装置の内部/外部に位置することができる。
上述したモジュールは実施例によって省略することができ、或いは類似/同一の動作を行う他のモジュールに置き換えることができる。
上述した各々のパート、モジュール又はユニットは、メモリ(又は格納ユニット)に格納された連続する実行過程を行うプロセッサであるか、ハードウェアパートである。上述した実施例に記載された各々の段階は、プロセッサ又はハードウェアパートにより行われることができる。上述した実施例に記載された各々のモジュール/ブロック/ユニットは、ハードウェア/プロセッサとして動作することができる。また本発明が提示する方法は、コードとして実行されることができる。このコードはプロセッサが読み取り可能な格納媒体に記録されることができ、よって装置が提供するプロセッサにより読み取られることができる。
上述した実施例において、上記方法は一連の段階又はブロックで順序図に基づいて説明されているが、本発明は段階の順序に限定されるものではなく、ある段階は前述と異なる段階と異なる順序に又は同時に発生することができる。また、当業者であれば、順序図に示す段階が排他的でなく、他の段階が含まれたり、或いは順序図の一つ又はそれ以上の段階が本発明の範囲に影響を及ぼさずに削除可能であること理解することができる。
本発明において、実施例がソフトウェアで実現される時、上述した技法は、上述した機能を遂行するモジュール(過程、機能など)で実現されることができる。モジュールはメモリに格納され、プロセッサにより実行されることができる。メモリはプロセッサの内部又は外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサはASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/又はデータ処理装置を含む。メモリはROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含むことができる。