IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エルジー エレクトロニクス インコーポレイティドの特許一覧

特開2024-96948ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024096948
(43)【公開日】2024-07-17
(54)【発明の名称】ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240709BHJP
   H04N 19/597 20140101ALI20240709BHJP
   G06T 9/00 20060101ALI20240709BHJP
【FI】
H04N19/70
H04N19/597
G06T9/00
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2024067219
(22)【出願日】2024-04-18
(62)【分割の表示】P 2022542094の分割
【原出願日】2020-12-15
(31)【優先権主張番号】62/958,682
(32)【優先日】2020-01-08
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/008,804
(32)【優先日】2020-04-12
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】オ ソチン
(57)【要約】
【課題】ポイントクラウドを効率的に送受信するためのポイントクラウドデータ送受信装置及び送受信方法を提供する。
【解決手段】実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化する段階、及びポイントクラウドデータを送信する段階を含む。実施例によるポイントクラウドデータ受信方法は、ポイントクラウドデータを受信する段階、ポイントクラウドデータを復号する段階、及びポイントクラウドデータをレンダリングする段階を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
ポイントクラウドデータを送信する方法であって、
ポイントクラウドデータを符号化する段階と、
前記符号化されたポイントクラウドデータをファイル内にカプセル化する段階と、
前記ファイルを送信する段階と、を含み、
前記ファイルは、ジオメトリデータ及び特質データを含む第1トラックを含み、
前記ファイルは、前記ポイントクラウドデータに対するバウンディングボックス情報を含む第2トラックを更に含み、前記バウンディングボックス情報は、バウンディングボックスの位置情報を含み、
前記第2トラックは、動的タイプに対するサンプルエントリーと、前記バウンディングボックスに対する空間領域に対する位置情報を含む動的空間領域情報を含むサンプルとを含む時間指定メタデータトラックを更に含み、前記空間領域は、時間によって動的に変化する、ポイントクラウドデータ送信方法。
【請求項2】
前記第2トラックは、前記ポイントクラウドデータに対するパラメータセット及び前記ポイントクラウドデータに対するアトラスサブビットストリームパラメータセットを含むサンプルエントリーを含む、請求項1に記載のポイントクラウドデータ送信方法。
【請求項3】
前記ファイルは、前記ポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラックを含み、
前記トラックはグルーピングされる、請求項1に記載のポイントクラウドデータ送信方法。
【請求項4】
前記ファイルは、前記ポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラック又はアイテムを含み、
前記トラック又は前記アイテムはグルーピングされ、
前記3Dバウンディングボックスは、前記ポイントクラウドデータに関連する1つ又は1つ以上のエンティティを示す、請求項1に記載のポイントクラウドデータ送信方法。
【請求項5】
ポイントクラウドデータを受信する方法であって、
ポイントクラウドデータを含むファイルを受信する段階と、
前記ファイルをデカプセル化する段階と、
前記ポイントクラウドデータを復号する段階と、を含み、
前記ファイルは、ジオメトリデータ及び特質データを含む第1トラックを含み、
前記ファイルは、前記ポイントクラウドデータに対するバウンディングボックス情報を含む第2トラックを更に含み、前記バウンディングボックス情報は、バウンディングボックスの位置情報を含み、
前記第2トラックは、動的タイプに対するサンプルエントリーと、前記バウンディングボックスに対する空間領域に対する位置情報を含む動的空間領域情報を含むサンプルとを含む時間指定メタデータトラックを更に含み、前記空間領域は、時間によって動的に変化する、ポイントクラウドデータ受信方法。
【請求項6】
前記第2トラックは、前記ポイントクラウドデータに対するパラメータセット及び前記ポイントクラウドデータに対するアトラスサブビットストリームパラメータセットを含むサンプルエントリーを含む、請求項5に記載のポイントクラウドデータ受信方法。
【請求項7】
前記ファイルは、前記ポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラックを含み、
前記トラックはグルーピングされる、請求項5に記載のポイントクラウドデータ受信方法。
【請求項8】
前記ファイルは、前記ポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラック又はアイテムを含み、
前記トラック又は前記アイテムはグルーピングされ、
前記3Dバウンディングボックスは、前記ポイントクラウドデータに関連する1つ又は1つ以上のエンティティを示す、請求項5に記載のポイントクラウドデータ受信方法。
【請求項9】
ポイントクラウドデータを送信するための装置であって、
ポイントクラウドデータを符号化するエンコーダと、
前記符号化されたポイントクラウドデータをファイル内にカプセル化するカプセル化部と、
前記ファイルを送信する送信機と、を含み、
前記ファイルは、ジオメトリデータ及び特質データを含む第1トラックを含み、
前記ファイルは、前記ポイントクラウドデータに対するバウンディングボックス情報を含む第2トラックを更に含み、前記バウンディングボックス情報は、バウンディングボックスの位置情報を含み、
前記第2トラックは、動的タイプに対するサンプルエントリーと、前記バウンディングボックスに対する空間領域に対する位置情報を含む動的空間領域情報を含むサンプルとを含む時間指定メタデータトラックを更に含み、前記空間領域は、時間によって動的に変化する、ポイントクラウドデータ送信装置。
【請求項10】
ポイントクラウドデータを受信するための装置であって、
ポイントクラウドデータを含むファイルを受信する受信機と、
前記ファイルをデカプセル化するデカプセル化部と、
前記ポイントクラウドデータを復号するデコーダと、を含み、
前記ファイルは、ジオメトリデータ及び特質データを含む第1トラックを含み、
前記ファイルは、前記ポイントクラウドデータに対するバウンディングボックス情報を含む第2トラックを更に含み、前記バウンディングボックス情報は、バウンディングボックスの位置情報を含み、
前記第2トラックは、動的タイプに対するサンプルエントリーと、前記バウンディングボックスに対する空間領域に対する位置情報を含む動的空間領域情報を含むサンプルとを含む時間指定メタデータトラックを更に含み、前記空間領域は、時間によって動的に変化する、ポイントクラウドデータ受信装置。
【発明の詳細な説明】
【技術分野】
【0001】
実施例はユーザにVR(Virtual Reality、仮想現実)、AR(Augmented Reality、増強現実)、MR(Mixed Reality、複合現実)及び自律走行サービスなどの様々なサービスを提供するために、ポイントクラウド(Point Cloud)コンテンツを提供する方案を提供する。
【背景技術】
【0002】
ポイントクラウドは3D空間上のポイントの集合である。3D空間上のポイントの量が多く、ポイントクラウドデータの生成が難しいという問題がある。
【0003】
ポイントクラウドのデータの送受信のためには、大量の処理量が求められるという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施例に係る技術的課題は、上記問題点を解決するために、ポイントクラウドを効率的に送受信するためのポイントクラウドデータ送信装置、送信方法、ポイントクラウドデータ受信装置及び受信方法を提供することにある。
【0005】
実施例に係る技術的課題は、遅延時間(latency)及び符号化/復号の複雑度を解決するためのポイントクラウドデータ送信装置、送信方法、ポイントクラウドデータ受信装置及び受信方法を提供することにある。
【0006】
但し、上記技術的課題のみに制限されず、この明細書の全ての内容に基づいて当業者が導き出される他の技術的課題にも実施例の権利範囲を拡張することができる。
【課題を解決するための手段】
【0007】
上記目的及び他の利点を達成するために、実施例に係るポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化する段階、ポイントクラウドデータをカプセル化(encapsulating)する段階、及びポイントクラウドデータを送信する段階を含む。
【0008】
実施例によるポイントクラウドデータ受信方法は、ポイントクラウドデータを受信する段階、ポイントクラウドデータをデカプセル化(decapsulating)する段階、及びポイントクラウドデータを復号する段階を含む。
【発明の効果】
【0009】
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、良質のポイントクラウドサービスを提供することができる。
【0010】
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、様々なビデオコーデック方式を達成することができる。
【0011】
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、自立走行サービスなどの汎用のポイントクラウドコンテンツを提供することができる。
【図面の簡単な説明】
【0012】
図面は実施例をさらに理解するために添付され、実施例に関する説明と共に実施例を示す。
【0013】
図1】実施例によるポイントクラウドコンテンツを提供するための送信/受信システム構造の一例を示す。
【0014】
図2】実施例によるポイントクラウドデータのキャプチャーの一例を示す。
【0015】
図3】実施例によるポイントクラウド及びジオメトリ、テクスチャーイメージの一例を示す。
【0016】
図4】実施例によるV-PCC符号化処理の一例を示す。
【0017】
図5】実施例による表面(Surface)の接平面(tangent plane)及び法線ベクトル(normal vector)の一例を示す。
【0018】
図6】実施例によるポイントクラウドのバウンディングボックス(bounding box)の一例を示す。
【0019】
図7】実施例による占有マップ(occupancy map)の個別パッチ(patch)の位置決めの一例を示す。
【0020】
図8】実施例によるノーマル(normal)、タンジェント(tangent)、バイタンジェント(bitangent)軸の関係の一例を示す。
【0021】
図9】実施例によるプロジェクションモードの最小モード及び最大モードの構成の一例を示す。
【0022】
図10】実施例によるEDDコードの一例を示す。
【0023】
図11】実施例による隣接点のカラー(color)値を用いた復色(recoloring)の一例を示す。
【0024】
図12】実施例によるプッシュ-プルバックグラウンドフィリング(push-pull background filling)の一例を示す。
【0025】
図13】実施例による4*4サイズのブロック(block)に対して可能なトラバーサルオーダー(traversal order)の一例を示す。
【0026】
図14】実施例によるベストトラバーサルオーダーの一例を示す。
【0027】
図15】実施例による2Dビデオ/イメージエンコーダ(2D video/image Encoder)の一例を示す。
【0028】
図16】実施例によるV-PCC復号プロセス(decoding process)の一例を示す。
【0029】
図17】実施例による2Dビデオ/イメージデコーダ(2D Video/Image Decoder)の一例を示す。
【0030】
図18】実施例による送信装置の動作の流れの一例を示す。
【0031】
図19】実施例による受信装置の動作の流れの一例を示す。
【0032】
図20】実施例によるV-PCC基盤のポイントクラウドデータの格納及びストリーミングのためのアーキテクチャの一例を示す。
【0033】
図21】実施例によるポイントクラウドデータの格納及び送信装置の構成の一例を示す。
【0034】
図22】実施例によるポイントクラウドデータ受信装置の構成の一例を示す。
【0035】
図23】実施例によるポイントクラウドデータの送受信方法/装置と連動可能な構造の一例を示す。
【0036】
図24】実施例によるポイントクラウドデータに対する客体(オブジェクト)及び客体に対するバウンディングボックスを示す。
【0037】
図25】実施例による動的なポイントクラウド客体のバウンディングボックス及び全体バウンディングボックスを示す。
【0038】
図26】実施例によるポイントクラウドデータを含むビットストリームの構造を示す。
【0039】
図27】実施例によるポイントクラウドデータを含むビットストリームの構造を示す。
【0040】
図28】実施例によるV-PCCユニット及びV-PCCユニットヘッダを示す。
【0041】
図29】実施例によるV-PCCユニットのペイロードを示す。
【0042】
図30】実施例によるパラメータセット(V-PCC parameter set)を示す。
【0043】
図31】実施例によるアトラスサブビットストリームの構造を示す。
【0044】
図32】実施例によるアトラスシーケンスパラメータセット(atlas sequence parameter set)を示す。
【0045】
図33】実施例によるアトラスフレームパラメータセット(atlas frame parameter set)を示す。
【0046】
図34】実施例によるアトラスフレームタイル情報(atlas_frame_tile_information)を示す。
【0047】
図35】実施例による補足強化情報(Supplemental enhancement information、SEI)を示す。
【0048】
図36】実施例による3DバウンディングボックスSEIを示す。
【0049】
図37】実施例によるボリュメトリックタイリング情報を示す。
【0050】
図38】実施例によるボリュメトリックタイリング情報客体を示す。
【0051】
図39】実施例によるボリュメトリックタイリング情報ラベルを示す。
【0052】
図40】実施例によるカプセル化されたV-PCCデータコンテナの構造を示す。
【0053】
図41】実施例による絶縁されたV-PCCデータコンテナの構造を示す。
【0054】
図42】実施例によるV-PCCサンプルエントリーを示す。
【0055】
図43】実施例によるトラック代替及びグルーピングを示す。
【0056】
図44】実施例による3Dバウンディングボックス情報構造を示す。
【0057】
図45】実施例による非-時間指定V-PCCデータをカプセル化する構造の概略を示す。
【0058】
図46】実施例によるV-PCC 3Dバウンディングボックスアイテムプロパティを示す。
【0059】
図47】実施例によるV-PCCユニットを示す。
【0060】
図48】実施例によるV-PCCパラメータセットを示す。
【0061】
図49】実施例によるアトラスフレームを示す。
【0062】
図50】実施例によるアトラスビットストリームの構造を示す。
【0063】
以下、図50のアトラスビットストリームに含まれる情報のシンタックスについて説明する。
【0064】
図51】実施例によるポイントクラウドデータを含むビットストリームに含まれるサンプルストリームNALユニットのヘッダ、サンプルストリームNALユニット、NALユニット、NALユニットのヘッダを示す。
【0065】
図52】実施例によるNALユニットタイプを示す。
【0066】
図53】実施例によるアトラスシーケンスパラメータセットを示す。
【0067】
図54】実施例によるアトラスフレームパラメータセットを示す。
【0068】
図55】実施例によるアトラス適応パラメータセット(atlas_adaptation_parameter_set)を示す。
【0069】
図56】実施例によるアトラスカメラパラメータ(atlas_camera_parameterS)を示す。
【0070】
図57】実施例によるアトラスタイルグループレイヤ及びアトラスタイルグループヘッダを示す。
【0071】
図58】実施例による参照リスト構造(ref_list_struct)を示す。
【0072】
図59】実施例によるアトラスタイルグループデータ(atlas_tile_group_data_unit)を示す。
【0073】
図60】実施例によるパッチ情報データ(patch_information_data)を示す。
【0074】
図61】実施例によるパッチデータユニット(patch_data_unit)を示す。
【0075】
図62】実施例によるSEI情報を示す。
【0076】
図63】実施例による3Dバウンディングボックス情報の構造である。
【0077】
図64】実施例によるポイントクラウドデータ送信方法を示す。
【0078】
図65】実施例によるポイントクラウドデータ受信方法を示す。
【発明を実施するための形態】
【0079】
以下、添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというよりは、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に対する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。
【0080】
実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものであり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。
【0081】
図1は、実施例によるポイントクラウドコンテンツを提供するための送信/受信システム構造の一例を示す。
【0082】
本文書では、ユーザにVR(Virtual Reality、仮想現実)、AR(Augmented Reality、増強現実)、MR(Mixed Reality、混合現実)及び自立走行サービスなどの様々なサービスを提供するために、ポイントクラウドコンテンツを提供する方案を提供する。実施例によるポイントクラウドコンテンツは、客体をポイントによって表現したデータを示し、ポイントクラウド、ポイントクラウドデータ、ポイントクラウドビデオデータ、ポイントクラウドイメージデータなどとも呼ばれる。
【0083】
実施例によるポイントクラウドデータ送信装置(Transmission device)10000は、ポイントクラウドビデオ取得部(Point Cloud Video Acquisition unit)10001、ポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002、ファイル/セグメントカプセル化部10003及び/又は送信機(Transmitter(or Communication module))10004を含む。実施例による送信装置は、ポイントクラウドビデオ(又はポイントクラウドコンテンツ)を確保して処理し、送信することができる。実施例によって、送信装置は、固定局(fixed station)、BTS(base transceiver system)、ネットワーク、AI(Artificial Intelligence)機器及び/又はシステム、ロボット、AR/VR/XR機器及び/又はサーバーなどを含む。また実施例によって、送信装置10000は、無線接続技術(例えば、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
【0084】
実施例によるポイントクラウドビデオ取得部(Point Cloud Video Acquisition unit)10001は、ポイントクラウドビデオのキャプチャー、合成又は生成プロセスなどによってポイントクラウドビデオを取得する。
【0085】
実施例によるポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002は、ポイントクラウドビデオデータを符号化する。実施例によって、ポイントクラウドビデオエンコーダ10002は、ポイントクラウドエンコーダ、ポイントクラウドデータエンコーダ、エンコーダなどと呼ばれる。また実施例によるポイントクラウド圧縮コーティング(符号化)は、上述した実施例に限らない。ポイントクラウドビデオエンコーダは、符号化されたポイントクラウドビデオデータを含むビットストリームを出力する。ビットストリームは符号化されたポイントクラウドビデオデータのみならず、ポイントクラウドビデオデータの符号化に関連するシグナリング情報を含む。
【0086】
実施例によるエンコーダはG-PCC(Geometry-based Point Cloud Compression)符号化方式及び/又はV-PCC(Video-based Point Cloud Compression)符号化方式をいずれも支援する。またエンコーダはポイントクラウド(ポイントクラウドデータ又はポイントの全てを称する)及び/又はポイントクラウドに関するシグナリングデータを符号化することができる。実施例による符号化の具体的な動作については後述する。
【0087】
一方、この明細書で使用するV-PCC用語は、ビデオ基盤のポイントクラウド圧縮(Video-based point Cloud Compression(V-PCC))を意味し、V-PCC用語はビジュアルボリュメトリックビデオ基盤のコーディング(Visual Volumetric Video-based Coding(V3C))と同一であり、相互補完して称することができる。
【0088】
実施例によるファイル/セグメントカプセル化部(File/Segment Encapsulation module)10003は、ポイントクラウドデータをファイル及び/又はセグメントの形式でカプセル化する。実施例によるポイントクラウドデータ送信方法/装置は、ポイントクラウドデータをファイル及び/又はセグメントの形式で送信することができる。
【0089】
実施例による送信機(Transmitter(or Communication module))10004は、符号化されたポイントクラウドビデオデータをビットストリームの形式で送信する。実施例によって、ファイル又はセグメントは、ネットワークを介して受信装置へ送信されるか、又はデジタル記憶媒体(例えば、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど)に格納される。実施例による送信機は受信装置(又は受信機(Receiver))と4G、5G、6Gなどのネットワークを介して有/無線通信が可能である。また送信機はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)に応じて必要なデータ処理の動作を行うことができる。また送信装置はオン・デマンド(On Demand)の方式によってカプセル化されたデータを送信することもできる。
【0090】
実施例によるポイントクラウドデータ受信装置(Reception device)10005は、受信機(Receiver)10006、ファイル/セグメントデカプセル化部10007、ポイントクラウドビデオデコーダ(Point Cloud video Decoder)10008、及び/又はレンダラー(Renderer)10009を含む。実施例によって受信装置は無線接続技術(例えば、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
【0091】
実施例による受信機(Receiver)10006は、ポイントクラウドビデオデータを含むビットストリームを受信する。実施例によって受信機10006は、フィードバック情報(Feedback Information)をポイントクラウドデータ送信装置10000に送信する。
【0092】
ファイル/セグメントデカプセル化部(File/Segment Decapsulation module)10007は、ポイントクラウドデータを含むファイル及び/又はセグメントをデカプセル化する。実施例によるデカプセル化部は実施例によるカプセル化過程の逆過程を行う。
【0093】
ポイントクラウドビデオデコーダ(Point Cloud video Decoder)10007は、受信したポイントクラウドビデオデータを復号する。実施例によるデコーダは実施例による符号化の逆過程を行う。
【0094】
レンダラー(Renderer)10007は、復号されたポイントクラウドビデオデータをレンダリングする。実施例によってレンダラー10007は受信端側で取得したフィードバック情報をポイントクラウドビデオデコーダ10006に送信する。実施例によるポイントクラウドビデオデータはフィードバック情報を受信機に送信する。実施例によれば、ポイントクラウド送信装置が受信したフィードバック情報は、ポイントクラウドビデオエンコーダに提供される。
【0095】
図面において点線で示した矢印は、受信装置10005で取得したフィードバック情報(feedback information)の送信経路を示す。フィードバック情報は、ポイントクラウドコンテンツを消費するユーザとの相互作用を反映するための情報であって、ユーザの情報(例えば、ヘッドオリエンテーション情報、ビューポート情報など)を含む。特にポイントクラウドコンテンツがユーザとの相互作用が必要なサービス(例えば、自律走行サービスなど)のためのものである場合、フィードバック情報はコンテンツ送信側(例えば、送信装置10000)及び/又はサービス供給者に伝送される。実施例によっては、フィードバック情報は送信装置10000だけではなく受信装置10005で使用されることもあり、提供されないこともある。
【0096】
実施例によるヘッドオリエンテーション情報は、ユーザの頭の位置、方向、角度、動きなどに関する情報である。実施例による受信装置10005は、ヘッドオリエンテーション情報に基づいてビューポート情報を算出する。ビューポート情報はユーザが見ているポイントクラウドビデオの領域に関する情報である。視点(viewpoint)はユーザがポイントクラウドビデオを見ている点であり、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とする領域であり、領域のサイズ、形態などはFOV(Field Of View)により決定される。従って、受信装置10004は、ヘッドオリエンテーション情報の他に、装置が支援する垂直(vertical)或いは水平(horizontal)FOVなどに基づいてビューポート情報を抽出することができる。また受信装置10005はゲイズ分析(Gaze Analysis)などを行って、ユーザのポイントクラウド消費方式、ユーザが凝視するポイントクラウドビデオ領域、凝視時間などを確認する。実施例によれば、受信装置10005はゲイズ分析の結果を含むフィードバック情報を送信装置10000に送信する。実施例によるフィードバック情報はレンダリング及び/又はディスプレイプロセスで得られる。実施例によるフィードバック情報は、受信装置10005に含まれた一つ又はそれ以上のセンサにより確保される。また実施例によれば、フィードバック情報は、レンダラー10009又は別の外部エレメント(又はデバイス、コンポーネントなど)により確保される。図1に示された点線はレンダラー10009で確保したフィードバック情報の伝送プロセスを示す。ポイントクラウドコンテンツ提供システムはフィードバック情報に基づいてポイントクラウドデータを処理(符号化/復号)する。従って、ポイントクラウドビデオデータデコーダ10008はフィードバック情報に基づいて復号の動作を行うことができる。また受信装置10005はフィードバック情報を送信装置に送信する。送信装置(又はポイントクラウドビデオデータエンコーダ10002)は、フィードバック情報に基づいて符号化動作を行う。従って、ポイントクラウドコンテンツ提供システムは、全てのポイントクラウドデータを処理(符号化/復号)せず、フィードバック情報に基づいて必要なデータ(例えば、ユーザのヘッド位置に対応するポイントクラウドデータ)を効率的に処理して、ユーザにポイントクラウドコンテンツを提供することができる。
【0097】
実施例において、送信装置10000はエンコーダ、送信デバイス、送信機などと呼ばれ、受信装置10004はデコーダ、受信デバイス、受信機などと呼ばれる。
【0098】
実施例による図1のポイントクラウドコンテンツ提供システムで処理される(取得/符号化/送信/復号/レンダリングの一連のプロセスで処理される)ポイントクラウドデータは、ポイントクラウドコンテンツデータ又はポイントクラウドビデオデータとも呼ばれる。実施例によれば、ポイントクラウドコンテンツデータはポイントクラウドデータに関連するメタデータ又はシグナリング情報を含む概念として使用することができる。
【0099】
図1に示したポイントクラウドコンテンツ提供システムの要素は、ハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせなどで具現できる。
【0100】
実施例はユーザにVR(Virtual Reality、仮想現実)、AR(Augmented Reality、増強現実)、MR(Mixed Reality、混合現実)及び自立走行サービスなどの様々なサービスを提供するために、ポイントクラウドコンテンツを提供する。
【0101】
ポイントクラウドコンテンツサービスを提供するために、まず、ポイントクラウドビデオを得る。得られたポイントクラウドビデオは、一連のプロセスにより送信され、受信側で受信したデータを再び元のポイントクラウドビデオに加工してレンダリングする。これにより、ポイントクラウドビデオをユーザに提供することができる。実施例はこれらの一連のプロセスを効果的に行うために必要な方案を提供する。
【0102】
ポイントクラウドコンテンツサービスを提供するための全体のプロセス(ポイントクラウドデータ送信方法及び/又はポイントクラウドデータ受信方法)は、取得プロセス、符号化プロセス、送信プロセス、復号プロセス、レンダリングプロセス及び/又はフィードバックプロセスを含む。
【0103】
実施例によれば、ポイントクラウドコンテンツ(又はポイントクラウドデータ)を提供するプロセスは、ポイントクラウド圧縮(Point Cloud Compression)プロセスとも呼ぶ。実施例によれば、ポイントクラウド圧縮プロセスは、ジオメトリ基盤のポイントクラウド圧縮(Geometry-based Point Cloud Compression)プロセスを意味する。
【0104】
実施例によるポイントクラウドデータ送信装置及びポイントクラウドデータ受信装置の各要素は、ハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせなどを意味する。
【0105】
ポイントクラウドコンテンツサービスを提供するために、まず、ポイントクラウドビデオを得る。得られたポイントクラウドビデオは、一連のプロセスにより送信され、受信側で受信したデータを再び元のポイントクラウドビデオに加工してレンダリングする。これにより、ポイントクラウドビデオをユーザに提供することができる。本発明はこれらの一連のプロセスを効果的に行うために必要な方案を提供する。
【0106】
ポイントクラウドコンテンツサービスを提供するための全てのプロセスは、取得プロセス、符号化プロセス、送信プロセス、復号プロセス、レンダリングプロセス及び/又はフィードバックプロセスを含む。
【0107】
ポイントクラウド圧縮システムは、送信デバイス及び受信デバイスを含む。送信デバイスはポイントクラウドビデオを符号化してビットストリームを出力し、それをファイル又はストリーミング(ストリーミングセグメント)の形式でデジタル記憶媒体又はネットワークを介して受信デバイスへ伝送する。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど様々な記憶媒体を含む。
【0108】
送信デバイスは概略にポイントクラウドビデオ取得部、ポイントクラウドビデオエンコーダ、ファイル/セグメントカプセル化部、送信部を含む。受信デバイスは概略に受信部、ファイル/セグメントデカプセル化部、ポイントクラウドビデオデコーダ及びレンダラーを含む。エンコーダはポイントクラウドビデオ/映像/ピクチャー/フレーム符号化装置とも呼ばれ、デコーダはポイントクラウドビデオ/映像/ピクチャー/フレーム復号装置とも呼ばれる。送信機はポイントクラウドビデオエンコーダに含まれてもよい。受信機はポイントクラウドビデオデコーダに含まれてもよい。レンダラーはディスプレイ部を含んでもよく、レンダラー及び/又はディスプレイ部は別のデバイス又は外部コンポーネントで構成されてもよい。送信デバイス及び受信デバイスはフィードバックプロセスのための別の内部又は外部のモジュール/ユニット/コンポーネントをさらに含んでもよい。
【0109】
実施例による受信デバイスの動作は、送信デバイスの動作の逆プロセスに従う。
【0110】
ポイントクラウドビデオ取得部は、ポイントクラウドビデオのキャプチャー、合成又は生成プロセスなどを通じてポイントクラウドビデオを得るプロセスを行う。取得プロセスによって、多数のポイントに対する3D位置(x、y、z)/属性(色、反射率、透明度など)データ、例えば、PLY(Polygon File format or the Stanford Triangle format)ファイルなどが生成される。複数のフレームを有するビデオの場合、1つ以上のファイルを得ることができる。キャプチャープロセスにおいてポイントクラウドに関連するメタデータ(例えば、キャプチャーに関するメタデータなど)が生成される。
【0111】
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを符号化するエンコーダ、及びポイントクラウドデータを送信する送信機を含んでもよい。またポイントクラウドを含むビットストリームの形式で送信されてもよい。
【0112】
実施例によるポイントクラウドデータ受信装置は、ポイントクラウドデータを受信する受信部、ポイントクラウドデータを復号するデコーダ、及びポイントクラウドデータをレンダリングするレンダラーを含む。
【0113】
実施例による方法/装置は、ポイントクラウドデータ送信装置及び/又はポイントクラウドデータ受信装置を示す。
【0114】
図2は、実施例によるポイントクラウドデータのキャプチャーの一例を示す。
【0115】
実施例によるポイントクラウドデータはカメラなどにより得られる。実施例によるキャプチャーの方法は、例えば、内向き方式(inward-facing)及び/又は外向き方式(outward-facing)がある。
【0116】
実施例による内向き方式は、ポイントクラウドデータの客体(Object)を1つ又は1つ以上のカメラが客体の外側から内側へ撮影して取得するキャプチャー方式である。
【0117】
実施例による外向き方式は、ポイントクラウドデータの客体を1つ又は1つ以上のカメラが客体の内側から外側へ撮影して取得する方式である。例えば、実施例によればカメラが4つある。
【0118】
実施例によるポイントクラウドデータ又はポイントクラウドコンテンツは、様々な形式の3D空間上に表現される客体/環境のビデオ又は停止映像である。実施例によれば、ポイントクラウドコンテンツは客体(objectなど)に対するビデオ/オーディオ/イメージなどを含む。
【0119】
ポイントクラウドコンテンツキャプチャーのために深さ(depth)を得られるカメラ装備(赤外線パターンプロジェクターと赤外線カメラとの組み合わせ)と深さ情報に対応する色情報が抽出可能なRGBカメラの組み合わせによって構成される。又はレーザパルスを打ち、反射して戻る時間を測定して、反射体の位置座標を測定するレーダーシステムを用いるライダー(LiDAR)によって深さ情報を抽出することができる。深さ情報より3D空間上の点で構成されたジオメトリ(geometry)の形式を抽出し、RGB情報より各点の色/反射を表現する特質(attribute)を抽出することができる。ポイントクラウドコンテンツは点に対する位置(x、y、z)、色(YCbCr又はRGB)又は反射率(r)情報で構成される。ポイントクラウドコンテンツは、外部環境をキャプチャーする外向き方式(outward-facing)と、中心客体をキャプチャーする内向き方式(inward-facing)とがある。VR/AR環境において客体(例えば、キャラクター、選手、物、俳優などの核心となる客体)を360°にユーザが自由に見られるポイントクラウドコンテンツとして構成する場合、キャプチャーカメラの構成は内向き方式を用いる。また、自立走行のように自動車の現在周辺環境をポイントクラウドコンテンツとして構成する場合は、キャプチャーカメラの構成は外向き方式を用いる。複数のカメラによってポイントクラウドコンテンツがキャプチャーされるため、カメラ間のグローバル空間座標系(global coordinate system)を設定するためにコンテンツをキャプチャーする前にカメラの校正プロセスが必要となることもある。
【0120】
ポイントクラウドコンテンツは、様々な形態の3D空間上に示される客体/環境のビデオ又は停止映像である。
【0121】
その他に、ポイントクラウドコンテンツの取得方法は、キャプチャーされたポイントクラウドビデオに基づいて任意のポイントクラウドビデオが合成できる。又はコンピューターで生成された仮想の空間に対するポイントクラウドビデオを提供しようとする場合、実際にカメラによるキャプチャーが行われないことがある。この場合、単に、関連データが生成されるプロセスによって該当キャプチャープロセスが代替できる。
【0122】
キャプチャーされたポイントクラウドビデオは、コンテンツの質を向上させるための後処理が必要である。映像キャプチャープロセスにおいてカメラ装備が提供する範囲内で最大/最小の深さ値が調整できるが、その後にも所望しない領域のポイントデータが含まれることがあり、所望しない領域(例えば、背景)を除去するか、又は連結された空間を認識して穴(spatial hole)を埋める後処理を行ってもよい。また、空間座標系を共有するカメラから抽出されたポイントクラウドは、校正プロセスによって取得した各カメラの位置座標を基準として、各ポイントに対するグローバル座標系への変換プロセスにより、1つのコンテンツに統合できる。これにより、1つの広い範囲のポイントクラウドコンテンツを生成することもでき、又はポイントの密度の高いポイントクラウドコンテンツを取得することもできる。
【0123】
ポイントクラウドビデオエンコーダは、入力されるポイントクラウドビデオを1つ以上のビデオストリームに符号化する。1つのポイントクラウドビデオは、複数のフレームを含んでもよく、1つのフレームは停止映像/ピクチャーに対応する。本文書において、ポイントクラウドビデオとは、ポイントクラウド映像/フレーム/ピクチャー/ビデオ/オーディオ/イメージなどを含み、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャーと混用できる。ポイントクラウドビデオエンコーダは、ビデオベースポイントクラウド圧縮(V-PCC)の手順を行う。ポイントクラウドビデオエンコーダは、圧縮及びコーティングの効率のために、予測、変換、量子化、エントロピー符号化などの一連の手順を行う。符号化されたデータ(符号化されたビデオ/映像情報)は、ビットストリームの形態で出力される。V-PCC手順に基づく場合、ポイントクラウドビデオエンコーダはポイントクラウドビデオを、後述のように、ジオメトリビデオ、特質(attribute)ビデオ、占有(occupancy)マップビデオ、また付加情報(auxiliary information)に分けて符号化する。ジオメトリビデオはジオメトリイメージを含み、特質(attribute)ビデオは特質イメージを含み、占有(occupancy)マップビデオは占有マップイメージを含む。付加情報は付加パッチ情報(auxiliary patch information)を含む。特質ビデオ/イメージはテクスチャービデオ/イメージを含む。
【0124】
カプセル化処理部(file/segment encapsulation module)10003は、符号化されたポイントクラウドビデオデータ及び/又はポイントクラウドビデオ関連メタデータをファイルなどの形式でカプセル化する。ここで、ポイントクラウドビデオ関連メタデータは、メタデータ処理部などから伝送される。メタデータ処理部は、ポイントクラウドビデオエンコーダに含まれてもよく、又は別のコンポーネント/モジュールで構成されてもよい。カプセル化部は該当データをISOBMFFなどのファイルフォーマットでカプセル化してもよく、その他のDASHセグメントなどの形式で処理してもよい。カプセル化処理部は、実施例によれば、ポイントクラウドビデオ関連メタデータをファイルフォーマット上に含ませてもよい。ポイントクラウドビデオ関連メタデータは、例えば、ISOBMFFファイルフォーマット上の多様なレベルのボックスに含まれるか、又はファイル内で別のトラックに含まれる。実施例によれば、カプセル化処理部は、ポイントクラウドビデオ関連メタデータそのものをファイルでカプセル化する。送信処理部はファイルフォーマットによってカプセル化されたポイントクラウドビデオデータに送信のための処理を加えてもよい。送信処理部は、送信部に含まれてもよく、又は別のコンポーネント/モジュールで構成されてもよい。送信処理部は、任意の送信プロトコルに従ってポイントクラウドビデオデータを処理する。送信のための処理には、放送網を介して伝送するための処理、ブロードバンドを介して伝送するための処理を含む。実施例による送信処理部は、ポイントクラウドビデオデータのみならず、メタデータ処理部からポイントクラウドビデオ関連メタデータが伝送され、これに送信するための処理を加える。
【0125】
送信部10004は、ビットストリームの形式で出力された符号化されたビデオ/映像情報又はデータをファイル又はストリーミングの形式でデジタル記憶媒体又はネットワークを介して受信デバイスの受信機へ伝送する。デジタル記憶媒体にはUSB、SD、CD、DVD、ブルーレイ、HDD、SSDなどが含まれる。送信部は所定のファイルフォーマットによってメディアファイルを生成するための要素を含み、放送/通信ネットワークを介した送信のための要素を含む。受信部はビットストリームを抽出して復号装置に伝送する。
【0126】
受信機10003は、本発明によるポイントクラウドビデオ送信装置が送信したポイントクラウドビデオデータを受信する。送信されるチャネルに応じて、受信部は、放送網を介してポイントクラウドビデオデータを受信してもよく、ブロードバンドを介してポイントクラウドビデオデータを受信してもよい。又はデジタル記憶媒体を介してポイントクラウドビデオデータを受信してもよい。
【0127】
受信処理部は、受信したポイントクラウドビデオデータに対して送信プロトコルに従う処理を行う。受信処理部は受信部に含まれてもよく、又は別のコンポーネント/モジュールで構成されてもよい。送信側で送信のための処理が行われることに対応するように、受信処理部は上述した送信処理部の逆プロセスを行う。受信処理部は取得したポイントクラウドビデオデータはデカプセル化処理部に伝送し、取得したポイントクラウドビデオ関連メタデータはメタデータ処理部に伝送する。受信処理部が取得するポイントクラウドビデオ関連メタデータはシグナリングテーブルの形式であってもよい。
【0128】
デカプセル化処理部(file/segment decapsulation module)10007は、受信処理部から伝送されたファイル形式のポイントクラウドビデオデータをデカプセル化する。デカプセル化処理部はISOBMFFなどによるファイルをデカプセル化し、ポイントクラウドビデオビットストリームないしポイントクラウドビデオ関連メタデータ(メタデータビットストリーム)を取得する。取得したポイントクラウドビデオビットストリームは、ポイントクラウドビデオデコーダに伝送し、取得したポイントクラウドビデオ関連メタデータ(メタデータビットストリーム)はメタデータ処理部に伝送する。ポイントクラウドビデオビットストリームはメタデータ(メタデータビットストリーム)を含んでもよい。メタデータ処理部はポイントクラウドビデオデコーダに含まれてもよく、又は別のコンポーネント/モジュールで構成されてもよい。デカプセル化処理部が取得するポイントクラウドビデオ関連メタデータは、ファイルフォーマット内のボックス又はトラックの形式であってもよい。デカプセル化処理部は、必要な場合、メタデータ処理部からデカプセル化に必要なメタデータが伝送される。ポイントクラウドビデオ関連メタデータは、ポイントクラウドビデオデコーダに伝送されてポイントクラウドビデオ復号の手順に用いられるか、又はレンダラーに伝送されてポイントクラウドビデオレンダリングの手順に用いられる。
【0129】
ポイントクラウドビデオデコーダは、ビットストリームが入力され、ポイントクラウドビデオエンコーダの動作に対応する動作を行い、ビデオ/映像を復号する。この場合、ポイントクラウドビデオデコーダは、ポイントクラウドビデオを、後述のように、ジオメトリビデオ、特質(attribute)ビデオ、占有(occupancy)マップビデオ、また付加情報(auxiliary information)に分けて復号する。ジオメトリビデオはジオメトリイメージを含み、特質(attribute)ビデオは特質イメージを含み、占有(occupancy)マップビデオは占有マップイメージを含む。付加情報は付加パッチ情報(auxiliary patch information)を含む。特質ビデオ/イメージはテクスチャービデオ/イメージを含。
【0130】
復号されたジオメトリイメージと占有マップ及び付加パッチ情報を用いて、3Dジオメトリが復元され、その後平滑化プロセスを経てもよい。平滑化された3Dジオメトリにテクスチャーイメージを用いてカラー値を与えることで、カラーポイントクラウド映像/ピクチャーが復元される。レンダラーは、復元されたジオメトリ、カラーポイントクラウド映像/ピクチャーをレンダリングする。レンダリングされたビデオ/映像は、ディスプレイ部によってディスプレイされる。ユーザはVR/ARディスプレイ又は一般のディスプレイなどによってレンダリングされた結果の全部又は一部の領域を見る。
【0131】
フィードバックプロセスは、レンダリング/ディスプレイのプロセスにおいて取得可能な様々なフィードバック情報を送信側に伝送するか、受信側のデコーダに伝送するプロセスを含んでもよい。フィードバックプロセスにより、ポイントクラウドビデオの消費において相互作用(interactivity)が提供される。実施例によれば、フィードバックプロセスにおいてヘッドオリエンテーション(Head Orientation)情報、ユーザが現在見ている領域を示すビューポート(Viewport)情報などが伝送される。実施例によれば、ユーザは、VR/AR/MR/自立走行環境上に具現されたものと相互作用できるが、この場合、その相互作用に関連する情報がフィードバックプロセスで送信側ないしサービス供給者側に伝送されることがある。実施例によってフィードバックプロセスは行わなくてもよい。
【0132】
ヘッドオリエンテーション情報は、ユーザの頭の位置、角度、動きなどに関する情報である。この情報に基づいて、ユーザがポイントクラウドビデオ内で現在見ている領域の情報、即ち、ビューポート情報が算出される。
【0133】
ビューポート情報は、ユーザがポイントクラウドビデオで現在見ている領域の情報である。これにより、ゲイズ分析(Gaze Analysis)が行われ、ユーザがどんな方式でポイントクラウドビデオを消費するか、ポイントクラウドビデオのどの領域をどのくらい凝視するかなどを確認できる。ゲイズ分析は、受信側で行われて送信側にフィードバックチャネルを介して伝送される。VR/AR/MRディスプレイなどの装置は、ユーザの頭の位置/方向、装置が支援する垂直(vertical)又は水平(horizontal)FOVなどに基づいてビューポート領域を抽出する。
【0134】
実施例によれば、上述したフィードバック情報は送信側に伝送されるだけではなく、受信側で消費されてもよい。即ち、上述したフィードバック情報を用いて受信側の復号、レンダリングのプロセスなどが行われる。例えば、ヘッドオリエンテーション情報及び/又はビューポート情報を用いて、ユーザが現在見ている領域に対するポイントクラウドビデオのみを優先して復号及びレンダリングする。
【0135】
ここで、ビューポート(viewport)ないしビューポート領域とは、ユーザがポイントクラウドビデオで見ている領域である。視点(viewpoint)はユーザがポイントクラウドビデオで見ている地点であって、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とした領域であり、その領域が占めるサイズ、形態などはFOV(Field Of View)により決定される
【0136】
この明細書は、上述のように、ポイントクラウドビデオ圧縮に関する。例えば、この明細書に開示の方法/実施例は、MPEG(Moving Picture Experts Group)のPCC(point Cloud compression or Point Cloud coding)標準又は次世代ビデオ/イメージコーティング標準に適用できる。
【0137】
この明細書においてピクチャー/フレームは、一般に特定の時間帯の1つの映像を示す単位を意味する。
【0138】
ピクセル(pixel)又はペル(pel)は1つのピクチャー(又は映像)を構成する最小の単位を意味する。また、ピクセルに対応する用語として「サンプル(sample)」が用いられる。サンプルは、一般に、ピクセル又はピクセルの値を示し、輝度(luma)成分のピクセル/ピクセル値のみを示してもよく、彩度(chroma)成分のピクセル/ピクセル値のみを示してもよく、又は深さ(depth)成分のピクセル/ピクセル値のみを示してもよい。
【0139】
ユニット(unit)は映像処理の基本単位を示す。ユニットはピクチャーの特定の領域及びその領域に関する情報のうちの少なくとも1つを含む。ユニットは、場合によって、ブロック(block)又は領域(area)又はモジュールなどの用語と混用する。一般の場合、MxNブロックは、M個の列とN個の行からなるサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)の集合(又はアレイ)を含む。
【0140】
図3は、実施例によるポイントクラウド及びジオメトリ、テクスチャーイメージの一例を示す。
【0141】
実施例によるポイントクラウドは、後述する図4のV-PCC符号化プロセスに入力され、ジオメトリイメージ、テクスチャーイメージが生成される。実施例によれば、ポイントクラウドはポイントクラウドデータと同一の意味で使用される。
【0142】
図3において、左側の図はポイントクラウドであって、3D空間上にポイントクラウド客体が位置し、これをバウンディングボックスなどで表現するポイントクラウドを示す。図3の中間の図はジオメトリイメージを示し、右側の図はテクスチャーイメージ(ノン-パッド)を示す。
【0143】
ビデオベースポイントクラウド圧縮(Video-based Point Cloud Compression、V-PCC)は、HEVC(Efficiency Video Coding)、VVC(Versatile Video Coding)などの2Dビデオコーデック(video codec)に基づいて3Dポイントクラウドデータを圧縮する方法である。V-PCC圧縮プロセスにおいて、以下のようなデータ及び情報が生成される。
【0144】
占有マップ(occupancy map):ポイントクラウドを成す点をパッチに分けて2D平面にマップするとき、2D平面の該当位置にデータが存在するか否かを0又は1の値で知らせる2進マップ(binary map)を示す。占有マップ(occupancy map)はアトラスに対応する2Dアレイを示し、占有マップの値はアトラス内の各サンプル位置が3Dポイントに対応するか否かを示す。アトラス(atlas)は、ボリュメトリックデータがレンダリングされる3D空間内の3Dバウンディングボックスに対応する矩形フレームに位置する2Dバウンディングボックス及びそれに関連する情報の集合である。
【0145】
アトラスビットストリーム(atlas bitstream)は、アトラス(atlas)を構成する1つ以上のアトラスフレーム(atlas frame)と関連データに対するビットストリームである。
【0146】
アトラスフレーム(atlas frame)は、複数のパッチ(patch)がプロジェクションされたアトラスサンプル(atlas sample)の2D矩形配列である。
【0147】
アトラスサンプル(atlas sample)は、アトラス(atlas)に連関するパッチ(patch)がプロジェクションされた矩形フレームのポジション(position)である。
【0148】
アトラスフレーム(atlas frame)は、タイル(tile)に分割される。タイルは2Dフレームを分割する単位である。即ち、タイルはアトラスというポイントクラウドデータのシグナリング情報を分割する単位である。
【0149】
パッチ(patch):ポイントクラウドを構成する点の集合であり、同じパッチに属する点は3D空間上で互いに隣接し、2Dイメージへのマッピングプロセスにおいて6面の境界ボックス平面のうち同じ方向にマップされることを示す。
【0150】
パッチはタイルを分割する単位である。パッチはポイントクラウドデータの構成に関するシグナリング情報である。
【0151】
実施例による受信装置は、アトラス(タイル、パッチ)に基づいて同じプレゼンテーションタイムを有する実際ビデオデータである特質ビデオデータ、ジオメトリビデオデータ、占有ビデオデータを復元することができる。
【0152】
ジオメトリイメージ:ポイントクラウドを成す各点の位置情報(geometry)をパッチ単位で表現する深さマップの形式のイメージを示す。ジオメトリイメージは1チャネルのピクセル値で構成される。ジオメトリはポイントクラウドフレームに連関する座標のセットを示す。
【0153】
テクスチャーイメージ(texture image):ポイントクラウドを成す各点の色情報をパッチ単位で表現するイメージを示す。テクスチャーイメージは複数のチャネルのピクセル値(例えば、3チャネルR、G、B)で構成される。テクスチャーは特質に含まれる。実施例によれば、テクスチャー及び/又は特質は同一の対象及び/又は包含関係として解釈される。
【0154】
付加パッチ情報(auxiliary patch info):個別パッチからポイントクラウドを再構成するために必要なメタデータを示す。付加パッチ情報は、パッチの2D/3D空間における位置、サイズなどに関する情報を含む。
【0155】
実施例によるポイントクラウドデータ、例えば、V-PCCコンポーネントは、アトラス、占有マップ、ジオメトリ、特質などを含む。
【0156】
アトラス(atlas)は、2Dバウンディングボックスの集合を示す。パッチ、例えば、直方形(rectangular)フレームにプロジェクトされたパッチである。また、3D空間において3Dバウンディングボックスに対応し、ポイントクラウドのサブセットを示す。
【0157】
特質(attribute)は、ポイントクラウド内の各ポイントに連関するスカラー(scalar)又はベクトル(vector)を示し、例えば、カラー(colour)、反射率(reflectance)、面法線(surface normal)、タイムスタンプ(time stamps)、マテリアルID(material ID)などがある。
【0158】
実施例によるポイントクラウドデータは、V-PCC(Video-based Point Cloud Compression)方式によるPCCデータを示す。ポイントクラウドデータは複数のコンポーネントを含む。例えば、占有マップ、パッチ、ジオメトリ及び/又はテクスチャーなどを含む。
【0159】
図4は、実施例によるV-PCC符号化処理の一例を示す。
【0160】
図4は、占有マップ(occupancy map)、ジオメトリイメージ(geometry image)、テクスチャーイメージ(texture image)、付加パッチ情報(auxiliary patch information)を生成して圧縮するためのV-PCC符号化プロセス(encoding process)を示す。図4のV-PCC符号化プロセスは、図1のポイントクラウドビデオエンコーダ10002によって処理される。図4の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせによって行われる。
【0161】
パッチ生成部(patch generation)40000は又はパッチ生成器はポイントクラウドフレーム(ポイントクラウドデータを含むビットストリームの形式であってもよい)を受信する。パッチ生成部40000は、ポイントクラウドデータからパッチを生成する。また、パッチの生成に関する情報を含むパッチ情報を生成する。
【0162】
パッチパッキング(patch packing)40001又はパッチパッカーはポイントクラウドデータに対するパッチをパッグする。例えば、1つ又は1つ以上のパッチをパックする。また、パッチパッキングに関する情報を含む占有マップを生成する。
【0163】
ジオメトリイメージ生成部(geometry image generation)40002又はジオメトリイメージ生成器は、ポイントクラウドデータ、パッチ、及び/又はパックされたパッチに基づいてジオメトリイメージを生成する。ジオメトリイメージは、ポイントクラウドデータに関するジオメトリを含むデータをいう。
【0164】
テクスチャーイメージ生成部(texture image generation)40003又はテクスチャーイメージ生成器は、ポイントクラウドデータ、パッチ、及び/又はパックされたパッチに基づいてテクスチャーイメージを生成する。また再構成された(reconstructed)ジオメトリイメージをパッチ情報に基づいて平滑化(番号)が平滑化処理をして生成された平滑化ジオメトリにさらに基づいて、テクスチャーイメージを生成する。
【0165】
平滑化(smoothing)40004又は平滑化部は、イメージデータに含まれたエラーを緩和又は除去する。例えば、再構成された(reconstructed)ジオメトリイメージをパッチ情報に基づいて、データ間エラーを誘発するような部分を柔らかにフィルタリングして平滑化したジオメトリを生成する。
【0166】
付加パッチ情報圧縮(auxiliary patch info compression)40005又は付加パッチ情報圧縮部は、パッチ生成プロセスで生成されたパッチ情報に関する付加(auxiliary)パッチ情報を圧縮する。また、圧縮された付加パッチ情報は多重化装置へ伝送され、ジオメトリイメージ生成部40002も付加パッチ情報を用いる。
【0167】
イメージパッド(image padding)40006、40007又はイメージパッド部は、ジオメトリイメージ及びテクスチャーイメージをそれぞれパッドする。即ち、パッドデータがジオメトリイメージ及びテクスチャーイメージにパッドされる。
【0168】
グループ拡張(group dilation)40008又はグループ拡張部は、イメージパッドと同様に、テクスチャーイメージにデータを付加する。付加パッチ情報がテクスチャーイメージに挿入される。
【0169】
ビデオ圧縮(video compression)40009、40010、40011又はビデオ圧縮部は、パッドされたジオメトリイメージ、パッドされたテクスチャーイメージ及び/又は占有マップをそれぞれ圧縮する。圧縮はジオメトリ情報、テクスチャー情報、占有情報などを符号化する。
【0170】
エントロピー圧縮(entropy compression)40012又はエントロピー圧縮部は、占有マップをエントロピー方式に基づいて圧縮(例えば、符号化)する。
【0171】
実施例によれば、ポイントクラウドデータがロスレス(lossless)した場合及び/又はロッシー(lossy)した場合、占有マップフレームに対してエントロピー圧縮及び/又はビデオ圧縮が行われる。
【0172】
多重化装置(multiplexer)40013は、圧縮されたジオメトリイメージ、圧縮されたテクスチャーイメージ、圧縮された占有マップをビットストリームに多重化する。
【0173】
以下、実施例による図4の各々のプロセスの詳細な動作を示す。
【0174】
パッチ生成(Patch generation)40000
【0175】
パッチ生成のプロセスは、ポイントクラウドを2Dイメージにマップ(mapping)するために、マッピングを行う単位であるパッチでポイントクラウドを分割するプロセスを意味する。パッチ生成のプロセスは、以下のようにノーマル(normal)値の計算、セグメント(segmentation)、パッチ(patch)分割の3つのステップに分けられる。
【0176】
図5を参照して、正規値の計算プロセスを具体的に説明する。
【0177】
図5は、実施例による表面(Surface)の接平面(tangent plane)及び法線ベクトル(normal vector)の一例を示す。
【0178】
図5の表面は、図4のV-PCC符号化プロセスのパッチ生成のプロセス40000において以下のように用いられる。
【0179】
パッチ生成に関連して法線(Normal)計算
【0180】
ポイントクラウドを成す各点(例えば、ポイント)は、固有の方向を有しているが、これは法線という3Dのベクトルで示される。K-D treeなどを用いて求められる各点の隣接点(neighbors)を用いて、図5のようなポイントクラウドの表面を成す各点の接平面(tangent plane)及び法線ベクトル(normal vector)を求める。隣接点を探すプロセスにおけるサーチ範囲(search range)はユーザによって定義される。
【0181】
接平面(tangen plane):表面の一点を通り、表面上の曲線に対する接線を完全に含んでいる平面を示す。
【0182】
図6は、実施例によるポイントクラウドのバウンディングボックス(bounding box)の一例を示す。
【0183】
実施例による方法/装置、例えば、パッチ生成部がポイントクラウドデータからパッチを生成するプロセスにおいてバウンディングボックスを用いる。
【0184】
実施例によるバウンディングボックスとは、ポイントクラウドデータを3D空間上で六面体に基づいて分割する単位のボックスである。
【0185】
バウンディングボックスは、ポイントクラウドデータの対象となるポイントクラウド客体を3D空間上の六面体に基づいて各々の六面体の平面にプロジェクトするプロセスにおいて用いる。バウンディングボックスは、図1のポイントクラウドビデオ取得部10000、ポイントクラウドビデオエンコーダ10002によって生成、処理される。また、バウンディングボックスに基づいて、図2のV-PCC符号化プロセスのパッチ生成40000、パッチパッキング40001、ジオメトリイメージ生成40002、テクスチャーイメージ生成40003が行われる。
【0186】
パッチ生成に関連して分割(Segmentation)
【0187】
分割(Segmentation)は、初期分割(initial segmentation)と改善分割(refine segmentation)との2つのプロセスからなる。
【0188】
実施例によるポイントクラウドビデオエンコーダ10002は、ポイントをバウンディングボックスの一面にプロジェクトする。具体的に、ポイントクラウドを成す各点は、図6のように、ポイントクラウドを囲む6つのバウンディングボックスの面の一面にプロジェクトされるが、初期分割(initial segmentation)は、各点がプロジェクトされるバウンディングボックスの平面のうちの1つを決定するプロセスである。
【0189】
6つの各平面と対応する正規(normal)値である
は、以下のように定義される。
【0190】
(1.0,0.0,0.0)、(0.0,1.0,0.0)、(0.0,0.0,1.0)、(-1.0,0.0,0.0)、(0.0,-1.0,0.0)、(0.0,0.0,-1.0).
【0191】
以下の数式のように、上述した正規値の計算プロセスから得た各点の正規値
の外積(dot product)が最大の面をその面のプロジェクション平面と決定する。即ち、ポイントの法線と最も類似する方向の法線を有する平面がそのポイントのプロジェクション平面と決定される。
【0192】
【0193】
決定された平面は、0~5のうちのいずれか1つのインデックス形式の値(cluster index)として識別される。
【0194】
改善分割(Refine segmentation)は、上述した初期分割(initial segmentation)のプロセスで決定されたポイントクラウドを成す各点のプロジェクション平面を隣接点のプロジェクション平面を考慮して改善するプロセスである。このプロセスでは、上述した初期分割プロセスにおいてプロジェクション平面を決定するために考慮した各点のノーマルとバウンディングボックスの各平面のノーマル値との類似度を成すscore normalと共に、現在点のプロジェクション平面と隣接点のプロジェクション平面との一致度を示すスコア平滑化score smoothとが同時に考慮される。
【0195】
Score smoothはscore normalに対して加重値を与えることで考慮することができ、このとき、加重値はユーザによって定義される。改善分割は繰り返し的に行われ、繰り返し回数もユーザに定義される。
【0196】
パッチ生成に関連してパッチ分割(segment patches)
【0197】
パッチ分割は、上述した初期/改善分割のプロセスで得たポイントクラウドを成す各点のプロジェクション平面情報に基づいて、全体のポイントクラウドを隣接した点の集合であるパッチに分けるプロセスである。パッチ分割は、以下のようなステップからなる。
【0198】
(1) K-D treeなどを用いてポイントクラウドを成す各点の隣接点を算出する。最大の隣接点の数はユーザによって定義される。
【0199】
(2) 隣接点が現在の点と同一平面にプロジェクトされる場合(同一のクラスターインデックス(cluster index)値を有する場合)、現在の点とその隣接点を1つのパッチに抽出する。
【0200】
(3) 抽出したパッチのジオメトリ値を算出する。詳しい過程について後述する。
【0201】
(4) 抽出されない点が無くなるまで(2)~(3)のプロセスを繰り返す。
【0202】
パッチ分割のプロセスを通じて、各パッチのサイズ及び各パッチの占有マップ、ジオメトリイメージ、テクスチャーイメージなどが決定される。
【0203】
図7は、実施例による占有マップ(occupancy map)の個別パッチ(patch)の位置決めの一例を示す。
【0204】
実施例によるポイントクラウドエンコーダ10002は、パッチパッキング及び占有マップを生成することができる。
【0205】
パッチパッキング及び占有マップの生成(Patch packing & Occupancy map generation)40001
【0206】
本プロセスは、以前に分割されたパッチを1つの2Dイメージにマップするために、個別パッチの2Dイメージ内における位置を決定するプロセスである。占有マップ(Occupancy map)は2Dイメージの1つであって、その位置におけるデータの存否を0又は1の値で知らせる2進マップ(binary map)である。占有マップは、ブロックからなり、ブロックのサイズに応じて解像度が決定されるが、一例としてブロックのサイズが1*1である場合、ピクセル(pixel)単位の解像度を有する。ブロックのサイズ(occupancy packing block size)はユーザによって決定される。
【0207】
占有マップ内において個別パッチの位置を決定するプロセスは、以下のようである。
【0208】
(1) 全体の占有マップの値をいずれも0に設定する。
【0209】
(2) 占有マップ平面に存在する水平座標が[0、occupancySizeU-patch.sizeU0)、垂直座標が[0、occupancySizeV-patch.sizeV0)の範囲にある点(u、 v)にパッチを位置させる。
【0210】
(3) パッチ平面に存在する水平座標が[0、patch.sizeU0)、垂直座標が[0、patch.sizeV0)の範囲にある点(x、y)を現在点(ポイント)として設定する。
【0211】
(4) 点(x、y)に対して、パッチ占有マップの(x、y)座標値が1であり(パッチ内の該当地点にデータが存在し)、全体の占有マップの(u+x、v+y)座標値が1(以前のパッチにより占有マップが満たされた場合)、ラスタ順に(x、y)位置を変更して、(3)~(4)のプロセスを繰り返す。そうではない場合、(6)のプロセスを行う。
【0212】
(5) ラスタ順に(u、v)位置を変更して(3)~(5)のプロセスを繰り返す。
【0213】
(6) (u、v)を該当パッチの位置に決定し、パッチの占有マップデータを全体の占有マップの該当部分に割り当てる(copy)。
【0214】
(7) 次のパッチに対して(2)~(7)のプロセスを繰り返す。
【0215】
占有サイズU(occupancySizeU):占有マップの幅(width)を示し、単位は占有パッキングサイズブロック(occupancy packing block size)である。
【0216】
占有サイズV(occupancySizeV):占有マップの高さ(height)を示し、単位は占有パッキングブロックサイズである。
【0217】
パッチサイズU0(patch.sizeU0):占有マップの幅を示し、単位は占有パッキングブロックサイズである。
【0218】
パッチサイズV0(patch.sizeV0):占有マップの高さを示し、単位は占有パッキングブロックサイズである。
【0219】
例えば、図7のように、占有パッキングサイズブロックに該当するボックス内パッチサイズを有するパッチに対応するボックスが存在し、ボックス内ポイント(x、y)が位置してもよい。
【0220】
図8は、実施例によるノーマル(normal)、タンジェント(tangent)、バイタンジェント(bitangent)軸の関係の一例を示す。
【0221】
実施例によるポイントクラウドビデオエンコーダ10002は、 ジオメトリイメージを生成することができる。ジオメトリイメージとは、ポイントクラウドのジオメトリ情報を含むイメージデータを意味する。ジオメトリイメージの生成プロセスは、図8のパッチの3つの軸(ノーマル、タンジェント、バイタンジェント)を用いる。
【0222】
ジオメトリイメージの生成(Geometry image generation)40002
【0223】
本プロセスでは、個別パッチのジオメトリイメージを構成する深さ(depth)値を決定し、上述したパッチパッキング(patch packing)のプロセスで決定されたパッチの位置に基づいて全体のジオメトリイメージを生成する。個別パットのジオメトリイメージを構成する深さ値を決定するプロセスは以下のように構成される。
【0224】
(1) 個別パッチの位置、サイズに関するパラメータを算出する。パラメータは以下のような情報を含む。
【0225】
ノーマル(normal)軸を示すインデックス:ノーマルは上述したパッチ生成のプロセスで求められ、タンジェント軸はノーマルと直角の軸のうちパッチイメージの水平(u)軸と一致する軸であり、バイタンジェント軸はノーマルと直角の軸のうちパッチイメージの垂直(v)軸と一致する軸であって、3つの軸は、以下の図のように示される。
【0226】
図9は、実施例によるプロジェクションモードの最小モード及び最大モード構成の一例を示す。
【0227】
実施例によるポイントクラウドビデオエンコーダ10002は、ジオメトリイメージを生成するために、パッチに基づくプロジェクションを行い、実施例によるプロジェクションのモードは最小モード及び最大モードがある。
【0228】
パッチの3D空間座標:パッチを囲む最小サイズのバウンディングボックスによって算出される。例えば、パッチの3D空間座標にパッチのタンジェント方向最小値(patch 3D shift tangent axis)、パッチのバイタンジェント方向最小値(patch 3D shift bitangent axis)、パッチのノーマル方向最小値(patch 3D shift normal axis)などが含まれる。
【0229】
パッチの2Dサイズ:パッチが2Dイメージでパックされるときの水平、垂直方向サイズを示す。水平方向サイズ(patch 2D size u)はバウンディングボックスのタンジェント方向の最大値と最小値との差であり、垂直方向サイズ(patch 2D size v)はバウンディングボックスのバイタンジェント方向の最大値と最小値との差である。
【0230】
(2) パッチのプロジェクションモード(projection mode)を決定する。プロジェクションモードは、最小モード(min mode)と最大モード(max mode)のいずれか1つである。パッチのジオメトリ情報は、深さ値で示されるが、パッチのノーマル方向にパッチを成す各点をプロジェクトするとき、深さ値の最大値で構成されるイメージと最小値で構成されるイメージの2つのレイヤ(layer)のイメージが生成される。
【0231】
2つのレイヤのイメージd0とd1を生成するのに、最小モードである場合、図9のように最小深さがd0に構成され、最小深さから表面厚さ(surface thickness)以内に存在する最大深さがd1に構成される。
【0232】
例えば、ポイントクラウドが、図のように2Dに位置する場合、複数のポイントを含む複数のパッチがあってもよい。図のように、同じ陰影で示されたポイントが同一のパッチに属することを示す。空欄で示されたポイントのパッチをプロジェクトするプロセスを示す。
【0233】
空欄で示されたポインを左側/右側にプロジェクトする場合、左側を基準として深さを0、1、2、..6、7、8、9のように1つずつ増加しながら右側にポイントの深さの算出のための数字を表記する。
【0234】
プロジェクションモード(Projection mode)は、ユーザの定義によって、全てのポイントクラウドに同一の方法が適用されてもよく、フレーム又はパッチごとに異なる方法が適用されてもよい。フレーム又はパッチごとに異なるプロジェクションモードが適用される場合、圧縮効率を高めたり、消失点(missed point)が最小化できるプロジェクションモードが適応的に選ばれる。
【0235】
(3) 個別点の深さ値を算出する。
【0236】
最小モードである場合、各点のノーマル軸の最小値にパッチのノーマル方向最小値(patch 3D shift normal axis)から(1)のプロセスで算出されたパッチのノーマル方向最小値(patch 3D shift normal axis)を引いた値であるdepth0でd0イメージを構成する。同一の位置にdepth0と表面厚さ以内の範囲にその他の深さ値が存在する場合、この値をdepth1に設定する。存在しない場合は、depth0の値をdepth1にも割り当てる。Depth1の値でd1イメージを構成する。
【0237】
例えば、d0のポイントの深さ決定において最小値が算出される(4 2 4 4 0 6 0 0 9 9 0 8 0)。また、d1のポイントの深さを決定することにおいて2つ以上のポイントのうち大きい値が算出されるか、1つのポイントだけがある場合はその値が算出される(4 4 4 4 6 6 6 8 9 9 8 8 9)。また、パッチのポイントが符号化、再構成(reconstruct)されるプロセスにおいて一部のポイントが損失される(例えば、図では8つのポイントが損失)。
【0238】
最大モード(Max mode)である場合、各点のノーマル軸の最大値にパッチのノーマル方向最小値(patch 3D shift normal axis)から(1)のプロセスで算出されたパッチのノーマル方向最小値(patch 3D shift normal axis)を引いた値であるdepth0でd0イメージを構成する。同一の位置にdepth0と表面厚さ以内の範囲にその他の深さ値が存在する場合、この値をdepth1に設定する。存在しない場合、depth0の値をdepth1にも割り当てる。Depth1の値でd1イメージを構成する。
【0239】
例えば、d0のポイントの深さ決定において最大値が算出される(4 4 4 4 6 6 6 8 9 9 8 8 9)。また、d1のポイントの深さを決定することにおいて2つ以上のポイントのうち小さい値が算出されるか、1つのポイントだけがある場合はその値が算出される(4 2 4 4 5 6 0 6 9 9 0 8 0)。また、パッチのポイントが符号化、再構成(reconstruct)されるプロセスにおいて一部のポイントが損失される(例えば、図では6つのポイントが損失)。
【0240】
上述したプロセスから生成された個別パッチのジオメトリイメージを、上述したパッチパッキングプロセスを通じて生成された個別パッチの位置情報を用いて、全体のジオメトリイメージに配置させることで、全体のジオメトリイメージを生成することができる。
【0241】
生成された全体のジオメトリイメージのd1レイヤは、様々な方法によって符号化される。第一は、以前に生成したd1イメージの深さ値をそのまま符号化する方法(absolute d1 encoding method)である。第二は、以前に生成したd1イメージの深さ値とd0イメージの深さ値との差を符号化する方法(differential encoding method)である。
【0242】
このようなd0、d1の2つのレイヤの深さ値を用いた符号化の方法は、2つの深さの間にそのその他の点が存在する場合、その点のジオメトリ情報を符号化するプロセスで失うため、無損失圧縮(lossless coding)のために、Enhanced-Delta-Depth(EDD)codeを用いてもよい。
【0243】
図10を参照して、EDD codeを具体的に説明する。
【0244】
図10は、実施例によるEDDコードの一例を示す。
【0245】
ポイントクラウドビデオエンコーダ10002及び/又はV-PCC符号化の一部/全部のプロセス(例えば、ビデオ圧縮40009)などは、EODコードに基づいてポイントのジオメトリ情報を符号化することができる。
【0246】
EDD codeは、図のように、d1を含み表面厚さの範囲内の全ての点の位置を2進で符号化する方法である。一例として、図の左側から二番目の列に含まれる点の場合、D0の上方に一番目、四番目の位置に点が存在し、二番目と三番目の位置は空いているため、0b1001(=9)のEDD codeで示される。D0と共にEDD codeを符号化して送信すると、受信端では全ての点のジオメトリ情報を損失なく復元することができる。
【0247】
例えば、基準点上にポイントが存在すれば1であり、ポイントが存在しなければ0となり、4つのビットに基づいてコードが表現される。
【0248】
平滑化(Smoothing)40004
【0249】
平滑化は、圧縮プロセスから生じる画質の劣化によりパット境界面で発生し得る不連続性を除去する作業であり、ポイントクラウドビデオエンコーダ又は平滑化部で行われる。
【0250】
(1) ジオメトリイメージよりポイントクラウドを再生成(reconstruction)する。本プロセスは、上述したジオメトリイメージ生成の逆過程といえる。例えば、符号化の逆過程が再生成である。
【0251】
(2) K-D treeなどを用いて再生成されたポイントクラウドを構成する各点の隣接点を算出する。
【0252】
(3) 各点に対して、その点がパッチ境界面に位置するか否かを判断する。一例として、現在点とは異なるプロジェクション平面(cluster index)を有する隣接点が存在する場合、その点はパッチの境界面に位置していると判断できる。
【0253】
(4) パッチ境界面が存在する場合、その点を隣接点の重心(隣接点の平均x、y、z座標に位置)へ移動させる。即ち、ジオメトリ値を変更する。存在しない場合には以前のジオメトリ値を維持する。
【0254】
図11は、実施例による隣接点のカラー(color)値を用いた復色(recoloring)の一例を示す。
【0255】
実施例によるポイントクラウドビデオエンコーダ又はテクスチャーイメージ生成40003は、復色に基づいてテクスチャーイメージを生成することができる。
【0256】
テクスチャーイメージ生成(Texture image generation)40003
【0257】
テクスチャーイメージ生成のプロセスは、上述したジオメトリイメージ生成のプロセスと同様に、個別パッチのテクスチャーイメージを生成し、これらを決められた位置に配置することで、全体のテクスチャーイメージを生成するプロセスからなる。ただし、個別パッチのテクスチャーイメージを生成するプロセスにおいて、ジオメトリ生成のための深さ値に代わってその位置に対応するポイントクラウドを構成する点のカラー値(例えば、R、G、B)を有するイメージが生成される。
【0258】
ポイントクラウドを構成する各点のカラー値を求めるプロセスにおいて、上述した平滑化のプロセスを経たジオメトリが用いられる。平滑化されたポイントクラウドはオリジナルポイントクラウドにおいて一部点の位置が移動した状態である可能性があるため、変更された位置に適するカラーを探す復色のプロセスが必要となる。復色は隣接点のカラー値を用いて行われる。一例として、図のように、新たなカラー値は最隣接点のカラー値と隣接点のカラー値を考慮して算出できる。
【0259】
例えば、図を参照すれば、復色はポイントに対する最も近いオリジナルポイントの特質情報の平均及び/又はポイントに対する最も近いオリジナル位置の特質情報の平均に基づいて変更された位置の適するカラー値を算出する。
【0260】
テクスチャーイメージもまた、d0/d1の2つのレイヤで生成されるジオメトリイメージのように、t0/t1の2つのレイヤで生成される。
【0261】
付加パッチ情報圧縮(Auxiliary patch info compression)40005
【0262】
実施例によるポイントクラウドビデオエンコーダ又は付加パッチ情報圧縮部は、付加パッチ情報(ポイントクラウドに関する付加的な情報)を圧縮することができる。
【0263】
付加パッチ情報圧縮部は、上述したパッチ生成、パッチパッキング、ジオメトリ生成のプロセスなどで生成した付加パッチ情報を圧縮する。付加パッチ情報には以下のようなパラメータが含まれる:
【0264】
プロジェクション(projection)平面(normal)を識別するインデックス(cluster index)
【0265】
パッチの3D空間位置:パッチのタンジェント方向最小値(patch 3D shift tangent axis)、パッチのバイタンジェント方向最小値(patch 3D shift bitangent axis)、パッチのノーマル方向最小値(patch 3D shift normal axis)
【0266】
パッチの2D空間位置、サイズ:水平方向サイズ(patch 2D size u)、垂直方向サイズ(patch 2D size v)、水平方向最小値(patch 2D shift u)、垂直方向最小値(patch 2D shift u)
【0267】
各々のブロックとパッチのマッピング情報:候補インデックス(candidate index)(上述したパッチの2D空間位置、サイズ情報に基づいてパッチを順に位置させた場合、1つのブロックに重複して複数のパッチがマップされることがある。このとき、マップされるパッチが候補リストを構成し、このリストの何番目のパッチのデータが該当ブロックに存在するかを示すインデックス)、local patch index(フレームに存在する全体のパッチのうちの1つを示すインデックス)。Table 1は、candidate listとlocal patch indexを用いたブロックとパッチのマッチングプロセスを示す疑似コード(pseudo code)である。
【0268】
候補リストの最大数はユーザによって定義される。
【0269】
table 1-1 blockとパッチマッピングのためのpseudo code
【0270】
for(i=0;i<BlockCount;i++){
【0271】
if(candidatePatches[i].size()==1){
【0272】
blockToPatch[i]=candidatePatches[i][0]
【0273】
} else {
【0274】
candidate_index
【0275】
if(candidate_index==max_candidate_count) {
【0276】
blockToPatch[i]=local_patch_index
【0277】
} else {
【0278】
blockToPatch[i]=candidatePatches[i][candidate_index]
【0279】
}
【0280】
}
【0281】
}
【0282】
図12は、実施例によるプッシュ-プルバックグラウンドフィリング(push-pull background filling)の一例を示す。
【0283】
イメージパディング及びグループ拡張(Image padding and group dilation)40006、40007、40008
【0284】
実施例によるイメージパッダは、プッシュ-プルバックグラウンドフィリング方式に基づいてパッチ領域以外の空間を意味のない付加的なデータで満たすことができる。
【0285】
イメージパディングは、圧縮効率の向上を目的として、パッチ領域以外の空間を意味のないデータで満たすプロセスである。イメージパディングのために、パッチ内部の境界面側に該当する列又は行のピクセル値がコピーされて空き空間を満たす方法が用いられる。又は、図のように、パッドされないイメージの解像度を段階的に減らし、再び解像度が高めるプロセスにおいて低い解像度のイメージからのピクセル値で空き空間を満たすプッシュプルバックグラウンドフィリング(push-pull background filling)方法が用いられてもよい。
【0286】
グループ拡張(Group dilation)は、d0/d1、t0/t1の2つのレイヤからなるジオメトリ、テクスチャーイメージの空き空間を満たす方法であって、上述したイメージパディングによって算出された2つのレイヤの空き空間の値を、2つのレイヤの同一位置に対する値の平均値で満たすプロセスである。
【0287】
図13は、実施例による4*4サイズのブロック(block)に対して可能なトラバーサルオーダー(traversal order)の一例を示す。
【0288】
占有マップ圧縮(Occupancy map compression)40012、40011
【0289】
実施例による占有マップ圧縮は、上述した占有マップを圧縮する。具体的には、損失(lossy)圧縮のためのビデオ圧縮(video compression)と無損失(lossless)圧縮のためのエントロピー圧縮(entropy compression)との2つの方法がある。ビデオ圧縮については後述する。
【0290】
エントロピー圧縮のプロセスは、以下のように行われる。
【0291】
(1) 占有マップを構成する各々のブロックに対して、全てのブロックが満たされた場合に1を符号化し、次のブロックに同じプロセスを繰り返す。そうではない場合には0を符号化し、(2)~(5)のプロセスを行う。
【0292】
(2) ブロックの満たされたピクセルに対してランレングス符号化(run-length coding)を行うためのbest traversal orderを決定する。図は4*4サイズのブロックに対して可能な4つのtraversal orderを一例として示す。
【0293】
図14は、実施例によるベストトラバーサルオーダーの一例を示す。
【0294】
上述のように、実施例によるエントロピー圧縮部は図のように、トラバーサルオーダー方式に基づいてブロックをコーティング(符号化)する。
【0295】
例えば、可能なトラバーサルオーダーのうち、最小のラン(run)数を有するbest traversal orderを選択し、そのインデックスを符号化する。一例として、上述した図13の3番目のトラバーサルオーダーを選択する場合であり、この場合、run数は2と最小化でき、これをベストトラバーサルオーダー(best traversal order)として選択する。
【0296】
このとき、run数を符号化する。図14の例では、2つのrunが存在することから、2を符号化する。
【0297】
(4) 1番目のrunの占有(occupancy)を符号化する。図14の例では、1番目のrunが満たされていないピクセルに該当するため、0を符号化する。
【0298】
(5) 個別runに対する(runの数分だけの)長さ(length)を符号化する。図14の例では、1番目のrunと2番目のrunの長さである6と10を順次に符号化する。
【0299】
ビデオ圧縮(Video compression)40009、40010、40011
【0300】
実施例によるビデオ圧縮部は、HEVC、VVCなどの2Dビデオコーデック(video codec)などを用いて、上述したプロセスで生成されたジオメトリイメージ、テクスチャーイメージ、占有マップイメージなどのシーケンスを符号化する。
【0301】
図15は、実施例による2Dビデオ/イメージエンコーダ(2D video/image Encoder)の一例を示す。
【0302】
図は上述したビデオ圧縮部(Video compression unit)40009、40010、40011が適用される実施例であって、ビデオ/映像信号の符号化が行われる2Dビデオ/イメージエンコーダ15000の概略なブロック図を示す。2Dビデオ/イメージエンコーダ15000は、上述したポイントクラウドビデオエンコーダ10002に含まれるか、又は内部/外部のコンポーネントからなる。図15の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
【0303】
ここで、入力イメージは、上述したジオメトリイメージ、テクスチャーイメージ(特質イメージ)、占有マップイメージなどを含む。ポイントクラウドビデオエンコーダの出力ビットストリーム(即ち、ポイントクラウドビデオ/イメージビットストリーム)は、各入力映像(ジオメトリイメージ、テクスチャーイメージ(特質イメージ)、占有マップイメージなど)に対する出力ビットストリームを含む。
【0304】
インター予測部15090及びイントラ予測部15100を合わせて予測部と呼ぶ。即ち、予測部は、インター予測部15090及びイントラ予測部15100を含む。変換部15030、量子化部15040、逆量子化部15050、逆変換部15060を合わせて、残余(residual)処理部とも呼ぶ。残余処理部はさらに減算部15020を含む。上述した映像分割部15010、減算部15020、変換部15030、量子化部15040、逆量子化部15050、逆変換部15060、加算部155、フィルタリング部15070、インター予測部15090、イントラ予測部15100及びエントロピー符号化部15110は、実施例によって、1つのハードウェアコンポーネント(例えば、エンコーダ又はプロセッサ)で構成される。また、メモリ15080は、DPB(decoded picture buffer)を含み、デジタル記憶媒体で構成される。
【0305】
映像分割部15010は、符号化装置15000に入力された入力映像(又はピクチャー、フレーム)を1つ以上の処理ユニット(processing unit)に分割する。一例として、処理ユニットは、コーディングユニット(coding unit、CU)とも呼ぶ。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)又は最大コーディングユニット(largest coding unit、LCU)からQTBT(Quad-tree binary-tree)構造によって再帰的に(recursively)分割される。例えば、1つのコーディングユニット、Quad-tree構造及び/又はbinary-tree構造に基づいて下位(deeper)深さの複数のコーディングユニットに分割される。この場合、例えば、先にQuad-treeが適用されて、その後にbinary-treeが適用されてもよい。又はbinary-treeが先に適用されてもよい。これ以上分割されない最終コーディングユニットに基づいて、本発明によるコーディング手順が行われてもよい。この場合、映像の特性に応じたコーディング効率などに基づいて、最大のコーディングユニットが最終符号化ユニットとして用いられてもよく、又は必要に応じてコーディングユニットは再帰的に(recursively)より下位深さのコーディングユニットに分割されて、最適なサイズのコーディングユニットが最終コーディングユニットとして用いられる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含む。その他の例として、処理ユニットは予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)をさらに含んでもよい。この場合、予測ユニット及び変換ユニットのそれぞれは、上述した最終コーディングユニットから分割又はパーティショニングされる。予測ユニットはサンプル予測の単位であり、変換ユニットは変換係数を誘導する単位及び/又は変換係数から残余信号(residual signal)を誘導する単位である。
【0306】
ユニットは、場合によって、ブロック(block)又は領域(area)又はモジュールなどの用語と混用する。一般の場合、MxNブロックは、M個の列とN個の行からなるサンプル又は変換係数(transform coefficient)の集合を示す。サンプルは、一般にピクセル又はピクセルの値を示し、輝度(luma)成分のピクセル/ピクセル値だけを示してもよく、彩度(chroma)成分のピクセル/ピクセル値だけを示してもよい。サンプルは1つのピクチャー(又は、映像)をピクセル(pixel)又はペル(pel)に対応する用語として使用する。
【0307】
符号化装置15000は、入力映像信号(オリジナルブロック、オリジナルサンプルアレイ)においてインター予測部15090又はイントラ予測部15100から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して、残余信号(residual signal、残余ブロック、残余サンプルアレイ)を生成し、生成した残余信号は変換部15030へ送信される。この場合、図示のように、符号化装置15000内で入力映像信号(オリジナルブロック、オリジナルサンプルアレイ)において予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは減算部15020と呼ぶ。予測部は処理対象ブロック(以下、現在ブロックという)に対する予測を行い、現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成する。予測部は現在ブロック又はCU単位でイントラ予測を適用するか、又はインター予測を適用するかを決定する。予測部は、各々の予測モードに関して後述するように、予測モード情報などの予測に関する様々な情報を生成してエントロピー符号化部15110に伝送する。予測に関する情報はエントロピー符号化部15110で符号化されてビットストリームの形式で出力される。
【0308】
イントラ予測部15100は、現在ピクチャー内のサンプルを参照して現在ブロックを予測する。参照されるサンプルは、予測モードに応じて現在ブロックに隣接(neighbor)して位置するか、又は離れて位置する。イントラ予測において予測モードは複数の非方向性モードと複数の方向性モードを含む。非方向性モードは、例えばDCモード及び平面モード(Planarモード)を含む。方向性モードは、予測方向の精密度に応じて、例えば33つの方向性予測モード又は65つの方向性予測モードを含む。ただし、これは例示であって、設定によってその以上又はその以下の方向性予測モードが用いられる。イントラ予測部15100の隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定してもよい。
【0309】
インター予測部15090は、参照ピクチャー上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導く。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測する。動き情報は、動きベクトル及び参照ピクチャーインデックスを含む。動き情報はさらにインター予測方向(L0予測、L1予測、Bi予測など)情報を含む。インター予測の場合、隣接ブロックは現在ピクチャー内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャーに存在する時間的隣接ブロック(temporal neighboring block)を含む。参照ブロックを含む参照ピクチャーと時間的隣接ブロックを含む参照ピクチャーは同一であってもよく、異なってもよい。時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などと呼ばれ、時間的隣接ブロックを含む参照ピクチャーは、同一位置ピクチャー(collocated picture、colPic)とも呼ばれる。例えば、インター予測部15090は隣接ブロックに基づいて動き情報の候補リストを構成し、現在ブロックの動きベクトル及び/又は参照ピクチャーインデックスを導出するためにいずれの候補が使用されるかを指示する情報を生成する。様々な予測モードに基づいてインター予測が行われ、例えばスキップモードとマージモードの場合、インター予測部は隣接ブロックの動き情報を現在ブロックの動き情報として用いる。スキップモードの場合、マージモードとは異なり、残余信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測者(motion vector predictor)として用いて、動きベクトル差分(motion vector difference)をシグナリングすることで現在ブロックの動きベクトルを指示する。
【0310】
インター予測部15090又はイントラ予測部15100によって生成された予測信号は、復元信号の生成のために用いられるか、残余信号の生成のために用いられる。
【0311】
変換部15030は残余信号に変換方法を適用して変換係数(transform coefficients)を生成する。例えば、変換方法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)のうち少なくとも1つを含む。ここで、GBTはピクセル間の関係情報をグラフで表現するとき、このグラフから得られた変換を意味する。CNTは以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換プロセスは、正方形の同一サイズのピクセルブロックに適用されてもよく、正方形ではない可変サイズのブロックに適用されてもよい。
【0312】
量子化部15040は、変換係数を量子化してエントロピー符号化部15110に送信し、エントロピー符号化部15110は量子化した信号(量子化した変換係数に関する情報)を符号化してビットストリームに出力する。量子化した変換係数に関する情報は残余情報と呼ぶ。量子化部15040は係数スキャン順(scan order)に基づいてブロック形態の量子化変換係数を1次元ベクトル形に再整列し、1次元ベクトル形の量子化変換係数に基づいて量子化した変換係数に関する情報を生成することもできる。エントロピー符号化部15110は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々な符号化方法を行う。エントロピー符号化部15110は、量子化した変換係数の他にビデオ/イメージの復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を共に又は別として符号化する。符号化した情報(例えば、符号化したビデオ/映像情報)はビットストリームの形式でNAL(network abstraction layer)ユニットの単位で送信又は格納される。ビットストリームはネットワークを介して送信されてもよく、デジタル記憶媒体に記憶されてもよい。ここで、ネットワークは放送網及び/又は通信網などを含み、デジタル記憶媒体はUSB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体を含む。エントロピー符号化部15110から出力された信号を送信する送信部(未図示)及び/又は記憶する記憶部(未図示)が符号化装置15000の内部/外部要素として構成されてもよく、又は送信部はエントロピー符号化部15110に含まれてもよい。
【0313】
量子化部15040から出力された量子化した変換係数は、予測信号を生成するために用いられる。例えば、量子化した変換係数に逆量子化部15040及び逆変換部15060によって逆量子化及び逆変換を適用することで、残余信号(残余ブロック又は残余サンプル)を復元する。加算部15200は復元された残余信号をインター予測部15090又はイントラ予測部15100から出力された予測信号に加えることで、復元(reconstructed)信号(復元ピクチャー、復元ブロック、復元サンプルアレイ)を生成する。スキップモードが適用された場合のように、処理対象ブロックに対する残余がない場合、予測されたブロックが復元ブロックとして用いられる。加算部155は復元部又は復元ブロック生成部と呼ばれる。生成された復元信号は現在ピクチャー内の次の処理対象ブロックのイントラ予測のために用いられてもよく、後述のようにフィルタリングを経て次のピクチャーのインター予測のために用いられてもよい。
【0314】
フィルタリング部15070は、復元信号にフィルタリングを適用して、主観的/客観的な画質を向上させることができる。例えば、フィルタリング部15070は、復元ピクチャーに様々なフィルタリング方法を適用して修正した(modified)復元ピクチャーを生成し、修正した復元ピクチャーをメモリ15080、具体的にメモリ15080のDPBに格納する。様々なフィルタリング方法には、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、双方向フィルター(bilateral filter)などがある。フィルタリング部15070は、後述する各々のフィルタリング方法のように、フィルタリングに関する様々な情報を生成してエントロピー符号化部15110へ伝送する。フィルタリングに関する情報はエントロピー符号化部15110で符号化されてビットストリームの形式で出力される。
【0315】
メモリ15080に送信された修正した(modified)復元ピクチャーは、インター予測部15090において参照ピクチャーとして用いられる。符号化装置はこれによってインター予測が適用される場合、符号化装置15000及び復号装置における予測ミスマッチを避けることができ、符号化の効率を向上させることもできる。
【0316】
メモリ15080のDPBは、修正した復元ピクチャーをインター予測部15090における参照ピクチャーとして用いるために格納する。メモリ15080は、現在ピクチャー内の動き情報が導出された(又は符号化された)ブロックの動き情報及び/又は既に復元したピクチャー内のブロックの動き情報を格納する。格納した動き情報は空間的隣接ブロックの動き情報又は時間的隣接ブロックの動き情報として活用するためにインター予測部15090に伝送する。メモリ15080は現在ピクチャー内において復元したブロックの復元サンプルを格納して、イントラ予測部15100へ伝送する。
【0317】
なお、上述した予測、変換、量子化の手順のうちの少なくとも1つが省略されてもよい。例えば、PCM(pulse code modulation)が適用されるブロックに対しては、予測、変換、量子化の手順を省略し、オリジナルサンプルの値をそのまま符号化してビットストリームに出力してもよい。
【0318】
図16は、実施例によるV-PCC復号プロセス(decoding process)の一例を示す。
【0319】
V-PCC復号プロセス又はV-PCCデコーダは、図4のV-PCC符号化プロセス(又はエンコーダ)の逆プロセスとなる。図16の各構成要素は、ソフトウェア、ハードウェア、プロセッサ、及び/又はそれらの組み合わせに対応する。
【0320】
逆多重化装置(demultiplexer)16000は、圧縮されたビットストリームを逆多重化して圧縮されたテクスチャーイメージ、圧縮されたジオメトリイメージ、圧縮された占有マップイメージ、圧縮された付加パッチ情報をそれぞれ出力する。
【0321】
ビデオ復元(video decompression)16001、16002又はビデオ復元部は、圧縮されたテクスチャーイメージ及び圧縮されたジオメトリイメージのそれぞれを復元する。
【0322】
占有マップ復元(occupancy map decompression)16003又は占有マップ復元部は、圧縮された占有マップイメージを復元する。
【0323】
付加パッチ情報復元(auxiliary patch information decompression)16004又は付加パッチ情報復元部は、圧縮された付加パッチ情報を復元する。
【0324】
ジオメトリ再構成(geometry reconstruction)16005又はジオメトリ再構成部は、復元されたジオメトリイメージ、復元された占有マップ、及び/又は復元された付加パッチ情報に基づいてジオメトリ情報を復元(再構成)する。例えば、符号化プロセスにおいて変更したジオメトリを再構成する。
【0325】
平滑化(smoothing)16006又は平滑化部は、再構成されたジオメトリに対して平滑化を適用する。例えば、平滑化フィルタリングが適用される。
【0326】
テクスチャー再構成(texture reconstruction)16007又はテクスチャー再構成部は、復元されたテクスチャーイメージ及び/又は平滑化されたジオメトリからテクスチャーを再構成する。
【0327】
カラー平滑化(color smoothing)16008又はカラー平滑化部は、再構成されたテクスチャーからカラー値を平滑化する。例えば、平滑化フィルタリングが適用される。
【0328】
その結果、再構成されたポイントクラウドデータが生成される。
【0329】
図は圧縮された占有マップ、ジオメトリイメージ、テクスチャーイメージ、付加パッチ情報を復号してポイントクラウドを再構成するためのV-PCCの復号プロセスを示す。実施例による各プロセスの動作は以下のようである。
【0330】
ビデオ復元(Video decompression)16001、16002
【0331】
上述したビデオ圧縮の逆プロセスであって、HEVC、VVCなどの2Dビデオコーデックを用いて、上記プロセスで生成されたジオメトリイメージ、テクスチャーイメージ、占有マップイメージの圧縮されたビットストリームを復号するプロセスである。
【0332】
図17は、実施例による2Dビデオ/イメージデコーダ(2D Video/Image Decoder)の一例を示す。
【0333】
2Dビデオ/イメージデコーダは、図15の2Dビデオ/イメージエンコーダの逆過程となる。
【0334】
図17の2Dビデオ/イメージデコーダは、図16のビデオ復元又はビデオ復元部の実施例であって、ビデオ/映像信号の復号が行われる2D video/image decoder17000の概略なブロック図を示す。2Dビデオ/イメージデコーダ17000は、図1のポイントクラウドビデオデコーダに含まれるか、又は内外部のコンポーネントで構成される。図17の各構成要素はソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
【0335】
ここで、入力ビットストリームは、上述したジオメトリイメージ、テクスチャーイメージ(特質イメージ)、占有マップイメージなどに対するビットストリームを含む。復元映像(又は出力映像、復号された映像)は、上述したジオメトリイメージ、テクスチャーイメージ(特質イメージ)、占有マップイメージに対する復元映像を示す。
【0336】
図を参照すれば、インター予測部17070及びイントラ予測部17080を合わせて予測部と呼ぶ。即ち、予測部はインター予測部180及びイントラ予測部185を含む。逆量子化部17020、逆変換部17030を合わせて残余処理部と呼ぶ。即ち、残余処理部は逆量子化部17020、逆変換部17030を含む。上記エントロピー復号部17010、逆量子化部17020、逆変換部17030、加算部17040、フィルタリング部17050、インター予測部17070及びイントラ予測部17080は、実施例によって、1つのハードウェアコンポーネント(例えば、デコーダ又はプロセッサ)によって構成される。また、メモリ17060はDPB(decoded picture buffer)を含んでもよく、デジタル記憶媒体によって構成されてもよい。
【0337】
ビデオ/映像情報を含むビットストリームが入力されると、復号装置17000は、図0.2-1の符号化装置においてビデオ/映像情報が処理されたプロセスに対応して映像を復元する。例えば、復号装置17000は、符号化装置で適用された処理ユニットを用いて復号を行う。よって、復号の処理ユニットは、例えば、コーディングユニットであり、コーディングユニットはコーディングツリーユニット又は最大コーディングユニットからQuad-tree構造及び/又はbinary-tree構造によって分割される。また、復号装置17000によって復号されて出力された復元映像信号は再生装置で再生される。
【0338】
復号装置17000は、符号化装置から出力された信号をビットストリームの形式で受信し、受信した信号はエントロピー復号部17010で復号される。例えば、エントロピー復号部17010はビットストリームをパーシングして映像復元(又はピクチャー復元)に必要な情報(例えば、ビデオ/映像情報)を導出する。例えば、エントロピー復号部17010は指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報を復号し、映像復元に必要なシンタックス要素の値、残余に関する変換係数の量子化された値を出力する。より詳細に、CABACエントロピー復号方法は、ビットストリームにおいて各構文要素に該当するビンを受信し、復号対象構文要素情報と隣接及び復号対象ブロックの復号情報又は前のステップで復号されたシンボル/ビンの情報を用いて文脈(context)モデルを決定して、決定した文脈モデルに応じてビン(bin)の発生確率を予測し、ビンの算術復号(arithmetic decoding)を行って、各構文要素の値に該当するシンボルを生成する。このとき、CABACエントロピー復号方法は、文脈モデルを決定した後、次のシンボル/ビンの文脈モデルのために復号されたシンボル/ビンの情報を用いて文脈モデルをアップデートする。エントロピー復号部17010で復号された情報のうち予測に関する情報は、予測部(インター予測部17070及びイントラ予測部17080)に提供され、エントロピー復号部17010でエントロピー復号が行われた残余値、即ち量子化された変換係数及び関連パラメータ情報は、逆量子化部17020へ入力される。また、エントロピー復号部17010で復号された情報のうちフィルタリングに関する情報は、フィルタリング部17050へ提供される。一方、符号化装置から出力された信号を受信する受信部(未図示)が復号装置17000の内部/外部要素としてさらに構成されてもよく、受信部はエントロピー復号部17010の構成要素であってもよい。
【0339】
逆量子化部17020では量子化された変換係数を量子化して変換係数を出力する。逆量子化部17020は量子化された変換係数を2次元のブロック形に再整列する。この場合、符号化装置で行われた係数スキャン順に基づいて再整列を行う。逆量子化部17020は量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得する。
【0340】
逆変換部17030では変換係数を逆変換して残余信号(残余ブロック、残余サンプルアレイ)を取得する。
【0341】
予測部は現在ブロックに対する予測を行い、現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成する。予測部はエントロピー復号部17010から出力された予測に関する情報に基づいて現在ブロックにイントラ予測が適用されるか、又はインター予測が適用されるかを決定して、具体的なイントラ/インター予測モードを決定する。
【0342】
イントラ予測部265は、現在ピクチャー内のサンプルを参照して現在ブロックを予測する。参照されるサンプルは予測モードに応じて、現在のブロックに隣接(neighbor)して位置してもよく、又は離れて位置してもよい。イントラ予測において予測モードは複数の非方向性モードと複数の方向性モードとを含む。イントラ予測部265は隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定する。
【0343】
インター予測部17070は、参照ピクチャー上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導く。このとき、インター予測モードにおいて送信される動き情報の量を減らすために隣接ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測する。動き情報は動きベクトル及び参照ピクチャーインデックスを含む。動き情報はさらにインター予測方法(L0予測、L1予測、Bi予測など)情報を含む。インター予測の場合、隣接ブロックは現在ピクチャー内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャーに存在する時間的隣接ブロック(temporal neighboring block)を含む。例えば、インター予測部17070は隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて現在ブロックの動きベクトル及び/又は参照ピクチャーインデックスを導出する。様々な予測モードに基づいてインター予測が行われ、予測に関する情報は現在ブロックに対するインター予測のモードを指示する情報を含む。
【0344】
加算部17040は取得した残余信号をインター予測部17070又はイントラ予測部265から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることで復元信号(復元ピクチャー、復元ブロック、復元サンプルアレイ)を生成する。スキップモードが適用された場合のように、処理対象ブロックに対する残余がない場合、予測されたブロックが復元ブロックとして用いられる。
【0345】
加算部17040は復元部又は復元ブロック生成部と呼ぶ。生成された復元信号は現在ピクチャー内の次の処理対象ブロックのイントラ予測のために用いられてもよく、後述のように、フィルタリングを経て次のピクチャーのインター予測のためにも用いられてもよい。
【0346】
フィルタリング部17050は復元信号にフィルタリングを適用して主観的/客観的な画質を向上させる。例えば、フィルタリング部17050は復元ピクチャーに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャーを生成し、修正された復元ピクチャーをメモリ17060、具体的にメモリ17060のDPBに送信する。様々なフィルタリング方法には、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、双方向フィルター(bilateral filter)などが含む。
【0347】
メモリ17060のDPBに格納された(修正された)復元ピクチャーは、インター予測部17070において参照ピクチャーとして使用される。メモリ17060は、現在ピクチャー内の動き情報が導出された(又は復号された)ブロックの動き情報及び/又は既に復元されたピクチャー内のブロックの動き情報を格納する。格納された動き情報は空間的隣接ブロックの動き情報又は時間的隣接ブロックの動き情報として活用するために、インター予測部17070へ伝送する。メモリ17060は現在ピクチャー内の復元されたブロックの復元サンプルを格納して、イントラ予測部17080へ伝送する。
【0348】
この明細書において、符号化装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明した実施例は、復号装置17000のフィルタリング部17050、インター予測部17070及びイントラ予測部17080にも同一又は対応する方法が適用できる。
【0349】
一方、上述した予測、逆変換、逆量子化の手順のうちの少なくとも1つが省略されてもよい。例えば、PCM(pulse code modulation)が適用されるブロックに対しては、予測、逆変換、逆量子化の手順を省略して、復号されたサンプルの値をそのまま復元映像のサンプルとして使用する。
【0350】
占有マップ復元(Occupancy map decompression)16003
【0351】
上述した占有マップ圧縮の逆過程であり、圧縮された占有マップビットストリームを復号して占有マップを復元するプロセスである。
【0352】
付加パッチ情報復元(Auxiliary patch info decompression)16004
【0353】
上述した付加パッチ情報圧縮の逆過程であり、圧縮された付加パッチ情報ビットストリームを復号して付加パッチ情報を復元するプロセスである。
【0354】
ジオメトリ再構成(Geometry reconstruction)16005
【0355】
上述したジオメトリイメージ生成の逆過程である。まず、復元された占有マップと付加パッチ情報に含まれるパッチの2D位置/サイズ情報及びブロックとパッチとのマッピング情報を用いてジオメトリイメージからパッチを抽出する。この後、抽出したパッチのジオメトリイメージと付加パッチ情報に含まれるパッチの3D位置情報を用いて、ポイントクラウドを3D空間上に復元する。1つのパッチ内に存在する任意の点(u、v)に該当するジオメトリ値をg(u、v)といい、パッチの3D空間上の位置のnormal軸、tangent軸、bitangent軸の座標値を(δ0、s0、r0)とするとき、点(u、v)にマップされる3D空間上の位置のnormal軸、tangent軸、bitangent軸の座標値であるδ(u、v)、s(u、v)、r(u、v)は、以下のように示される。
【0356】
d(u,v)=d0+g(u,v)
【0357】
s(u,v)=s0+u
【0358】
r(u,v)=r0+v
【0359】
平滑化(Smoothing)16006
【0360】
上述した符号化プロセスにおける平滑化と同様であり、圧縮プロセスで発生する画質の劣化によりパッチ境界面から生じ得る不連続性を除去するためのプロセスである。
【0361】
テクスチャー再構成(Texture reconstruction)16007
【0362】
平滑化されたポイントクラウドを構成する各点にカラー値を与えてカラーポイントクラウドを復元するプロセスである。上述したジオラマ再構成のプロセスで再構成されたジオメトリイメージとポイントクラウドのマッピング情報を用いて、2D空間でジオメトリイメージと同一位置のテクスチャーイメージピクセルに該当するカラー値を、3D空間で同一位置に対応するポイントクラウドの点に付与することで行われる。
【0363】
カラー平滑化(Color smoothing)16008
【0364】
上述したジオメトリ平滑化のプロセスと類似し、圧縮プロセスから発生する画質の劣化によってパッチ境界面から生じ得るカラー値の不連続性を除去するためのプロセスである。カラー平滑化は、以下のように行われる。
【0365】
(1) K-D treeなどを用いて復元されたカラーポイントクラウドを構成する各点の隣接点を算出する。上述したジオメトリ平滑化のプロセスで算出された隣接点情報をそのまま用いてもよい。
【0366】
(2) 各点に対して、その点がパッチ境界面に位置しているか否かを判断する。上述したジオメトリ平滑化のプロセスで算出された境界面情報をそのまま用いてもよい。
【0367】
(3) 境界面に存在する点の隣接点に対して、カラー値の分布を調べて平滑化を行うかどうかを判断する。一例として、輝度値のエントロピーが境界値(threshold local entry)以下である場合(類似する輝度値が多い場合)、エッジ部分ではないと判断して平滑化を行う。平滑化の方法としては、隣接点の平均値でその点のカラー値を置き換える方法がある。
【0368】
図18は、実施例による送信装置の動作の流れの一例を示す。
【0369】
実施例による送信装置は、図1の送信装置、図4の符号化プロセス、図15の2Dビデオ/イメージエンコーダに対応するか、それらの動作の一部/全部を行ってもよい。送信装置の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
【0370】
V-PCCを用いたポイントクラウドデータの圧縮及び送信のための送信端の動作は図に示めすようである。
【0371】
実施例によるポイントクラウドデータ送信装置は、送信装置などと呼ばれる。
【0372】
パッチ生成部18000は、まずポイントクラウド(point cloud)の2Dイメージマッピングのためのパッチ(patch)を生成する。パッチ生成の結果物として付加パッチ情報が生成され、該当情報はジオメトリイメージ(geometry image)生成、テクスチャーイメージ(texture image)生成、平滑化(smoothing)又は平滑化のためのジオメトリ復元プロセスに用いられる。
【0373】
パッチパッキング部18001は、パッチ生成部で生成されたパッチを2Dイメージ内にマップするパッチパッキングのプロセスを行う。パッチパッキングの結果物として占有マップ(occupancy map)が生成され、占有マップはジオメトリイメージ生成、テクスチャーイメージ生成、平滑化のためのジオメトリ復元プロセスに用いられる。
【0374】
ジオメトリイメージ生成部18002は、付加パッチ情報と占有マップを用いてジオメトリイメージを生成し、生成したジオメトリイメージはビデオ符号化により1つのビットストリームに符号化される。
【0375】
符号化前処理部18003は、イメージパディングを含む。生成されたジオメトリイメージ又は符号化されたジオメトリビットストリームを復号して再生成されたジオメトリイメージは3Dジオメトリ復号に使用され、その後、平滑化過程が行われる。
【0376】
テクスチャーイメージ生成部18004は、平滑化された3Dジオメトリ、ポイントクラウドデータ、付加パッチ情報及び占有マップを用いてテクスチャーイメージを生成する。生成されたテクスチャーイメージは1つのビデオビットストリームに符号化される。
【0377】
メタデータ符号化部18005は、付加パッチ情報を1つのメタデータビットストリームに符号化する。
【0378】
ビデオ符号化部18006は、占有マップを1つのビデオビットストリームに符号化する。
【0379】
多重化部18007は、生成されたジオメトリ、テクスチャーイメージ、占有マップのビデオビットストリームと付加パッチ情報メタデータビットストリームを1つのビットストリームに多重化する。
【0380】
送信部18008は、ビットストリームを受信端に送信する。又は生成されたジオメトリ、テクスチャーイメージ、占有マップのビデオビットストリームと付加パッチ情報メタデータビットストリームは1つ以上のトラックデータでファイルが生成されるか、セグメントでカプセル化されて送信部から受信端に送信される。
【0381】
図19は、実施例による受信装置の動作の流れの一例を示す。
【0382】
実施例による受信装置は、図1の受信装置、図16の復号プロセス、図17の2Dビデオ/イメージエンコーダに対応するか、それらの動作の一部/全部を行う。受信装置の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
【0383】
V-PCCを用いたポイントクラウドデータの受信及び復元のための受信端の動作プロセスは図面に従う。V-PCC受信端の動作は、図18のV-PCC送信端の動作の逆過程である。
【0384】
実施例によるポイントクラウドデータ受信装置は、受信装置などと呼ばれる。
【0385】
受信されたポイントクラウドのビットストリームはファイル/セグメンデカプセル化後に圧縮されたジオメトリイメージ、テクスチャーイメージ、占有マップのビデオビットストリームと付加パッチ情報メタデータビットストリームに逆多重化部19000により逆多重化される。ビデオ復号部19001とメタデータ復号化部19002は逆多重化されたビデオビットストリームとメタデータビットストリームを復号する。ジオメトリ復元部19003により復号されたジオメトリイメージと占有マップ及び付加パッチ情報を用いて3Dジオメトリが復元され、その後、平滑化部19004による平滑化過程が行われる。平滑化された3Dジオメトリにテクスチャーイメージを用いてカラー値を付与することにより、カラーポイントクラウド映像/ピクチャーがテクスチャー復元部19005により復元される。その後、客観的/主観的な視覚品質を向上させるために、カラー平滑化過程をさらに行い、これにより導出された修正された(modified)ポイントクラウド映像/ピクチャーは、レンダリングプロセス後にユーザに見せられる。なお、カラー平滑化プロセスは、場合によっては省略してもよい。
【0386】
図20は、実施例によるV-PCCベースのポイントクラウドデータの格納及びストリーミングのためのアーキテクチャの一例を示す。
【0387】
図20のシステムの一部/全部は、図1の送受信装置、図4の符号化プロセス、図15の2Dビデオ/イメージエンコーダ、図16の復号プロセス、図18の送信装置、及び/又は図19の受信装置などの一部/全部を含む。図面の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及びそれらの組み合わせに対応する。
【0388】
図20ないし図22は実施例による送受信装置にさらにシステムが連結された構造を示す。実施例による送受信装置及びシステムを全て含めて、実施例による送受信装置と称する。
【0389】
図20ないし図22に示す実施例による装置は、図18などに該当する送信装置は符号化されたポイントクラウドデータを含むビットストリームを送信するためのデータフォーマットに合うコンテナを生成する。
【0390】
実施例によるV-PCCシステムは、ポイントクラウドデータを含むコンテナを生成し、効率的な送受信のために必要な付加データをコンテナにさらに追加する。
【0391】
実施例による受信装置は、図20ないし図22のようなシステムに基づいてコンテナを受信して、パース(parse)する。図19などに該当する受信装置はパースされたビットストリームからポイントクラウドデータを復号して復元する。
【0392】
図はビデオベースポイントクラウド圧縮(V-PCC)に基づいて圧縮されるポイントクラウドデータを格納又はストリーミングするための全体的なアーキテクチャを示す。ポイントクラウドデータの格納及びストリーミングのプロセスは、取得プロセス、符号化プロセス、送信プロセス、復号プロセス、レンダリングプロセス及び/又はフィードバックプロセスを含む。
【0393】
実施例は、ポイントクラウドメディア/コンテンツ/データを効率的に提供する方法を提案する。
【0394】
ポイントクラウド取得部20000は、ポイントクラウドメディア/コンテンツ/データを効率的に提供するために、まず、ポイントクラウドビデオを取得する。例えば、1つ以上のカメラによって、ポイントクラウドのキャプチャー、合成又は生成プロセスなどを通じたポイントクラウドデータを取得する。この取得プロセスにより、各ポイントの3D位置(x、y、z位置値などで示され、以下、ジオメトリと呼ぶ)、各ポイントの特質(色、反射率、透明度など)を含むポイントクラウドビデオを取得することができる。また取得したポイントクラウドビデオはこれを含む、例えば、PLY(Polygon File format or the Stanford Triangle format)ファイルなどで生成することができる。複数のフレームを有するポイントクラウドデータの場合、1つ以上のファイルを取得することができる。このプロセスにおいてポイントクラウド関連メタデータ(例えば、キャプチャーなどに関連するメタデータなど)を生成することができる。
【0395】
キャプチャーしたポイントクラウドビデオは、コンテンツの品質を向上させるための後処理が必要となる場合がある。映像キャプチャーのプロセスにおいて、カメラ装備が提供する範囲内で最大/最小の深さ値を調整してもよいが、調整後にも所望しない領域のポイントデータが含まれることがあるため、所望しない領域(例えば、背景)を除去したり、連結された空間を認識して穴(spatial hole)を埋める後処理を行ってもよい。また、空間座標系を共有するカメラから抽出されたポイントクラウドは校正によって取得された各カメラの位置座標を基準として、各ポイントに対するグローバル座標系への変換プロセスにより1つのコンテンツに統合してもよい。これにより、ポイントの密度の高いポイントクラウドビデオを取得することができる。
【0396】
ポイントクラウド前処理部(point cloud pre-processing unit)20001は、ポイントクラウドビデオを1つ以上のピクチャー/フレームに生成する。ここで、ピクチャー/フレームは、一般に特定の時間帯の1つの映像を示す単位を意味する。また、ポイントクラウドビデオを構成する点を1つ以上のパッチ(ポイントクラウドを構成する点の集合であって、同じパッチに属する点は3D空間上において互いに隣接し、2Dイメージへのマッピングプロセスにおいて6面のバウンディングボックスの平面のうち同じ方向にマップされる点の集合)に分けて2D平面にマップする際に、2D平面のその位置にデータが存在するか否かを0又は1の値で知らせる2進マップ(binary map)である占有マップピクチャー/フレームを生成することができる。また、ポイントクラウドビデオを成す各点の位置情報(geometry)をパッチ単位で表す深さマップ形式のピクチャー/フレームであるジオメトリピクチャー/フレームを生成することができる。ポイントクラウドビデオを成す各点の色情報をパッチ単位で表すピクチャー/フレームであるテクスチャーピクチャー/フレームを生成することができる。このプロセスにおいて、個別パッチからポイントクラウドを再構成するために必要なメタデータを生成することができ、このメタデータは、各パッチの2D/3D空間における位置、サイズなどのパッチに関する情報(付加情報又は付加パッチ情報という)を含む。このようなピクチャー/フレームが時間順に連続して生成され、ビデオストリーム又はメタデータストリームを構成することができる。
【0397】
ポイントクラウドビデオエンコーダ20002は、ポイントクラウドビデオに関連する1つ以上のビデオストリームに符号化することができる。1つのビデオは複数のフレームを含み、1つのフレームは停止映像/ピクチャーに対応する。この明細書において、ポイントクラウドビデオとは、ポイントクラウド映像/フレーム/ピクチャーを含み、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャーと混用することがある。ポイントクラウドビデオエンコーダは、ビデオベースポイントクラウド圧縮(V-PCC)の手順を行う。ポイントクラウドビデオエンコーダは、圧縮及びコーティングの効率のために、予測、変換、量子化、エントロピーコーティングなどの一連の手順を行うことができる。符号化されたデータ(符号化されたビデオ/映像情報)は、ビットストリーム形式で出力される。V-PCC手順に基づく場合、ポイントクラウドビデオエンコーダは、後述のように、ポイントクラウドビデオをジオメトリビデオ、特質(attribute)ビデオ、占有(occupancy)マップビデオ、またメタデータ、例えば、パッチに関する情報に分けて符号化することができる。ジオメトリビデオはジオメトリイメージを含んでもよく、特質(attribute)ビデオは特質イメージを含んでもよく、占有(occupancy)マップビデオは占有マップイメージを含んでもよい。付加情報であるパッチデータは、パッチに関する情報を含んでもよい。特質ビデオ/イメージは、テクスチャービデオ/イメージを含んでもよい。
【0398】
ポイントクラウドイメージエンコーダ20003は、ポイントクラウドビデオに関連する1つ以上のイメージに符号化することができる。ポイントクラウドイメージエンコー20003は、ビデオベースポイントクラウド圧縮(V-PCC)の手順を行う。ポイントクラウドイメージエンコーダは、圧縮及びコーティングの効率のために、予測、変換、量子化、エントロピーコーティングなどの一連の手順を行うことができる。符号化されたイメージは、ビットストリーム形式で出力される。V-PCC手順に基づく場合、ポイントクラウドイメージエンコーダ20003は、後述のように、ポイントクラウドイメージをジオメトリイメージ、特質(attribute)イメージ、占有(occupancy)マップイメージ、またメタデータ、例えば、パッチに関する情報に分けて符号化することができる。
【0399】
実施例によるポイントクラウドビデオエンコーダ及び/又はポイントクラウドイメージエンコーダは、実施例によるPCCビットストリーム(G-PCC及び/又はV-PCCビットストリーム)を生成する。
【0400】
実施例によって、ビデオエンコーダ20002、イメージエンコーダ20003、ビデオデコーダ20006、イメージデコーダは、上述のように、1つのエンコーダ/デコーダによって行われてもよく、図面のように、別の経路によって行われてもよい。
【0401】
カプセル化部(file/segment encapsulation unit)20004は、符号化されたポイントクラウドデータ及び/又はポイントクラウドに関連するメタデータをファイル又はストリーミングのためのセグメントなどの形式でカプセル化する。ここで、ポイントクラウドに関連するメタデータは、メタデータ処理部などから伝送されてもよい。メタデータ処理部は、ポイントクラウドビデオ/イメージエンコーダに含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。カプセル化処理部は、そのビデオ/イメージ/メタデータをISOBMFFなどのファイルフォーマットにカプセル化するか、DASHセグメントなどの形態に処理する。カプセル化処理部は、実施例によれば、ポイントクラウドに関連するメタデータをファイルフォーマット上に含ませることができる。ポイントクラウドメタデータは、例えば、ISOBMFFファイルフォーマット上の様々なレベルのボックス(box)に含まれるか、ファイル内において別のトラック内のデータに含まれる。実施例によれば、カプセル化処理部は、ポイントクラウド関連メタデータそのものをファイルにカプセル化することができる。
【0402】
実施例によるカプセル化及びカプセル化部は、G-PCC/V-PCCビットストリームをファイル内の1つ或いは複数のトラックに分割格納し、そのためのシグナリング情報も共にカプセル化する。また、G-PCC/V-PCCビットストリーム上に含まれているatlasストリームをファイル内のトラックに格納し、関連するシグナリング情報を格納してもよい。さらに、 G-PCC/V-PCCビットストリーム上に存在するSEIメッセージをファイル内のトラックに格納し、関連するシグナリング情報を格納してもよい。
【0403】
送信処理部は、ファイルフォーマットに応じてカプセル化されたポイントクラウドデータに送信のための処理を施してもよい。送信処理部は、送信部に含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。送信処理部は、任意の送信プロトコルに従ってポイントクラウドデータを処理することができる。送信のための処理には、放送網を介する伝送のための処理、ブロードバンドを介する伝送のための処理を含んでもよい。実施例によれば、送信処理部は、ポイントクラウドデータだけではなく、メタデータ処理部からポイントクラウド関連メタデータが伝送され、これに送信のための処理を施してもよい。
【0404】
送信部は、ポイントクラウドビットストリーム又はそのビットストリームを含むファイル/セグメントをデジタル記憶媒体又はネットワークを介して受信装置の受信部へ伝送する。送信のために、任意の送信プロトコルによる処理を行ってもよい。送信のために処理されたデータは、放送網及び/又はブロードバンドを介して伝送される。このデータは、オン・デマンド(On Demand)方式で受信側に伝送される。デジタル記憶媒体には、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々なものが含まれる。送信部は、所定のファイルフォーマットでメディアファイルを生成するための要素を含み、放送/通信ネットワークを介する送信のための要素を含んでもよい。受信部は、ビットストリームを抽出して復号装置に送信する。
【0405】
受信部は、この明細書によるポイントクラウドデータ送信装置が送信したポイントクラウドデータを受信する。送信されるチャネルに応じて、受信部は、放送網を介してポイントクラウドデータを受信してもよく、ブロードバンドを介してポイントクラウドデータを受信してもよい。又は、デジタル記憶媒体によってポイントクラウドビデオデータを受信してもよい。受信部は、受信したデータを復号し、これをユーザのビューポートなどに応じてレンダリングしてもよい。
【0406】
受信処理部は、受信されたポイントクラウドビデオデータに対して送信プロトコルによる処理を行う。受信処理部は、受信部に含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。送信側で送信のための処理が行われたことに対応して、受信処理部は、上述した送信処理部の逆過程を行う。受信処理部は、取得したポイントクラウドビデオをデカプセル化部へ伝送し、取得したポイントクラウドに関連するメタデータはメタデータ処理部へ伝送する。
【0407】
デカプセル化部(file/segment decapsulation unit)20005は、受信処理部から送信されたファイル形式のポイントクラウドデータをデカプセル化する。デカプセル化部は、ISOBMFFなどによるファイルをデカプセル化し、ポイントクラウドビットストリーム又はポイントクラウド関連メタデータ(又は、別のメタデータビットストリーム)を取得することができる。取得したポイントクラウドビットストリームは、ポイントクラウドビデオデコーダ及びポイントクラウドイメージデコーダに伝送され、取得したポイントクラウド関連メタデータ(又はメタデータビットストリーム)は、メタデータ処理部に伝送される。ポイントクラウドビットストリームは、メタデータ(メタデータビットストリーム)を含んでもよい。メタデータ処理部は、ポイントクラウドビデオデコーダに含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。デカプセル化部が取得するポイントクラウド関連メタデータは、ファイルフォーマット内のボックス又はトラック形式であってもよい。デカプセル化処理部は、必要な場合、メタデータ処理部からデカプセル化に必要なメタデータが伝送されることがある。ポイントクラウド関連メタデータは、ポイントクラウドビデオデコーダ及び/又はポイントクラウドイメージデコーダに伝送されてポイントクラウド復号に用いられてもよく、又はレンダラーに伝送されてポイントクラウドレンダリングに用いられてもよい。
【0408】
ポイントクラウドビデオデコーダ20006は、ビットストリームを受信してポイントクラウドビデオエンコーダの動作に対応する逆過程を行うことでビデオ/映像を復号する。この場合、ポイントクラウドビデオデコーダ20006は、後述のように、ポイントクラウドビデオをジオメトリビデオ、特質(attribute)ビデオ、占有(occupancy)マップビデオ、また付加パッチ情報(auxiliary patch information)に分けて復号することができる。ジオメトリビデオはジオメトリイメージを含んでもよく、特質(attribute)ビデオは特質イメージを含んでもよく、占有(occupancy)マップビデオは占有マップイメージを含んでもよい。付加情報は、付加パッチ情報(auxiliary patch information)を含んでもよい。特質ビデオ/イメージはテクスチャービデオ/イメージを含んでもよい。
【0409】
復号されたジオメトリビデオ/イメージと占有マップ及び付加パッチ情報を用いて3Dジオメトリが復元され、その後に平滑化処理を行う。平滑化された3Dジオメトリに、テクスチャービデオ/イメージを用いてカラー値を割り当てることで、カラーポイントクラウド映像/ピクチャーが復元される。レンダラーは、復元されたジオメトリ、カラーポイントクラウド映像/ピクチャーをレンダリングする。レンダリングされたビデオ/映像は、ディスプレイ部でディスプレイされる。ユーザは、VR/ARディスプレイ又は一般のディスプレイなどによってレンダリングされた結果の全部又は一部の領域を見ることができる。
【0410】
センシング/トラッキング部(Sensing/Tracking)20007は、ユーザ又は受信側からオリエンテーション情報及び/又はユーザビューポート情報を取得して受信部及び/又は送信部に送信する。オリエンテーション情報は、ユーザの頭の位置、角度、動きなどに関する情報を示したり、ユーザが見ている装置の位置、角度、動きなどに関する情報を示す。この情報に基づいて、現在ユーザが3D空間で見ている領域に関する情報、即ちビューポート情報を算出する。
【0411】
ビューポート情報は、現在ユーザが3D空間において装置又はHMDなどを介して見ている領域に関する情報であってもよい。ディスプレイなどの装置は、オリエンテーション情報、装置が支援する垂直(vertical)又は水平(horizontal)FOVなどに基づいてビューポート領域を抽出することができる。オリエンテーション又はビューポート情報は、受信側で抽出又は算出する。受信側で分析したオリエンテーション又はビューポート情報は、フィードバックチャネルを介して送信側へ伝送されてもよい。
【0412】
受信部は、センシング/トラッキング部によって取得されたオリエンテーション情報及び/又はユーザが現在見ている領域を示すビューポート情報を使用して特定の領域、即ちオリエンテーション情報及び/又はビューポート情報が示す領域のメディアデータだけを効率的にファイルから抽出又は復号する。また送信部は、センシング/トラッキング部によって取得されたオリエンテーション情報及び/又はビューポート情報を使用して特定の領域、即ちオリエンテーション情報及び/又はビューポート情報が示す領域のメディアデータだけを効率的に符号化したり、ファイルを生成及び送信することができる。
【0413】
レンダラーは、3D空間上に復号されたポイントクラウドデータをレンダリングする。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされる。ユーザは、VR/ARディスプレイ又は一般のディスプレイなどを介してレンダリングされた結果の全部又は一部の領域を見ることができる。
【0414】
フィードバックプロセスは、レンダリング/ディスプレイのプロセスから取得し得る様々なフィードバック情報を送信側に送信するか、又は受信側のデコーダに送信することを含んでもよい。フィードバックプロセスによって、ポイントクラウドデータの消費において相互作用(interactivity)を提供することができる。実施例によれば、フィードバックプロセスにおいて、ヘッドオリエンテーション(Head Orientation)情報、ユーザが現在見ている領域を示すビューポート(Viewport)情報などを伝送することができる。実施例によれば、ユーザは、VR/AR/MR/自立走行環境において具現されたものと相互作用することができるが、この場合、相互作用に関する情報をフィードバックプロセスにおいて送信側及びサービス供給者側に伝送することもできる。実施例によれば、フィードバックプロセスは省略してもよい。
【0415】
実施例によれば、上述したフィードバック情報は、送信側に伝送されるだけではなく、受信側で消費することもできる。即ち、上述したフィードバック情報を用いて受信側のデカプセル化処理、復号、レンダリングプロセスなどを行ってもよい。例えば、オリエンテーション情報及び/又はビューポート情報を用いて、ユーザが現在見ている領域に対するポイントクラウドデータを優先してデカプセル化、復号及びレンダリングしてもよい。
【0416】
図21は、実施例によるポイントクラウドデータの格納及び送信装置の構成の一例を示す。
【0417】
図21は、実施例によるポイントクラウドシステムを示し、システムの一部/全部は、図1の送受信装置、図4の符号化プロセス、図15の2Dビデオ/イメージエンコーダ、図16の復号プロセス、図18の送信装置及び/又は図19の受信装置などの一部/全部を含むことができる。また、図20のシステムの一部/全部に含まれるか、対応することができる。
【0418】
実施例によるポイントクラウドデータ送信装置は、図面のように構成される。送信装置の各構成要素は、モジュール/ユニット/コンポーネント/ハードウェア/ソフトウェア/プロセッサなどであってもよい。
【0419】
ポイントクラウドのジオメトリ、特質、付加データ(又は付加情報)、メッシュデータなどは、それぞれ独立したストリームで構成されるか、又はファイルにおいてそれぞれ異なるトラックに格納されてもよい。さらに、別のセグメントに含まれてもよい。
【0420】
ポイントクラウド取得部(Point Cloud Acquisition unit)21000は、ポイントクラウドを取得する。例えば、1つ以上のカメラを介してポイントクラウドのキャプチャー、合成又は生成プロセスなどによりポイントクラウドデータを取得する。このような取得プロセスにより、各ポイントの3D位置(x、y、z位置値などで示され、以下、これをジオメトリと呼ぶ)、各ポイントの特質(色、反射率、透明度など)を含むポイントクラウドデータが得られ、これを含む、例えば、PLY(Polygon File format or the Stanford Triangle format)ファイルなどで生成することができる。複数のフレームを有するポイントクラウドデータの場合、1つ以上のファイルを取得することができる。このプロセスにおいて、ポイントクラウド関連メタデータ(例えば、キャプチャーなどに関連するメタデータなど)を生成することができる。
【0421】
パッチ生成部(Patch Generation unit)21001は、ポイントクラウドデータからパッチを生成する。パッチ生成部21001は、ポイントクラウドデータ又はポイントクラウドビデオを1つ以上のピクチャー/フレームで生成する。一般に、ピクチャー/フレームは、特定の時間帯の1つの映像を示す単位を意味する。ポイントクラウドビデオを構成する点を1つ以上のパッチ(ポイントクラウドを構成する点の集合であり、同じパッチに属する点は3D空間において互いに隣接しており、2Dイメージへのマッピングプロセスにおいて6面のバウンディングボックス平面のうち同じ方向にマップされる点の集合)に分けて2D平面にマップする際、2D平面のその位置にデータが存在するか否かを0又は1の値で知らせる2進マップ(binary map)である占有(occupancy)マップピクチャー/フレームを生成することができる。また、ポイントクラウドビデオを成す各点の位置情報(geometry)をパッチ単位で表す深さマップ形式のピクチャー/フレームであるジオメトリピクチャー/フレームを生成する。ポイントクラウドビデオを成す各点の色情報をパッチ単位で表すピクチャー/フレームであるテクスチャーピクチャー/フレームを生成することができる。このプロセスにおいて、個別パッチからポイントクラウドを再構成するために必要なメタデータを生成することができ、このメタデータは、各パッチの2D/3D空間における位置、サイズなどパッチに関する情報を含んでもよい。このようなピクチャー/フレームが時間順に連続して生成され、ビデオストリーム又はメタデータストリームを構成することができる。
【0422】
また、パッチは、2Dイメージマッピングのために使用してもよい。例えば、ポイントクラウドデータが立方体の各面にプロジェクトされる。パッチ生成後、生成されたパッチに基づいて、ジオメトリイメージ、1つ又は1つ以上の特質イメージ、占有マップ、付加データ及び/又はメッシュデータなどを生成することができる。
【0423】
前処理部又は制御部(controller)によって、ジオメトリイメージ生成(Geometry image Generation)、特質イメージ生成(Attribute image Generation)、占有マップ生成(Occupancy map Generation)、付加データ生成(Auxiliary Data Generation)及び/又はメッシュデータ生成(Mesh Data Generation)が行われる。
【0424】
ジオメトリイメージ生成部(Geometry image Generation unit)21002は、パッチ生成の結果物に基づいてジオメトリイメージを生成する。ジオメトリは、3D空間上のポイントを示す。パッチに基づいてパッチの2Dイメージパッキングに関連する情報を含む占有マップ、付加データ(パッチデータ)及び/又はメッシュデータなどを使用して、ジオメトリイメージを生成する。ジオメトリイメージは、パッチ生成後に生成されたパッチの深さ(例えば、近さ、遠さ)などの情報に関連する。
【0425】
特質イメージ生成部(Attribute image Generation unit)21003は、特質イメージを生成する。例えば、特質はテクスチャー(Texture)を示すことができる。テクスチャーは、各ポイントに対応するカラー値であってもよい。実施例によれば、テクスチャーを含む複数(N個)の特質(色、反射率など)イメージを生成する。複数の特質は、マテリアル(材質に関する情報)、反射率などを含む。また、実施例によれば、特質は、同じテクスチャーでも視覚、光によってカラーが変わる情報をさらに含んでもよい。
【0426】
占有マップ生成部(Occupancy map Generation unit)21004は、パッチから占有マップを生成する。占有マップは、そのジオメトリ又は特質イメージなどのピクセルにデータの存否を示す情報を含む。
【0427】
付加データ生成部(Auxiliary Data Generation unit)21005は、パッチに関する情報を含む付加データを生成する。即ち、付加データは、ポイントクラウド客体のパッチに関するメタデータを示す。例えば、パッチに対する法線(normal)ベクトルなどの情報を示すことができる。具体的には、実施例によれば、付加データは、パッチからポイントクラウドを再構成するために必要な情報を含む(例えば、パッチの2D/3D空間上の位置、サイズなどに関する情報、プロジェクション平面(normal)識別情報、パッチマッピング情報など)。
【0428】
メッシュデータ生成部(Mesh Data Generation unit)21006は、パッチからメッシュデータを生成する。メッシュは、隣接したポイント間の連結情報を示す。例えば、三角形のデータを示してもよい。例えば、実施例によるメッシュデータは、各ポイント間の接続(connectivity)情報を意味する。
【0429】
ポイントクラウド前処理部又は制御部は、パッチ生成、ジオメトリイメージ生成、特質イメージ生成、占有マップ生成、付加データ生成、メッシュデータ生成に関連するメタデータ(Metadata)を生成する。
【0430】
ポイントクラウド送信装置は、前処理部で生成された結果物に対応して、ビデオ符号化及び/又はイメージ符号化を行う。ポイントクラウド送信装置は、ポイントクラウドビデオデータだけではなく、ポイントクラウドイメージデータを生成する。実施例によれば、ポイントクラウドデータはビデオデータのみを、イメージデータのみを、及び/又はビデオデータ及びイメージデータの両方を含んでもよい。
【0431】
ビデオ符号化部21007は、ジオメトリビデオ圧縮、特質ビデオ圧縮、占有マップビデオ圧縮、付加データ圧縮及び/又はメッシュデータ圧縮を行う。ビデオ符号化部は、符号化された各々のビデオデータを含むビデオトリームを生成する。
【0432】
具体的には、ジオメトリビデオ圧縮はポイントクラウドジオメトリビデオデータを符号化する。特質ビデオ圧縮はポイントクラウドの特質ビデオデータを符号化する。付加データ圧縮はポイントクラウドビデオデータに関連する付加データを符号化する。メッシュデータ圧縮(Mesh data compression)はポイントクラウドビデオデータのメッシュデータを符号化する。ポイントクラウドビデオ符号化部の各動作は、並列に行われる。
【0433】
イメージ符号化部21008は、ジオメトリイメージ圧縮、特質イメージ圧縮、占有マップイメージ圧縮、付加データ圧縮及び/又はメッシュデータ圧縮を行う。イメージ符号化部は、符号化された各々のイメージデータを含むイメージを生成する。
【0434】
具体的には、ジオメトリイメージ圧縮は、ポイントクラウドジオメトリイメージデータを符号化する。特質イメージ圧縮はポイントクラウドの特質イメージデータを符号化する。付加データ圧縮はポイントクラウドイメージデータに関連する付加データを符号化する。メッシュデータ圧縮(Mesh data compression)はポイントクラウドイメージデータに関連するメッシュデータを符号化する。ポイントクラウドイメージ符号化部の各動作は、並列に行われる。
【0435】
ビデオ符号化部及び/又はイメージ符号化部は前処理部からメタデータを受信する。ビデオ符号化部及び/又はイメージ符号化部はメタデータに基づいて各々の符号化プロセスを行う。
【0436】
ファイル/セグメントカプセル化部(File/Segment Encapsulation)21009は、ビデオストリーム及び/又はイメージをファイル及び/又はセグメント形式にカプセル化する。ファイル/セグメントカプセル化部はビデオトラックカプセル化、メタデータトラックカプセル化及び/又はイメージカプセル化を行う。
【0437】
ビデオトラックカプセル化は、1つ又は1つ以上のビデオストリームを1つ又は1つ以上のトラックカプセル化することができる。
【0438】
メタデータトラックカプセル化は、ビデオストリーム及び/又はイメージに関連するメタデータを1つ又は1つ以上のトラックにカプセル化する。メタデータは、ポイントクラウドデータのコンテンツに関連するデータを含む。例えば、初期ビューイングオリエンテーションメタデータ(Initial Viewing Orientation Metadata)を含む。実施例によれば、メタデータは、メタデータトラックにカプセル化されてもよく、ビデオトラック又はイメージトラックに共にカプセル化されてもよい。
【0439】
イメージカプセル化は1つ又は1つ以上のイメージを1つ又は1つ以上のトラック又はアイテムにカプセル化する。
【0440】
例えば、実施例によれば、4つのビデオストリームと2つのイメージがカプセル化部に入力される場合、4つのビデオストリーム及び2つのイメージを1つのファイル内にカプセル化する。
【0441】
実施例によるポイントクラウドビデオエンコーダ及び/又はポイントクラウドイメージエンコーダは、実施例によるG-PCC/V-PCCビットストリームを生成する。
【0442】
ファイル/セグメントカプセル化部は、前処理部からメタデータを受信する。ファイル/セグメントカプセル化部は、メタデータに基づいてカプセル化を行う。
【0443】
ファイル/セグメントカプセル化によって生成されたファイル及び/又はセグメントは、ポイントクラウド送信装置又は送信部によって送信される。例えば、DASHベースのプロトコルに基づいてセグメントが伝達(Delivery)できる。
【0444】
実施例によるカプセル化及びカプセル化部は、V-PCCビットストリームをファイル内に1つ又は複数のトラックに分割格納し、そのためのシグナリング情報も共にカプセル化することができる。また、V-PCCビットストリーム上に含まれているatlasストリームをファイル内のトラックに格納し、関連するシグナリング情報を格納することができる。さらに、V-PCCビットストリーム上に存在するSEIメッセージをファイル内のトラックに格納し、関連するシグナリング情報を格納することができる。
【0445】
伝達部(Delivery)は、ポイントクラウドビットストリーム又はそのビットストリームを含むファイル/セグメントをデジタル記憶媒体又はネットワークを介して受信装置の受信部に伝達する。送信のために、任意の送信プロトコルによる処理を行う。送信のための処理を終えたデータは、放送網及び/又はブロードバンドを介して伝送される。このデータは、オン・デマンド(On Demand)方式で受信側へ伝送してもよい。デジタル記憶媒体には、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体がある。伝達部は、所定のファイルフォーマットでメディアファイルを生成するための要素を含み、放送/通信ネットワークを介する送信のための要素を含む。伝達部は、受信部からオリエンテーション情報及び/又はビューポート情報を受信する。伝達部は、取得したオリエンテーション情報及び/又はビューポート情報(又はユーザが選択した情報)を前処理部、ビデオ符号化部、イメージ符号化部、ファイル/セグメントカプセル化部及び/又はポイントクラウド符号化部に伝送する。オリエンテーション情報及び/又はビューポート情報に基づいて、ポイントクラウド符号化部は全てのポイントクラウドデータを符号化するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを符号化する。オリエンテーション情報及び/又はビューポート情報に基づいて、ファイル/セグメントカプセル化部は全てのポイントクラウドデータをカプセル化するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータをカプセル化することができる。オリエンテーション情報及び/又はビューポート情報に基づいて、伝達部は全てのポイントクラウドデータを伝達するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを伝達する。
【0446】
例えば、前処理部は、全てのポイントクラウドデータに対して上述した動作を行ってもよく、オリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータに対して動作を行ってもよい。ビデオ符号化部及び/又はイメージ符号化部は、全てのポイントクラウドデータに対して上述した動作を行ってもよく、オリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータに対して上述した動作を行わってもよい。ファイル/セグメントカプセル化部は、全てのポイントクラウドデータに対して上述した動作を行ってもよく、オリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータに対して上述した動作を行ってもよい。送信部は、全てのポイントクラウドデータに対して上述した動作を行ってもよく、オリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータに対して上述した動作を行ってもよい。
【0447】
図22は、実施例によるポイントクラウドデータ受信装置の構成の一例を示す。
【0448】
図22は、実施例によるポイントクラウドシステムを示し、システムの一部/全部は、図1の送受信装置、図4の符号化プロセス、図15の2Dビデオ/イメージエンコーダ、図16の復号プロセス、図18の送信装置、及び/又は図19の受信装置などの一部/全部を含むことができる。また、図20及び図21のシステムの一部/全部に含まれるか又は対応する。
【0449】
受信装置の各構成は、モジュール/ユニット/コンポーネント/ハードウェア/ソフトウェア/プロセッサなどであってもよい。伝達クライアント(Delivery Client)は、実施例によるポイントクラウドデータ送信装置が送信したポイントクラウドデータ、ポイントクラウドビットストリーム又はそのビットストリームを含むファイル/セグメントを受信する。送信されるチャネルに応じて、受信装置は、放送網を介してポイントクラウドデータを受信するか、又はブロードバンドを介してポイントクラウドデータを受信する。又は、デジタル記憶媒体によってポイントクラウドデータを受信してもよい。受信装置は、受信したデータを復号し、これをユーザのビューポートなどに従ってレンダリングするプロセスを含んでもよい。受信処理部は、受信されたポイントクラウドデータに対して送信プロトコルに従う処理を行う。受信処理部は受信部に含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。送信側で行った送信のための処理に対応して、受信処理部は、上述した送信処理部の逆過程を行う。受信処理部は、取得したポイントクラウドデータをファイル/セグメントデカプセル化部に伝送し、取得したポイントクラウド関連メタデータはメタデータ処理部に伝送することができる。
【0450】
センシング/トラッキング部(Sensing/Tracking)は、オリエンテーション情報及び/又はビューポート情報を取得する。センシング/トラッキング部は、取得したオリエンテーション情報及び/又はビューポート情報を伝達クライアント、ファイル/セグメントデカプセル化部、ポイントクラウド復号部に伝送する。
【0451】
伝達クライアントは、オリエンテーション情報及び/又はビューポート情報に基づいて、全てのポイントクラウドデータを受信するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを受信する。ファイル/セグメントデカプセル化部は、オリエンテーション情報及び/又はビューポート情報に基づいて、全てのポイントクラウドデータをデカプセル化するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータをデカプセル化する。ポイントクラウド復号部(ビデオ復号部及び/又はイメージ復号部)は、オリエンテーション情報及び/又はビューポート情報に基づいて、全てのポイントクラウドデータを復号するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを復号する。ポイントクラウドプロセシング部は、全てのポイントクラウドデータを処理するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを処理する。
【0452】
ファイル/セグメントデカプセル化部(File/Segment decapsulation unit)22000は、ビデオトラックデカプセル化(Video Track Decapsulation)、メタデータトラックデカプセル化(Metadata Track Decapsulation)及び/又はイメージデカプセル化(Image Decapsulation)を行う。デカプセル化処理部は、受信処理部から伝達されたファイル形式のポイントクラウドデータをデカプセル化する。デカプセル化処理部は、ISOBMFFなどによるファイル又はセグメントをデカプセル化し、ポイントクラウドビットストリーム及びポイントクラウド関連メタデータ(又は別のメタデータビットストリーム)を取得する。取得したポイントクラウドビットストリームは、ポイントクラウド復号部に伝送し、取得したポイントクラウド関連メタデータ(又はメタデータビットストリーム)は、メタデータ処理部に伝送する。ポイントクラウドビットストリームは、メタデータ(メタデータビットストリーム)を含んでもよい。メタデータ処理部は、ポイントクラウドビデオデコーダに含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。デカプセル化処理部が取得するポイントクラウド関連メタデータは、ファイルフォーマット内のボックス又はトラックの形態であってもよい。ファイル/セグメントデカプセル化部は、必要な場合、メタデータ処理部からデカプセル化に必要なメタデータが伝送されてもよい。ポイントクラウド関連メタデータは、ポイントクラウド復号部に伝送されて、ポイントクラウド復号に用いられてもよく、ポイントクラウドレンダリング部に伝送されて、ポイントクラウドレンダリングに用いられてもよい。ファイル/セグメントデカプセル化部は、ポイントクラウドデータに関連するメタデータを生成することができる。
【0453】
ビデオトラックデカプセル化部(Video Track Decapsulation)は、ファイル及び/又はセグメントに含まれたビデオトラックをデカプセル化する。ジオメトリビデオ、特質ビデオ、占有マップ、付加データ及び/又はメッシュデータを含むビデオストリームをデカプセル化する。
【0454】
メタデータトラックデカプセル化(Metadata Track Decapsulation)は、ポイントクラウドデータに関連するメタデータ及び/又は付加データなどを含むビットストリームをデカプセル化する。
【0455】
イメージデカプセル化(Image Decapsulation)は、ジオメトリイメージ、特質イメージ、占有マップ、付加データ及び/又はメッシュデータを含むイメージをデカプセル化する。
【0456】
実施例によるデカプセル化又はデカプセル化部は、G-PCC/V-PCCビットストリームをファイル内の1つ又は複数のトラックに基づいて分割処理パーシング(デカプセル化)し、そのためのシグナリング情報も共にデカプセル化する。また、G-PCC/V-PCCビットストリーム上に含まれているatlasストリームをファイル内のトラックに基づいてデカプセル化し、関連するシグナリング情報をパーシングする。さらにG-PCC/V-PCCビットストリーム上に存在するSEIメッセージをファイル内のトラックに基づいてデカプセル化し、関連するシグナリング情報を共に取得することができる。
【0457】
ビデオ復号部(Video Decoding unit)22001は、ジオメトリビデオ復元、特質ビデオ復元、占有マップ復元、付加データ復元及び/又はメッシュデータ復元を行う。ビデオ復号部は、実施例によるポイントクラウド送信装置のビデオ符号化付加を行うプロセスに対応して、ジオメトリビデオ、特質ビデオ、付加データ及び/又はメッシュデータを復号する。
【0458】
イメージ復号部(Image Decoding)22002は、ジオメトリイメージ復元、特質イメージ復元、占有マップ復元、付加データ復元及び/又はメッシュデータ復元を行う。イメージ復号部は、実施例によるポイントクラウド送信装置のイメージ符号化部が行うプロセスに対応して、ジオメトリイメージ、特質イメージ、付加データ及び/又はメッシュデータを復号する。
【0459】
実施例によるビデオ復号部、イメージ復号部は、上述のように、1つのビデオ/イメージデコーダによって処理されてもよく、図のように別のパスで行われてもよい。
【0460】
ビデオ復号部及び/又はイメージ復号部は、ビデオデータ及び/又はイメージデータに関連するメタデータを生成する。
【0461】
実施例によるポイントクラウドビデオエンコーダ及び/又はポイントクラウドイメージエンコーダは、実施例によるG-PCC/V-PCCビットストリームを復号する。
【0462】
ポイントクラウドプロセシング部(Point Cloud Processing unit)22003は、ジオメトリ再構成(Geometry Reconstruction)及び/又は特質再構成(Attribute Reconstruction)を行う。
【0463】
ジオメトリ再構成は、復号されたビデオデータ及び/又は復号されたイメージデータから、占有マップ、付加データ及び/又はメッシュデータに基づいて、ジオメトリビデオ及び/又はジオメトリイメージを復元する。
【0464】
特質再構成は、復号された特質ビデオ及び/又は復号された特質イメージから、占有マップ、付加データ及び/又はメッシュデータに基づいて、特質ビデオ及び/又は特質イメージを復元する。実施例によれば、例えば、特質はテクスチャーである。実施例によれば、特質は複数の特質情報を意味する。複数の特質がある場合、実施例によるポイントクラウドプロセシング部は、複数の特質再構成を行う。
【0465】
ポイントクラウドプロセシング部は、ビデオ復号部、イメージ復号部及び/又はファイル/セグメントデカプセル化部からメタデータを受信し、メタデータに基づいてポイントクラウドを処理することができる。
【0466】
ポイントクラウドレンダリング部(Point Cloud Rendering unit)は、再構成されたポイントクラウドをレンダリングする。ポイントクラウドレンダリング部はビデオ復号部、イメージ復号部及び/又はファイル/セグメントデカプセル化部からメタデータを受信し、メタデータに基づいてポイントクラウドをレンダリングする。
【0467】
ディスプレイは、レンダリングされた結果を実際のディスプレイ装置上にディスプレイする。
【0468】
実施例による方法/装置は図15ないし図19に示したように、ポイントクラウドデータを符号化/復号した後、ポイントクラウドデータを含むビットストリームをファイル及び/又はセグメント形式にカプセル化及び/又はデカプセル化する。
【0469】
例えば、実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータをファイルに基づいてカプセル化し、このとき、ファイルには、ポイントクラウドに関するパラメータを含むV-PCCトラック、ジオメトリを含むジオメトリトラック、特質を含む特質トラック及び占有マップを含む占有トラックを含む。
【0470】
また、実施例によるポイントクラウドデータ受信装置は、ポイントクラウドデータファイルに基づいてデカプセル化し、このとき、ファイルにはポイントクラウドに関するパラメータを含むV-PCCトラック、ジオメトリを含むジオメトリトラック、特質を含む特質トラック及び占有マップを含む占有トラックを含む。
【0471】
上述した動作は、図20のファイル/セグメントカプセル化部20004、図21のファイル/セグメントカプセル化部21009、図22のファイル/セグメントデカプセル化部22000などによって行われる。
【0472】
図23は、実施例によるポイントクラウドデータの送受信方法/装置と連動可能な構造の一例を示す。
【0473】
実施例による構造では、サーバー2360、ロボット2310、自立走行車両2320、XR装置2330、スマートフォン2340、家電2350及び/又はHMD2370のうちのいずれかがクラウドネットワーク2310と接続する。ここで、ロボット2310、自立走行車両2320、XR装置2330、スマートフォン2340又は家電2350などを装置と呼ぶ。また、XR装置1730は、実施例によるポイントクラウド圧縮データ(PCC)装置に対応するか、PCC装置と連動してもよい。
【0474】
クラウドネットワーク2300は、クラウドコンピューティングインフラの一部を構成するか、クラウドコンピューティングインフラ内に存在するネットワークを意味してもよい。ここで、クラウドネットワーク2300は、3Gネットワーク、4G又はLTE(Long Term Evolution)ネットワーク又は5Gネットワークなどを用いて構成されてもよい。
【0475】
AIサーバー2360は、ロボット2310、自立走行車両2320、XR装置2330、スマートフォン2340、家電2350及び/又はHMD2370のうちの少なくとも1つ以上とクラウドネットワーク2300を介いて接続され、接続された装置2310~2370のプロセシングの少なくとも一部を補助する。
【0476】
HMD(Head-Mount Display)23700は、実施例によるXR装置及び/又はPCC装置が具現できるタイプの1つを示す。実施例によるHMDタイプの装置は、コミュニケーションユニット、コントロールユニット、メモリユニット、I/Oユニット、センサユニット、またパワー供給ユニットなどを含む。
【0477】
以下、上記技術が適用される装置2310~2350の様々な実施例について説明する。ここで、図23に示された装置2310~2350は、上述した実施例によるポイントクラウドデータの送受信装置と連動/結合することができる。
【0478】
<PCC+XR>
【0479】
XR/PCC装置2330は、PCC及び/又はXR(AR+VR)技術が適用され、HMD(Head-Mount Display)、車両に備えられたHUD(Head-Up Display)、TV、携帯電話、スマートフォン、コンピューター、ウェアラブルデバイス、家電機器、デジタル看板、車両、固定型ロボットや移動型ロボットなどで具現される。
【0480】
XR/PCC装置2330は、様々なセンサにより又は外部装置から取得した3Dポイントクラウドデータ又はイメージデータを分析して3Dポイントに対する位置データ及び特質データを生成することで周辺空間又は現実客体に関する情報を得て、出力するXR客体をレンダリングして出力することができる。例えば、XR/PCC装置2330は認識された物体に関する付加情報を含むXR客体を該当認識された物体に対応して出力することができる。
【0481】
<PCC+XR+モバイルフォン>
【0482】
XR/PCC装置2330はPCC技術が適用されてモバイルフォン2340などで具現される。
【0483】
モバイルフォン2340はPCC技術に基づいてポイントクラウドコンテンツを復号し、ディスプレイする。
【0484】
<PCC+自立走行+XR>
【0485】
自律走行車両2320はPCC技術及びXR技術が適用されて、移動型ロボット、車両、無人飛行体などで具現される。
【0486】
XR/PCC技術が適用された自律走行車両2320は、XR映像を提供する手段を備えた自律走行車両やXR映像内での制御/相互作用の対象となる自律走行車両などを意味してもよい。特に、XR映像内での制御/相互作用の対象となる自律走行車両2320はXR装置2330とは区分され、互いに連動できる。
【0487】
XR/PCC映像を提供する手段を備えた自律走行車両2320は、カメラを含むセンサからセンサ情報を取得し、取得したセンサ情報に基づいて生成されたXR/PCC映像を出力する。例えば、自律走行車両はHUDを備えてXR/PCC映像を出力することで、搭乗者に現実客体又は画面内の客体に対応するXR/PCC客体を提供する。
【0488】
このとき、XR/PCC客体がHUDに出力される場合には、XR/PCC客体の少なくとも一部が搭乗者の視線が向く実際の客体にオーバーラップされるように出力されることがある。一方、XR/PCC客体が自律走行車両内に備えられるディスプレイに出力される場合には、XR/PCC客体の少なくとも一部が画面内の客体にオーバーラップされるように出力されることがある。例えば、自律走行車両は車路、他の車両、信号灯、交通表示板、二輪車、歩行者、建物などのような客体に対応するXR/PCC客体を出力することができる。
【0489】
実施例によるVR(Virtual Reality)技術、AR(Augmented Reality)技術、MR(Mixed Reality)技術及び/又はPCC(Point Cloud Compression)技術は、様々なデバイスに適用可能である。
【0490】
即ち、VR技術は現実の客体や背景などをCG映像のみで提供するディスプレイ技術である。一方、AR技術は実際物事の映像上に仮想のCG映像を共に見せる技術である。また、MR技術は、現実世界に仮想客体を混ぜて見せるという点では上述したAR技術と類似する。しかし、AR技術では現実の客体とCG映像からなる仮想の客体との区別が明らかであり、現実客体を補完する形式で仮想の客体を使用する反面、MR技術では仮想の客体と現実の客体とが同等な性格と見なされるという点でAR技術とは区別される。より具体的には、例えば、上記MR技術が適用されたことがホログラムサービスである。
【0491】
ただし、最近にはVR、AR、MR技術を明確に区別するよりは、XR(extended Reality)技術と呼んでいる。よって、本発明の実施例はVR、AR、MR、XR技術のいずれにも適用可能である。かかる技術はPCC、V-PCC、G-PCC技術ベースの符号化/復号が適用される。
【0492】
実施例によるPCC方法/装置は自律走行サービスを提供する車両に適用できる。
【0493】
自律走行サービスを提供する自立走行車両はPCC装置と有無線通信可能に接続される。
【0494】
実施例によるポイントクラウド圧縮データ(PCC)送受信装置は、自立走行車両と有無線通信可能に接続された場合、自律走行サービスと共に提供できるAR/VR/PCCサービス関連コンテンツデータを受信/処理して自立走行車両に送信することができる。また、ポイントクラウドデータ送受信装置が自立走行車両に搭載された場合は、ポイントクラウド送受信装置は、ユーザインターフェース装置で入力されたユーザ入力信号によってAR/VR/PCCサービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信することができる。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含んでもよい。
【0495】
実施例によるポイントクラウドデータ送信方法/装置、実施例による送信方法/装置の符号化動作及びエンコーダ、ポイントクラウドデータ送信方法/装置のカプセル化及びカプセル化部、ポイントクラウドデータ受信方法/装置、実施例によるポイントクラウドデータ受信方法/装置の復号動作及びデコーダ、ポイントクラウドデータ受信方法/装置のデカプセル化及びデカプセル化部などを実施例によっては簡単に実施例による方法/装置と称する。
【0496】
図24は実施例によるポイントクラウドデータに対する客体(オブジェクト)及び客体に対するバウンディングボックスを示す。
【0497】
図1の送信装置10000、受信装置10005、図15のエンコーダ、図16の復号プロセス、図17のデコーダ、図18の送信装置、図19の受信装置、図20ないし図22のポイントクラウドデータを処理するシステム構造、及び図23のXRデバイス2330などは、ポイントクラウドデータの対象となる客体(オブジェクト)24000を処理する。実施例による方法/装置は、客体24000をポイントで示して符号化し、カプセル化し、送信し、受信し、デカプセル化し、復号して復元してレンダリングする。またこの過程で、客体24000は客体を取り囲むバウンディングボックス24010に基づいて処理される。
【0498】
実施例によるバウンディングボックス24010は、客体24000を表現して処理するための基本アクセス単位である。即ち、実施例によるバウンディングボックス24010は、ポイントクラウドデータの対象となる客体24000を六面体に基づいて表すボックスを称する。バウンディングボックス24010は実施例によって分割されるか、或いは時間によって変更される24020,24030。
【0499】
また実施例によるバウンディングボックス24010は、サブバウンディングボックス単位で分割されることもある。バウンディングボックスが分割される場合、分割されたバウンディングボックスをサブバウンディングボックスと称し、全体バウンディングボックスをオーバーオールバウンディングボックスとも称する。
【0500】
客体24000は時間によって動的に変化する。例えば、24020のように客体24000が動いて24030の位置に移動する。このとき、バウンディングボックス24010は客体24000と一緒に移動する。
【0501】
実施例による方法/装置は、ユーザのビューポートによってV-PCCコンテンツの部分接近或いは空間(spatial)接近を支援するためのV-PCC コンテンツのバウンディングボックス関連メタデータを提供する。
【0502】
実施例による方法/装置は、ポイントクラウドビットストリーム内のポイントクラウドコンテンツのバウンディングボックス情報を定義する。
【0503】
実施例による方法/装置は、ファイル内のビデオトラックに連関するポイントクラウド関連バウンディングボックス情報を格納し、シグナリングする方案を提案する。
【0504】
実施例による方法/装置は、ファイル内のイメージ アイテムに連関するポイントクラウドバウンディングボックス情報を格納する方案を提供する。
【0505】
実施例による方法/装置は、V-PCCビットストリームをファイル内のトラックに効率的に格納し、それに対するシグナリングを提供するポイントクラウドコンテンツサービス提供のための送信装置又は受信装置に関する。
【0506】
実施例による方法/装置は、V-PCCビットストリームをファイルトラック内に効率的に格納し、シグナリングすることにより、V-PCCビットストリームに対する効率的な接近ができるという効果を提供する。このために、ファイル格納技法及び/又はV-PCCビットストリームをファイル内の1つ以上の複数のトラックに分割格納する技法を提供する。
【0507】
図25は実施例による動的ポイントクラウド客体のバウンディングボックス及び全体バウンディングボックスを示す。
【0508】
図25図24のバウンディングボックス24010に対応する。
【0509】
ポイントクラウド客体のバウンディングボックス24010,25000,25010は動的に時間によって変更される。
【0510】
ボックス25000は全体バウンディングボックス(overall bounding box)と称する。
【0511】
ボックス25010は全体バウンディングボックスではなく、バウンディングボックス、部分バウンディングボックス、サブバウンディングボックスなどに対応する。
【0512】
ボックス25000及びボックス25010はファイルカプセル化部20004,21009及び/又はファイルデカプセル化部20005,22000などにより、図40及び図41などのファイル構造に基づいて送受信処理される。例えば、ボックス25000及びボックス25010のそれぞれはサンプルエントリーで表現される。時間によって変更されるので、サンプルエントリー情報に基づいて動的に変化するボックス25000、25010を生成して処理することができる。ボックス25000及びボックス25010は客体25020を記述する。実施例によっては、客体25020に対するアンカーポイント25030を有する。
【0513】
従って、実施例による受信方法/装置又はそれに連結されたプレーヤーは、ユーザビューポートなどによってポイントクラウド客体/コンテンツの空間或いは部分接近を可能にするために変化するバウンディングボックス、全体バウンディングボックスに関する情報を受信することができる。このために実施例によるポイントクラウドデータ送信方法/装置は、実施例による情報をV-PCCビットストリーム内に含めるか、或いはファイル内のシグナリング或いはメタデータ形態に含めることができる。
【0514】
図26は実施例によるポイントクラウドデータを含むビットストリームの構造を示す。
【0515】
図26のビットストリーム26000は図27のビットストリーム27000に対応する。図26及び図27のビットストリームは、図1の送信装置10000、ポイントクラウドビデオエンコーダ10002、図4のエンコーダ、図15のエンコーダ、図18の送信装置、図20のプロセッサ20001、ビデオ/イメージエンコーダ20002、図21のプロセッサ21001ないし21006、及びビデオ/イメージエンコーダ21007,21008などで生成される。
【0516】
図26及び図27のビットストリームは、図1のファイル/セグメントカプセル化部、図20のファイル/セグメントカプセル化部20004、及び図21のファイル/セグメントカプセル化部21009などによりコンテナ(図40及び図41などのファイル)に格納される。
【0517】
図26及び図27のビットストリームは図1の送信機10004などにより送信される。
【0518】
図26及び図27のビットストリームを含むコンテナ(図40及び図41などのファイル)を図1の受信装置10005、受信機10006などが受信する。
【0519】
コンテナから図26及び図27のビットストリームが、図1のファイル/セグメントデカプセル化部10007、図20のファイル/セグメントデカプセル化部20005、及び図22のファイル/セグメントデカプセル化部22000などによりパースされる。
【0520】
図26及び図27のビットストリームは、図1のポイントクラウドビデオデコーダ10008、図16のデコーダ、図17のデコーダ、図19の受信装置、図20のビデオ/イメージデコーダ20006、図22のビデオ/イメージデコーダ22001,22002、及びプロセッサ22003などにより復号され復元されてユーザに提供される。
【0521】
実施例によるポイントクラウドデータに関するビットストリーム26000に含まれたサンプルストリームV-PCCユニットは、V-PCCユニットサイズ26010及びV-PCCユニット26020を含む。
【0522】
各略語の定義は以下の通りである:VPS(V-PCC parameter set)、あD(atlas data)、OVD(occupancy video data)、GVD(geometry video data)、AVD(attribute video data)
【0523】
各々のV-PCCユニット26020は、V-PCCユニットヘッダ26030及びV-PCCユニットペイロード26040を含む。V-PCCユニットヘッダ26030はV-PCCユニットタイプを記述する。特質ビデオデータV-PCCユニットヘッダは特質タイプ及びそのインデックス、支援される同一の特質タイプのマルチインスタンスなどを説明する。
【0524】
占有、ジオメトリ、特質ビデオデータユニットペイロード26050,26060,26070は、ビデオデータユニットに対応する。例えば、占有ビデオデータ、ジオメトリビデオデータ、特質ビデオデータ26050,26060,26070はHEVC NALユニットである。かかるビデオデータは実施例によるビデオデコーダにより復号される。
【0525】
図27は実施例によるポイントクラウドデータを含むビットストリームの構造を示す。
【0526】
図27図18乃至図25で説明したように、符号化又は復号される実施例によるポイントクラウドデータを含むビットストリームの構造である。
【0527】
実施例による方法/装置は、動的ポイントクラウド客体に対するビットストリームを生成し、ビットストリームに関するファイルフォーマットを提案し、そのためのシグナリング方案を提供する。
【0528】
実施例による方法/装置は、V-PCC(=V3C)ビットストリームをファイルのトラックに効率的に格納し、それに対するシグナリングを提供するポイントクラウドコンテンツサービスを提供するための送信機、受信機及び/又はプロセッサである。
【0529】
実施例による方法/装置は、ポイントクラウドデータを含むV-PCCビットストリームを格納するデータフォーマットを提供する。それにより、実施例による受信方法/装置がポイントクラウドデータを受信し、ポイントクラウドデータに効率的に接近できるデータの格納及びシグナリング方案を提供する。従って、効率的な接近のポイントクラウドデータを含むファイル格納技法に基づいて、送信機及び/又は受信機はポイントクラウドコンテンツサービスを提供することができる。
【0530】
実施例による方法/装置は、ポイントクラウドビットストリーム(V-PCCビットストリーム)をファイルのトラック内に効率的に格納する。効率的な格納技法に関するシグナリング情報を生成してファイル内に格納する。ファイル内に格納されたV-PCCビットストリームに対する効率的な接近を支援できるように、ファイル実施例による格納技法にさらに(又はさらに変形/結合して)V-PCCビットストリームをファイル内1つ以上の複数のトラックに分割格納する技法を提供する。
【0531】
この明細書で使用する用語の定義は以下の通りである:
【0532】
VPS:V-PCCパラメータセット(V-PCC parameter set)。AD:アトラスデータ(atlas data)。OVD:占有ビデオデータ(occupancy video data)。GVD:ジオメトリビデオデータ(geometry video data)。AVD:特質ビデオデータ(attribute video data)。ACL:アトラスコーディングレイヤ(Atlas Coding Layer)。AAPS:アトラス適応パラメータセット(Atlas Adaptation Parameter Set)。ASPS:アトラスシーケンスパラメータセット(atlas sequence parameter set)。実施例によるシンタックス要素を含むシンタックス構造は、ゼロ又は1つ以上の全体コーディングされたアトラスシーケンス(CASs)に適用され、各タイルグループヘッダ内のシンタックス要素により参照されるASPSのシンタックス要素のコンテンツにより決定される。
【0533】
AFPS:アトラスフレームパラメータセット(atlas frame parameter set)。シンタックス要素を含むシンタックス構造はゼロ又1つ以上の全体コーディングされたアトラスフレームに適用され、タイルグループヘッダ内のシンタックス要素のコンテンツにより決定される。
【0534】
SEI:補足強化情報(Supplemental enhancement information)
【0535】
アトラス(Atlas):2Dバウンディングボックスの集合である。例えば、矩形フレームにプロジェクションされた、3D空間に3次元バウンディングボックスに対応する矩形フレームにプロジェクションされたパッチである。アトラスはポイントクラウドのサブセットを示す。
【0536】
アトラスサブビットストリーム(Atlas sub-bitstream):アトラスNALビットストリーム部分を含むV-PCCビットストリームから抽出されたサブビットストリームである。
【0537】
V-PCCコンテンツ(V-PCC content):V-PCC(V3C)に基づいて符号化されるポイントクラウドである。
【0538】
V-PCCトラック(V-PCC track):V-PCCビットストリームのアトラスビットストリームを伝達するボリュメトリックビジュアルトラックである。
【0539】
V-PCCコンポーネントトラック(V-PCC component track):V-PCCビットストリームの占有マップ、ジオメトリ、特質コンポーネントビデオビットストリームに対する2Dビデオ符号化されたデータを伝達するビデオトラックである。
【0540】
動的(Dynamic)ポイントクラウド客体の部分接近(partial access)を支援するための実施例を説明する。実施例はファイルシステムレベル(file system level)において、各空間領域(spatial region)に含まれるV-PCC客体の一部データに連関するアトラスタイルグループ(atlas tile group)情報を含む。また実施例は各アトラスタイルグループ(atlas tile group)が含んでいるラベル(label)及び/又はパッチ(patch)情報に対する拡張したシグナリング方案を含む。
【0541】
図27を参照すると、実施例による方法/装置が送受信するデータに含まれたポイントクラウドビットストリームの構造を示す。
【0542】
実施例によるポイントクラウドデータの圧縮及び復元技法は、ポイントクラウドビジュアル情報のボリュメトリック符号化及び復号を示す。
【0543】
コーディングされたポイントクラウドシーケンス(coded point cloud sequence,CPCS)を含むポイントクラウドビットストリーム(V-PCCビットストリーム又はV3Cビットストリームなどと称される、27000)は、サンプルストリームV-PCCユニット27010で構成される。サンプルストリームV-PCCユニット27010は、V-PCCパラメータセット(VPS)データ27020、アトラスビットストリーム27030、2Dビデオ符号化占有マップビットストリーム27040、2Dビデオ符号化ジオメトリビットストリーム27050、及びゼロ及び1つ以上の2Dビデオ符号化特質ビットストリーム27060を伝達する。
【0544】
ポイントクラウドビットストリーム27000はサンプルストリームVPCCヘッダ27070を含む。
【0545】
SSVHユニットサイズ精度(ssvh_unit_size_precision_bytes_minus1):この値に1を加えると、全てのサンプルストリームV-PCCユニット内のSSVU VPCCユニットサイズ(ssvu_vpcc_unit_size)要素のバイト単位の精度を示す。ssvh_unit_size_precision_bytes_minus1は0~7の範囲を有する。
【0546】
サンプルストリームV-PCCユニット27010のシンタックス27080は以下の通りである。各サンプルストリームV-PCCユニットは、VPS、AD、OVD、GVD及びAVDのV-PCCユニットのいずれかのタイプを含む。各サンプルストリームV-PCCユニットのコンテンツは、サンプルストリームV-PCCユニット内に含まれたV-PCCユニットと同一のアクセスユニットに連関する。
【0547】
SSVU VPCCユニットサイズ(ssvu_vpcc_unit_size):サブシーケンス(subsequent)V-PCCユニットのバイト単位サイズを示す。ssvu_vpcc_unit_sizeを示すときに使用されるビット数は、(ssvh_unit_size_precision_bytes_minus1+1)*8である。
【0548】
実施例による方法/装置は、符号化されたポイントクラウドデータを含む図27のビットストリームを受信して、カプセル化部20004,21009などにより図40及び図41のようなファイルを生成する。
【0549】
実施例による方法/装置は、図40及び図41のようなファイルを受信して、デカプセル化部22000などによりポイントクラウドデータを復号する。
【0550】
VPS27020及び/又はAD27030は第4トラック(V3Cトラック)40030にカプセル化される。
【0551】
OVD27040は第2トラック(占有トラック)40010にカプセル化される。
【0552】
GVD27050は第3トラック(ジオメトリトラック)40020にカプセル化される。
【0553】
AVD27060は第1トラック(特質トラック)40000にカプセル化される。
【0554】
図28は実施例によるV-PCCユニット及びV-PCCユニットヘッダを示す。
【0555】
図28図26で説明したV-PCCユニット26020及びV-PCCユニットヘッダ26030のシンタックスを示す。
【0556】
実施例によるV-PCCビットストリームはV-PCCシーケンスのシリーズを含む。
【0557】
VPCC_VPSと同一のvuh_unit_typeの値を有するV-PCCユニットタイプがV-PCCシーケンス内の1番目のV-PCCユニットタイプであると期待する。全ての他のV-PCCユニットタイプはそれらのコーディング順内で追加制限なしにこのユニットタイプに従う。占有ビデオ、特質ビデオ又はジオメトリビデオを伝達するV-PCCユニットのV-PCCユニットペイロードは、1つ又は1つ以上のNALユニットで構成される(A V-PCC bitstream contains a series of V-PCC sequences. A vpcc unit type with a value of vuh_unit_type equal to VPCC_VPS is expected to be the first V-PCC unit type in a V-PCC sequence. All other V-PCC unit types follow this unit type without any additional restrictions in their coding order. A V-PCC unit payload of V-PCC unit carrying Occupancy video, attribute video, or geometry video is composed of one or more NAL units)。
【0558】
VPCCユニットはヘッダとペイロードを含む。
【0559】
VPCCユニットヘッダはVUHユニットタイプに基づいて以下の情報を含む。
【0560】
VUHユニットタイプはV-PCCユニット26020のタイプを以下のように示す。
【0561】
【表1】
【0562】
VUHユニットタイプ(vuh_unit_type)が占有ビデオデータ(VPCC_AVD)、ジオメトリビデオデータ(VPCC_GVD)、占有ビデオデータ(VPCC_OVD)又はアトラスデータ(VPCC_AD)を示すと、VUH VPCCパラメータセットID(vuh_vpcc_parameter_set_id)及びVUHアトラスID(vuh_atlas_id)がユニットヘッダ内で伝達される。V-PCCユニットに連関するパラメータセットID及びアトラスIDを伝達することができる。
【0563】
ユニットタイプがアトラスビデオデータであると、ユニットのヘッダは特質インデックス(vuh_attribute_index)、特質パーティションインデックス(vuh_attribute_partition_index)、マップインデックス(vuh_map_index)、付加ビデオフラグ(vuh_auxiliary_video_flag)を伝達する。
【0564】
ユニットタイプがジオメトリビデオデータであると、マップインデックス(vuh_map_index)、付加ビデオフラグ(vuh_auxiliary_video_flag)を伝達する。
【0565】
ユニットタイプが占有ビデオデータ又はアトラスデータであると、ユニットのヘッダは追加予約されたビットを含む。
【0566】
VUH VPCCパラメータセットID(vuh_vpcc_parameter_set_id):アクティブV-PCC VPSのためのvps_vpcc_parameter_set_idの値を示す。現在V-PCCユニットのヘッダのVPCCパラメータセットIDによりVPSパラメータセットのIDを把握でき、V-PCCユニットとV-PCCパラメータセットの間の関係を知らせることができる。
【0567】
VUHアトラスID(vuh_atlas_id):現在V-PCCユニットに対応するアトラスのインデックスを示す。現在V-PCCユニットのヘッダのアトラスIDにより、アトラスのインデックスを把握でき、V-PCCユニットに対応するアトラスを知らせることができる。
【0568】
VUH特質インデックス(vuh_attribute_index):特質ビデオデータユニットから伝達される特質データのインデックスを示す。
【0569】
VUH特質パーティションインデックス(vuh_attribute_partition_index):特質ビデオデータユニットから伝達される特質ディメンショングループのインデックスを示す。
【0570】
VUHマップインデックス(vuh_map_index):この値が存在する場合、現在ジオメトリ又は特質ストリームのマップインデックスを示す。
【0571】
VUH付加ビデオフラグ(vuh_auxiliary_video_flag):この値が1であると、関連ジオメトリ又は特質ビデオデータユニットがただRAW及び/又はEOMコーディングされたポイントビデオであることを示す。この値が0であると、関連ジオメトリ又は特質ビデオデータユニットがRAW及び/又はEOMコーディングされたポイントを含むことができることを示す。
【0572】
VUH行ビデオフラグ(vuh_raw_video_flag):この値が1であると、関連するジオメトリ又は特質ビデオデータユニットがただRAWコーディングされたポイントビデオであることを示す。この値が0であると、関連するジオメトリ又は特質ビデオデータユニットがRAWコーディングされたポイントを含むことを示す。このフラグが存在しない場合は、この値は0に推論される。
【0573】
図29は実施例によるV-PCCユニットのペイロードを示す。
【0574】
図29はV-PCCユニットのペイロード26040のシンタックスである。
【0575】
V-PCCユニットタイプ(vuh_unit_type)がV-PCCパラメータセット(VPCC_VPS)であると。V-PCCユニットのペイロードはパラメータセット(vpcc_parameter_set( ))を含む。
【0576】
V-PCCユニットタイプ(vuh_unit_type)がV-PCCアトラスデータ(VPCC_AD)であると、V-PCCユニットのペイロードはアトラスサブビットストリーム(atlas_sub_bitstream( ))を含む。
【0577】
V-PCCユニットタイプ(vuh_unit_type)がV-PCC占有ビデオデータ(VPCC_OVD)、ジオメトリビデオデータ(VPCC_GVD)又は特質ビデオデータ(VPCC_AVD)であると、V-PCCユニットのペイロードはビデオビットストリーム(video_sub_bitstream( ))を含む。
【0578】
図30は実施例によるパラメータセット(V-PCC parameter set)を示す。
【0579】
図30図26ないし図29のように、実施例によるビットストリームのユニット26020のペイロード26040がパラメータセットを含む場合、パラメータセットのシンタックスを示す。
【0580】
図30のVPSは以下の要素を含む。
【0581】
プロファイルティアレベル(profile_tier_level()):ビットストリーム上の制限を示す。ビットストリームを復号するために必要な能力に対する制限を示す。プロファイル、ティア(tier)及びレベルは個別デコーダ実行間の相互適用性ポイントを示すために使用される(specifies restrictions on the bitstreams and hence limits on the capabilities needed to decode the bitstreams. Profiles, tiers, and levels may also be used to indicate interoperability points between individual decoder implementations)。
【0582】
パラメータセットID(vps_vpcc_parameter_set_id):他のシンタックス要素による参照のためのV-PCC VPSのための識別子を提供する(provides an identifier for the V-PCC VPS for reference by other syntax elements)。
【0583】
バウンディングボックス存在フラグ(sps_bounding_box_present_flag):ビットストリーム上のポイントクラウド客体/コンテンツのオーバーオール(総合的な)バウンディングボックス(時間によって変更されるバウンディングボックスを全て含むバウンディングボックス)に関する情報の存在有無についてのフラグである(sps_bounding_box_present_flag equal to 1 indicates overall bounding box offset and the size information of point cloud content carried in this bitstream)。
【0584】
バウンディングボックス存在フラグが特定の値を有すると、以下のバウンディングボックス要素がVPSに含まれる。
【0585】
バウンディングボックスオフセットX(sps_bounding_box_offset_x):座標系内のビットストリーム内に伝達されるポイントクラウドコンテンツのサイズ情報であって、総合的なバウンディングボックスオフセットのXオフセットを示す。存在しない場合、この値は0に推論される(indicates the x offset of overall bounding box offset and the size information of point cloud content carried in this bitstream in the cartesian coordinates. When not present、the value of sps_bounding_box_offset_x is inferred to be 0)。
【0586】
バウンディングボックスオフセットY(sps_bounding_box_offset_y):座標系内のビットストリーム内に伝達されるポイントクラウドコンテンツのサイズ情報であって、総合的なバウンディングボックスオフセットのYオフセットを示す。存在しない場合、この値は0に推論される(indicates the y offset of overall bounding box offset and the size information of point cloud content carried in this bitstream in the cartesian coordinates. When not present、the value of sps_bounding_box_offset_y is inferred to be 0)。
【0587】
バウンディングボックスオフセットZ(sps_bounding_box_offset_z):座標系内のビットストリーム内に伝達されるポイントクラウドコンテンツのサイズ情報であって、総合的なバウンディングボックスオフセットのZオフセットを示す。存在しない場合、この値は0に推論される(indicates the z offset of overall bounding box offset and the size information of point cloud content carried in this bitstream in the Cartesian coordinates. When not present、the value of sps_bounding_box_offset_z is inferred to be 0)。
【0588】
バウンディングボックスサイズ幅(sps_bounding_box_size_width):座標系内のビットストリーム内に伝達されるポイントクラウドコンテンツのサイズ情報であって、総合的なバウンディングボックスの幅を示す。存在しない場合、この値は1に推論される(indicates the width of overall bounding box offset and the size information of point cloud content carried in this bitstream in the Cartesian coordinates. When not present、the value of sps_bounding_box_size_width is inferred to be 1)。
【0589】
バウンディングボックスサイズ高さ(sps_bounding_box_size_height):座標系内のビットストリーム内に伝達されるポイントクラウドコンテンツのサイズ情報であって、総合的なバウンディングボックスの高さを示す。存在しない場合、この値は1に推論される(indicates the height of overall bounding box offset and the size information of point cloud content carried in this bitstream in the Cartesian coordinates. When not present、the value of sps_bounding_box_size_height is inferred to be 1)。
【0590】
バウンディングボックスサイズ深さ(sps_bounding_box_size_depth):座標系内のビットストリーム内に伝達されるポイントクラウドコンテンツのサイズ情報であって、総合的なバウンディングボックスの深さを示す。存在しない場合、この値は1に推論される(indicates the depth of overall bounding box offset and the size information of point cloud content carried in this bitstream in the Cartesian coordinates. When not present、the value of sps_bounding_box_size_depth is inferred to be 1)。
【0591】
アトラスカウント(vps_atlas_count_minus1):この値に1を加えると、現在ビットストリーム内に支援されるアトラスの総数を示す(plus 1 indicates the total number of supported atlases in the current bitstream)。
【0592】
アトラス数によって、以下のパラメータがさらにパラメータセット含まれる。
【0593】
フレーム幅(vps_frame_width[j]):インデックスJを有するアトラスのための整数ルーマサンプルのV-PCCフレーム幅を示す。フレーム幅はインデックスJを有するアトラスのための全てのV-PCCコンポーネントに関連する公称幅である(indicates the V-PCC frame width in terms of integer luma samples for the atlas with index j. This frame width is the nominal width that is associated with all V-PCC components for the atlas with index j)。
【0594】
フレーム高さ(vps_frame_height[j]):インデックスJを有するアトラスのための整数ルーマサンプルのV-PCCフレーム高さを示す。このフレーム高さはインデックスJを有するアトラスのための全てのV-PCCコンポーネントに関連する公称高さである(indicates the V-PCC frame height in terms of integer luma samples for the atlas with index j. This frame height is the nominal height that is associated with all V-PCC components for the atlas with index j)。
【0595】
MAPカウント(vps_map_count_minus1[j]):この値に1を加えると、インデックスJを有するジオメトリ及び特質データを符号化するために使用されるマップの数を示す(plus 1 indicates the number of maps used for encoding the geometry and attribute data for the atlas with index j)。
【0596】
MAPカウント(vps_map_count_minus1[j])が0より大きいと、以下のパラメータがパラメータセットにさらに含まれる。
【0597】
MAPカウント(vps_map_count_minus1[j])の値によって、以下のパラメータがパラメータセットにさらに含まれる。
【0598】
マルチマップストリーム存在フラグ(vps_multiple_map_streams_present_flag[j]):この値が0であると、インデックスJのための全てのジオメトリ又は特質マップがシングルジオメトリ又は特質ビデオストリームのそれぞれに存在することを示す。この値が1であると、インデックスJを有するアトラスのための全てのジオメトリ又は特質マップが個別(separate)ビデオストリームに存在することを示す(equal to 0 indicates that all geometry or attribute maps for the atlas with index j are placed in a single geometry or attribute video stream, respectively. vps_multiple_map_streams_present_flag[j] equal to 1 indicates that all geometry or attribute maps for the atlas with index j are placed in separate video streams)。
【0599】
マルチマップストリーム存在フラグ(vps_multiple_map_streams_present_flag[j])が1を示すと、vps_map_absolute_coding_enabled_flag[j][i]がパラメータセットにさらに含まれ、そうではないと、vps_map_absolute_coding_enabled_flag[j][i]は1を有する。
【0600】
マップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][i]):この値が1であると、インデックスJを有するアトラスのためのインデックスIを有するジオメトリマップがどのようなマップ予測形態なしにコーディングされることを示す。この値が1であると、インデックスJを有するアトラスのためのインデックスIを有するジオメトリマップがコーディング前にコーディングされたマップより早く他のものより1番目に予測されることを示す(equal to 1 indicates that the geometry map with index i for the atlas with index j is coded without any form of map prediction. vps_map_absolute_coding_enabled_flag[j][i]equal to 0 indicates that the geometry map with index i for the atlas with index j is first predicted from another, earlier coded map, prior to coding)。
【0601】
マップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][0])が1であると、インデックス0を有するジオメトリマップがマップ予測なしにコーディングされることを示す。
【0602】
マップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][i])が0であり、Iが0より大きいと、vps_map_predictor_index_diff[j][i]がパラメータセットにさらに含まれる。そうではないと、vps_map_predictor_index_diff[j][i]は0になる。
【0603】
マップ予測子インデックス差(vps_map_predictor_index_diff[j][i]):この値はマップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][i])が0であると、インデックスJを有するアトラスのためのインデックスIを有するジオメトリマップの予測子を計算するために使用される(is used to compute the predictor of the geometry map with index i for the atlas with index j when vps_map_absolute_coding_enabled_flag[j][i] is equal to 0)。
【0604】
付加ビデオ存在フラグ(vps_auxiliary_video_present_flag[j]):この値が1であると、RAW又はEOMパッチデータのようなインデックスJを有するアトラスのための付加情報が付加ビデオストリームと称される個別ビデオストリームに格納されることを示す。この値が0であると、インデックスJを有するアトラスのための付加情報が個別ビデオストリームに格納されないことを示す(equal to 1 indicates that auxiliary information for the atlas with index j, i.e. RAW or EOM patch data, may be stored in a separate video stream, refered to as the auxiliary video stream. vps_auxiliary_video_present_flag[j] equal to 0 indicates that auxiliary information for the atlas with index j is not be stored in a separate video stream)。
【0605】
行パッチ有効フラグ(vps_raw_patch_enabled_flag[j]):この値が1であると、インデックスJを有するアトラスに対するRAWコーディングされたポイントを有するパッチがビットストリーム内に存在することを示す(Equal to 1 indicates that patches with RAW coded points for the atlas with index j may be present in the bitstream)。
【0606】
行パッチ有効フラグが特定値を有すると、以下の要素がVPSに含まれる。
【0607】
行個別ビデオ存在フラグ(vps_raw_separate_video_present_flag[j]):この値が1であると、インデックスJを有するアトラスに対するRAWコーディングされたジオメトリ及び特質情報が個々のビデオストリームに格納されることを示す(Equal to 1 indicates that RAW coded geometry and attribute information for the atlas with index j may be stored in a separate video stream)。
【0608】
占有情報(occupancy_information()):占有ビデオに関連するパラメータセットを含む。
【0609】
ジオメトリ情報(geometry_information()):ジオメトリビデオに関連するパラメータセットを含む。
【0610】
特質情報(attribute_information()):特質ビデオに関連するパラメータセットを含む。
【0611】
拡張存在フラグ(vps_extension_present_flag):シンタックス要素拡張長さ(vps_extension_length)がパラメータセット(vpcc_parameter_set)シンタックス構造に存在することを示す。この値が0であると、シンタックス要素拡張長さ(vps_extension_length)が存在しないことを示す(equal to 1 specifies that the syntax element vps_extension_length is present in vpcc_parameter_set syntax structure. vps_extension_present_flag equal to 0 specifies that syntax element vps_extension_length is not present)。
【0612】
拡張長さ(vps_extension_length_minus1):この値に1を加えると、このシンタックス要素をフォローする拡張データ(vps_extension_data_byte)要素の数を示す(plus 1 specifies the number of vps_extension_data_byte elements that follow this syntax element)。
【0613】
拡張長さ(vps_extension_length_minus1)によって、拡張データがパラメータセットにさらに含まれる。
【0614】
拡張データ(vps_extension_data_byte):拡張により含まれるいかなるデータを含むことができる(may have any value)。
【0615】
実施例による方法/装置は、実施例による上述したバウンディングボックス関連情報によりバウンディングボックスに含まれるポイント情報を送信装置で生成して、受信装置に伝達することができる。受信装置はバウンディングボックスに含まれるポイント情報に基づいてバウンディングボックスに関連するポイントクラウドデータを効率的に得て復号する。さらに実施例によるバウンディングボックスに関連するポイントは、バウンディングボックスに含まれるポイント、バウンディングボックスの原点(origin point)などを含む。
【0616】
図31は実施例によるアトラスサブビットストリームの構造を示す。
【0617】
図31図26のビットストリーム26000のユニット26020のペイロード26040がアトラスサブ-ビットストリーム31000を伝達する例示を示す。
【0618】
アトラスサブビットストリームを伝達するV-PCCユニットのV-PCCユニットペイロードは、1つ又は1つ以上のサンプルストリームNALユニット31010を含む。
【0619】
実施例によるアトラスサブビットストリーム31000は、サンプルストリームNALヘッダ31020及びサンプルストリームNALユニット31010を含む。
【0620】
サンプルストリームNALヘッダ31020は、ユニットサイズ精度バイト(ssnh_unit_size_precision_bytes_minus1)を含む。この値に1を加えると、全てのサンプルストリームNALユニット内のNALユニットサイズ(ssnu_nal_unit_size)要素のバイト単位内精度を示す。ssnh_unit_size_precision_bytes_minus1は0~7の範囲を有する(plus 1 specifies the precision, in bytes, of the ssnu_nal_unit_size element in all sample stream NAL units. ssnh_unit_size_precision_bytes_minus1 is in the range of 0 to 7)。
【0621】
サンプルストリームNALユニット31010は、NALユニットサイズ(ssnu_nal_unit_size)を含む。
【0622】
NALユニットサイズ(ssnu_nal_unit_size)は、サブシーケンスNALユニットのバイト単位内サイズを示す。ssnu_nal_unit_sizeを示すために使用されるビット数は、(ssnh_unit_size_precision_bytes_minus1+1)*8である(specifies the size, in bytes, of the subsequent NAL_unit. The number of bits used to represent ssnu_nal_unit_size is equal to (ssnh_unit_size_precision_bytes_minus1+1)*8)。
【0623】
各々のサンプルストリームNALユニットは、アトラスシーケンスパラメータセット(atlas sequence parameter set、ASPS)31030、アトラスフレームパラメータセット(atlas frame parameter set、AFPS)31040、1つ又は1つ以上のアトラスタイルグループ情報(atlas tile group information)31050、及び1つ又は1つ以上のSEI(Supplemental enhancement information)31060などを含む。それぞれについては以下に説明する。実施例によってアトラスタイルグループはアトラスタイルと等しく呼ばれる。
【0624】
図32は実施例によるアトラスシーケンスパラメータセット(atlas sequence parameter set)を示す。
【0625】
図32はNALユニットタイプがアトラスシーケンスパラメータである場合、NALユニットに含まれるRBSPデータ構造のシンタックスを示す。
【0626】
各々のサンプルストリームNALユニットはアトラスパラメータセット、例えば、ASPS、AAPS、AFPS、1つ又は1つ以上のアトラスタイルグループ情報及びSEIのいずれかを含む。
【0627】
ASPSは各々のタイルグループ(タイル)ヘッダ内のシンタックス要素として参照されるASPS内のシンタックス要素のコンテンツにより決定されるゼロ又は1つ以上の全体コーディングされたアトラスシーケンス(CASs)に適用されるシンタックス要素を含む。
【0628】
ASPSは以下の要素を含む。
【0629】
ASPSアトラスシーケンスパラメータセットID(asps_atlas_sequence_parameter_set_id):他のシンタックス要素による参照のためのアトラスシーケンスパラメータセットのための識別子を提供する。
【0630】
ASPSフレーム幅(asps_frame_width):現在アトラスに対する整数のルーマサンプルの観点でアトラスフレームの幅を示す(indicates the atlas frame width in terms of integer luma samples for the current atlas)。
【0631】
ASPSフレーム高さ(asps_frame_height):現在アトラスに対する整数のルーマサンプルの観点でアトラスフレームの高さを示す(indicates the atlas frame height in terms of integer luma samples for the current atlas)。
【0632】
ASPSログパッチパッキングブロックサイズ(asps_log2_patch_packing_block_size):アトラス内パッチの水平及び垂直位置のために使用される変数PatchPackingBlockSizeの値を示す(specifies the value of the variable PatchPackingBlockSize, that is used for the horizontal and vertical placement of the patches within the atlas)。
【0633】
ASPSログマックスアトラスフレームオーダーカウントlsb(asps_log2_max_atlas_frame_order_cnt_lsb_minus4):アトラスフレームオーダーカウントのための復号プロセス内で使用される変数MaxAtlasFrmOrderCntLsbの変数を示す(specifies the value of the variable MaxAtlasFrmOrderCntLsb that is used in the decoding process for the atlas frame order count)。
【0634】
ASPSマックス復号アトラスフレームバッファリング(asps_max_dec_atlas_frame_buffering_minus1):この値に1を加えると、アトラスフレームバッファー記憶装置に対する復号されたアトラスフレームの最大値が要求されるサイズを示す(plus 1 specifies the maximum required size of the decoded atlas frame buffer for the CAS in units of atlas frame storage buffers)。
【0635】
ASPS長期参照アトラスフレームフラグ(asps_long_term_ref_atlas_frames_flag):この値が0であると、CAS内のコーディングされたアトラスフレームのインター予測のために使用される長期参照アトラスフレームがないことを示す。この値が1であると、長期参照アトラスフレームがCAS内の1つ又は1つ以上のコーディングされたアトラスフレームのインター予測を利用できることを示す(equal to 0 specifies that no long term reference atlas frame is used for inter prediction of any coded atlas frame in the CAS. asps_long_term_ref_atlas_frames_flag equal to 1 specifies that long term reference atlas frames may be used for inter prediction of one or more coded atlas frames in the CAS)。
【0636】
ASPS参照アトラスフレームリスト数(asps_num_ref_atlas_frame_lists_in_asps):アトラスシーケンスパラメータセットに含まれた参照リスト構造(ref_list_struct(rlsIdx))シンタックス構造の数を示す(specifies the number of the ref_list_struct(rlsIdx) syntax structures included in the atlas sequence parameter set)。
【0637】
ASPS参照アトラスフレームリスト数(asps_num_ref_atlas_frame_lists_in_asps)だけ参照リスト構造(ref_list_struct(i))がアトラスシーケンスパラメータセット内に含まれる。
【0638】
ASPSエイトオリエンテーションフラグ(asps_use_eight_orientations_flag):この値が0であると、インデックスIを有するフレーム内のインデックスJを有するパッチのパッチオリエンテーションインデックス(pdu_orientation_index[i][j])が0~1(含み)の範囲内であることを示す。この値が1であると、インデックスIを有するフレーム内のインデックスJを有するパッチのためのパッチオリエンテーションインデックス(pdu_orientation_index[i][j])が0~7(含み)の範囲であることを示す(equal to 0 specifies that the patch orientation index for a patch with index j in a frame with index i, pdu_orientation_index[i][j], is in the range of 0 to 1, inclusive. asps_use_eight_orientations_flag equal to 1 specifies that the patch orientation index for a patch with index j in a frame with index i, pdu_orientation_index[i][j], is in the range of 0 to 7, inclusive)。
【0639】
プロジェクションパッチ存在フラグ(asps_45degree_projection_patch_present_flag):この値が0であると、パッチプロジェクション情報が現在アトラスタイルグループに対してシグナリングされないことを示す。この値が1であると、パッチプロジェクション情報が現在アトラスタイルグループに対してシグナリングされることを示す(Equal to 0 specifies that the patch projection information is not signalled for the current atlas tile group. asps_45degree_projection_present_flag equal to 1 specifies that the patch projection information is signalled for the current atlas tile group)。
【0640】
タイプ(atgh_type)がスキップタイル(SKIP_TILE_GRP)ではない場合、以下の要素がアトラスタイルグループ(又はタイル)ヘッダに含まれる。
【0641】
ASPS垂直軸制限量子化有効フラグ(asps_normal_axis_limits_quantization_enabled_flag):この値が1であると、量子化パラメータがパッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットの垂直軸関連要素を量子化するために使用され、シグナリングされることを示す。この値が0であると、パッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットの垂直軸関連要素上に量子化が適用されないことを示す(equal to 1 specifies that quantization parameters shall be signalled and used for quantizing the normal axis related elements of a patch data unit, a merge patch data unit, or an inter patch data unit. If asps_normal_axis_limits_quantization_enabled_flag is equal to 0, then no quantization is applied on any normal axis related elements of a patch data unit, a merge patch data unit, or an inter patch data unit)。
【0642】
asps_normal_axis_limits_quantization_enabled_flagが1であると、atgh_pos_min_z_quantizerがアトラスタイルグループ(又はタイル)ヘッダに含まれる。
【0643】
ASPS垂直軸マックスデルタ値有効フラグ(asps_normal_axis_max_delta_value_enabled_flag):この値が1であると、インデックスJを有するフレームのインデックスIを有するパッチのジオメトリ情報内に存在し得る垂直軸の最大値公称シフト値が各パッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットに対するビットストリーム内に指示されることを示す。この値が0であると、インデックスJを有するフレーム内のインデックスIを有するパッチのジオメトリ情報内に存在し得る垂直軸の最大値公称シフト値が各パッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットに対するビットストリーム内に指示されないことを示す(equal to 1 specifies that the maximum nominal shift value of the normal axis that may be present in the geometry information of a patch with index i in a frame with index j will be indicated in the bitstream for each patch data unit, a merge patch data unit, or an inter patch data unit. If asps_normal_axis_max_delta_value_enabled_flag is equal to 0 theN the maximum nominal Shift value of the normal axis that may be present in the geometry information of a patch with index i in a frame with index j shall not be be indicated in the bitstream for each patch data unit, a merge patch data unit, or an inter patch data unit)。
【0644】
asps_normal_axis_max_delta_value_enabled_flagが1であると、atgh_pos_delta_max_z_quantizerがアトラスタイルグループ(又はタイル)ヘッダに含まれる。
【0645】
ASPS除去重複ポイント有効フラグ(asps_remove_duplicate_point_enabled_flag):この値が1であると、重複ポイントが行インデックスマップから他のポイントと同一の2D及び3Dジオメトリ座標を有するポイントであるところで、重複ポイントが現在アトラスに対して再構成されないことを示す。この値が0であると、全てのポイントが再構成されることを示す(equal to 1 indicates that duplicated points are not econstructed for the current atlas, where a duplicated point is a point with the same 2D and 3D geometry coordinates as another point from a Lower index map. asps_remove_duplicate_point_enabled_flag equal to 0 indicates that all points are reconstructed)。
【0646】
ASPSマックス復号アトラスフレームバッファリング(asps_max_dec_atlas_frame_buffering_minus1):この値に1を加えると、アトラスフレームバッファー記憶装置のユニット内のCASのための復号されたアトラスフレームバッファーの最大値要求サイズを示す(plus 1 specifies the maximum required size of the decoded atlas frame buffer for the CAS in units of atlas frame storage buffers)。
【0647】
ASPSピクセルデインターリービングフラグ(asps_pixel_deinterleaving_flag)この値が1であると、現在アトラスのための復号されたジオメトリ及び特質ビデオが2つのマップから空間的にインターリービングされたピクセルを含むことを示す。この値が0であると、現在アトラスに対応する復号されたジオメトリ及び特質ビデオがただシングルマップからピクセルを含むことを示す(equal to 1 indicates that the decoded geometry and attribute videos for the current atlas contain spatially interleaved pixels from two maps. asps_pixel_deinterleaving_flag equal to 0 indicates that the decoded geometry and attribute videos corresponding to the current atlas contain pixelS from only a single map)。
【0648】
ASPSパッチ優先順位オーダーフラグ(asps_patch_precedence_order_flag):この値が1であると、現在アトラスに対するパッチ優先順位(優先度)が復号順と同一であることを示す。この値が0であると、現在アトラスに対するパッチ優先順位が復号順の逆であることを示す(equal to 1 indicates that patch precedence for the current atlas is the same as the decoding order. asps_patch_precedence_order_flag equal to 0 indicates that patch precedence for the current atlas is the reverse of the decoding order)。
【0649】
ASPSパッチサイズ量子化器存在フラグ(asps_patch_size_quantizer_present_flag):この値が1であると、パッチサイズ量子化パラメータがアトラスタイルグループヘッダ又はアトラスタイルヘッダに存在することを示す。この値が0であると、パッチサイズ量子化パラメータが存在しないことを示す(equal to 1 indicates that the patch size quantization parameters are present in an atlas tile group header. If asps_patch_size_quantizer_present_flag is equal to 0, then the patch size quantization parameters are not present)。
【0650】
asps_patch_size_quantizer_present_flagが1であると、atgh_patch_size_x_info_quantizer及びatgh_patch_size_y_info_quantizerがアトラスタイルグループ(又はタイル)ヘッダに含まれる。
【0651】
深さのための強化占有マップフラグ(asps_enhanced_occupancy_map_for_depth_flag):この値が1であると、現在アトラスに対する復号された占有マップビデオが2つの深さマップの間の中間深さの位置が占められているかどうかに関する情報を含むことを示す。この値が0であると、復号された占有マップビデオが2つの深さマップの間の中間深さの位置が占められているかどうかに関する情報を含まないことを示す(Equal to 1 indicates that the decoded occupancy map video for the current atlas containS information related to whether Intermediate depth positions between two depth maps are occupied. asps_eom_patch_enabled_flag equal to 0 indicates that the decoded occupancy map video does not contain information related to whether Intermediate depth positionS between two depth maps are occupied)。
【0652】
asps_enhansed_occupancy_map_for_depth_flag又はasps_point_local_reconstruction_enabled_flagが1であると、asps_map_count_minus1がaspsに含まれる。
【0653】
ASPSポイントローカル復元有効フラグ(asps_point_local_reconstruction_enabled_flag):この値が1であると、ポイントローカル再構成モード情報が現在アトラスに対するビットストリーム内に存在することを示す。この値が0であると、ポイントローカル再構成モードに関連する情報が現在アトラスに対するビットストリーム内に存在しないことを示す(equal to 1 indicates that point local reconstruction mode information may be present in the bitstream for the current atlas. asps_point_local_reconstruction_enabled_flag equal to 0 indicates that no information related to the point local reconstruction mode is present in the bitstream for the current atlas)。
【0654】
ASPSポイントローカル復元有効フラグ(asps_point_local_reconstruction_enabled_flag)が1であると、ASPSポイントローカル再構成情報(asps_point_local_reconstruction_information)がアトラスシーケンスパラメータセットに伝達される。
【0655】
ASPSマップカウント(asps_map_count_minus1):この値に1を加えると、現在アトラスに対するジオメトリ及び特質データを符号化するために使用されるマップ数を示す(plus 1 indicates the number of maps that may be used for encoding the geometry and attribute data for the current atlas)。
【0656】
ASPS強化占有マップ固定ビットカウント(asps_enhanced_occupancy_map_fix_bit_count_minus1):この値に1を加えると、EOMコードワードのビットサイズを示す(plus 1 indicates the size in bits of the EOM code word)。
【0657】
asps_enhanced_occupancy_map_for_depth_flag及びasps_map_count_minus1が0を有すると、asps_enhanced_occupancy_map_fix_bit_count_minus1がASPSに含まれる。
【0658】
ASPS表現厚さ(asps_surface_thickness_minus1):この値に1を加えると、asps_pixel_deinterleaving_flag(又はasps_pixel_interleaving_flag)又はasps_point_local_reconstruction_flagが1である場合、明確にコーディングされた深さ値及び挿入された深さ値の間の最大絶対値の差を示す(plus 1 specifies the maximum absolute difference between an explicitly coded depth value and interpolated depth value when asps_pixel_deinterleaving_enabled_flag or asps_point_local_reconstruction_enabled_flag is equal to 1)。
【0659】
asps_pixel_interleaving_flag又はasps_point_local_reconstruction_enabled_flagが1であると、ASPS表面厚さがASPSに含まれる。
【0660】
asps_pixel_interleaving_flagはasps_map_pixel_deinterleaving_flagに対応する。
【0661】
ASPSマップピクセルデインターリービングフラグ(asps_map_pixel_deinterleaving_flag[i]):この値が1であると、現在アトラス内のインデックスiを有するマップに対応する復号されたジオメトリ及び特質ビデオが空間的に2つのマップに対応するインターリービングされたピクセルを含むことを示す。この値が0であると、現在アトラス内のインデックスiを有するマップに対応する復号されたジオメトリ及び特質ビデオがシングルマップに対応するピクセルを含むことを示す。存在しない場合、この値は0に推論される(Equal to 1 indicates that decoded geometry and attribute videos corresponding to map with index i in the current atlas contain spatially interleaved pixels corresponding to two maps. asps_map_pixel_deinterleaving_flag[i] equal to 0 indicates that decoded geometry and attribute videos corresponding to map index i in the current atlas contain pixels corresponding to a single map. When not present、the value of asps_map_pixel_deinterleaving_flag[i] is inferred to be 0)。
【0662】
ASPSポイントローカル復元有効フラグ(asps_point_local_reconstruction_enabled_flag):この値が1であると、ポイントローカル再構成モード情報が現在アトラスに対するビットストリーム内に存在することを示す。この値が0であると、ポイントローカル再構成モードに関連する情報が現在アトラスに対するビットストリーム内に存在しないことを示す(Equal to 1 indicates that point local reconstruction mode information may be present in the bitstream for the current atlas. asps_point_local_reconstruction_enabled_flag equal to 0 indicates that no information related to the point local reconstruction mode is present in the bitstream for the current atlas)。
【0663】
ASPS vuiパラメータ存在フラグ(asps_vui_parameters_present_flag):この値が1であると、vui_parameters( )シンタックス構造が存在することを示す。この値が0であると、vui_parameters( )シンタックス構造が存在しないことを示す(equal to 1 specifies that the vui_parameters( ) syntax structure is present. asps_vui_parameters_present_flag equal to 0 specifies that the vui_parameters( ) syntax structure is not present)。
【0664】
ASPS拡張フラグ(asps_extension_flag):この値が0であると、asps_extension_data_flagシンタックス要素がASPS RBSPシンタックス構造内に存在しないことを示す(equal to 0 specifies that no asps_extension_data_flag syntax elements are present in the ASPS RBSP syntax structure)。
【0665】
ASPS拡張データフラグ(asps_extension_data_flag):拡張のためのデータがASPS RBSPシンタックス構造内に含まれることを示す。
【0666】
終了ビット(rbsp_trailing_bits):RBSPデータの終わりを指示するためのストップビット(stop bit)である1を追加した後、バイトアライン(byte align)のために0で残りのビットを満たすために使用される。
【0667】
図33は実施例によるアトラスフレームパラメータセット(atlas frame parameter set)を示す。
【0668】
図33はNALユニットタイプがNAL_AFPSである場合、NALユニットに含まれたアトラスフレームパラメータセット(Atlas frame parameter set)のシンタックスである。
【0669】
アトラスフレームパラメータセット(atlas frame parameter set, AFPS)は、ゼロ又は1つ以上の全体コーディングされたアトラスフレームに適用されるシンタックス要素を含むシンタックス構造を含む。
【0670】
AFPSアトラスフレームパラメータセットID(afps_atlas_frame_parameter_set_id):他のシンタックス要素による参照のためのアトラスフレームパラメータセットを識別する。AFPSのアトラスフレームパラメータセットによりシンタックス要素により参照できる識別子を提供する。
【0671】
AFPSアトラスシーケンスパラメータセットID(afps_atlas_sequence_parameter_set_id):アクティブアトラスシーケンスパラメータセットの値を示す(specifies the value of asps_atlas_sequence_parameter_set_id for the active atlas sequence parameter set)。
【0672】
アトラスフレームタイル情報(atlas_frame_tile_information( ):図37を参照しながら説明する。
【0673】
AFPS参照インデックス数(afps_num_ref_idx_default_active_minus1):この値に1を加えると、atgh_num_ref_idx_active_override_flagが0であるタイルグループ又はタイルに対する変数NumRefIdxActiveの推論値を示す(plus 1 specifies the inferred value of the variable NumRefIdxActive for the tile group with atgh_num_ref_idx_active_override_flag equal to 0)。
【0674】
AFPS追加変数(afps_additional_lt_afoc_lsb_len):アトラスフレームリストの参照のための復号プロセス内で使用される変数MaxLtAtlasFrmOrderCntLsbの値を示す(specifies the value of the variable MaxLtAtlasFrmOrderCntLsb that is used in the decoding process for reference atlas frame)。
【0675】
AFPS 2DポジションXビットカウント(afps_2d_pos_x_bit_count_minus1):この値に1を加えると、afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ内のインデックスjを有するパッチのpdu_2d_pos_x[j]の固定ビット表現内のビット数を示す(plus 1 specifies the number of bits in the fixed-length representation of pdu_2d_pos_x[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
【0676】
AFPS 2DポジションYビットカウント(afps_2d_pos_y_bit_count_minus1):この値に1を加えると、afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ内のインデックスJを有するパッチのpdu_2d_pos_y[j]の固定長さ表現内のビット数を示す(plus 1 specifies the number of bits in the fixed-length representation of pdu_2d_pos_y[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
【0677】
AFPS 3DポジションXビットカウント(afps_3d_pos_x_bit_count_minus1):この値に1を加えると、afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ又はアトラスタイル内のインデックスJを有するパッチのpdu_3d_pos_x[j]の固定長さ表現内のビット数を示す(plus 1 specifies the number of bits in the fixed-length representation of pdu_3d_pos_x[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
【0678】
AFPS 3DポジションYビットカウント(afps_3d_pos_y_bit_count_minus1):この値に1を加えると、afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ又はアトラスタイル内のインデックスJを有するパッチのpdu_3d_pos_y[j]の固定長さ表現内のビット数を示す(plus 1 specifies the number of bits in the fixed-length representation of pdu_3d_pos_y[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
【0679】
AFPS LODビットカウント(afps_lod_bit_count):afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ内のインデックスjを有するパッチのpdu_lod[j]の固定した長さ表現内のビット数を示す(specifies the number of bits in the Fixed-length representation of pdu_lod[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
【0680】
AFPSオーバーライドEOMフラグ(afps_override_eom_for_depth_flag):この値が1であると、afps_eom_number_of_patch_bit_count_minus1及びafps_eom_max_bit_count_minus1の値が明示的にビットストリーム内に存在することを示す。この値が0であると、afps_eom_number_of_patch_bit_count_minus1及びafps_eom_max_bit_count_minus1の値が暗示的に誘導されることを示す(equal to 1 indicates that the values of afps_eom_number_of_patch_bit_count_minus1 and afps_eom_max_bit_count_minus1 is explicitly present in the bitstream. afps_override_eom_for_depth_flag equal to 0 indicates that the values of afps_eom_number_of_patch_bit_count_minus1 and afps_eom_max_bit_count_minus1 are implicitly derived)。
【0681】
AFPS EOMパッチビットカウント数(afps_eom_number_of_patch_bit_count_minus1):この値に1を加えると、現在EOM特質パッチ内の連関するジオメトリパッチの数を示すために使用されるビットの数を示す(plus 1 specifies the number of bits used to represent the number of geometry patches associated with the current EOM attribute patch)。
【0682】
AFPS EOMマックスビットカウント(afps_eom_max_bit_count_minus1):現在EOM特質パッチに連関するジオメトリパッチごとのEOMポイントの数を示すために使用されるビットの数を示す(plus 1 specifies the number of bits used to represent the number of EOM points per geometry patch associated with the current EOM attribute patch)。
【0683】
AFPS RAW 3Dポジションビットカウント明示モードフラグ(afps_raw_3d_pos_bit_count_explicit_mode_flag):この値が1であると、rpdu_3d_pos_x、rpdu_3d_pos_y及びrpdu_3d_pos_zに対するビットカウントがafps_atlas_frame_parameter_set_idを称するアトラスタイルグループヘッダ内に明示的にコーディングされることを示す(Equal to 1 indicates that the bit count for rpdu_3d_pos_x、rpdu_3d_pos_y、and rpdu_3d_pos_z is explicitely coded in an atlas tile group header that refers to afps_atlas_frame_parameter_set_id)。
【0684】
AFPS拡張フラグ(afps_extension_flag):この値が0であると、AFPS RBSPシンタックス構造内のafps_extension_data_flagシンタックス要素が存在しないことを示す(equal to 0 specifies that no afps_extension_data_flag syntax elements are present in the AFPS RBSP syntax structure)。
【0685】
AFPS延長データフラグ(afps_extension_data_flag):拡張関連データを含む。
【0686】
図34は実施例によるアトラスフレームタイル情報(atlas_frame_tile_information)を示す。
【0687】
図34図33に含まれたアトラスフレームタイル情報のシンタックスである。
【0688】
AFTIアトラスフレーム内にシングルタイルフラグ(afti_single_tile_in_atlas_frame_flag):この値が1であると、AFPSを参照する各々のアトラスフレーム内にただ1つのタイルが存在することを示す。この値が0であると、AFPSを参照する各々のアトラスフレーム内に1つ以上のタイルが存在することを示す(equal to 1 specifies that there is only one tile in each atlas frame referring to the AFPS. afti_single_tile_in_atlas_frame_flag equal to 0 specifies that there is more than one tile in each atlas frame referring tお the AFPS)。
【0689】
AFTI均一タイル空間フラグ(afti_uniform_tile_spacing_flag):この値が1であると、タイル列及び行の境界がアトラスフレームに対して均一に分配され、afti_tile_cols_width_minus1及びafti_tile_rows_height_minus1、シンタックス要素をそれぞれ使用してシグナリングされることを示す。この値が0であると、タイル列及び行の境界がアトラスフレームに対して均一に分配されるか或いは分配されず、afti_num_tile_columns_minus1、afti_num_tile_rows_minus1、a list of syntax element pairs afti_tile_column_width_minus1[i]、afti_tile_row_height_minus1[i]などのシンタックス要素を使用してシグナリングされることを示す。
【0690】
AFTIタイル列の幅(afti_tile_cols_width_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが1である場合、64サンプル単位内のアトラスフレームの最右側タイル列を除いたタイル列の幅を示す(plus 1 specifies the width of the tile columns excluding the right-most tile column of the atlas frame in units of 64 samples when afti_uniform_tile_spacing_flag is equal to 1)。
【0691】
AFTIタイル行の高さ(afti_tile_rows_height_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが1である場合、64サンプル単位内のアトラスフレームの底タイル行を除いたタイル行の高さを示す(plus 1 specifies the height of the tile rows excluding the bottom tile row of the atlas frame in units of 64 samples when afti_uniform_tile_spacing_flag is equal to 1)。
【0692】
afti_uniform_tile_spacing_flagが1ではないと、以下の要素がアトラスフレームタイル情報に含まれる。
【0693】
AFTIタイル列の数(afti_num_tile_columns_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが0である場合、アトラスフレームを分割するタイル列の数を示す(plus 1 specifies the number of tile columns partitioning the atlas frame when afti_uniform_tile_spacing_flag is equal to 0)。
【0694】
AFTIタイル行の数(afti_num_tile_rows_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが0である場合、アトラスフレームを分割するタイル行の数を示す(Plus 1 specifies the number of tile rows partitioning the atlas frame when pti_uniform_tile_spacing_flag is equal to 0)。
【0695】
AFTIタイル列の幅(afti_tile_column_width_minus1[i]):この値に1を加えると、64サンプル単位内のI番目のタイル列の幅を示す(plus 1 specifies the width of the i-th tile column in units of 64 samples)。
【0696】
afti_num_tile_columns_minus1値だけAFTIタイル列の幅がアトラスフレームタイル情報に含まれる。
【0697】
AFTIタイル行の高さ(afti_tile_row_height_minus1[i]):この値に1を加えると、64サンプル単位内のI番目のタイル行の高さを示す(plus 1 specifies the height of the i-th tile row in units of 64 samples)。
【0698】
afti_num_tile_rows_minus1値だけAFTIタイル行の高さがアトラスフレームタイル情報に含まれる。
【0699】
AFTIタイルグループごとにシングルタイルフラグ(afti_single_tile_per_tile_group_flag):この値が1であると、AFPSを示す各タイルグループ(又はタイル)が一つのタイルを含むことを示す。この値が0であると、このAFPSを示すタイルグループ(又はタイル)が一つのタイル以上を含めることを示す。存在しない場合、この値は1に推論される。(equal to 1 specifies that each tile group that refers to this AFPS includes one tile. afti_single_tile_per_tile_group_flag equal to 0 specifies that a tile group that refers to this AFPS may include more than one tile.When not present, the value of afti_single_tile_per_tile_group_flag is inferred to be equal to 1)。
【0700】
afti_num_tile_groups_in_atlas_frame_minus1に基づいて、AFTIタイルインデックス(afti_tile_idx[i])がアトラスフレームタイル情報に含まれる。
【0701】
AFTIタイルグループごとにシングルタイルフラグ(afti_single_tile_per_tile_group_flag)が0であると、afti_num_tile_groups_in_atlas_frame_minus1がアトラスフレームタイル情報内に伝達される。
【0702】
AFTIアトラスフレーム内タイルグループ(又はタイル)の数(afti_num_tile_groups_in_atlas_frame_minus1):AFPSを示す各々のアトラスフレーム内のタイルグループ(又はタイル)の数を示す。afti_num_tile_groups_in_atlas_frame_minus1の値は0ないしNumTilesInAtlasFrame-1(含み)の範囲を有する。存在せず、afti_single_tile_per_tile_group_flagが1である場合は、afti_num_tile_groups_in_atlas_frame_minus1の値はNumTilesInAtlasFrame-1に推論される(plus 1 specifies the number of tile groups in each atlas frame referring to the afps、The value of afti_num_tile_groups_in_atlas_frame_minus1 shall be in the range of 0 to NumTilesInAtlasFrame - 1、inclusive. When not present and afti_single_tile_per_tile_group_flag is equal to 1、the value of afti_num_tile_groups_in_atlas_frame_minus1 is inferred to be equal to NumTilesInAtlasFrame-1)。
【0703】
afti_num_tile_groups_in_atlas_frame_minus1値だけ以下の要素がアトラスフレームタイル情報に含まれる。
【0704】
AFTI左上部タイルインデックス(afti_top_left_tile_idx[i]):I番目のタイルグループ(又はタイル)の左上部に位置するタイルのタイルインデックスを示す。afti_top_left_tile_idx[i]の値はjに等しくないi値に対してafti_top_left_tile_idx[j]の値に等しくない。存在しない場合、afti_top_left_tile_idx[i]の値はiに等しいと推論される。afti_top_left_tile_idx[i]シンタックス要素の長さは、Ceil(Log2(NumTilesInAtlasFrame)ビットである(specifies the tile index of the tile located at the top-left corner of the i-th tile group. The value of afti_top_left_tile_idx[i] is not be equal to the value of afti_top_left_tile_idx[j] for any i not equal to j. When not present、the value of afti_top_left_tile_idx[i] is inferred to be equal to い. The length of the afti_top_left_tile_idx[i] syntax element is Ceil(Log2(NumTilesInAtlasFrame ) bits)。
【0705】
AFTI右下部タイルインデックスデルタ(afti_bottom_right_tile_idx_delta[i]):afti_top_left_tile_idx[i]及びI番目のタイルグループ(又はタイル)の右下部に位置するタイルのタイルインデックスの間の差を示す。afti_single_tile_per_tile_group_flagが1である場合、afti_bottom_right_tile_idx_delta[i]の値は0に等しいと推論される。afti_bottom_right_tile_idx_delta[i]シンタックス要素の長さはCeil(Log2(NumTilesInAtlasFrame-afti_top_left_tile_idx[i]))ビットである(specifies the difference between the tile index of the tile located at the bottom-right corner of the i-th tile group and afti_top_left_tile_idx[i]. When afti_single_tile_per_tile_group_flag is equal to 1、the value of afti_bottom_right_tile_idx_delta[i] is inferred to be equal to 0. The length of the afti_bottom_right_tile_idx_delta[i] syntax element is Ceil(Log2(NumTilesInAtlasFrame - afti_top_left_tile_idx[i])) bits)。
【0706】
AFTIシグナリングされるタイルグループIDフラグ(afti_signalled_tile_group_id_flag):この値が1であると、各々のタイルグループ又は各々のタイルに対するタイルグループID又はタイルIDがシグナリングされることを示す(equal to 1 specifies that the tile group ID for each tile group is signalled)。
【0707】
AFTIシグナリングされるタイルグループIDフラグ(afti_signalled_tile_group_id_flag)が1であると、afti_signalled_tile_group_id_length_minus1及びafti_tile_group_id[i]がアトラスフレームタイル情報内に伝達される。この値が0であると、タイルグループIDがシグナリングされないこともある。
【0708】
AFTIシグナリングされるタイルグループID長さ(afti_signalled_tile_group_id_length_minus1):この値に1を加えると、シンタックス要素afti_tile_group_id[i]を示すために使用されるビットの数を示す。存在する場合、シンタックス要素タイルグループヘッダ又はタイルヘッダ内にatgh_addressがあり得る(plus 1 specifies the number of bits used to represent the syntax element afti_tile_group_id[i] when present, and the syntax element atgh_address in tile group headers)。
【0709】
AFTIタイルグループID(afti_tile_group_id[i]):I番目のタイルグループ(又はタイル)のIDを示す。シンタックス要素afti_tile_group_id[i]の長さはafti_signalled_tile_group_id_length_minus1に1を加えたビットである(specifies the tile group ID of the i-th tile group. The length of the afti_tile_group_id[i] syntax element is afti_signalled_tile_group_id_length_minus1 + 1 bits)。
【0710】
afti_num_tile_groupS_in_atlas_frame_minus1値だけAFTIタイルグループID(afti_tile_group_id[i])がアトラスフレームタイル情報に含まれる。
【0711】
図35は実施例による補足強化情報(Supplemental enhancement information, SEI)を示す。
【0712】
図35図31のように実施例によるビットストリームに含まれるSEI情報の詳しいシンタックスを示す。
【0713】
実施例による受信方法/装置、システムなどはSEIメッセージに基づいてポイントクラウドデータを復号し、復元し、ディスプレイする。
【0714】
SEIメッセージは各ペイロードタイプ(payloadType)に基づいて、対応するデータをペイロードが含めることを示す。
【0715】
例えば、ペイロードタイプ(payloadType)が12であると、ペイロードは3Dバウンディングボックス情報(3d_bouding_box_info(payloadSize))情報を含む。
【0716】
ユニットタイプ(psd_unit_type)がプレフィックス(PSD_PREFIX_SEI)であると、実施例によるSEI情報はbuffering_period(payloadSize)、pic_timing(payloadSize)、filler_payload(payloadSize)、user_data_registered_itu_t_t35(payloadSize)、user_data_unregistered(payloadSize)、recovery_point(payloadSize)、no_display(payloadSize)、time_code(payloadSize)、regional_nesting(payloadSize)、sei_manifest(payloadSize)、sei_prefix_indication(payloadSize)、geometry_transformation_params(payloadSize)、3d_bounding_box_info(payloadSize)(図35などを参照)、3d_region_mapping(payloadSize)(図66など)、reserved_sei_message(payloadSize)などを含む。
【0717】
ユニットタイプ(psd_unit_type)がサフィックス(PSD_SUFFIX_SEI)であると、実施例によるSEI情報はfiller_payload(payloadSize)、user_data_registered_itu_t_t35(payloadSize)、user_data_unregistered(payloadSize)、decoded_PCC_hash(payloadSize)、reserved_sei_message(payloadSize)などを含む。
【0718】
図36は実施例による3DバウンディングボックスSEIを示す。
【0719】
図36図31のように実施例によるビットストリームに含まれるSEI情報の詳しいシンタックスを示す。
【0720】
取り消しフラグ(3dbi_cancel_flag):この値が1であると、3Dバウンディングボックス情報SEIメッセージがアウトプット順に以前の3Dバウンディングボックス情報SEIメッセージの存在を取り消すことを示す。
【0721】
客体ID(object_id):ビットストリーム内に伝達されるポイントクラウド客体/コンテンツの識別子である。
【0722】
バウンディングボックスX(3d_bounding_box_x):客体の3Dバウンディングボックスの原点位置のX座標値である。
【0723】
バウンディングボックスY(3d_bounding_box_y):客体の3Dバウンディングボックスの原点位置のY座標値である。
【0724】
バウンディングボックスZ(3d_bounding_box_z):客体の3Dバウンディングボックスの原点位置のZ座標値である。
【0725】
バウンディングボックスデルタX(3d_bounding_box_z):客体のX軸上のバウンディングボックスのサイズを示す。
【0726】
バウンディングボックスデルタY(3d_bounding_box_delta_y):客体のY軸上のバウンディングボックスのサイズを示す。
【0727】
バウンディングボックスデルタZ(3d_bounding_box_delta_z):客体のZ軸上のバウンディングボックスのサイズを示す。
【0728】
図37は実施例によるボリュメトリックタイリング情報を示す。
【0729】
図37図31のように実施例によるビットストリームに含まれるSEI情報の詳しいシンタックスを示す。
【0730】
ボリュメトリックタイリング情報SEIメッセージ(Volumetric tiling information SEI message)
【0731】
このSEIメッセージは実施例によるV-PCCデコーダが客体との連関性及び領域の関係及びラベリング、3D空間及び2Dアトラス内領域の関連性を含む復号されたポイントクラウドの異なる特性を避けるために知らせる(This SEI message informs a V-PCC decoder avoid different characteristics of a decoded point cloud, including correspondence of areas within a 2D atlas and the 3D space, relationship and labeling of areaS and association with objects)。
【0732】
このSEIメッセージの持続範囲は、ビットストリームの残り又は新しいボリュメトリックタイリングSEIメッセージがあるまでである。このSEIメッセージに記述されたただ対応するパラメータが更新される。変更されないか、又はvti_cancel_flagの値が1ではない場合、以前SEIメッセージからの以前に定義されたパラメータが続いて存在する(The persistence scope for this SEI message is the remainder of the bitstream or until a new volumetric tiling SEI message is encountered. Only the corresponding parameters specified in the SEI message is updated. Previously defined parameters from an earlier SEI message persist if not modified and if thevalue of vti_cancel_flag is not Equal to 1)。
【0733】
図38は実施例によるボリュメトリックタイリング情報客体を示す。
【0734】
図38図37に含まれたボリュメトリックタイリング情報客体(volumetric_tiling_info_objects)の詳しいシンタックスを示す。
【0735】
vtiObjectLabelPresentFlag、vti3DBoundingBoxPresentFlag、vtiObjectPriorityPresentFlag、tiObjectHiddenPresentFlag、vtiObjectCollisionShapePresentFlag、vtiObjectDependencyPresentFlagなどに基づいて、ボリュメトリックタイリング情報の客体が図38のような要素を含む。
【0736】
図39は実施例によるボリュメトリックタイリング情報ラベルを示す。
【0737】
図39図37に含まれたボリュメトリックタイリング情報ラベル(volumetric_tiling_info_labels)の詳しいシンタックスである。
【0738】
取り消しフラグ(vti_cancel_flag):この値が1であると、ボリュメトリックタイリング情報SEIメッセージがアウトプット順に以前のボリュメトリックタイリング情報SEIメッセージの存在を取り消すことを示す。vti_cancel_flagが0であると、ボリュメトリックタイリング情報が図37のように伴う。
【0739】
客体ラベル存在フラグ(vti_object_label_present_flag):この値が1であると、客体ラベル情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、客体ラベル情報が存在しないことを示す。
【0740】
3Dバウンディングボックス存在フラグ(vti_3d_bounding_box_present_flag):この値が1であると、3Dバウンディングボックス情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、3Dバウンディングボックス情報が存在しないことを示す。
【0741】
客体優先順位存在フラグ(vti_object_priority_present_flag):この値が1であると、現在ボリュメトリックタイリング情報SEIメッセージ内の客体優先順位情報が存在することを示す。この値が0であると、客体優先順位情報が存在しないことを示す。
【0742】
客体隠し存在フラグ(vti_object_hidden_present_flag):この値が1であると、隠し客体情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、隠し客体情報が存在しないことを示す。
【0743】
客体衝突模様存在フラグ(vti_object_collision_shape_present_flag):この値が1であると、客体衝突情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、客体衝突模様情報が存在しないことを示す。
【0744】
客体従属存在フラグ(vti_object_dependency_present_flag):この値が1であると、客体従属情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、客体従属情報が存在しないことを示す。
【0745】
客体ラベル言語存在フラグ(vti_object_label_language_present_flag):この値が1であると、客体ラベル言語情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、客体ラベル言語情報が存在しないことを示す。
【0746】
ゼロ相当のビット(vti_bit_equal_to_zero):この値は0に等しい。
【0747】
客体ラベル言語(vti_object_label_language):0x00と同一のnull終端バイトの後に言語タグを含む。vti_object_label_languageシンタックス要素の長さはnull終端バイトを除いて255バイトに等しいか又は少ない。
【0748】
客体ラベル数(vti_num_object_label_updates):現在SEIにより更新される客体ラベルの数を示す。
【0749】
ラベルインデックス(vti_label_idx[i]):更新されるi番目のラベルのラベルインデックスを示す。
【0750】
ラベル取り消しフラグ(vti_label_cancel_flag):この値が1であると、vti_label_idx[i]と同一のインデックスを有するラベルが取り消され、空いているストリングで同様にセットされることを示す。この値が0であると、vti_label_idx[i]と同一のインデックスを有するラベルがこの要素に従う情報により更新されることを示す。
【0751】
ゼロ相当のビット(vti_bit_equal_to_zero):この値は0に等しい。
【0752】
ラベル(vti_label[i]):i番目のラベルのラベルを示す。vti_label[i]シンタックス要素の長さはnull終端バイトを除いた255バイトに等しいか又は少ない。
【0753】
バウンディングボックススケール(vti_bounding_box_scale_log2):客体に対して記述される2Dバウンディングボックスパラメータに適用されるスケールを示す。
【0754】
3Dバウンディングボックススケール(vti_3d_bounding_box_scale_log2):客体に対して記述される3Dバウンディングボックスパラメータに適用されるスケールを示す。
【0755】
3Dバウンディングボックス精度(vti_3d_bounding_box_precision_minus8):この値に8を加えると、客体に対して記述される3Dバウンディングボックスパラメータの精度を示す(plus 8 indicates the precision of the 3D bounding box parameters that may be specified for an object)。
【0756】
客体数(vti_num_object_updates):現在SEIにより更新される客体の数を示す。
【0757】
客体数(vti_num_object_updates)だけ客体関連情報がボリュメトリックタイリング情報客体(図38を参照)に含まれる。
【0758】
客体インデックス(vti_object_idx[i]):更新されるi番目の客体の客体インデックスを示す。
【0759】
客体取り消しフラグ(vti_object_cancel_flag[i]):この値が1であると、iと同一のインデックスを有する客体が取り消され、変数ObjectTracked[i]が0に設定されることを示す。客体の2D及び3Dバウンディングボックスパラメータが0に設定される。この値が0であると、vti_object_idx[i]と同一のインデックスを有する客体がこの要素に従う情報により更新されることを示す。また、変数ObjectTracked[i]は1に設定される。
【0760】
バウンディングボックス更新フラグ(vti_bounding_box_update_flag[i]):この値が1であると、2Dバウンディングボックス情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、2Dバウンディングボックス情報が存在しないことを示す。
【0761】
vti_bounding_box_update_flagがvti_object_idx[i]に対して1であると、vti_object_idx[i]に対する以下のようなバウンディングボックス要素がボリュメトリックタイリング情報客体に含まれる。
【0762】
バウンディングボックス上部(vti_bounding_box_top[i]):現在アトラスフレーム内のインデックスiを有する客体のバウンディングボックスの左上部ポジションの垂直座標値を示す。
【0763】
バウンディングボックス左部(vti_bounding_box_left[i]):現在アトラスフレーム内のインデックスiを有する客体のバウンディングボックスの左上部ポジションの水平座標値を示す。
【0764】
バウンディングボックス幅(vti_bounding_box_width[i]):インデックスiを有する客体のバウンディングボックスの幅を示す。
【0765】
バウンディングボックス高さ(vti_bounding_box_height[i]):インデックスiを有する客体のバウンディングボックスの高さを示す。
【0766】
vti3dBoundingBoxPresentFlagが1であると、以下のようなバウンディングボックス要素がボリュメトリックタイリング情報客体に含まれる。
【0767】
3Dバウンディングボックス更新フラグ(vti_3d_bounding_box_update_flag[i]):この値が1であると、インデックスiを有する客体に対して3Dバウンディングボックス情報が存在することを示す。この値が0であると、3Dバウンディングボックス情報が存在しないことを示す。
【0768】
vti_3d_bounding_box_update_flagがvti_object_idx[i]に対して1であると、以下のようなバウンディングボックス関連要素がボリュメトリックタイリング情報客体に含まれる。
【0769】
3DバウンディングボックスX(vti_3d_bounding_box_x[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のX座標値を示す。
【0770】
3DバウンディングボックスY(vti_3d_bounding_box_y[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のY座標値を示す。
【0771】
3DバウンディングボックスZ(vti_3d_bounding_box_z[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のZ座標値を示す。
【0772】
3DバウンディングボックスデルタX(vti_3d_bounding_box_delta_x[i]):インデックスiを有する客体のX軸上のバウンディングボックスのサイズを示す。
【0773】
3DバウンディングボックスデルタY(vti_3d_bounding_box_delta_y[i]):インデックスiを有する客体のY軸上のバウンディングボックスのサイズを示す。
【0774】
3DバウンディングボックスデルタZ(vti_3d_bounding_box_delta_z[i]):インデックスiを有する客体のZ軸上のバウンディングボックスのサイズを示す。
【0775】
vtiObjectPriorityPresentFlagが1であると、以下のような優先順位関連要素がボリュメトリックタイリング情報客体に含まれる。
【0776】
客体優先順位更新フラグ(vti_object_priority_update_flag[i]):この値が1であると、客体優先順位更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、客体優先順位情報が存在しないことを示す。
【0777】
客体優先順位値(vti_object_priority_value[i]):インデックスiを有する客体の優先順位を示す。優先順位値が低いほど優先順位が高い。
【0778】
vtiObjectHiddenPresentFlagが1であると、vti_object_idx[i]に対する以下のような隠し情報がボリュメトリックタイリング情報客体に含まれる。
【0779】
客体隠しフラグ(vti_object_hidden_flag[i]):この値が1であると、インデックスiを有する客体が隠されることを示す。この値が0であると、インデックスiを有する客体が存在することを示す。
【0780】
vtiObjectLabelPresentFlagが1であると、ラベル関連更新フラグがボリュメトリックタイリング情報客体に含まれる。
【0781】
客体ラベル更新フラグ(vti_object_label_update_flag):この値が1であると、客体ラベル更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、客体ラベル更新情報が存在しないことを示す。
【0782】
vti_object_label_update_flagがvti_object_idx[i]に対して1であると、vti_object_idx[i]に対する客体ラベルインデックスがボリュメトリックタイリング情報客体に含まれる。
【0783】
客体ラベルインデックス(vti_object_label_idx[i]):インデックスiを有する客体のラベルインデックスを示す。
【0784】
vtiObjectCollisionShapePresentFlagが1であると、客体衝突関連要素がボリュメトリックタイリング情報客体に含まれる。
【0785】
客体衝突模様更新フラグ(vti_object_collision_shape_update_flag[i]):この値が1であると、客体衝突模様更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、客体衝突模様更新情報が存在しないことを示す。
【0786】
vti_object_collision_shape_update_flagがvti_object_idx[i]に対して1であると、vti_object_idx[i]に対する客体衝突模様IDがボリュメトリックタイリング情報客体に含まれる。
【0787】
客体衝突模様ID(vti_object_collision_shape_id[i]):インデックスiを有する客体の衝突模様IDを示す。
【0788】
vtiObjectDependencyPresentFlagが1であると、客体従属関連要素がボリュメトリックタイリング情報客体に含まれる。
【0789】
客体従属更新フラグ(vti_object_dependency_update_flag[i]):この値が1であると、客体従属更新情報が客体インデックスiを有する客体に対して存在することを示す。この値が0であると、客体従属更新情報が存在しないことを示す。
【0790】
vti_object_dependency_update_flagがvti_object_idx[i]に対して1であると、vti_object_idx[i]に対する客体従属関連要素がボリュメトリックタイリング情報客体に含まれる。
【0791】
客体従属数(vti_object_num_dependencies[i]):インデックスiを有する客体従属の数を示す。
【0792】
vti_object_num_dependencies数だけ客体従属インデックスがボリュメトリックタイリング情報客体に含まれる。
【0793】
客体従属インデックス(vti_object_dependency_idx[i][j]):インデックスiを有する客体に対する従属を有するj番目の客体のインデックスを示す。
【0794】
図40は実施例によるカプセル化されたV-PCCデータコンテナの構造を示す。
【0795】
図41は実施例による絶縁されたV-PCCデータコンテナ構造を示す。
【0796】
図1の送信装置10000のポイントクラウドビデオエンコーダ10002、図4及び図15のエンコーダ、図18の送信装置、図29のビデオ/イメージエンコーダ20002,20003、図21のプロセッサ、エンコーダ21000ないし21008、及び図23のXRデバイス2330などは、実施例によるポイントクラウドデータを含むビットストリームを生成する。
【0797】
図1のファイル/セグメントカプセル化部10003、図20のファイル/セグメントカプセル化部20004、図21のファイル/セグメントカプセル化部21009、及び図23のXRデバイスは、図24及び図25のファイル構造にビットストリームを初期化(formatting)する。
【0798】
同様に、図1の受信装置10005のファイル/セグメントデカプセル化部10007、図20ないし図23のファイル/セグメントデカプセル化部20005,21009,22000、及び図23のXRデバイス2330は、ファイルを受信してデカプセル化してビットストリームをパースする。ビットストリームは図1のポイントクラウドビデオデコーダ101008、図16及び図17のデコーダ、図19の受信装置、図20ないし図23のビデオ/イメージデコーダ20006,21007,21008,22001,22002、及び図23のXRデバイス2330により復号され、ポイントクラウドデータが復元される。
【0799】
図40及び図41はISOBMFFファイルフォーマットによるポイントクラウドデータのコンテナの構造を示す。
【0800】
図40及び図41はマルチトラックに基づいてポイントクラウドを伝達するコンテナの構造である。
【0801】
実施例による方法/装置は、複数のトラックに基づいてポイントクラウドデータ及びポイントクラウドデータ関連の追加データをコンテナファイルに含めて送受信する。
【0802】
第1トラック40000は特質トラックであり、図1図4図15図18などのように符号化された特質データ40040を含む。
【0803】
第2トラック40010は占有トラックであり、図1図4図15図18などのように符号化されたジオメトリデータ40050を含む。
【0804】
第3トラック40020はジオメトリトラックであり、図1図4図15図18などのように符号化された占有データ40060を含む。
【0805】
第4トラック40030はv-pcc(v3c)トラックであり、ポイントクラウドデータに関するデータを含むアトラスビットストリーム40070を含む。
【0806】
各々のトラックはサンプルエントリー及びサンプルで構成される。サンプルはフレームに対応するユニットである。N番目のフレームを復号するためには、N番目のフレームに対応するサンプル又はサンプルエントリーが必要である。サンプルエントリーはサンプルを記述する情報を含む。
【0807】
図41図40の詳しい構造図である。
【0808】
v3cトラック41000は第4トラック40030に対応する。v3cトラック41000に含まれたデータはボックスというデータコンテナのフォーマットを有する。v3cトラック41000はV3Cコンポーネントトラック41010ないし41030に関する参照情報を含む。
【0809】
実施例による受信方法/装置は、図41のようなポイントクラウドデータを含むコンテナ(ファイルとも称する)を受信して、V3Cトラックをパースする。v3cトラックに含まれた参照情報に基づいて占有データ、ジオメトリデータ、特質データを復号して復元する。
【0810】
占有トラック41010は第2トラック40010に対応し、占有データを含む。ジオメトリトラック41020は第3トラック40020に対応し、ジオメトリデータを含む。特質トラック41030は第1トラック40000に対応し、特質データを含む。
【0811】
以下、図40及び図41のファイルに含まれるデータ構造のシンタックスについて詳しく説明する。
【0812】
ボリュメトリックビジュアルトラック(Volumetric visual track)
【0813】
各々のボリュメトリックビジュアルシーンはユニークなボリュメトリックビジュアルトラックにより表現される。
【0814】
ISOBMFFファイルは複数のシーンを含み、それにより、マルチボリュメトリックビジュアルトラックがファイル内に存在する。
【0815】
ボリュメトリックビジュアルトラックはメディアボックスのハンドラーボックスのボリュメトリックビジュアルメディアハンドラータイプ‘volv’により識別される。ボリュメトリックビジュアルヘッダは以下のように定義される。
【0816】
ボリュメトリックビジュアルメディアヘッダ(Volumetric visual Media header)
【0817】
box Type:‘vvhd’
【0818】
Container:MediaInformationBox
【0819】
Mandatory:Yes
【0820】
Quantity:Exactly one
【0821】
ボリュメトリックビジュアルトラックはメディア情報ボックス(MediaInformationBox)のボリュメトリックビジュアルメディアヘッダボックス(VolumetricVisualMediaHeaderBox)を使用する。
【0822】
aligned(8) class VolumetricVisualMediaHeaderBox
【0823】
extends FullBox(‘vvhd', version=0、1){
【0824】
}
【0825】
バージョン(version)はこのボックスのバージョンを示す整数である。
【0826】
ボリュメトリックビジュアルサンプルエントリー(Volumetric visual sample entry)
【0827】
ボリュメトリックビジュアルトラックはボリュメトリックビジュアルサンプルエントリー(VolumetricVisualSampleEntry)を使用する。
【0828】
class VolumetricVisualSampleEntry(codingname)
【0829】
extends SampleEntry(codingname){
【0830】
unsigned int(8)[32] compressor_name;
【0831】
}
【0832】
コンプレッサーネイム(compressor_name):有益な目的のための名前である。固定32-バイトフィールドで形成される。第1バイトはディスプレイされるバイト数に設定され、UTF-8を使用して符号化されたディスプレイ可能なデータのバイト数が伴う。サイズバイトを含む32バイトを完成するためにパッドされる。このフィールドは0に設定されてもよい。
【0833】
ボリュメトリックビジュアルサンプル(Volumetric visual samples)
【0834】
ボリュメトリックビジュアルサンプルのフォーマットは実施例によるコーディングシステムにより定義される。
【0835】
V-PCCユニットヘッダボックス(V-PCC unit header box)
【0836】
このボックスはV-PCCトラック(サンプルエントリー内)及び全てのビデオコーディングされたV-PCCコンポーネントトラック(スキーム情報内)の両方に存在する。このボックスは個々のトラックにより伝達されるデータのためのV-PCCユニットヘッダを含む。
【0837】
aligned(8) class VPCCUnitHeaderBox
【0838】
extends FullBox(‘vunt', version=0、0){
【0839】
vpcc_unit_header() unit_header;
【0840】
}
【0841】
このボックスは上記のようなV-PCCユニットヘッダ(vpcc_unit_header())を含む。
【0842】
V-PCCデコーダ構成レコード(V-PCC decoder configuration record)
【0843】
このレコードはバージョンフィールドを含む。このバージョンはバージョン1である。レコードの両立不可な変更はバージョン番号の変化により識別される。実施例によるリーダー/デコーダはこのバージョンが認識できないバージョン番号である場合のレコード又はストリームを復号しなくてもよい。
【0844】
V-PCCパラメータセットに対するアレイは上記のようにV-PCCパラメータセットを含む。
【0845】
アトラスセットアップユニット(atlas_setupUnit)アレイはデコーダ構成レコードがアトラスストリームSEIメッセージと共に存在するサンプルエントリーにより称されるストリームに対して一定のアトラスパラメータセットを含む。
【0846】
aligned(8) class VPCCDecoderConfigurationRecord{
【0847】
unsigned int(8) configurationVersion=1;
【0848】
unsigned int(3) sampleStreamSizeMinusOne;
【0849】
unsigned int(5) numOfVPCCParameterSets;
【0850】
for(i=0;i<numOfVPCCParameterSets;i++){
【0851】
sample_stream_vpcc_unit VPCCParameterSet;
【0852】
}
【0853】
unsigned int(8) numOfAtlasSetupUnits;
【0854】
for (i=0;i<numOfAtlasSetupUnits;i++){
【0855】
sample_stream_vpcc_unit atlas_setupUnit;
【0856】
}
【0857】
}
【0858】
構成バージョン(configurationVersion)はバージョンフィールドである。このレコードと両立できない変化はバージョン番号の変化により識別される。
【0859】
サンプルストリームサイズ(sampleStreamSizeMinusOne):この値に1を加えると、この構成レコード又はこの構成レコードが適用されるストリーム内のV-PCCサンプル内の全てのサンプルストリームV-PCCユニット内のssvu_vpcc_unit_size要素のバイト内の精度を示す。
【0860】
V-PCCパラメータセット数(numOfVPCCParameterSets):デコーダ構成レコード内にシグナリングされるV-PCCパラメータセット(VPS)の数を示す。
【0861】
V-PCCパラメータセットはタイプVPCC_VPSのV-PCCユニットのsample_stream_vpcc_unit()インスタンスである。V-PCCユニットはV-PCCパラメータセット(vpcc_parameter_set())を含む。
【0862】
アトラスセットアップユニット数(numOfAtlasSetupUnits):この構成レコード内にシグナリングされるアトラスストリームに対するセットアップアレイの数を示す。
【0863】
アトラスセットアップユニット(Atlas_setupUnit):アトラスシーケンスパラメータセット、アトラスフレームパラメータセット又はSEIアトラスNALユニットを含むsample_stream_vpcc_unit()インスタンスである。例えば、ISO/IEC 23090-5の説明を参照できる。
【0864】
また実施例によって、V-PCCデコーダ構成レコードは以下のように定義される。
【0865】
aligned(8) class VPCCDecoderConfigurationRecord{
【0866】
unsigned int(8) configurationVersion=1;
【0867】
unsigned int(3) sampleStreamSizeMinusOne;
【0868】
bit(2) reserved=1;
【0869】
unsigned int(3) lengthSizeMinusOne;
【0870】
unsigned int(5) numOVPCCParameterSets;
【0871】
for(i=0;i<numOVPCCParameterSets;i++){
【0872】
sample_stream_vpcc_unit VPCCParameterSet;
【0873】
}
【0874】
unsigned int(8) numOfSetupUnitArrays;
【0875】
for(j=0;j<numOfSetupUnitArrays;j++){
【0876】
bit(1) array_completeness;
【0877】
bit(1) reserved=0;
【0878】
unsigned int(6) NAL_unit_type;
【0879】
unsigned int(8) numNALUnits;
【0880】
for(i=0;i<numNALUnits;i++){
【0881】
sample_stream_nal_unit setupUnit;
【0882】
}
【0883】
}
【0884】
構成情報(configurationVersion):バージョンフィールドである。このレコードに対する両立不可な変更事項はバージョン番号の変更により識別される。
【0885】
長さサイズ(lengthSizeMinusOne):この値に1を加えると、この構成レコード又はこの構成レコードに適用されるストリーム内のV-PCCサンプル内の全てのサンプルストリームNALユニット内のssnu_nal_unit_size要素のバイト内の精度(precision)を示す。
【0886】
サンプルストリームサイズ(sampleStreamSizeMinusOne):この値に1を加えると、この構成レコード内にシグナリングされる全てのサンプルストリームV-PCCユニット内のssvu_vpcc_unit_size要素のバイト内の精度(precision)を示す。
【0887】
V-PCCパラメータセット数(numOfVPCCParameterSets):この構成レコード内にシグナリングされるV-PCCパラメータセット(VPS)の数を示す。
【0888】
V-PCCパラメータセットはタイプVPCC_VPSのV-PCCユニットに対するsample_stream_vpcc_unit()インスタンスである。
【0889】
セットアップユニットアレイ数(numOfSetupUnitArrays):指示されたタイプのアトラスNALユニットのアレイ数である。
【0890】
アレイ完成度(array_completeness):この値が1であると、所定のタイプの全てのアトラスNALユニットが続くアレイ内にあり、ストリーム内にないことを示す。この値が0であると、指示されたタイプの追加アトラスNALユニットがストリーム内にあり得ることを示す。デフォルト及び許容された値はサンプルエントリーネイムにより影響を受ける。
【0891】
NALユニットタイプ(NAL_unit_type):続くアレイ内のアトラスNALユニットのタイプを示す。このタイプはISO/IEC 23090-5に定義された値を使用する。この値はNAL_ASPS、NAL_PREFIX_SEI又はNAL_SUFFIX_SEI atlas NAL unitを示す。
【0892】
NALユニット数(numNALUnits):この構成レコードが適用されるストリームに対する構成レコード内に含まれる指示されたタイプのアトラスNALユニットの数である。SEIアレイはただ記述的性格のSEIメッセージを含む。全体としてストリームに関する情報を提供する。かかるSEIの例示はユーザ-データSEIである。
【0893】
セットアップユニット(setupUnit):アトラスシーケンスパラメータセット又はアトラスフレームパラメータセット又は記述的SEIアトラスNALユニットを含むsample_stream_nal_unit()インスタンスである。
【0894】
V-PCCアトラスパラメータセットサンプルグループ(V-PCC atlas parameter set sample group)
【0895】
サンプルグルーピングに対するグルーピングタイプ‘vaps'はV-PCCトラック内サンプルのサンプルグループ内に伝達されるアトラスパラメータセットに配置することを示す。‘vaps'と同一のグルーピングタイプを有するサンプルツーグループボックス(SampleToGroupBox)が存在する場合、同一のグルーピングタイプを有するサンプルグループ記述ボックスが存在し、サンプルが属するこのグループのIDを含む。
【0896】
V-PCCトラックは‘vaps'と同一のグルーピングタイプを有する最大1つのサンプルツーグループボックスを含む。
【0897】
aligned(8) class VPCCAtlasParamSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(‘vaps'){
【0898】
unsigned int(8) numOfAtlasParameterSets;
【0899】
for(i=0;i<numOfAtlasParameterSets;i++){
【0900】
sample_stream_vpcc_unit atlasParameterSet;
【0901】
}
【0902】
}
【0903】
アトラスパラメータセット数(numOfAtlasParameterSets):サンプルグループ記述内にシグナリングされるアトラスパラメータセットの数を示す。
【0904】
アトラスパラメータセットはサンプルのこのグループに連関するアトラスシーケンスパラメータセット、アトラスフレームパラメータセットを含むsample_stream_vpcc_unit()インスタンスである。
【0905】
アトラスパラメータサンプルグループ記述エントリーは以下の通りである。
【0906】
aligned(8) class VPCCAtlasParamSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(‘vaps'){
【0907】
unsigned int(3) lengthSizeMinusOne;
【0908】
unsigned int(5) numOfAtlasParameterSets;
【0909】
for(i=0;i<numOfAtlasParameterSets;i++){
【0910】
sample_stream_nal_unit atlasParameterSetNALUnit;
【0911】
}
【0912】
}
【0913】
長さサイズ(lengthSizeMinusOne):この値に1を加えると、このサンプルグループ記述内にシグナリングされる全てのサンプルストリームNALユニット内のssnu_nal_unit_size要素のバイト内の精度を示す。
【0914】
アトラスパラメータセットNALユニット(atlasParameterSetNALUnit):サンプルのこのグループに連関するアトラスシーケンスパラメータセット、アトラスフレームパラメータセットを含むsample_stream_nal_unit()インスタンスである。
【0915】
V-PCC SEIサンプルグループ(V-PCC SEI sample group)
【0916】
サンプルグルーピングに対する‘vsei'グルーピングタイプはV-PCCトラック内サンプルのこのサンプルグループ内に伝達されるSEI情報への配置を示す。‘vsei'と同一のグルーピングタイプを有するサンプルツーグループボックスが存在する場合、同一のグルーピングタイプを有するサンプルグループ記述ボックス(SampleGroupDescriptionBox)が存在し、サンプルが属するグループのIDを含む。
【0917】
V-PCCトラックは‘vsei'と同一のグルーピングタイプを有するサンプルツーグループボックスを最大1つ含む。
【0918】
aligned(8) class VPCCSEISampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(‘vsei'){
【0919】
unsigned int(8) numOfSEIs;
【0920】
for(i=0;i<numOfSEISets;i++){
【0921】
sample_stream_vpcc_unit sei;
【0922】
}
【0923】
}
【0924】
SEIの数(numOfSEIs):サンプルグループ記述内にシグナリングされるV-PCC SEIの数を示す。
【0925】
SEIはサンプルのこのグループに連関するSEI情報を含むsample_stream_vpcc_unit()インスタンスである。
【0926】
V-PCC SEIサンプルグループ記述エントリーは以下の通りである。
【0927】
aligned(8) class VPCCSEISampleGroupDescriptionEntry () extends SampleGroupDescriptionEntry(‘vsei'){
【0928】
unsigned int(3) lengthSizeMinusOne;
【0929】
unsigned int(5) numOfSEIs;
【0930】
for(i=0;i<numOfSEIs;i++){
【0931】
sample_stream_nal_unit seiNALUnit;
【0932】
}
【0933】
}
【0934】
長さサイズ(lengthSizeMinusOne):この値に1を加えると、このサンプルグループ記述内にシグナリングされる全てのサンプルストリームNALユニット内のssnu_nal_unit_size要素のバイト内精度を示す。
【0935】
SEI NALユニット(seiNALUnit):サンプルのこのグループに連関するSEI情報を含むsample_stream_nal_unit()インスタンスである。
【0936】
V-PCCビットストリームのマルチトラックコンテナ(Multi track container of V-PCC bitstream)
【0937】
マルチトラックISOBMFF V-PCCコンテナの一般的なレイアウトである。V-PCC基本ストリーム内のV-PCCユニットがそれらのタイプに基づいてコンテナファイル内の個々のトラックにマッピングされる。マルチトラックISOBMFF V-PCCコンテナ内に2つのタイプのトラックがあり得る:V-PCCトラック及びV-PCCコンポーネントトラックである。
【0938】
V-PCCトラック(又はV3Cトラック)40030,41000はアトラスサブビットストリーム及びシーケンスパラメータセットを含むV-PCCビットストリーム内のボリュメトリックビジュアル情報を伝達するトラックである。
【0939】
V-PCCコンポーネントトラックはV-PCCビットストリームの占有マップ、ジオメトリ、特質サブ非ストリームに対する2Dビデオ符号化されたデータを伝達するビデオスキームトラックである。さらに、以下の条件がV-PCCコンポーネントトラックに対して満たされる。
【0940】
a)サンプルエントリー内、V-PCCシステム内のこのトラックに含まれたビデオストリームの役割を記述する新しいボックスが挿入される。
【0941】
b)V-PCCトラックにより表現される特定のポイントクラウド内のV-PCCコンポーネントトラックのメンバーシップを生成するために、V-PCCトラックからV-PCCコンポーネントトラックにトラック参照が導入される。
【0942】
c)このトラックが直接ムービーの全体的なレイアップに寄与せず、V-PCCシステムに寄与することを示すためにトラック-ヘッダフラグが0に設定される。
【0943】
実施例によるポイントクラウドデータを記述するアトラスビットストリーム、シグナリング情報(パラメータ、メタデータなどと称する)はボックスというデータ構造に含まれる。実施例による方法/装置はマルチトラックに基づいてアトラスビットストリーム、パラメータ情報をv-pccトラック(又はv3cトラック)に含ませて送信する。さらに実施例による方法/装置は実施例によるアトラスビットストリーム、パラメータ情報をv-pccトラック(又はv3cトラック)のサンプルエントリーに含ませて送信する。
【0944】
また実施例による方法/装置はシングルトラックに基づいて実施例によるアトラスビットストリーム及びパラメータ情報をV-PCC基本ストリームトラックに含ませて送信する。さらに実施例による方法/装置はアトラスビットストリーム及びパラメータ情報をV-PCC基本ストリームトラックのサンプルエントリー或いはサンプルに含ませて送信する。
【0945】
同一のV-PCCシーケンスが属するトラックは時間によって整列(align)される。異なるビデオ符号化されたV-PCCコンポーネントトラック及び間の同一のポイントクラウドフレームに寄与するサンプル及びV-PCCトラックは同一のプレゼンテーション時間を有する。サンプルに対して使用されるV-PCCアトラスシーケンスパラメータセット及びアトラスフレームパラメータセットは、ポイントクラウドフレームの構成時間(composition time)と等しいか又は早い復号時間を有する。さらに同一のV-PCCシーケンスに属する全てのトラックは同一の含蓄又は明瞭な編集リストを有する。
【0946】
ノート:コンポーネントトラック内の基本ストリーム間の同期化はISOBMFFトラックタイミング構造(stts、ctts、cslg)により処理されるか、又はムービーフラグメント内の同等なメカニズムにより処理される。
【0947】
このようなレイアウトに基づいて、V-PCC ISOBMFFコンテナは以下を含む(図24参照):
【0948】
-V-PCCパラメータセットV-PCCユニット(unit type VPCC_VPS)及びアトラスV-PCCユニット(unit type VPCC_AD)のペイロードを伝達するサンプル及びサンプルエントリー内のV-PCCパラメータセットを含むV-PCCトラック。またこのトラックはunit types VPCC_OVD、VPCC_GVD及びVPCC_AVDのようなビデオ圧縮されたV-PCCユニットのペイロードを伝達する他のトラックに対するトラック参照を含む。
【0949】
-タイプVPCC_OVDのV-PCCユニットのペイロードである占有マップデータのためのビデオコーディングされた基本ストリームのアクセスユニットを含むサンプルがあるビデオスキームトラック。
【0950】
-タイプVPCC_GVDのV-PCCユニットのペイロードであるジオメトリデータのビデオコーディングされた基本ストリームのアクセスユニットを含むサンプルがある1つ又は1つ以上のビデオスキームトラック。
【0951】
-タイプVPCC_AVDのV-PCCユニットのペイロードである特質データのビデオコーディングされた基本ストリームのアクセスユニットを含むサンプルがあるゼロ又は1つ以上のビデオスキームトラック。
【0952】
V-PCCトラック(V-PCC tracks):
【0953】
V-PCCトラックサンプルエントリー(V-PCC Track Sample Entry):
【0954】
サンプルエントリータイプ(Sample Entry Type):‘vpc1'、‘vpcg'
【0955】
コンテナ(Container):サンプル記述ボックス(SampleDescriptionBox)
【0956】
義務の有無(Mandatory):‘vpc1'又は‘vpcg'サンプルエントリーは義務である。
【0957】
量(Quantity):1つ又はそれ以上のサンプルエントリーが存在する。
【0958】
V-PCCトラックはVolumetricVisualSampleEntryを拡張するVPCCSampleEntryを使用する。サンプルエントリータイプは‘vpc1'又は‘vpcg'である。
【0959】
V-PCCサンプルエントリーはV-PCC構成ボックス(VPCCConfigurationBox)を含む。このボックスはデコーダ構成レコード(VPCCDecoderConfigurationRecord)を含む。
【0960】
‘vpc1'サンプルエントリーにおいて、全てのアトラスシーケンスパラメータセット、アトラスフレームパラメータセット又はV-PCC SEIはセットアップユニットアレイ(setupUnit array)内にある。
【0961】
‘vpcg'サンプルエントリーにおいて、アトラスシーケンスパラメータセット、アトラスフレームパラメータセット、V-PCC SEIがこのアレイ内又はストリーム内にある。
【0962】
任意のビットレートボックス(BitRateBox)はV-PCCトラックのビットレート情報をシグナリングするために、V-PCCボリュメトリックサンプルエントリー内に存在する。
【0963】
ボリュメトリックシーケンス(Volumetric Sequences):
【0964】
class VPCCConfigurationBox extends box(‘vpcc'){
【0965】
VPCCDecoderConfigurationRecord() VPCCConfig;
【0966】
}
【0967】
aligned(8) class VPCCSampleEntry() extends VolumetricVisualSampleEntry(‘vpc1'){
【0968】
VPCCConfigurationBox config;
【0969】
VPCCUnitHeaderBox unit_header;
【0970】
VPCCBoundingInformationBox();
【0971】
}
【0972】
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化する段階;ポイントクラウドデータをカプセル化する段階;及びポイントクラウドデータを送信する段階;を含む。
【0973】
実施例によるポイントクラウドデータをカプセル化する段階は、ポイントクラウドデータを含む1つ又は1つ以上のトラックを生成する段階を含む。
【0974】
実施例による1つ又は1つ以上のトラックは、ポイントクラウドデータ、例えば、特質データ、占有データ、ジオメトリデータ及び/又はそれらに関するパラメータ(メタデータ又はシグナリング情報)を含む。具体的には、トラックはサンプルを記述するサンプルエントリー及び/又はサンプルを含む。複数のトラックは第1トラック、第2トラックなどとも称される。
【0975】
実施例によるポイントクラウドデータ受信装置は、ポイントクラウドデータを受信する受信機;ポイントクラウドデータをデカプセル化するデカプセル化部;及びポイントクラウドデータを復号するデコーダ;を含む。
【0976】
実施例によるデカプセル化部はポイントクラウドデータを含む1つ又は1つ以上のトラックをパースする。
【0977】
図42は実施例によるV-PCCサンプルエントリーを示す。
【0978】
図42図40のV-PCCトラック(又はV3Cトラック)40030及び図41のV3Cトラック41000に含まれるサンプルエントリーの構造図である。
【0979】
図42はこの明細書で説明する実施例によるV-PCCサンプルエントリー構造の一例を示す。サンプルエントリーはV-PCCパラメータセット(VPS)42000を含み、任意にアトラスシーケンスパラメータセット(ASPS)42010、アトラスフレームパラメータセット(AFPS)42020及び/又はSEI42030を含む。
【0980】
実施例による方法/装置は、ポイントクラウドデータをファイルのトラックに格納する。さらに、トラックのサンプル又はサンプルエントリーにポイントクラウドデータに関するパラメータ(又はシグナリング情報)などを格納して送受信する。
【0981】
図42のV-PCCビットストリームは図26のV-PCCビットストリームを生成してパース(parse)する実施例により生成されてパースされる。
【0982】
V-PCCビットストリームはサンプルストリームV-PCCヘッダ、サンプルストリームヘッダ、V-PCCユニットヘッダボックス、サンプルストリームV-PCCユニットを含む。
【0983】
V-PCCビットストリームは図26及び図27などに説明したV-PCCビットストリームに対応するか又は追加拡張された例示である。
【0984】
V-PCCトラックサンプルフォーマット(V-PCC track sample format)
【0985】
V-PCCトラック内の各サンプルはシングルポイントクラウドフレームに対応する。様々なコンポーネントトラック内のこのフレームに対応するサンプルはV-PCCトラックサンプルのように同一の構成時間を有する。各々のV-PCCサンプル1つ又は1つ以上のアトラスNALユニットを含む。
【0986】
aligned(8) class VPCCSample{
【0987】
unsigned int PointCloudPictureLength=sample_size;//SampleSizeBoxからのサンプルサイズを意味する。
【0988】
for(i=0;i<PointCloudPictureLength;){
【0989】
sample_stream_nal_unit nalUnit
【0990】
i+=(VPCCDecoderConfigurationRecord.lengthSizeMinusOne+1)+nalUnit.ssnu_nal_unit_size;
【0991】
}
【0992】
}
【0993】
aligned(8) class VPCCSample
【0994】
{
【0995】
unsigned int PictureLength=sample_size;//SampleSizeBoxからのサンプルのサイズを意味する。
【0996】
for(i=0;i<PictureLength;)//ピクチャーの終わりまでシグナリングされる
【0997】
{
【0998】
unsigned int((VPCCDecoderConfigurationRecord.LengthSizeMinusOne+1)*8)
【0999】
NALUnitLength;
【1000】
bit(NALUnitLength*8) NALUnit;
【1001】
i+=(VPCCDecoderConfigurationRecord.LengthSizeMinusOne+1)+NALUnitLength;
【1002】
}
【1003】
}
【1004】
V-PCCデコーダ構成レコード(VPCCDecoderConfigurationRecord):マッチングされるV-PCCサンプルエントリー内のデコーダ構成レコードを示す。
【1005】
NALユニット(nalUnit):サンプルストリームNALユニットフォーマット内のシングルアトラスNALユニットを含む。
【1006】
NALユニット長さ(NALUnitLength):続くNALユニットのバイト内サイズを示す。
【1007】
NALユニット(NALUnit):シングルアトラスNALユニットを含む。
【1008】
V-PCCトラック同期サンプル(V-PCC track sync sample):
【1009】
V-PCCトラック内の同期サンプル(任意アクセスポイント)はV-PCC IRAPコーディングされたパッチデータアクセスユニットである。アトラスパラメータセットは必要な場合、任意アクセスのための同期サンプルで繰り返される。
【1010】
ビデオ-符号化されたV-PCCコンポーネントトラック(Video-encoded V-PCC component tracks):
【1011】
MPEG特定のコーデックを使用してコーディングされたビデオトラックの伝達はISO BMFFの規定に従う。例えば、AVC及びHEVCコーディングされたビデオの伝達はISO/IEC14496-15を参照できる。ISOBMFFは他のコーデックタイプが必要な場合、拡張メカニズムをさらに提供することができる。
【1012】
プレーヤー側においてポイントクラウドを再構成することなく、特質、ジオメトリ又は占有マップトラックから復号されたフレームをディスプレイすることは意味があるとは認められないので、限られたビデオスキームタイプはかかるビデオ-コーディングされたトラックに対して定義されることができる。
【1013】
限られたビデオスキーム(Restricted video scheme):
【1014】
V-PCCコンポーネントビデオトラックは限られたビデオとしてファイル内に表現される。また限られたビデオサンプルエントリーのRestrictedSchemeInfoBoxのSchemeTypeBoxのscheme_typeフィールド内の'pccv'値により識別される。
【1015】
特質、ジオメトリ及び占有マップV-PCCコンポーネントを符号化するために使用されるビデオコーデック上の制限(restriction)はない。さらに、かかるコンポーネントは異なるビデオコーデックを使用して符号化される。
【1016】
スキーム情報(Scheme information):
【1017】
SchemeInformationBoxが存在し、VPCCUnitHeaderBoxを含む。
【1018】
V-PCCコンポーネントトラックの参照(Referencing V-PCC component tracks):
【1019】
V-PCCトラックをコンポーネントビデオトラックにリンクするために、3つのTrackReferenceTypeBoxesが各コンポーネントのためにV-PCCトラックのTrackBox内TrackReferenceBoxに追加される。TrackReferenceTypeBoxはV-PCCトラック参照に関するビデオトラックを指定するtrack_IDのアレイを含む。TrackReferenceTypeBoxのreference_typeは占有マップ、ジオメトリ、特質又は占有マップなどのコンポーネントのタイプを識別する。トラック参照タイプは以下の通りである:
【1020】
‘pcco':参照されたトラックがビデオ-コーディングされた占有マップV-PCCコンポーネントを含む
【1021】
‘pccg':参照されたトラックがビデオ-コーディングされたジオメトリV-PCCコンポーネントを含む
【1022】
‘pcca':参照されたトラックがビデオ-コーディングされた特質V-PCCコンポーネントを含む
【1023】
参照された限られたビデオトラックにより伝達され、トラックのRestrictedSchemeInfoBox内でシグナリングされるV-PCCコンポーネントのタイプはV-PCCトラックからトラック参照の参照タイプにマッチングされる。
【1024】
図43は実施例によるトラック代替及びグルーピングを示す。
【1025】
図43はISOBMFFファイル構造のトラック間代替又はグルーピングが適用される例示である。送信側でカプセル化部20004などにより代替又はグルーピングが行われ、受信側でデカプセル化部20005などによりパースが行われる。
【1026】
トラック代替及びトラックグルーピング(Track alternatives and track grouping):
【1027】
同一のalternate_group値を有するV-PCCコンポーネントトラックは同一のV-PCCコンポーネントの異なる符号化されたバージョンである。ボリュメトリックビジュアルシーンは代替されてコーディングされる。この場合、互いに代替可能な全てのV-PCCトラックはTrackHeaderBox内の同一のalternate_group値を有する。
【1028】
同様にV-PCCコンポーネントの1つを示す2Dビデオトラックが代替(alternatives)に符号化される場合、かかる代替及び代替グループから代替の1つに対するトラック参照があり得る。
【1029】
図43にはファイル構造に基づくV-PCCコンテンツを構成するV-PCCコンポーネントトラックが示されている。同一のアトラスグループIDを有する場合には、IDが10である場合、11である場合、また12である場合がある。特質ビデオである第2トラック及び第5トラックは互いに代替使用でき、第3トラック及び第6トラックは互いにジオメトリビデオとして代替でき、第4トラック及び第7トラックは占有ビデオとして代替できる。
【1030】
V-PCCビットストリームのシングルトラックコンテナ(Single track container of V-PCC Bitstream):
【1031】
V-PCCデータのシングル-トラックカプセル化は、シングル-トラック宣言により表現されるV-PCC符号化された基本ビットストリームを求める(a single-track encapsulation of V-PCC data requires the V-PCC encoded elementary bitstream to be represented by a single-track declaration)。
【1032】
PCCデータのシングルトラックカプセル化は、V-PCC符号化されたビットストリームのシンプルISOBMFFのカプセル化の場合に利用される。かかるビットストリームは追加処理なしにシングルトラックにすぐ格納される。V-PCCユニットヘッダデータ構造はビットストリーム内にある。V-PCCデータのためのシングルトラックコンテナは追加処理(例えば、multi-track file generation, transcoding, DASH segmentationなど)のためのメディアワークフローに提供される。
【1033】
シングル-トラックカプセル化されたV-PCCデータを含むISOBMFFファイルは、FileTypeBoxのcompatible_brands[]リスト内の‘pcst'を含む。
【1034】
V-PCC基本ストリームトラック(V-PCC elementary stream track):
【1035】
Sample Entry Type:‘vpe1'、‘vpeg'
【1036】
Container:SampleDescriptionBox
【1037】
Mandatory:a ‘vpe1' or ‘vpeg' sample entry is mandatory
【1038】
Quantity:One or more sample entries may be present
【1039】
V-PCC基本ストリームトラックはサンプルエントリータイプ‘vpe1'又は‘vpeg'を有するVolumetricVisualSampleEntryを使用する。
【1040】
V-PCC基本ストリームサンプルエントリーはVPCCConfigurationBoxを含む。
【1041】
‘vpe1'サンプルエントリーにおいて、全てのアトラスシーケンスパラメータセット、アトラスフレームパラメータセット、SEIがsetupUnitアレイ内にある。‘vpeg'サンプルエントリーにおいて、アトラスシーケンスパラメータセット、アトラスフレームパラメータセット、SEIがこのアレイ又はストリーム内に存在する。
【1042】
ボリュメトリックシーケンス(Volumetric Sequences):
【1043】
class VPCCConfigurationBox extends box(‘vpcc'){
【1044】
VPCCDecoderConfigurationRecord() VPCCConfig;
【1045】
}
【1046】
aligned(8) class VPCCElementaryStreamSampleEntry() extends VolumetricVisualSampleEntry(‘vpe1'){
【1047】
VPCCConfigurationBox config;
【1048】
VPCCBoundingInformationBox 3d_bb;
【1049】
}
【1050】
V-PCC基本ストリームサンプルフォーマット(V-PCC elementary stream sample format):
【1051】
V-PCC基本ストリームサンプルは同一のプレゼンテーション時間に属する1つ又は1つ以上のV-PCCユニットで構成される。各々のサンプルはユニークなプレゼンテーション時間、サイズ、期間を有する。サンプルは例えば、同期サンプルであるか、又は他のV-PCC基本ストリームサンプル上の復号依存的である。
【1052】
V-PCC基本ストリーム同期サンプル(V-PCC elementary stream sync sample):
【1053】
V-PCC基本ストリーム同期サンプルは以下の条件を満たす:
【1054】
-独立してデコード可能である。
【1055】
-復号順に同期サンプル後のサンプルは同期サンプルより前のサンプルに対する復号依存を有さない。
【1056】
-復号順に同期サンプル後の全てのサンプルは成功的にデコード可能である。
【1057】
V-PCC基本ストリームサブ-サンプル(V-PCC elementary stream sub-sample):
【1058】
V-PCC基本ストリームサブ-サンプルはV-PCC基本ストリームサンプル内に含まれるV-PCCユニットである。
【1059】
V-PCC基本ストリームトラックは、V-PCC基本ストリームサブ-サンプルを並べるMovieFragmentBoxesのTrackFragmentBox内又は各SampleTableBox内のSubSampleInformationBoxを含む。
【1060】
サブ-サンプルを表現するV-PCCユニットの32-ビットユニットヘッダは、SubSampleInformationBox内のサブ-サンプルエントリーの32-ビットcodec_specific_parametersフィールドにコピーされる。各サブ-サンプルのV-PCCユニットタイプは、SubSampleInformationBox内のサブ-サンプルエントリーのcodec_specific_parametersフィールドをパースすることにより識別される。
【1061】
以下、説明する情報は以下のように伝達される。例えば、ポイントクラウドデータが静的(Static)な場合、マルチトラックのV3Cトラックのサンプルエントリー又はシングルトラックの基本トラックのサンプルエントリーに含まれて送信される。またポイントクラウドデータが動的な場合は、該当情報が別の時間指定メタデータ(timed metadata)トラックに含まれて送信される。
【1062】
図44は実施例による3Dバウンディングボックス情報構造を示す。
【1063】
図44図40及び図41によるファイルに含まれる3Dバウンディングボックスを示す。例えば、3Dバウンディングボックスはポイントクラウドビットストリームのコンテナであるファイルのマルチトラック及び/又はシングルトラックに含まれて伝達される。実施例によるファイル/セグメントカプセル化部20004,21009、ファイル/セグメントデカプセル化部20005,22000などにより生成されてパースされる。
【1064】
実施例による3Dバウンディングボックス構造は、3DバウンディングボックスのX、Y、Zオフセット及びポイントクラウドデータの3Dバウンディングボックスの幅、高さ、深さを含む、ポイントクラウドデータの3Dバウンディングボックスを提供する。
【1065】
バウンディングボックスX(bb_x)、バウンディングボックスY(bb_y)、バウンディングボックスZ(bb_z):座標系内のポイントクラウドデータの3Dバウンディングボックスの原点(origin position)の各々のX、Y、Z座標系値を示す。
【1066】
バウンディングボックスデルタX(bb_delta_x)、バウンディングボックスデルタY(bb_delta_y)、バウンディングボックスデルタZ(bb_delta_z):オリジンに対して各X、Y、Z軸に沿って座標系内のポイントクラウドデータの3Dバウンディングボックスの拡張を示す。
【1067】
実施例によるファイル/セグメントカプセル化部20004,21009、ファイル/セグメントデカプセル化部20005,22000などは、ポイントクラウドビットストリームのコンテナであるファイルのマルチトラック及び/又はシングルトラックに基づいてポイントクラウドバウンディングボックスを生成してパースする。
【1068】
実施例によるバウンディング情報ボックス(VPCCBoundingInformationBox)は、マルチトラックのV-PCCトラック及び/又はシングルトラックのV-PCC基本ストリームトラックのサンプルエントリーに存在する。V-PCCトラック及び/又はV-PCC基本ストリームトラックのサンプルエントリー内に存在する場合、バウンディング情報ボックス(VPCCBoundingInformationBox)は関連するか又は伝達されるポイントクラウドデータのオーバーオールバウンディングボックス情報(overall bounding box information)を提供する。
【1069】
aligned(8) class VPCCBoundingInformationBox extends FullBox('vpbb',0,0) {
【1070】
3DBoundingBoxInfoStruct();
【1071】
}
【1072】
V-PCCトラックがサンプルエントリータイプ'dybb'を有する関連する時間指定メタデータトラックを有する場合、時間指定メタデータトラックはポイントクラウドデータの動的に変化する3Dバウンディングボックス情報を含む。
【1073】
関連する時間指定メタデータトラックはアトラスストリームを伝達するV-PCCトラックを参照する'cdsc'トラックを含む。
【1074】
aligned(8) class Dynamic3DBoundingBoxSampleEntry
【1075】
extends MetaDataSampleEntry('dybb'){
【1076】
VPCCBoundingInformationBox all_bb;
【1077】
}
【1078】
全バウンディングボックス(all_bb):オリジンに対して各X、Y、Z軸に沿って座標系内のポイントクラウドデータのオーバーオール3Dバウンディングボックスの拡張及び原点位置のX、Y、Z座標を含むオーバーオール3Dバウンディングボックス情報を提供する。
【1079】
サンプルエントリータイプ'dybb'のサンプルシンタックスは以下の通りである。
【1080】
aligned(8) Dynamic3DBoundingBoxSample() {
【1081】
VPCCBoundingInformationBox 3dBB;
【1082】
}
【1083】
3Dバウンディングボックス(3dBB):サンプル内シグナリングされる3Dバウンディングボックス情報を提供する。
【1084】
3D空間領域構造(3DSpatialRegionStruct)はボリュメトリックビジュアルデータの部分接近に関する情報を提供する。
【1085】
3D空間領域構造及び3Dバウンディングボックス構造は、空間領域のX、Y、Zオフセット及び3D空間内の空間の幅、高さ、深さを含むボリュメトリックメディア及びボリュメトリックメディアの3Dバウンディングボックス情報の空間領域の情報を提供する。
【1086】
aligned(8) class 3DPoint() {
【1087】
unsigned int(16) x;
【1088】
unsigned int(16) y;
【1089】
unsigned int(16) z;
【1090】
}
【1091】
aligned(8) class CuboidRegionStruct() {
【1092】
unsigned int(16) cuboid_dx;
【1093】
unsigned int(16) cuboid_dy;
【1094】
unsigned int(16) cuboid_dz;
【1095】
}
【1096】
aligned(8) class 3DSpatialRegionStruct(dimensions_included_flag) {
【1097】
unsigned int(16) 3D_region_id;
【1098】
3DPoint anchor;
【1099】
if(dimensions_included_flag) {
【1100】
CuboidRegionStruct();
【1101】
}
【1102】
}
【1103】
aligned(8) class 3DBoundingBoxStruct() {
【1104】
unsigned int(16) bb_dx;
【1105】
unsigned int(16) bb_dy;
【1106】
unsigned int(16) bb_dz;
【1107】
}
【1108】
3D領域ID(3d_region_id):空間領域に対する識別子である。
【1109】
X、Y、Z:座標系内の3Dポイントの各々のX、Y、Z座標値を示す。
【1110】
直方体デルタX、直方体デルタY、直方体デルタZ(bb_dx、bb_dy及びbb_dz):オリジン(0、0、0)に対する各X、Y、Z軸に沿って座標系内の全体ボリュメトリックメディアの3Dバウンディングボックスの拡張を示す。
【1111】
ディメンション含みフラグ(dimensions_included_flag):空間領域のディメンションがシグナリングされるか否かを示す。
【1112】
dimensions_included_flagが0であると、ディメンションがシグナリングされず、同じ領域に対して以前にシグナリングされることを示す。同一の3D領域ID(3d_region_id)を有する3DSpatialRegionStructの以前インスタンスがディメンションをシグナリングする。
【1113】
実施例による送信方法/装置は、上述したように、3Dバウンディングボックス情報をV3Cトラックに含めて送信し、実施例による受信方法/装置は、V3Cトラックに基づいて3Dバウンディングボックス情報を効率的に得ることができる。
【1114】
即ち、実施例はビットストリームの効率的な伝達及び復号のためにファイルコンテナを提案し、ファイルコンテナ内のトラックに3Dバウンディングボックスの位置及び/又はサイズ情報を含めて伝達することにより、ポイントクラウドデータの空間或いは部分接近が可能である。また全体ビットストリームを復号する必要がなく、ファイル内のトラックをデカプセル化してパースし、所望の空間データを迅速に得ることができる。
【1115】
実施例による方法/装置は、実施例による3Dバウンディングボックス情報を実施例によるトラックのサンプルエントリー及び/又はサンプルに伝達する。
【1116】
実施例によるサンプル(例えば、サンプルエントリータイプ'dybb'のサンプルシンタックス)が3Dバウンディングボックス情報を伝達する場合、時間によって変化すバウンディングボックスに関する情報をシグナリングすることができる。即ち、該当サンプルが復号される時点でのバウンディングボックス情報をシグナリングすることにより、該当時点での細かい空間的接近を支援できるという効果がある。
【1117】
図45は実施例による非-時間指定V-PCCデータをカプセル化する構造の概略を示す。
【1118】
図45図20ないし図22のポイントクラウドデータ関連装置が非-時間指定ポイントクラウドデータを処理する場合、非-時間指定V-PCCデータを伝達するための構造を示す。
【1119】
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、非-時間指定V-PCCデータ(Non-timed V-PCC data)を図45のようにカプセル化して送受信する。
【1120】
実施例によるポイントクラウドデータがイメージである場合、図1のポイントクラウドビデオエンコーダ10002(又は図4のエンコーダ、図15のエンコーダ、図18の送信装置、図20のプロセッサ20001、イメージエンコーダ20003、図21のプロセッサ、及びイメージエンコーダ21008)がイメージを符号化し、ファイル/セグメントカプセル化部10003(又は図20のファイル/セグメントカプセル化部20004、図21のファイル/セグメントカプセル化部21009)が図45のようなコンテナ(アイテム)にイメージ及びイメージ関連情報を格納し、送信機10004がコンテナを送信する。
【1121】
同様に図1の受信機が図45のコンテナを受信し、ファイル/セグメントデカプセル化部10007(又は図20のファイル/セグメントデカプセル化部20005、ファイル/セグメントデカプセル化部22000)がコンテナをパースする。図1のポイントクラウドビデオデコーダ10008(又は図16のデコーダ、図17のデコーダ、図19の受信装置又はイメージデコーダ20006、イメージデコーダ22002)がアイテムに含まれたイメージを復号してユーザに提供する。
【1122】
実施例によるイメージは停止映像である。実施例による方法/装置はイメージに対するポイントクラウドデータを送受信する。実施例による方法/装置は図45のようなデータコンテナ構造に基づいてイメージをアイテムに格納して送受信する。またイメージに関する属性情報などはイメージプロパティなどに格納できる。
【1123】
ノンタイムV-PCCデータはイメージアイテムとしてファイル内に格納される。2つの新しいアイテムタイプ(V-PCCアイテム及びV-PCCユニットアイテム)はノンタイムV-PCCデータをカプセル化するために定義される。
【1124】
新しいハンドラータイプ4CCコード‘vpcc'はV-PCCアイテム、V-PCCユニットアイテム及び他のV-PCC符号化されたコンテンツ表現情報の存在を示すために、メタボックス(MetaBox)のハンドラーボックス(HandlerBox)内に定義されて格納される
【1125】
V-PCCアイテム(V-PCC Items,45000):V-PCCアイテムは独立して復号可能なV-PCCアクセスユニットを示すアイテムである。アイテムタイプ‘vpci'はV-PCCアイテムを識別するために定義される。V-PCCアイテムはアトラスサブビットストリームのV-PCCユニットペイロードを格納する。一次アイテムボックス(PrimaryItemBox)が存在すると、このボックス内のアイテムID(item_id)はV-PCCアイテムを示すためにセットされる。
【1126】
V-PCCユニットアイテム(V-PCC Unit Item,45010):V-PCCユニットアイテムはV-PCCユニットデータを示すアイテムである。占有、ジオメトリ及び特質ビデオデータユニットのV-PCCユニットアイテムは、V-PCCユニットペイロードを格納する。V-PCCユニットアイテムはただ1つのV-PCCアクセスユニット関連データだけを格納する。
【1127】
V-PCCユニットアイテムに対するアイテムタイプは対応するビデオデータユニットを符号化するために使用されるコーデックによりセットされる。V-PCCユニットアイテムは対応するV-PCCユニットヘッダアイテムプロパティ(V-PCC unit header item property)及びコーデック特定の構成アイテムプロパティ(codec specific configuration item property)に関連がある。独立してディスプレイすることは意味がないので、V-PCCユニットアイテムは隠しアイテムで表示される。
【1128】
V-PCCアイテム及びV-PCCユニットアイテム間の関係を示すために、以下の3つのアイテム参照タイプが使用される。アイテム参照はV-PCCアイテムから関連するV-PCCユニットアイテムにより定義される。
【1129】
‘pcco':参照されたV-PCCユニットアイテムは占有ビデオデータユニットを含む。
【1130】
‘pccg':参照されたV-PCCユニットアイテムはジオメトリビデオデータユニットを含む。
【1131】
‘pcca':参照されたV-PCCユニットアイテムは特質ビデオデータユニットを含む。
【1132】
V-PCC構成アイテムプロパティ(V-PCC configuration item property,45020)
【1133】
box Types:‘vpcp'
【1134】
Property type:Descriptive item property
【1135】
Container:ItemPropertyContainerBox
【1136】
Mandatory(per item):Yes, for a V-PCC item of type ‘vpci'
【1137】
Quantity(per item):One or more for a V-PCC item of type ‘vpci'
【1138】
V-PCC構成アイテムプロパティのボックスタイプは‘vpcp'であり、プロパティタイプは記述的アイテムプロパティである。コンテナはアイテムプロパティコンテナボックスである。アイテムごとのタイプ‘vpci'のV-PCCタイプについて必須である。アイテムごとのタイプ‘vpci'のV-PCCアイテムに対して1つ又はそれ以上が存在する。
【1139】
V-PCCパラメータセットはこの記述的アイテムプロパティとして格納され、V-PCCアイテムに連関がある。
【1140】
aligned(8) class vpcc_unit_payload_struct(){
【1141】
unsigned int(16) vpcc_unit_payload_size;
【1142】
vpcc_unit_payload();
【1143】
}
【1144】
V-PCCユニットペイロードサイズ(vpcc_unit_payload_size):vpcc_unit_paylod()のバイトサイズを示す。
【1145】
aligned(8) class VPCCConfigurationProperty extends ItemProperty(‘vpcc'){
【1146】
vpcc_unit_payload_struct()[];
【1147】
}
【1148】
V-PCCユニットペイロード(vpcc_unit_paylod())はタイプVPCC_VPSのV-PCCユニットを含む。
【1149】
V-PCCユニットヘッダアイテムプロパティ(V-PCC unit header item property,45030)
【1150】
box Types:‘vunt'
【1151】
Property type:Descriptive item property
【1152】
Container:ItemPropertyContainerBox
【1153】
Mandatory (per item):Yes, for a V-PCC item of type ‘vpcI' and for a V-PCC unit item
【1154】
Quantity(per item):One
【1155】
V-PCCユニットヘッダアイテムプロパティのボックスタイプは‘vunt'であり、プロパティタイプは記述的アイテムプロパティであり、コンテナはアイテムプロパティコンテナボックスである。アイテムごとのV-PCCユニットアイテム及びタイプ‘vpci'のV-PCCアイテムについて必須である。アイテムごとに1つ存在する。
【1156】
V-PCCユニットヘッダは記述的アイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに関連がある。
【1157】
aligned(8) class VPCCUnitHeaderProperty() extends ItemFullProperty(‘vunt', version=0, 0){
【1158】
vpcc_unit_header();
【1159】
}
【1160】
図45の構造に基づいて、実施例による方法/装置/システムはノンタイムポイントクラウドデータを伝達する。
【1161】
ノンタイムビデオ基盤のポイントクラウドデータの伝達(Carriage of non-timed Video-based point Cloud Compression Data)
【1162】
イメージアイテムとしてファイル内のノンタイムV-PCCデータが格納される。V-PCCアイテム、V-PCCユニットアイテム及び他のV-PCC符号化されたコンテンツ表現情報の存在を示すために、新しいハンドルでタイプ4CCコード‘vpcc'が定義され、メタボックスのハンドラーボックス内に格納される。
【1163】
実施例によるアイテムはイメージを示す。例えば、動かないデータであり、1枚のイメージを称する。
【1164】
実施例による方法/装置は、図45に示すように、ノンタイムV-PCCデータをカプセル化するための構造に基づいて実施例によるデータを生成して送信する。
【1165】
V-PCCアイテム(V-PCC Items)
【1166】
V-PCCアイテムは独立して復号可能なV-PCCアクセスユニットを示すアイテムである。新しいアイテムタイプは4CCコード‘vpci'はV-PCCアイテムを識別するために定義される。V-PCCアイテムはアトラスサブビットストリームのV-PCCユニットペイロードを格納する。
【1167】
一次アイテムボックス(PrimaryItemBox)が存在すると、このボックス内のアイテムID(item_id)がV-PCCアイテムを示すために設定される。
【1168】
V-PCCユニットアイテム(V-PCC Unit Item)
【1169】
V-PCCユニットアイテムはV-PCCユニットデータを示すアイテムである。
【1170】
V-PCCユニットアイテムは占有、ジオメトリ、特質ビデオデータユニットのV-PCCユニットペイロードを格納する。V-PCCユニットアイテムはただ1つのV-PCCアクセスユニット関連のデータを含む。
【1171】
V-PCCユニットアイテムに対するアイテムタイプ4CCコードは対応するビデオデータユニットを符号化するために使用されるコーデックに基づいて設定される。V-PCCユニットアイテムは対応するV-PCCユニットヘッダアイテムプロパティ及びコーデック特定の構成アイテムプロパティに連関がある。
【1172】
V-PCCユニットアイテムは隠しアイテムとしてマーキングされる。独立してディスプレイすることは意味がないこともあるためである。
【1173】
V-PCCアイテム及びV-PCCユニットの間の関係を示すために、3つの新しいアイテム参照タイプ、4CCコード‘pcco'、‘pccg'及び‘pcca'が定義される。アイテム参照はV-PCCアイテムから関連するV-PCCユニットアイテムにより定義される。アイテム参照タイムの4CCコードは以下の通りである。
【1174】
‘pcco':占有ビデオデータユニットを含む参照されたV-PCCユニットアイテム
【1175】
‘pccg':参照されたV-PCCユニットアイテムはジオメトリビデオデータユニットを含む。
【1176】
‘pcca':参照されたV-PCCユニットアイテムは特質ビデオデータユニットを含む。
【1177】
V-PCC関連のアイテム特性(V-PCC-related item properties)
【1178】
記述的アイテム特性はV-PCCパラメータセット情報及びV-PCCユニットヘッダ情報のそれぞれを伝達するために定義される。
【1179】
V-PCC構成アイテムプロパティ(V-PCC configuration item property)
【1180】
Box Types:‘vpcp'
【1181】
Property type:Descriptive item property
【1182】
Container:ItemPropertyContainerBox
【1183】
Mandatory(per item):Yes, for a V-PCC item of type ‘vpci'
【1184】
Quantity(per item):One or more for a V-PCC item of type ‘vpci'
【1185】
V-PCCパラメータセットは記述的アイテムプロパティとして格納され、V-PCCアイテムに連関がある。
【1186】
必須(essential)は‘vpcp'アイテムプロパティに対して1に設定される。
【1187】
aligned(8) class vpcc_unit_payload_struct(){
【1188】
unsigned int(16) vpcc_unit_payload_size;
【1189】
vpcc_unit_payload();
【1190】
}
【1191】
aligned(8) class VPCCConfigurationProperty
【1192】
extends ItemProperty(‘vpcc'){
【1193】
vpcc_unit_payload_struct()[];
【1194】
}
【1195】
V-PCCユニットペイロードサイズ(vpcc_unit_payload_size):vpcc_unit_paylod()のバイト内サイズを示す。
【1196】
V-PCCユニットヘッダアイテムプロパティ(V-PCC unit header item property)
【1197】
box Types:‘vunt'
【1198】
Property type:Descriptive item property
【1199】
Container:ItemPropertyContainerBox
【1200】
Mandatory(per item):Yes, for a V-PCC item of type ‘vpci' and for a V-PCC unit item
【1201】
Quantity(per item):One
【1202】
V-PCCユニットヘッダは記述的アイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに連関がある。
【1203】
必須は‘vunt'アイテムプロパティに対して1に設定される。
【1204】
aligned(8) class VPCCUnitHeaderProperty(){
【1205】
extends ItemFullProperty(‘vunt', version=0, 0){
【1206】
vpcc_unit_header();
【1207】
}
【1208】
図46は実施例によるV-PCC 3Dバウンディングボックスアイテムプロパティを示す。
【1209】
図46図45のアイテムに含まれる3Dバウンディングボックスアイテムプロパティを示す。
【1210】
V-PCC 3Dバウンディングボックスアイテムプロパティ(V-PCC 3D bounding box item property)
【1211】
box Types:‘v3dd'
【1212】
Property type:Descriptive item property
【1213】
Container:ItemPropertyContainerBox
【1214】
Mandatory(per item):Yes, for a V-PCC item of type ‘vpci' and for a V-PCC unit item
【1215】
Quantity(per item):One
【1216】
3Dバウンディング情報は記述的アイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに連関がある。
【1217】
aligned(8) class VPCC3DBoundingBoxInfoProperty(){
【1218】
extends ItemFullProperty(‘V3DD', version=0, 0){
【1219】
3DBoundingBoxInfoStruct();
【1220】
}
【1221】
実施例による提案方式においてポイントクラウドコンテンツサービスを提供するための送信機又は受信機は、上述したようにV-PCCビットストリームを構成してファイルを格納する。
【1222】
V-PCCビットストリーム内データ処理及びレンダリングのためのメタデータをビットストリーム内に送信する。
【1223】
プレーヤーなどがユーザビューポートなどによってポイントクラウド客体/コンテンツの空間或いは部分接近できるようにする。言い換えれば、上述したデータ表現方式はポイントクラウドビットストリームに効率的に接近できる効果を提供する。
【1224】
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドコンテンツ(例えば、V-PCCコンテンツ)に対する部分接近及び/又は空間接近のためのバウンディングボックス及びこのためのシグナリング情報を提供して、実施例によるポイントクラウドデータ受信装置がプレーヤー又はユーザ環境を考慮してポイントクラウドコンテンツを様々にアクセスできる効果を提供する。
【1225】
実施例による方法/装置は、トラック或いはアイテム内のポイントクラウドビデオ/イメージの3Dバウンディングボックス情報を格納し、それをシグナリングする。またトラック或いはアイテム内のポイントクラウドビデオ/イメージの視聴情報(視聴位置、視聴オリエンテーション、視聴方向など)関連情報を格納し、それをシグナリングする。また視聴情報及び3Dバウンディングボックス情報に連関するトラック/アイテムをグルーピングし、それを参照するシグナリングを行う。
【1226】
格納されたV-PCCビットストリームに対する効率的な接近を支援するためのファイル格納技法を処理するポイントクラウドコンテンツサービスを提供するための送信機又は受信機を提案する。
【1227】
ポイントクラウドデータ(ビデオ或いはイメージ)の3Dバウンディングボックスが静的であるか又は時間によって動的に変化する。ユーザのビューポート及び/又はポイントクラウドデータ(ビデオ或いはイメージ)の視聴情報などによってポイントクラウドデータを構成し、シグナリングする方案が必要である。
【1228】
この明細書で使用する用語の定義は以下の通りである。VPS:V-PCC parameter set、AD:atlas data、OVD:occupancy video data、GVD:geometry video data、AVD:attribute video data、ACL:Atlas Coding Layer
【1229】
AAPS:Atlas Adaptation Parameter Set。カメラパラメータを含む。例えば、カメラ位置、回転、スケール及びカメラモデル、アトラスサブビットストリームのパートに連関するデータなどがある。
【1230】
ASPS:atlas sequence parameter set。各々のタイルグループヘッダ内のシンタックス要素と称されるASPS内のシンタックス要素のコンテンツにより決定されるゼロ又は1つ以上の全体コーディングされたアトラスシーケンス(coded atlas sequences、CASs)に適用されるシンタックス要素を含むシンタックス構造である。
【1231】
AFPS:atlas frame parameter set。タイルグループヘッダ内のシンタックス要素のコンテンツにより決定されるゼロ又は1つ以上の全体コーディングされたアトラスフレームに適用されるシンタックス要素を含むシンタックス構造である。
【1232】
SEI:Supplemental enhancement information
【1233】
アトラス(Atlas):2Dバウンディングボックスの集合である。即ち、パッチである。3D空間の3次元バウンディングボックスに対応する矩形フレームにプロジェクションされる。ポイントクラウドのサブセットを示す。
【1234】
アトラスサブ-ビットストリーム(Atlas sub-bitstream):アトラスNALビットストリームの部分を含むV-PCCビットストリームから抽出されたサブ-ビットストリームである。
【1235】
V-PCCコンテンツ:ポイントクラウドであり、ビデオ基盤のポイントクラウド圧縮(video-coded point cloud compression、V-PCC)に基づいて符号化される。
【1236】
V-PCCトラック:V-PCCビットストリームのアトラスビットストリームを伝達するボリュメトリックビジュアルトラックである。
【1237】
V-PCCコンポーネントトラック(V-PCC component track):V-PCCビットストリームの占有マップ、ジオメトリ又は特質コンポーネントビデオビットストリームに対する2Dビデオ符号化されたデータを伝達するビデオトラックである。
【1238】
ポイントクラウドデータ(ビデオ或いはイメージ)の3Dバウンディングボックスは静的であるか或いは時間によって動的に変化する。ユーザのビューポートなどによってファイル内のポイントクラウドデータを含むトラック或いはアイテムなどを選択するか、或いはトラック又はアイテム内のデータをパース/復号/レンダリングするためにポイントクラウドデータの3Dバウンディングボックス情報が使用される。実施例による方法/装置は、ポイントクラウドデータの3Dバウンディングボックス情報をトラック或いはアイテム内に格納或いはシグナリングする。3Dバウンディングボックスの変化する属性によって3Dバウンディングボックス情報をサンプルエントリー、トラックグループ、サンプルグループ、或いは別のメタデータトラックに含めて伝達する。
【1239】
ポイントクラウドデータ(ビデオ或いはイメージ)の視聴情報(視聴位置、視聴オリエンテーション、視聴方向など)が静的であるか或いは時間によって動的に変化する。ユーザに効果的にポイントクラウドビデオデータを提供するために、実施例による方法/装置は該当視聴情報をトラック或いはアイテム内に格納或いはシグナリングする。視聴情報の変化する属性によって該当情報をサンプルエントリー、トラックグループ、サンプルグループ、或いは別のメタデータトラックに含めて伝達する。
【1240】
図26及び図27を参照すると、各々のV-PCCユニットはV-PCCユニットヘッダ及びV-PCCユニットペイロードを有する。V-PCCユニットヘッダはV-PCCユニットタイプを説明する。特質ビデオデータV-PCCユニットヘッダは特質タイプ及びそのインデックスを説明する。支援される同一の特質タイプのマルチインスタンスが可能である。占有、ジオメトリ、特質ビデオデータユニットペイロードはビデオデータユニットに対応する。例えば、HEVC NALユニットである。かかるユニットは適切なビデオデコーダにより復号される。
【1241】
V-PCCビットストリームはV-PCCシーケンスのシリーズを含む。vpcc_VPSと同一のvuh_unit_typeの値を有するV-PCCユニットタイプは、V-PCCシーケンス内の1番目のV-PCCユニットタイプである。全ての他のV-PCCユニットタイプはそれらのコーディング順序内の追加制限なしに、そのユニットタイプに従う。占有ビデオ、特質ビデオ又はジオメトリビデオを伝達するV-PCCユニットのV-PCCユニットペイロードは1つ又は1つ以上のNALユニットで構成される。
【1242】
図47は実施例によるV-PCCユニットを示す。
【1243】
図47図28及び図26に説明したV-PCCユニット26020及びV-PCCユニットヘッダ26030のシンタックスを示す。
【1244】
図47の要素の定義は図28の対応する要素の定義を参照する。
【1245】
VUH特質パーティションインデックス(vuh_attribute_partition_index):特質ビデオデータユニット内に伝達される特質ディメンショングループのインデックスを示す。
【1246】
VUH付加ビデオフラグ(vuh_auxiliary_video_flag):この値が1であると、関連するジオメトリ又は特質ビデオデータユニットがRAW及び/又はEOMコーディングされたポイントビデオのみであることを示す。この値が0であると、関連するジオメトリ又は特質ビデオデータユニットがRAW及び/又はEOMコーディングされたポイントを含むことを示す。
【1247】
図48は実施例によるV-PCCパラメータセットを示す。
【1248】
図48図30図26ないし図29のように、実施例によるビットストリームのユニット26020のペイロード26040がパラメータセットを含む場合、パラメータセットのシンタックスを示す。
【1249】
図48の要素の定義は図30の対応する要素の定義を参照する。
【1250】
付加ビデオ存在フラグ(auxiliary_video_present_flag[j]):この値が1であると、インデックスJを有するアトラスに関する付加情報、即ち、RAW又はEOMパッチデータが付加ビデオストリームと称される個別ビデオストリームに格納されることを示す。この値が0であると、インデックスJを有するアトラスに関する付加情報が個別ビデオストリームに格納されないことを示す。
【1251】
VPS拡張存在フラグ(vps_extension_present_flag):この値が1であると、シンタックス要素vps_extension_lengthがvpcc_parameter_setシンタックス構造内に存在することを示す。この値が0であると、シンタックス要素vps_extension_lengthが存在しないことを示す。
【1252】
VPS拡張長さ(vps_extension_length_minus1):この値に1を加えると、このシンタックス要素に従うvps_extension_data_byte要素の数を示す。
【1253】
VPS拡張データバイト(vps_extension_data_byte)は様々な値を有する。
【1254】
図49は実施例によるアトラスフレームを示す。
【1255】
図49図1のエンコーダ10002、図4のエンコーダ、図15のエンコーダ、図18の送信装置、及び図20及び図21のシステムなどにより符号化されるタイルを含むアトラスフレームを示し、図1のデコーダ10008、図16及び図17のデコーダ、図19の受信装置、及び図23のシステムなどにより復号されるタイルを含むアトラスフレームを示す。
【1256】
アトラスフレームは1つ又は1つ以上のタイル行及び1つ又は1つ以上のタイル列に分けられる。タイルはアトラスフレームの矩形領域である。タイルグループはアトラスフレームの複数のタイルを含む。タイル及びタイルグループは互いに区別されず、タイルグループが1つのタイルに対応する。ただ矩形タイルグループが支援される。このモードにおいて、タイルグループ(又はタイル)がアトラスフレームの矩形領域を集合的にアトラスフレームの複数のタイルを含む。図49は実施例によるアトラスフレームのタイル又はタイルグループ分割を示す。アトラスフレームの24個のタイル(6個のタイル列及び4個のタイル行)及び9個の矩形タイルグループを図49に示す。実施例によるタイルグループ及びタイルの区別なしに、タイルグループがタイルに対応する用語として使用される。
【1257】
即ち、実施例によって、タイルグループ49000はタイル49010に対応し、タイル49010と称される。またタイル49010はタイルパーティションに対応し、タイルパーティションと称される。シグナリング情報の名称もこのような相互補完的な対応関係によって変更して称することができる。
【1258】
図50は実施例によるアトラスビットストリームの構造を示す。
【1259】
図50図31及び図26のビットストリーム26000のユニット26020のペイロード26040がアトラスサブ-ビットストリーム31000を伝達する例示を示す
【1260】
実施例で使用する用語‘サブ’は一部を意味するものと解釈できる。実施例によって、サブビットストリームはビットストリームとも解釈される。
【1261】
実施例によるアトラスビットストリームはサンプルストリームNALヘッダ、サンプルストリームNALユニットを含む。
【1262】
実施例によるサンプルストリームNALユニットはAPSP、AAPS、AFPS、1つ又は1つ以上のアトラスタイルグループ、1つ又は1つ以上の必須SEI、1つ又は1つ以上の非-必須SEIをそれぞれ含む。
【1263】
以下、図50のアトラスビットストリームに含まれる情報のシンタックスについて説明する。
【1264】
図51は実施例によるポイントクラウドデータを含むビットストリームに含まれるサンプルストリームNALユニットのヘッダ、サンプルストリームNALユニット、NALユニット、NALユニットのヘッダを示す。
【1265】
図51図50のアトラスビットストリームに含まれるデータのシンタックスを示す。
【1266】
サンプルストリームNALユニットヘッダユニット精度バイト(ssnh_unit_size_precision_bytes_minus1):この値に1を加えると、バイト内、全てのサンプルストリームNALユニット内のサンプルストリームのNALユニットサイズ(ssnu_nal_unit_size)要素の正確度を示す。サンプルストリームNALユニットヘッダユニット精度バイト(ssnh_unit_size_precision_bytes_minus1)は0ないし7の範囲内である。
【1267】
サンプルストリームNALユニットNALユニットサイズ(ssnu_nal_unit_size):続くNALユニットのバイト内のサイズを示す。サンプルストリームNALユニットサイズを示すために使用されるビットの数は(ssnh_unit_size_precision_bytes_minus1+1)*8である。
【1268】
NALユニット番号(NumBytesInNalUnit):バイト内のNALユニットのサイズを示す。
【1269】
バイト数(NumBytesInRbsp):NALユニットのペイロードに属するバイトであり、0に初期値される。
【1270】
バイト(rbsp_byte[i]):RBSPのi番目のバイトである。RBSPはバイトの整列されたシーケンスで表現される。
【1271】
NALフォービデンゼロビット(nal_forbidden_zero_bit):0である。
【1272】
NALユニットタイプ(nal_unit_type)は図52のような値を有する。NALユニットタイプはNALユニットに含まれたRBSPデータ構造のタイプを示す。
【1273】
NALレイヤID(nal_layer_id):ACL NALユニットが属するレイヤの識別子又はNON-ACL NALユニットが適用されるレイヤの識別子を示す。
【1274】
NAL臨時ID(nal_temporal_id_plus1):この値から1を引くと、NALユニットの臨時識別子を示す。
【1275】
図52は実施例によるNALユニットのタイプを示す。
【1276】
図52図50のサンプルストリームNALユニットのNALユニットのNALユニットヘッダに含まれるNALユニットタイプの種類を示す。
【1277】
NALトレイル(NAL_TRAIL):NON-TSA、NON STSAトレイリングアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。実施例によってタイルグループはタイルに対応する。
【1278】
NAL TSA:TSAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1279】
NAL_STSA:STSAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1280】
NAL_RADL:RADLアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1281】
NAL_RASL:RASLアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1282】
NAL_SKIP:スキップアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1283】
NAL_RSV_ACL_6ないしNAL_RSV_ACL_9:予約されたIRAP ACL NALユニットタイプがNALユニットに含まれる。NALユニットのタイプクラスはACLである。
【1284】
NAL_BLA_W_LP、NAL_BLA_W_RADL、NAL_BLA_N_LP:BLAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1285】
NAL_GBLA_W_LP、NAL_GBLA_W_RADL、NAL_GBLA_N_LP:GBLAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1286】
NAL_IDR_W_RADL、NAL_IDR_N_LP:IDRアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1287】
NAL_GIDR_W_RADL、NAL_GIDR_N_LP:GIDRアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1288】
NAL_CRA:CRAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1289】
NAL_GCRA:GCRAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
【1290】
NAL_IRAP_ACL_22、NAL_IRAP_ACL_23:予約されたIRAP ACL NALユニットタイプがNALユニットに含まれる。NALユニットのタイプクラスはACLである。
【1291】
NAL_RSV_ACL_24ないしNAL_RSV_ACL_31:予約されたnon-IRAP ACL NALユニットタイプがNALユニットに含まれる。NALユニットのタイプクラスはACLである。
【1292】
NAL_ASPS:アトラスシーケンスパラメータセットがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスシーケンスパラメータセット(atlas_sequence_parameter_set_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1293】
NAL_AFPS:アトラスフレームパラメータセットがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスフレームパラメータセット(atlas_ frame _parameter_set_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1294】
NAL_AUD:アクセスユニットデリミター(Access unit delimiter)がNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアクセスユニットデリミター(access_unit_delimiter_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1295】
NAL_VPCC_AUD:V-PCCアクセスユニットデリミターがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアクセスユニットデリミター(access_unit_delimiter_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1296】
NAL_EOS:NALユニットタイプがエンド・オブ・シーケンスである。NALユニットのRBSPシンタックス構造はエンド・オブ・シーケンス(end_of_seq_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1297】
NAL_EOB:NALユニットタイプがエンド・オブ・ビットストリームである。NALユニットのRBSPシンタックス構造はエンド・オブ・アトラスサブビットストリーム(end_of_atlas_sub_bitstream_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1298】
NAL_FD Filler:NALユニットタイプがフィルターデータ(filler_data_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1299】
NAL_PREFIX_NSEI、NAL_SUFFIX_NSEI:NALユニットタイプが非必須補足強化情報(Non-essential supplemental enhancement information)である。NALユニットのRBSPシンタックス構造はSEI(sei_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1300】
NAL_PREFIX_ESEI、NAL_SUFFIX_ESEI:NALユニットタイプが必須補足強化情報(Essential supplemental enhancement information)である。NALユニットのRBSPシンタックス構造はSEI(sei_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1301】
NAL_AAPS:NALユニットタイプがアトラス適応パラメータセット(Atlas adaptation parameter set)である。NALユニットのRBSPシンタックス構造はアトラス適応パラメータセット(atlas_adaptation_parameter_set_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
【1302】
NAL_RSV_NACL_44ないしNAL_RSV_NACL_47:NALユニットタイプが予約されたnon-ACL NALユニットタイプである。NALユニットのタイプクラスはnon-ACLである。
【1303】
NAL_UNSPEC_48ないしNAL_UNSPEC_63:NALユニットタイプが未記述のnon-ACL NALユニットタイプである。NALユニットのタイプクラスはnon-ACLである。
【1304】
図53は実施例によるアトラスシーケンスパラメータセットを示す。
【1305】
図53図32のアトラスシーケンスパラメータセットに対応する。
【1306】
図53の要素の定義は図32の対応する要素の定義に従う。
【1307】
ASPS延長プロジェクション有効フラグ(asps_extended_projection_enabled_flag):この値が0であると、パッチプロジェクション情報が現在アトラスタイルグループ又はアトラスタイルに対してシグナリングされないことを示す。この値が1であると、パッチプロジェクション情報が現在アトラスタイルグループ又は現在アトラスタイルに対してシグナリングされることを示す。
【1308】
ASPS行パッチ有効フラグ(asps_raw_patch_enabled_flag):RAWパッチが有効であるか否かを示す。
【1309】
ASPS EOMパッチ有効フラグ(asps_eom_patch_enabled_flag):この値が1であると、現在アトラスに対する復号された占有マップビデオが2つの深さマップの間の中間深さの位置が占められるかどうかに関連する情報を含む。この値が0であると、復号された占有マップビデオが2つの深さマップの間の中間深さの位置が占められるかどうかに関連する情報を含まないことを示す。
【1310】
ASPS付加ビデオ有効フラグ(asps_auxiliary_video_enabled_flag):付加ビデオが有効であるか否かを示す。
【1311】
ASPSピクセルデインターリービング有効フラグ(asps_pixel_deinterleaving_enabled_flag):ピクセルデインターリービングが有効であるか否かを示す。
【1312】
ASPSピクセルデインターリービングマップフラグ[i](asps_pixel_deinterleaving_map_flag[i]):この値が1であると、現在アトラス内のインデックスiを有する復号されたジオメトリ及び特質ビデオが2つのマップに対応する空間的にインターリービングされたピクセルを含むことを示す。この値が0であると、現在アトラス内のインデックスiを有するマップに対応する復号されたジオメトリ及び特質ビデオがシングルマップに対応するピクセルを含むことを示す。
【1313】
asps_eom_patch_enabled_flag及びasps_map_count_minus1がゼロであると、asps_eom_fix_bit_count_minus1要素にASPSが含まれる。
【1314】
ASPS EOM固定ビットカウント(asps_eom_fix_bit_count_minus1):この値に1を加えると、EOMコードワードのビット内のサイズを示す。
【1315】
ASPS拡張フラグ(asps_extension_flag):この値がゼロであると、asps_extension_data_flagシンタックス要素がASPS RBSPシンタックス構造内に存在しないことを示す。
【1316】
ASPS拡張データフラグ(asps_extension_data_flag):この要素は様々な値を有する。
【1317】
図54は実施例によるアトラスフレームパラメータセットを示す。
【1318】
図54図33のアトラスフレームパラメータに対応する。図54の要素の定義は図33の対応する要素の定義に従う。
【1319】
AFPSアウトプットフラグ存在フラグ(afps_output_flag_present_flag):この値が1であると、ATGHフレームアウトプットフラグ(atgh_frame_output_flag)シンタックス要素が関連するタイルグループヘッダに存在することを示す。この値が0であると、ATGHフレームアウトプットフラグ(atgh_frame_output_flag)シンタックス要素が関連するタイルグループヘッダ内に存在しないことを示す。
【1320】
AFPS LODモード有効フラグ(afps_lod_mode_enabled_flag):この値が1であると、LODパラメータがパッチ内に存在することを示す。この値が0であると、LODパラメータがパッチ内に存在しないことを示す。
【1321】
AFPS固定カメラモデルフラグ(afps_fixed_camera_model_flag):固定カメラモデルに対するフラグを示す。
【1322】
AFPS拡張フラグ(afps_extension_flag):この値が0であると、AFPS拡張データフラグ(afps_extension_data_flag)シンタックス要素がAFPS RBSPシンタックス構造内に存在しないことを示す。
【1323】
AFPS拡張データフラグ(afps_extension_data_flag):この要素は様々な値を有する。
【1324】
図55は実施例によるアトラス適応パラメータセット(atlas_adaptation_parameter_set)を示す。
【1325】
AAPS RBSPは1つ又は1つ以上のコーディングされたアトラスフレームのコーディングされたタイルグループNALユニットにより参照されるパラメータを含む。最大1つのAAPS RBSPは復号プロセス動作の間に所定のモメントにアクティブされるとみなす。特定のAAPS RBSPの活性化は以前に活性化されたAAPS RBSPの非活性化に繋がる。
【1326】
AAPSアトラス適応パラメータセットID(aaps_atlas_adaptation_parameter_set_id):他のシンタックス要素による参照のためのアトラス適応パラメータセットを識別する。
【1327】
AAPSアトラスシーケンスパラメータセットID(aaps_atlas_sequence_parameter_set_id):アクティブアトラスシーケンスパラメータセットに対するASPSアトラスシーケンスパラメータセットID(asps_atlas_sequence_parameter_set_id)の値を示す。
【1328】
AAPSカメラパラメータ存在フラグ(aaps_camera_parameterS_present_flag):この値が1であると、カメラパラメータが現在アトラス適応パラメータセット内に存在することを示す。この値が0であると、現在適応パラメータセットに対するカメラパラメータが存在しないことを示す。
【1329】
AAPS拡張フラグ(aaps_extension_flag):この値が0であると、AAPS拡張データフラグ(aaps_extension_data_flag)シンタックス要素がAAPS RBSPシンタックス構造内に存在しないことを示す。
【1330】
AAPS拡張データフラグ(aaps_extension_data_flag):この値は様々な値を含む。
【1331】
図56は実施例によるアトラスカメラパラメータ(atlas_camera_parameterS)を示す。
【1332】
図56図55に含まれるアトラスカメラパラメータを示す。
【1333】
ACPカメラモデル(acp_camera_model):現在適応パラメータセットに関連するポイントクラウドフレームに対するカメラモデルを示す。
【1334】
acp_camera_modelが0であると、acp_camera_modelの名称は明示されない。
【1335】
acp_camera_modelが1であると、acp_camera_modelは正投影(Orthographic)カメラモデルを示す。
【1336】
acp_camera_modelが2-255であると、acp_camera_modelは追って使用するために予約される。
【1337】
ACPスケール有効フラグ(acp_scale_enabled_flag):この値が1であると、現在カメラモデルに対するスケールパラメータが存在することを示す。この値が0であると、現在カメラモデルに対するスケールパラメータが存在しないことを示す。
【1338】
ACPオフセット有効フラグ(acp_offset_enabled_flag):この値が1であると、現在カメラモデルに対するオフセットパラメータが存在することを示す。この値が0であると、現在カメラモデルに対するオフセットパラメータが存在しないことを示す。
【1339】
ACP回転有効フラグ(acp_rotation_enabled_flag):この値が1であると、現在カメラモデルに対する回転パラメータが存在することを示す。この値が0であると、現在カメラモデルに対する回転パラメータが存在しないことを示す。
【1340】
ACP軸[d]上のスケール(acp_scale_on_axis[d]):現在カメラモデルに対するd軸に沿うスケール[d]の値を示す。dの値は0ないし2の範囲内である。0、1、2はx軸、y軸、z軸のそれぞれに対応する。
【1341】
ACP軸[d]オフセット(acp_offset_on_axis[d]):dは0ないし2の範囲値を有し、現在カメラモデルに対するd軸に沿うオフセット値を示す。0、1、2dの値はX軸、Y軸、Z軸のそれぞれに対応する。
【1342】
ACP回転qx(acp_rotation_qx):四元数表現(quaternion representation)を使用する現在カメラモデルの回転に対するxコンポーネントqxを示す。
【1343】
ACP回転qy(acp_rotation_qy):四元数表現(quaternion representation)を使用する現在カメラモデルの回転に対するyコンポーネントqyを示す。
【1344】
ACP回転qz(acp_rotation_qz):四元数表現(quaternion representation)を使用する現在カメラモデルの回転に対するzコンポーネントqzを示す。
【1345】
図57は実施例によるアトラスタイルグループレイヤ及びアトラスタイルグループヘッダを示す。
【1346】
ATGHアトラスフレームパラメータセットID(atgh_atlas_frame_parameter_set_id):現在アトラスタイルグループに対するアクティブアトラスフレームパラメータセットに対するアトラスフレームパラメータセットID(afps_atlas_frame_parameter_set_id)の値を示す。
【1347】
ATGHアトラス適応パラメータセットID(atgh_atlas_adaptation_parameter_set_id):現在アトラスタイルグループに対するアクティブアトラス適応パラメータセットに対するアトラス適応パラメータセットID(aaps_atlas_adaptation_parameter_set_id)の値を示す。
【1348】
ATGHアドレス(atgh_address):タイルグループのタイルグループアドレスを示す。存在しない場合、アドレス(atgh_address)の値は0であると推論される。タイルグループアドレスはタイルグループのタイルグループIDである。アドレス(atgh_address)の長さはシグナリングされたタイルグループID長さ(afti_signalled_tile_group_id_length_minus1)に1を加えたビットである。シグナリングされたタイルグループIDフラグ(afti_signalled_tile_group_id_flag)が0である場合、アドレス(atgh_address)の値は0ないしafti_num_tile_groups_in_atlas_frame_minus1の範囲内である。反面、アドレス(atgh_address)の値は0ないし2(afti_signalled_tile_group_id_length_minus1+1)-1)の範囲内である。
【1349】
ATGHタイプ(atgh_type):現在アトラスタイルグループのコーディングタイプを示す。
【1350】
atgh_typeが0であると、タイプはインターアトラスタイルグループ(P_TILE_GRP)である。
【1351】
atgh_typeが1であると、タイプはイントラアトラスタイルグループ(I_TILE_GRP)である。
【1352】
atgh_typeが2であると、タイプはSKIPアトラスタイルグループ(SKIP_TILE_GRP)である。
【1353】
atgh_typeが3であると、タイプは予約された値を示す。
【1354】
ATGHアトラスアウトプットフラグ(atgh_atlas_output_flag):復号されたアトラスアウトプット及び除去プロセスに影響を及ぼす。
【1355】
ATGHアトラスfrmオーダーcnt lsb(atgh_atlas_frm_order_cnt_lsb):現在アトラスタイルグループに対するアトラスフレームオーダーカウントモジュロMaxAtlasFrmOrderCntLsbを示す。
【1356】
ATGH参照アトラスフレームリストSPSフラグ(atgh_ref_atlas_frame_list_sps_flag):この値が1であると、現在アトラスタイルグループの参照アトラスフレームリストがアクティブASPS内のref_list_struct(rlsIdx)シンタックス構造の1つに基づいて導き出されることを示す。この値が0であると、現在アトラスタイルリストの参照アトラスフレームリストが現在アトラスタイルグループのタイルグループヘッダ内に直接含まれたref_list_struct(rlsIdx)シンタックス構造に基づいて導き出されることを示す。
【1357】
ATGH参照アトラスフレームリストインデックス(atgh_ref_atlas_frame_list_idx):現在アトラスタイルグループに対する参照アトラスフレームリストの導出(derivation)のために使用されるref_list_struct(rlsIdx)シンタックス構造のアクティブASPSに含まれたref_list_struct(rlsIdx)シンタックス構造のリストに対するインデックスを示す。
【1358】
ATGH追加afoc lsb存在フラグ[j](atgh_additional_afoc_lsb_present_flag[j]):この値が1であると、現在アトラスタイルグループに対してatgh_additional_afoc_lsb_val[j]が存在することを示す。この値が0であると、atgh_additional_afoc_lsb_val[j]が存在しないことを示す。
【1359】
ATGH追加afoc lsbval[j](atgh_additional_afoc_lsb_val[j]):現在アトラスタイルグループのためのFullAtlasFrmOrderCntLsbLt[RlsIdx][j]の値を示す。
【1360】
ATGH pos min z量子化器(atgh_pos_min_z_quantizer):specifies the quantizer that is to be applied to the pdu_3d_pos_min_z[p] value of the patch p. If atgh_pos_min_Z_quantizer is not present、its value is inferred to be equal to 0.
【1361】
ATGH posデルタ最大z量子化器(atgh_pos_delta_max_z_quantizer):インデックスpを有するパッチのpdu_3d_pos_delta_max_z[p]値に適用される量子化器を示す。この値が存在しないと、その値は0に推論される。
【1362】
ATGHパッチサイズx情報量子化器(atgh_patch_size_x_info_quantizer):インデックスpを有するパッチの変数pdu_2d_size_x_minus1[p]、mpdu_2d_delta_size_x[p]、ipdu_2d_delta_size_x[p]、rpdu_2d_size_x_minus1[p]及びepdu_2d_size_x_minus1[p]に適用される量子化器patchsizeXQuantizerの値を示す。atgh_patch_size_x_info_quantizerが存在しない場合、その値はasps_log2_patch_packing_block_sizeに等しいと推論される。
【1363】
ATGHパッチサイズy情報量子化器(atgh_patch_size_y_info_quantizer):インデックスpを有するパッチの変数pdu_2d_size_y_minus1[p]、mpdu_2d_delta_size_y[p]、ipdu_2d_delta_size_y[p]、rpdu_2d_size_y_minus1[p]、及びepdu_2d_size_y_minus1[p]に適用される量子化器patchSizeYQuantizerの値を示す。atgh_patch_size_y_info_quantizerが存在しない場合、その値はasps_log2_patch_packing_block_sizeに等しいと推論される。
【1364】
ATGH raw 3d pos軸ビット数(atgh_raw_3d_pos_axis_bit_count_minus1):この値に1を加えると、rpdu_3d_pos_x、rpdu_3d_pos_y及びrpdu_3d_pos_zの固定長さ表現内のビット数を示す。
【1365】
ATGH番号参照インデックスアクティブオーバーライドフラグ(atgh_num_ref_idx_active_override_flag):この値が1であると、シンタックス要素atgh_num_ref_idx_active_minus1が現在アトラスタイルグループに対して存在することを示す。atgh_num_ref_idx_active_override_flagが0であると、シンタックス要素atgh_num_ref_idx_active_minus1が存在しないことを示す。atgh_num_ref_idx_active_override_flagが存在しない場合は、その値は0に等しいと推論される。
【1366】
ATGH番号参照インデックスアクティブ(atgh_num_ref_idx_active_minus1):現在アトラスタイルグループを復号するために使用されるアトラスフレームを参照するための最大参照インデックスを示す。NumRefIdxActiveの値が0と等しい場合、参照アトラスフレームに対する参照インデックスが現在アトラスタイルグループを復号するために使用されないことを示す。
【1367】
図58は実施例による参照リスト構造(ref_list_struct)を示す。
【1368】
参照エントリー数(num_ref_entries[rlsIdx]):ref_list_struct(rlsIdx)シンタックス構造内のエントリーの数を示す。
【1369】
参照アトラスフレームフラグ(st_ref_atlas_frame_flag[rlsIdx][i]):この値が1であると、ref_list_struct(rlsIdx)シンタックス構造内のi番目のエントリーが短期参照アトラスフレームエントリーであることを示す。st_ref_atlas_frame_flag[rlsIdx][i]が0であると、ref_list_struct(rlsIdx)シンタックス要素内のi番目のエントリーが長期参照アトラスフレームエントリーであることを示す。存在しない場合は、st_ref_atlas_frame_flag[rlsIdx][i]の値は1に等しいと推論される。
【1370】
abs デルタ afoc st(abs_delta_afoc_st[rlsIdx][i]):i番目のエントリーがref_list_struct(rlsIdx)シンタックス要素内の第1短期参照アトラスフレームエントリーである場合、i番目のエントリーにより参照される現在アトラスタイルグループ及びアトラスフレームのアトラスフレームオーダーカウント値の間の絶対差(absolute difference)を示す。又はi番目のエントリーがref_list_struct(rlsIdx)シンタックス要素内の短期参照アトラスフレームエントリーであり、第1短期参照アトラスフレームエントリーではない場合は、ref_list_struct(rlsIdx)シンタックス構造内の以前短期参照アトラスフレーム及びi番目のエントリーにより参照されるアトラスフレームのアトラスオーダーカウント値の間の絶対差を示す。
【1371】
strpfエントリーサインフラグ(strpf_entry_sign_flag[rlsIdx][i]):この値が1であると、シンタックス構造ref_list_struct(rlsIdx)内のi番目のエントリーが0と等しいか又は0より大きい値を有することを示す。strpf_entry_sign_flag[rlsIdx][i]が0であると、シンタックス構造ref_list_struct(rlsIdx)内のi番目のエントリーが0より小さい値を有することを示す。存在しない場合は、strpf_entry_sign_flag[rlsIdx][i]の値は1に等しいと推論される。
【1372】
afoc lsb lt(afoc_lsb_lt[rlsIdx][i]):ref_list_struct(rlsIdx)シンタックス構造内のi番目のエントリーにより参照されるアトラスフレームのアトラスフレームオーダーカウントモジュロMaxAtlasFrmOrderCntLsbの値を示す。afoc_lsb_lt[rlsIdx][i]シンタックス要素の長さはasps_log2_max_atlas_frame_order_cnt_lsb_minus4+4ビットである。
【1373】
図59は実施例によるアトラスタイルグループデータ(atlas_tile_group_data_unit)を示す。
【1374】
atgduパッチモード(atgdu_patch_mode[p]):現在アトラスタイルグループ内のインデックスpを有するパッチに対するパッチモードを示す。atgh_type=SKIP_TILE_GRPを有するタイルグループは、全体タイルグループ情報が第1参照アトラスフレームに対応する現在タイルグループのように同一のatgh_addressを有するタイルグループから直接コピーされることを示す。
【1375】
I_TILE_GRPタイプアトラスタイルグループに対するパッチモードタイプは以下の通りである。
【1376】
パッチモード(atgdu_patch_mode)が0であると、識別子はI_INTRAであり、これは予測されないパッチモード(Non-predicted patch mode)を示す。
【1377】
パッチモード(atgdu_patch_mode)が1であると、識別子はI_RAWであり、これはRAWポイントパッチモード(RAW point patch mode)を示す。
【1378】
パッチモード(atgdu_patch_mode)が2であると、識別子はI_EOMであり、これはEOMポイントパッチモード(EOM point patch mode)を示す。
【1379】
パッチモード(atgdu_patch_mode)が3-13であると、識別子はI_RESERVEDであり、これは予約されたモード(Reserved modes)を示す。
【1380】
パッチモード(atgdu_patch_mode)が14であると、識別子はI_ENDであり、これはパッチ終了モード(patch termination mode)を示す。
【1381】
P_TILE_GRPタイプアトラスタイルグループに対するパッチモードタイプは以下の通りである。
【1382】
パッチモード(atgdu_patch_mode)が0であると、識別子はP_SKIPであり、これはパッチスキップモード(patch skip mode)を示す。
【1383】
パッチモード(atgdu_patch_mode)が1であると、識別子はP_MERGEであり、これはパッチマージモード(patch merge mode)を示す。
【1384】
パッチモード(atgdu_patch_mode)が2であると、識別子はP_INTERであり、これはインター予測パッチモード(Inter predicted patch mode)を示す。
【1385】
パッチモード(atgdu_patch_mode)が3であると、識別子はP_INTRAであり、これは予測されないパッチモード(Non-predicted patch mode)を示す。
【1386】
パッチモード(atgdu_patch_mode)が4であると、識別子はP_RAWであり、これはRAWポイントパッチモード(RAW point patch mode)を示す。
【1387】
パッチモード(atgdu_patch_mode)が5であると、識別子はP_EOMであり、これはEOMポイントパッチモード(EOM point patch mode)を示す。
【1388】
パッチモード(atgdu_patch_mode)が6-13であると、識別子はP_RESERVEDであり、これは予約されたモード(Reserved modes)を示す。
【1389】
パッチモード(atgdu_patch_mode)が14であると、識別子はP_ENDであり、これはパッチ終了モード(patch termination mode)を示す。
【1390】
SKIP_TILE_GRPタイプアトラスタイルグループに対するパッチモードタイプは以下の通りである。
【1391】
パッチモード(atgdu_patch_mode)が0であると、識別子はP_SKIPであり、これはパッチスキップモード(patch Skip mode)を示す。
【1392】
図60は実施例によるパッチ情報データ(patch_information_data)を示す。
【1393】
パッチ情報データはパッチインデックス(patchIdx)及びパッチモード(patchMode)によって以下のような情報を伝達する。
【1394】
タイプ(atgh_type)がSKIP_TILE_GRであると、スキップパッチデータユニット(skip_patch_data_unit(patchIdx))が伝達される。
【1395】
タイプ(atgh_type)がP_TILE_GRであると、以下のような要素が伝達される。具体的には、パッチモード(patchMode)がP_SKIPであると、スキップパッチデータユニット(skip_patch_data_unit(patchIdx))が提供され、パッチモード(patchMode)がP_MERGEであると、マージパッチデータユニット(merge_patch_data_unit(patchIdx))が提供され、パッチモード(patchMode)がP_INTRAであると、パッチデータユニット(patch_data_unit(patchIdx))が伝達され、パッチモード(patchMode)がP_INTERであると、インターパッチデータユニット(inter_patch_data_unit(patchIdx))が伝達され、パッチモード(patchMode)がP_RAWであると、行パッチデータユニット(raw_patch_data_unit(patchIdx))が伝達され、そしてパッチモード(patchMode)がP_EOMであると、EOMパッチデータユニット(eom_patch_data_unit(patchIdx))が伝達される。
【1396】
タイプ(atgh_type)がI_TILE_GRであると、以下のような要素が伝達される。具体的には、パッチモード(patchMode)がI_INTRAであると、パッチデータユニット(patch_data_unit(patchIdx))が伝達され、パッチモード(patchMode)がI_RAWであると、RAWパッチデータユニット(raw_patch_data_unit(patchIdx))が伝達され、そしてパッチモード(patchMode)がI_EOMであると、EOMパッチデータユニット(eom_patch_data_unit(patchIdx))が伝達される。
【1397】
図61は実施例によるパッチデータユニット(patch_data_unit)を示す。
【1398】
図61図60に含まれたパッチデータユニットの具体的な情報を示す。
【1399】
pdu 2dポジションx(pdu_2d_pos_x[p]):複数のpatchPackingBlocksizeにより表現されるtileGroupIdx、現在アトラスタイルグループ内のパッチpに対するパッチバウンディングボックスの左上部のx座標(又は左部オフセット)を示す。
【1400】
pdu 2dポジションy(pdu_2d_pos_y[p]):複数のpatchPackingBlocksizeにより表現されるtileGroupIdx、現在アトラスタイルグループ内のパッチpに対するパッチバウンディングボックスの左上部のy座標(又は上部オフセット)を示す。
【1401】
pdu 2dサイズx(pdu_2d_size_x_minus1[p]):この値に1を加えると、tileGroupIdx、現在アトラスタイルグループ内のインデックスpを有するパッチの量子化された幅の値を示す。
【1402】
pdu 2dサイズy(pdu_2d_size_y_minus1[p]):この値に1を加えると、tileGroupIdx、現在アトラスタイルグループ内のインデックスpを有するパッチの量子化された高さの値を示す。
【1403】
pdu 3dポジションx(pdu_3d_pos_x[p]):タンジェント軸に沿う現在アトラスタイルグループのインデックスpを有するパッチ内の復元されたパッチポイントに適用されるシフトを示す。
【1404】
pdu 3dポジションy(pdu_3d_pos_y[p]):バイタンジェント軸に沿う現在アトラスタイルグループのインデックスpを有するパッチ内の復元されたパッチポイントに適用されるシフトを示す。
【1405】
pdu 3dポジションmin z(pdu_3d_pos_min_z[p]):ノーマル軸に沿う現在アトラスタイルグループのインデックスpを有するパッチ内の復元されたパッチポイントに適用されるシフトを示す。
【1406】
pdu 3dポジションデルタマックスz(pdu_3d_pos_delta_max_z[p]):存在する場合、ノーマル軸に沿う現在アトラスタイルグループのインデックスpを有するパッチ内のそれらの公称表現に対する転換後、復元されたビット深さパッチジオメトリサンプル内に存在すると予想されるシフトの公称最大値を示す。
【1407】
pduプロジェクションID(pdu_projection_id[p]):現在アトラスタイルグループのインデックスpを有するパッチに対するプロジェクション平面に対するノーマルのインデックス及びプロジェクションモードの値を示す。
【1408】
pduオリエンテーションインデックス(pdu_orientation_index[p]):以下のように現在アトラスタイルグループのインデックスpを有するパッチに対するパッチオリエンテーションインデックスを示す。
【1409】
【表2】
【1410】
【表3】
【1411】
pdu lod有効フラグ(pdu_lod_enabled_flag[p]):この値が1であると、LODパラメータが現在パッチpに対して存在することを示す。この値が0であると、LODパラメータが現在パッチに対して提供されないことを示す。
【1412】
pdu lodスケールx(pdu_lod_scale_x_minus1[p]):パッチ座標patch3DPosX[p]に加える前に、現在アトラスタイルグループのインデックスpを有するパッチ内のポイントのローカルx座標に適用されるLOD倍率を示す。
【1413】
pdu lodスケールy(pdu_lod_scale_y[p]):パッチ座標patch3DPosY[p]に加える前に、現在アトラスタイルグループのインデックスpを有するパッチ内のポイントのローカルy座標に適用されるLOD倍率を示す。
【1414】
図62は実施例によるSEI情報を示す。
【1415】
SEIメッセージは復号、再構成、ディスプレイ又は他の目的に関連するプロセスを支援する。実施例によって、2つのタイプのSEIメッセージがある。必須及び非必須がある。
【1416】
非必須SEIメッセージは復号プロセスに対して必要ではない。コンフォーミング(Conforming)デコーダがアウトプットオーダーコンフォーマンスのためのこの情報を処理するために要求されない。
【1417】
必須SEIメッセージはV-PCCビットストリームの不可欠な部分であり、ビットストリームから除去できない。必須SEIメッセージは2つのタイプであり、以下のようにカテゴリー化できる。
【1418】
タイプ-A必須SEIメッセージ:SEIはアウトプットタイミングデコーダコンフォーマンスのための、またビットストリームコンフォーマンスをチェックするために必要な情報を含む。ポイントAをコンフォーミングする毎V-PCCデコーダはタイプA必須SEIメッセージを捨てず、アウトプットタイミングデコーダコンフォーマンス及びビットストリームコンフォーマンスのためにそれらを考慮する。
【1419】
タイプ-B必須SEIメッセージ:特定の復元プロファイルに従うV-PCCデコーダは関連するタイプB必須SEIメッセージを捨てず、3Dポイント復元及びコンフォーマンスのためにそれらを考慮する。
【1420】
sei_message()は1つ以上の以下のsei_payloadを含む。
【1421】
ペイロード(sei_payload)はペイロードタイプ(payloadType)及びペイロードサイズ(payloadsize )に基づいて図62のようにエレメントを含む。
【1422】
NALユニットタイプ(nal_unit_type)がNAL_PREFIX_NSEIであるか、又はNAL_PREFIX_ESEIであると、ペイロードがsei(payloadsize)を含む。
【1423】
NALユニットタイプ(nal_unit_type)がNAL_SUFFIX_NSEIであるか、又はNAL_SUFFIX_ESEIであると、ペイロードがsei(payloadsize)を含む。
【1424】
以下、図40及び図41のように、上述したシンタックスエレメントを伝達し、ポイントクラウドデータの伝達のためのV-PCCシステムについて説明する。
【1425】
以下に説明する実施例による情報は、図40及び図41に説明したように、ファイル内のシングルトラック及び/又はマルチトラックに含まれるポイントクラウドデータの復号に必要なパラメータ情報、アトラスビットストリームなどを意味する。以下の実施例による情報は、図40及び図41などに説明したように、図1のファイル/セグメントカプセル化部10003、図20のファイル/セグメントカプセル化部20004、図21のファイル/セグメントカプセル化部21009、図23のXRデバイスにより、図24及び図25のファイル構造にビットストリームを初期化する。
【1426】
同様に図1の受信装置10005のファイル/セグメントデカプセル化部10007、図20ないし図23のファイル/セグメントデカプセル化部20005,21009,22000、及び図23のXRデバイス2330はファイルを受信してデカプセル化してビットストリームをパースする。
【1427】
ビデオ-基盤のポイントクラウド圧縮は、ポイントクラウドビジュアル情報のボリュメトリック符号化を示す。コーディングされたポイントクラウドシーケンス(coded point cloud sequence、CPCS)を含むV-PCCビットストリームは、図27及び図31のように、V-PCCパラメータセット(V-PCC parameter set、VPS)コーディングされたアトラスビットストリーム、2Dビデオ符号化された占有マップビットストリーム、2Dビデオ符号化されたジオメトリビットストリーム、ゼロ又は1つ以上の2Dビデオ符号化された特質ビットストリームを伝達するV-PCCユニットで構成される。
【1428】
ボリュメトリックビジュアルトラック(Volumetric visual track)
【1429】
ボリュメトリックビジュアルトラックはメディアボックス(MediaBox)のハンドラーボックス(HandlerBox)内のボリュメトリックメディアハンドラータイプ‘volv’により識別される。
【1430】
ボリュメトリックビジュアルメディアヘッダ(Volumetric visual Media header)
【1431】
box Type:‘vvhd’
【1432】
Container:MediaInformationBox
【1433】
Mandatory:Yes
【1434】
Quantity:Exactly one
【1435】
ボリュメトリックビジュアルトラックはメディア情報ボックス(MediaInformationBox)のボリュメトリックビジュアルメディアヘッダボックス(VolumetricVisualMediaHeaderBox)を使用する。
【1436】
aligned(8) class VolumetricVisualMediaHeaderBox
【1437】
extends FullBox(‘vvhd', version=0、1){
【1438】
}
【1439】
バージョン(version)はこのボックスのバージョンを示す整数である。
【1440】
ボリュメトリックビジュアルサンプルエントリー(Volumetric visual sample entry)
【1441】
ボリュメトリックビジュアルトラックはボリュメトリックビジュアルサンプルエントリー(VolumetricVisualSampleEntry)を使用する。
【1442】
class VolumetricVisualSampleEntry(codingname) extends SampleEntry(codingname){
【1443】
unsigned int(8)[32] compressor_name;
【1444】
}
【1445】
コンプレッサーネイム(compressor_name)は有益な目的のための名前である。固定32-バイトフィールドで形成される。第1バイトはディスプレイされるバイト数に設定され、UTF-8を使用して符号化されたディスプレイ可能なデータのバイト数が伴う。サイズバイトを含む32バイトを完成するためにパッドされる。このフィールドは0に設定されてもよい。
【1446】
ボリュメトリックビジュアルサンプル(Volumetric visual samples)
【1447】
ボリュメトリックビジュアルサンプルのフォーマットはコーディングシステムにより定義される。
【1448】
共通データ構造
【1449】
V-PCCデコーダ構成ボックス
【1450】
V-PCCデコーダ構成ボックスはVPCCデコーダ構成レコード(VPCCDecoderConfigurationRecord)を含む。
【1451】
class VPCCConfigurationBox extends box('vpcC') {
【1452】
VPCCDecoderConfigurationRecord() VPCCConfig;
【1453】
}
【1454】
このレコードはバージョンフィールドを含む。このバージョンはバージョン1に定義される。レコードの両立不可な変更はバージョン番号の変更により表現される。デコーダはバージョン番号に基づいてこのレコード又はビットストリームを復号するか否かを決定する。
【1455】
VPCCパラメータセットアレイはvpcc_parameter_set()を含む。
【1456】
セットアップユニット(SetupUnit)アレイは、アトラスサブビットストリーム必須又は非必須SEIメッセージだけではなく、デコーダ構成情報が存在するサンプルエントリーにより参照されるストリームに対して一定のアトラスパラメータセットを含む。
【1457】
セットアップユニット(SetupUnit)アレイは、サンプルエントリーにより称されるストリームに対してコンスタントできる。デコーダ構成レコードはアトラスサブストリームSEIメッセージのように存在する。
【1458】
aligned(8) class VPCCDecoderConfigurationRecord {
【1459】
unsigned int(8) configurationVersion=1;
【1460】
unsigned int(2) lengthsizeMinusOne;
【1461】
bit(1) reserved=1;
【1462】
unsigned int(5) numOfVPCCParameterSets;
【1463】
for (i=0;i<numOfVPCCParameterSets;i++) {
【1464】
unsigned int(16) VPCCParameterSetLength;
【1465】
vpcc_unit(VPCCParameterSetLength) vpccParameterSet;
【1466】
}
【1467】
unsigned int(8) numOfSetupUnitArrays;
【1468】
for (j=0;j<numOfSetupUnitArrays;j++) {
【1469】
bit(1) array_completeness;
【1470】
bit(1) reserved=0;
【1471】
unsigned int(6) NAL_unit_type;
【1472】
unsigned int(8) numNALUnits;
【1473】
for (i=0;い<numNALUnits;i++) {
【1474】
unsigned int(16) SetupUnitLength;
【1475】
nal_unit(SetupUnitLength) setupUnit;
【1476】
}
【1477】
}
【1478】
}
【1479】
構成バージョン(configurationVersion)はバージョンフィールドである。レコードに対する両立不可な変化はバージョン番号の変化により表示する。
【1480】
長さサイズ(lengthSizeMinusOne):この値に1を加えると、この構成レコードが適用されるストリーム内のV-PCCサンプル内のNALユニット長さ(NALUnitLength)フィールドのバイト内の長さを示す。
【1481】
例えば、1バイトのサイズは0の値で表示される。このフィールド値はアトラスサブストリームに対するサンプルストリームNALヘッダ(sample_stream_nal_header)内のssnh_unit_size_precision_bytes_minus1である。
【1482】
V-PCCパラメータセット数(numOfVPCCParameterSets):デコーダ構成レコード内にシグナリングされるV-PCCパラメータセットユニットの数を示す。
【1483】
V-PCCパラメータセット長さ(VPCCParameterSetLength):V-PCCパラメータセットフィールドのバイト内のサイズを示す。
【1484】
V-PCCパラメータセット(vpccParameterSet):VPCC_parameter_set()を伝達するVPCC_VPSタイプのV-PCCユニットである。
【1485】
セットアップユニットアレイ数(numOfSetupUnitArrays):指示されるタイプのアトラスNALユニットのアレイ数を示す。
【1486】
アレイ完成度(array_completeness):この値が1であると、所定のタイプの全てのアトラスNALユニットが以下のアレイに存在し、ストリーム内にないことを示す。この値が0であると、指示されたタイプの追加アトラスNALユニットがストリーム内に存在することを示す。デフォルト及び許容された値はサンプルエントリーネイムにより制約を受ける。
【1487】
NALユニットタイプ(NAL_unit_type):以下のアレイ内にアトラスNALユニットのタイプを示す。NAL_ASPS、NAL_PREFIX_SEI又はNAL_SUFFIX_SEIアトラスNALユニットを示す値のいずれかである。
【1488】
NALユニット数(numNALUnits):この構成レコードが適用されるストリームに対する構成レコード内に含まれた指示されたタイプのアトラスNALユニットの数を示す。SEIアレイはただSEIメッセージだけを含む。
【1489】
セットアップユニット長さ(SetupUnitLength):セットアップユニットフィールドのバイト内のサイズを示す。長さフィールドはNALユニットヘッダ及びNALユニットペイロードのサイズを含み、長さフィールド自体を含まない。
【1490】
セットアップユニット(setupUnit):タイプNAL_ASPS、NAL_AFPS、NAL_PREFIX_ESEI、NAL_PREFIX_NSEI、NAL_SUFFIX_ESEI又はNAL_SUFFIX_NSEIのNALユニットを含む。
【1491】
空間領域情報構造(Spatial region information structure)
【1492】
3D空間領域構造及び3Dバウンディングボックス構造は、ポイントクラウドデータの3Dバウンディングボックス情報及び3D空間内の領域の幅、高さ、深さ及び空間領域のx、y、zオフセットを含むポイントクラウドデータの空間領域の情報を提供する。
【1493】
aligned(8) class 3DPoint() {
【1494】
unsigned int(16) point_x;
【1495】
unsigned int(16) point_y;
【1496】
unsigned int(16) point_z;
【1497】
}
【1498】
aligned(8) class CuboidRegionStruct() {
【1499】
unsigned int(16) cuboid_dx;
【1500】
unsigned int(16) cuboid_dy;
【1501】
unsigned int(16) cuboid_dz;
【1502】
}
【1503】
aligned(8) class 3DSpatialRegionStruct(dimensions_included_flag) {
【1504】
unsigned int(16) 3d_region_id;
【1505】
3DPOINT 3D_region_anchor;
【1506】
if (dimensions_included_flag) {
【1507】
CuboidRegionStruct();
【1508】
}
【1509】
}
【1510】
ポイントx、y、z(point_x,point_y,point_z):座標系内の3Dポイントの各x、y、z軸値を示す。
【1511】
直方体dx、dy、dz(cuboid_dx、cuboid_dy、cuboid_dz):アンカーポイント又は特定のポイントに対する各x、y、z軸に沿って座標系内の直方体サブ領域のディメンションを示す。
【1512】
ディメンション含みフラグ(dimensions_included_flag):3D空間領域のディメンションがシグナリングされるか否かを示すフラグである。
【1513】
3D領域ID(3d_region_id):3D空間領域に対する識別子である。
【1514】
アンカーは3D空間領域のためのアンカーとして使用される座標系システム内の3Dポイントである。
【1515】
直方体領域構造(CuboidRegionStruct())は座標系内のシグナリングされたアンカーポイントに対する直方体領域情報を含む。
【1516】
図63は実施例による3Dバウンディングボックス情報構造である。
【1517】
アンカー存在フラグ(anchor_presence_flag):3Dバウンディングボックスの3Dアンカーポイント(原点位置)が存在するか否かを示すフラグである。anchor_presence_flagが1であると、3Dアンカーポイントがこの構造内に存在することを示し、座標系内のシグナリングされた3Dアンカーポイントに対して3Dバウンディングボックスが表現されることをいう。anchor_presence_flagが0であると、3Dアンカーポイントがこの構造内に存在せず、(0、0、0)に対して3Dバウンディングボックスが表現されることを示す。
【1518】
3Dバウンディングボックスアンカー(3d_bb_anchor):3Dバウンディングボックス情報の原点位置又はアンカーとして使用される座標系システム内の3Dポイントである。
【1519】
3Dバウンディングボックス更新フラグ(3d_bb_updated_flag):この値が1であると、3Dバウンディングボックス情報が動的に変化することを示す。3d_bb_updated_flagが0であると、3Dバウンディングボックスが変化しないことを示す。
【1520】
3Dバウンディングボックスタイプ(3d_bb_type indicates the type of 3D bounding box information)。該当値が0である場合、シグナリングされる3Dバウンディングボックス情報はポイントクラウドデータシーケンス内に代表されるバウンディングボックス情報である。該当値が1である場合、シグナリングされる3Dバウンディングボックス情報は時間によって変化するバウンディングボックス情報である。一般的に代表するバウンディングボックスは時間によって変化するバウンディングボックスと等しいか又は大きい。
【1521】
3Dバウンディングボックススケールログ2(3d_bb_scale_log2):3Dバウンディングボックス情報に適用されるスケールを示す。
【1522】
3Dバウンディングボックス精度(3d_bb_precision_minus8):この値に8を加えると、3Dバウンディングボックス情報の精度を示す。
【1523】
3Dバウンディングボックスdx、dy、dz(3d_bb_dx、3d_bb_dy、3d_bb_dz):anchor_presence_flagの値によって(0、0、0)又は3Dアンカーポイントに対して各x、y、z軸に沿って座標系内のポイントクラウドデータの3Dバウンディングボックスのディメンションを示す。
【1524】
aligned(8) class VPCC3DBoundingInformationBox extends FullBox('vpbb',0,0) {
【1525】
unsigned int(7) resrved=0;
【1526】
unsinged inT(1)anchor_presence_flag;
【1527】
3DBoundingBoxStruct (anchor_presence_flag);
【1528】
}
【1529】
アンカー存在フラグ(anchor_presence_flag):この値が1であると、シグナリングされた3Dバウンディングボックス構造(3DBoundingBoxStruct)内に存在する3Dアンカーポイントが存在することを示す。3Dバウンディングボックスは座標系内のシグナリングされた3Dアンカーポイントに対して表現される。anchor_presence_flagが0であると、3Dアンカーポイントがシグナリングされた3DBoundingBoxStruct内に存在しないことを示す。シグナリングされた3Dバウンディングボックスは(0、0、0)に対して表現される。
【1530】
viewing information structure
【1531】
aligned(8) class ViewingInformationBox extends FullBox('vpvi',0,0) {
【1532】
ViewingInformationStruct();
【1533】
}
【1534】
視聴情報構造(ViewingInformationStruct)は視聴位置(viewing position)、視聴方向(viewing direction)、視聴オリエンテーション(viewing orientation)関連情報などを含む。
【1535】
aligned(8) class ViewingInformationStruct () {
【1536】
unsigned int(2) reserved=0;
【1537】
unsigned int(1) pos_present;
【1538】
unsigned int(1) dir_present;
【1539】
unsigned int(1) Orientation_present;
【1540】
unsigned int(1) coord_present;
【1541】
if(pos_present){
【1542】
unsigned int(1) refresh_pos_flag;
【1543】
unsigned int(16)pos_x;
【1544】
unsigned int(16)pos_y;
【1545】
unsigned int(16)pos_z;
【1546】
}
【1547】
if(coord_present){
【1548】
unsigned int(4) coord_type;
【1549】
unsigned int(16)up_x;
【1550】
unsigned int(16)up_y;
【1551】
unsigned int(16)up_z;
【1552】
unsigned int(16)front_x;
【1553】
unsigned int(16)front_y;
【1554】
unsigned int(16)front_z;
【1555】
}
【1556】
if(dir_present){
【1557】
unsigned int(1) refresh_dir_flag;
【1558】
unsigned int(8) dir_coord;
【1559】
unsigned int(16)dir_x;
【1560】
unsigned int(16)dir_y;
【1561】
unsigned int(16)dir_z;
【1562】
}
【1563】
if(Orientation_present){
【1564】
unsigned int(1) refresh_rot_flag;
【1565】
unsigned int(8) rot_coord;
【1566】
unsigned int(16)rot_x;
【1567】
unsigned int(16)rot_t;
【1568】
unsigned int(16)rot_z;
【1569】
}
【1570】
}
【1571】
ポジション存在フラグ(pos_present):視聴位置情報がシグナリングされるかを示すフラグである。
【1572】
方向存在フラグ(dir_present):ユーザが見る方向(direction)情報がシグナリングされるかを示すフラグである。
【1573】
オリエンテーション存在フラグ(orientation_present):ユーザの視聴オリエンテーション(viewing orientation)情報がシグナリングされるかを示すフラグである。
【1574】
座標系存在フラグ(coord_present):ユーザのビューポート、ユーザの視聴オリエンテーション、ユーザが見る方向を定めるために座標系関連情報がシグナリングされるかを示すフラグである。
【1575】
リフレッシュ位置フラグ(refresh_pos_flag):シグナリングされる視聴位置がレンダリングのために使用されることを示すフラグである。
【1576】
リフレッシュ方向フラグ(refresh_dir_flag):シグナリングされる方向情報がレンダリングのために使用されることを示すフラグである。
【1577】
リフレッシュ回転フラグ(refresh_rot_flag):シグナリングされる視聴オリエンテーションがレンダリングのために使用されることを示すフラグである。
【1578】
ポジションx、y、z(pos_x、pos_y、pos_z):視聴位置の3次元空間上でそれぞれx、y、z軸でのオフセットを示す。
【1579】
座標系タイプ(coord_type):座標系のタイプを示す。例えば、右手座標系或いは左手座標系などがある。
【1580】
アップx、y、z(up_x、up_y、up_z):3次元上の座標系においてアップベクトル(up vector)、即ち、上側方向を示す。これはpos_x、pos_y、pos_zにシグナリングされた視聴位置を基準として、up_x、up_y、up_zにシグナリングされた3次元上の1つのポイントに連結してアップベクトルを示す。
【1581】
フロントx、y、z(front_x、front_y、front_z):3次元上の座標系においてフロントベクトル(front vector)、即ち、前側方向を示す。これはpos_x、pos_y、pos_zにシグナリングされた視聴位置を基準として、front_x、front_y、front_zにシグナリングされた3次元上の1つのポイントに連結してフロントベクトルを示す。
【1582】
レフトベクトル(Left vector)或いはライトベクトル(right vector)はCoord_type、up_x、up_y、up_z、front_x、front_y、front_zを基盤として類推できる。
【1583】
方向座標系(dir_coord):3次元上の空間においてユーザが見る方向を示すための座標系である。例えば、ワールド座標系(world coordinate)、カメラ座標系(camera coordinate)、座標系存在(coord_present)値が1である場合、シグナリングされる座標系などを示す。
【1584】
方向x、t、z(dir_x、dir_y、dir_z):3次元上の空間においてユーザが見る方向に関する情報を示す。これに関する座標系はdir_coordで指す座標系に従う。
【1585】
回転座標系(rot_coord):3次元上の空間においてユーザの視聴オリエンテーションを示すための座標系を指す。例えば、ワールド座標系(world coordinate)、カメラ座標系(camera coordinate)、座標系存在(coord_present)値が1である場合、シグナリングされる座標系などを示す。
【1586】
回転x、y、z(rot_x、rot_y、rot_z):3次元上の空間においてユーザの視聴オリエンテーションに関する情報を示す。これに対する座標系はrot_coordで指す座標系に従う。これはx、y、z軸の回転値として示される。
【1587】
以下、図40及び図41のようにファイル内に含まれるサンプルグループ(Sample group)について説明する。
【1588】
3Dバウンディングボックスサンプルグループ(3D bounding box sample group)
【1589】
実施例による方法/装置は、同一の3Dバウンディングボックスが適用される1つ以上のサンプルをグルーピングし、該当グループに連関する3Dバウンディングボックス情報を以下のようにシグナリングする。
【1590】
サンプルグルーピングのための‘3bsg’グルーピングタイプは、V-PCCコンポーネントビットストリーム又はV-PCCトラック又はV-PCCビットストリームトラックのように、アトラスサブビットストリームを伝達するトラック内のサンプルのサンプルグループ内に伝達される3Dバウンディングボックス情報への割り当てを示す。‘3bsg’のようなグルーピングタイプ(grouping_type)を有するサンプルツーグループボックス(SampleToGroupBox)が存在する場合、伴う同一のグルーピングタイプを有するサンプルグループ記述ボックス(SampleGroupDescriptionBox)が存在し、サンプルのこのグループが属するIDを含む。
【1591】
aligned(8) class 3DBoundingBoxSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(‘3bsg’) {
【1592】
unsigned int(7) resrved=0 ;
【1593】
unsinged int(1) anchor_presence_flag;
【1594】
3DBoundingBoxStruct (anchor_presence_flag);
【1595】
}
【1596】
3Dバウンディングボックス構造はこのサンプルグループのサンプルに適用される3Dバウンディングボックス情報を含む。
【1597】
アンカー存在フラグ(anchor_presence_flag):この値が1であると、シグナリングされた3Dバウンディングボックス構造内の3Dアンカーポイントが存在し、3Dバウンディングボックスが座標系内のシグナリングされた3Dアンカーポイントに対して表現されることを示す。anchor_presence_flagが0であると、3Dアンカーポイントがシグナリングされた3Dバウンディングボックス構造内に存在せず、シグナリングされた3Dバウンディングボックスが(0、0、0)に対して表現されることを示す。
【1598】
3Dバウンディングボックス構造(3DBoundingBoxStruct)はこのサンプルグラムのサンプルに適用される3Dバウンディングボックス情報を含む。
【1599】
3Dバウンディングボックス更新フラグ(3d_bb_updated_flag):この値が1であると、この構造内にシグナリングされる3Dバウンディングボックスが更新されることを示す。動的に変化する3Dバウンディングボックス情報は時間指定メタデータトラック又は同一のサンプルグループタイプの他のIDを有する他のサンプルグループによりシグナリングされる。3d_bb_updated_flagが0であると、対応するV-PCCコンテンツの3Dバウンディングボックス情報が変化しないことを示す。3Dバウンディングボックスが0であると、対応するV-PCCコンテンツの3Dバウンディングボックス情報が変化しないことを示す。
【1600】
3d_bb_type値が0である場合、サンプルグループ内のサンプルに連関する3Dバウンディングボックスのうち、一番大きいバウンディングボックス情報がシグナリングされる。
【1601】
視聴情報サンプルグループ(Viewing information sample group)
【1602】
実施例による方法/装置は、同一の視聴情報(Viewing information)(視聴位置(viewing position)、視聴オリエンテーション(viewing orientation)、視聴方向(viewing direction)含み)が適用される1つ以上のサンプルをグルーピングし、該当グループに連関する視聴情報(視聴位置、視聴オリエンテーション、視聴方向)を以下のようにシグナリングする。
【1603】
サンプルグルーピングのための‘visg’グルーピングタイプはV-PCCコンポーネントビットストリーム又はV-PCCトラック又はV-PCCビットストリームトラックのようなアトラスサブビットストリームを伝達するトラック内サンプルのこのサンプルグループ内に伝達される視聴位置、視聴オリエンテーション、視聴方向を含む視聴情報への割り当てを示す。‘visg’のようなグルーピングタイプを有するサンプルツーグループボックス(SampleToGroupBox)が存在する場合、伴う同一のグルーピングタイプを有するサンプルグループ記述ボックス(SampleGroupDescriptionBox)が存在し、サンプルのこのグループが属するIDを含む。
【1604】
aligned(8) class ViewingInformationSampleGroupDescriptionEntry()
【1605】
extends SampleGroupDescriptionEntry(‘visg’){
【1606】
ViewingInformationStruct ();
【1607】
}
【1608】
視聴情報構造(ViewingInformationStruct)はこのサンプルグループのサンプルに適用される視聴位置、視聴オリエンテーション、視聴方向を含む視聴情報を含む。
【1609】
トラックグルーピング(Track Grouping)
【1610】
実施例による方法/装置はファイル内のトラックをグルーピングする。
【1611】
3Dバウンディングボックストラックグループ(3D bounding box track group)
【1612】
実施例による方法/装置は、同一の3Dバウンディングボックスが適用される1つ以上のトラックをグルーピングし、該当グループに連関する3Dバウンディングボックス情報を以下のようにシグナリングする。これに連関するメタデータトラックが存在する場合、該当トラックグループ内では初期バウンディングボックスに関する情報をシグナリングする。
【1613】
'3btg'と同一のトラックグループタイプを有するトラックグループタイプボックス(TrackGroupTypeBox)は、このトラックが3Dバウンディングボックス情報に連関するV-PCCコンポーネントビットストリーム又はアトラスサブビットストリームを伝達するトラックのグループに属することを示す。
【1614】
同一の3Dバウンディングボックス情報に属するトラックは、'3btg'トラックグループタイプに対するトラックグループIDの同一の値を有する。1つの3Dバウンディングボックス情報からのトラックのトラックグループIDは他の3Dバウンディングボックス情報からのトラックのトラックグループIDとは異なる。
【1615】
aligned(8) class 3DBoundingBoxGroupBox extends TrackGroupTypeBox('3btg') {
【1616】
unsigned int(7) resrved=0 ;
【1617】
unsinged int(1) anchor_presence_flag;
【1618】
3DBoundingBoxStruct(anchor_presence_flag);
【1619】
}
【1620】
アンカー存在フラグ(anchor_presence_flag):この値が1であると、3Dアンカーポイントがシグナリングされた3Dバウンディングボックス構造(3DBoundingBoxStruct)内に存在することを示し、3Dバウンディングボックスが座標系内のシグナリングされた3Dアンカーポイントについて表現されることを示す。anchor_presence_flagが0であると、3Dアンカーポイントがシグナリングされた3Dバウンディングボックス構造内に存在しないことを示し、(0、0、0)に対してシグナリングされた3Dバウンディングボックスが表現されることを示す。
【1621】
3Dバウンディングボックス構造(3DBoundingBoxStruct)はこのグループのトラックに適用される3Dバウンディングボックス情報を含む。
【1622】
3Dバウンディングボックス更新フラグ(3d_bb_updated_flag):この値が1であると、この構造内のシグナリングされた3Dバウンディングボックスが対応するV-PCCコンテンツの初期の3Dバウンディングボックスであることを示す。動的に変化する3Dバウンディングボックス情報は、サンプルグルーピング又は時間指定メタデータトラックによりシグナリングされることを示す。3d_bb_updated_flagが0であると、対応するV-PCCコンテンツの3Dバウンディングボックス情報が変化しないことを示す。
【1623】
3Dバウンディングボックスタイプ(3d_bb_type)値が0である場合、トラックグループ内のトラックデータに連関する3Dバウンディングボックスのうち、一番大きいバウンディングボックス情報がシグナリングされる。
【1624】
3d_bb_type値が1である場合、連関する初期3Dバウンディングボックス情報がシグナリングされ、変化する3Dバウンディングボックス情報は別のメタデータトラックなどによりシグナリングされる。
【1625】
視聴情報トラックグループ(Viewing information track group)
【1626】
同一の視聴情報(視聴位置、視聴オリエンテーション、視聴方向を含み)が適用される1つ以上のトラックをグルーピングし、該当グループに連関する視聴情報を以下のようにシグナリングする。
【1627】
‘vitg’と同一のトラックグループタイプを有するトラックグループタイプボックス(TrackGroupTypeBox)は、このトラックが視聴情報(視聴位置、視聴オリエンテーション、視聴方向)に連関するアトラスサブビットストリーム又はV-PCCコンポーネントビットストリームを伝達するトラックのグループに属することを示す。
【1628】
同一の視聴情報に連関するトラックは、vitgトラックグループタイプに対するトラックグループIDの同一の値を有し、1つの視聴情報からのトラックのトラックグループIDは他の視聴情報からのトラックのトラックグループIDとは異なる。
【1629】
aligned(8) class XXXXGroupBox extends TrackGroupTypeBox(‘vitg’) {
【1630】
ViewingInformationStruct();
【1631】
}
【1632】
視聴情報構造はこのグループのトラックに適用される視聴位置、視聴オリエンテーション又は視聴方向を含む視聴情報を含む。
【1633】
視聴情報の時間指定メタデータトラックが存在すると、視聴情報構造内にシグナリングされ、このトラックグループのトラックに適用される初期の視聴情報を示す。
【1634】
実施例による方法/装置は、エンティティグルーピング(Entity Grouping)に連関する情報を以下のように生成して送受信する。
【1635】
同一の3Dバウンディングボックスが適用される1つ以上のトラック或いはアイテムをグルーピングし、該当グループに連関する3Dバウンディングボックス情報を以下のようにシグナリングする。
【1636】
box Types:‘3deg’
【1637】
Container:GroupsListBox
【1638】
Mandatory:No
【1639】
Quantity:Zero or more
【1640】
‘3deg’のようなトラックグループタイプを有するエンティティツーグループボックス(EntityToGroupBox)は、トラック又はアイテムが3Dバウンディングボックス情報に連関するグループに属することを示す。シグナリングされた3Dバウンディングボックス情報はこのエンティティグループの時間指定又は非時間指定アイテムに適用される。
【1641】
aligned(8) class PlayoutEntityGroupBox (version、flags)
【1642】
extends EntityToGroupBox (3deg’、version、flags) {
【1643】
unsigned int(7) resrved=0 ;
【1644】
unsinged int(1)anchor_presence_flag;
【1645】
for(i=0;i<num_entities_in_group;i++) {
【1646】
3DBoundingBoxStruct (anchor_presence_flag);
【1647】
}
【1648】
}
【1649】
アンカー存在フラグ(anchor_presence_flag):この値が1であると、3Dアンカーポイントがシグナリングされた3Dバウンディングボックス構造(3DBoundingBoxStruct)内に存在し、3Dバウンディングボックスが座標系内のシグナリングされた3Dアンカーポイントに対して表現されることを示す。この値が0であると、3Dアンカーポイントがシグナリングされた3Dバウンディングボックス構造内に存在せず、シグナリングされた3Dバウンディングボックスが(0、0、0)に対して表現されることを示す。
【1650】
グループ内のエンティティ数(num_entities_in_group):このエンティティグループのエンティティの数を示す。
【1651】
3Dバウンディングボックス構造(3DBoundingBoxStruct)はこのグループの時間指定トラック又は非時間指定アイテムに適用される3Dバウンディングボックス情報を含む。
【1652】
3Dバウンディングボックス更新フラグ(3d_bb_updated_flag):この値が1であると、この構造内にシグナリングされた3Dバウンディングボックスが対応するV-PCCコンテンツの初期の3Dバウンディングボックス情報であることを示す。動的に変化する3Dバウンディングボックス情報はサンプルグルーピング又は時間指定メタデータトラックにシグナリングされる。
【1653】
3Dバウンディングボックス更新フラグ(3d_bb_updated_flag):この値が0であると、対応するV-PCCコンテンツの3Dバウンディングボックス情報が変化しないことを示す。
【1654】
3Dバウンディングボックスタイプ(3d_bb_type)値が0である場合、トラックグループ内のトラック或いはアイテムデータに連関する3Dバウンディングボックスのうち、一番大きいバウンディングボックス情報がシグナリングされる。
【1655】
3d_bb_type値が1である場合、連関する初期3Dバウンディングボックス情報がシグナリングされ、変化する3Dバウンディングボックス情報は別のメタデータトラックなどによりシグナリングされる。
【1656】
視聴情報エンティティグループ(Viewing information entity group)
【1657】
同一の視聴情報(視聴方向、視聴オリエンテーション、視聴方向を含み)が適用される1つ以上のトラック或いはアイテムをグルーピングとし、該当グループに連関する視聴情報を以下のようにシグナリングする。
【1658】
box Types:‘vieg’
【1659】
Container:GroupsListBox
【1660】
Mandatory:No
【1661】
Quantity:Zero or more
【1662】
‘vieg’のようなトラックグループタイプを有するエンティティツーグループボックス(EntityToGroupBox)は、トラック又はアイテム視聴位置、視聴オリエンテーション、視聴方向を含む視聴情報に連関するグループに属することを示す。シグナリングされた視聴情報はこのエンティティグループの時間指定トラック又は非時間指定アイテムに適用される。
【1663】
aligned(8) class PlayoutEntityGroupBox (version、flags)
【1664】
extends EntityToGroupBox (‘vieg’、version、flags) {
【1665】
for(i=0;i<num_entities_in_group;i++){
【1666】
ViewingInformationStruct();
【1667】
}
【1668】
}
【1669】
グループ内のエンティティ数(num_entities_in_group):このエンティティグループのエンティティの数を示す。
【1670】
視聴情報構造(ViewingInformationStruct)はこのグループのトラック又はアイテムに適用される視聴位置、視聴オリエンテーション又は視聴方向を含む視聴情報を含む。
【1671】
V-PCCビットストリームのマルチトラックコンテナ(Multi track container of V-PCC Bitstream)
【1672】
マルチトラックISOBMFF V-PCCコンテナの一般的なレイアウトとして、V-PCCビットストリーム内のV-PCCユニットがそれらのタイプに基づいてコンテナファイル内の個々のトラックにマッピングされる。例えば、図40及び図41の通りである。マルチトラックISOBMFFV-PCCコンテナ内のトラックは2つのタイプを有する。V-PCCトラック及びV-PCCコンポーネントトラックがある。
【1673】
V-PCCコンポーネントトラックはV-PCCビットストリームの占有マップ、ジオメトリ、特質サブビットストリームに対する2Dビデオ符号化されたデータを伝達するビデオスキームトラックである。さらに、以下の条件がV-PCCコンポーネントトラックに対して満たされる。
【1674】
a)サンプルエントリー内、V-PCCシステム内のビデオストリームの役割を説明する新しいボックスが挿入される。
【1675】
b)トラック参照がV-PCCトラックにより表現される特定のポイントクラウド内のV-PCCコンポーネントトラックのメンバーシップを生成するために、V-PCCトラックからV-PCCコンポーネントトラックに導入される。
【1676】
c)トラックヘッダフラグが0にセットされ、このトラックが直接ムービーの全般的なレイアップに寄与しないことを示し、その代わりにV-PCCシステムに寄与することを示す。
【1677】
同一のV-PCCシーケンスに属するトラックは時間に整合される。異なるビデオ符号化されたV-PCCコンポーネントトラックに対して同一のポイントクラウドフレームに寄与するサンプル及びV-PCCトラックは同一のプレゼンテーション時間を有する。かかるサンプルに対して使用されるV-PCCアトラスシーケンスパラメータセット及びアトラスフレームパラメータセットは、ポイントクラウドフレームの構成時間と同一であるか又は早い復号時間を有する。さらに、同一のV-PCCシーケンスに属する全てのトラックは同一の暗示的又は明確な編集リスト(edit list)を有する。コンポーネントトラック内の基本ストリーム間の同期化(Synchronization)は、ムービーフラグメント内のISOBMGGトラックタイミング構造(stts、ctts及びcslg)又は同等なメカニズムにより処理される。
【1678】
V-PCCトラック内の同期サンプル及びV-PCCコンポーネントトラックは時間整合されるか又は時間整合されない。時間整合がない場合、任意アクセスは所望の時間に開始できるように、異なる同期開始時間から様々なトラックを予めローリングすることを含む。
【1679】
時間整合である場合は、(例えば、V-PCCに定義されているように、基本ツールセット(basic toolset)プロファイルのようなV-PCCプロファイルにより要求される)V-PCCトラックの同期サンプルがV-PCCコンテンツに対する任意アクセスポイントと見なされ、任意アクセスはV-PCCトラックの同期サンプル情報のみを参照することにより行われる。
【1680】
このレイアウトに基づいて、V-PCC ISOBMFFコンテナは以下を含む。
【1681】
アトラスサブビットストリームNALユニットを伝達するサンプル及びV-PCCパラメータセット及びアトラスサブビットストリームパラメータセット(サンプルエントリー内)を含む1つ又は1つ以上のV-PCCトラック。また、このトラックはユニットタイプ:VPCC_OVD、VPCC_GVD、VPCC_AVDのようなビデオ圧縮されたV-PCCユニットのペイロードを伝達する他のトラックに対するトラック参照を含む。
【1682】
サンプルが占有マップデータに対するビデオコーディングされた基本ストリーム(VPCC_OVDタイプのV-PCCユニットのペイロード)のアクセスユニットを含むビデオスキームトラック。
【1683】
サンプルジオメトリデータに対するビデオコーディングされた基本ストリーム(タイプVPCC_GVDのV-PCCユニットのペイロード)のアクセスユニットを含む、1つ又は1つ以上のビデオスキップトラック。
【1684】
サンプルが特質データに対するビデオコーディングされた基本ストリーム(タイプVPCC_AVDのV-PCCユニットのペイロード)のアクセスユニットを含むゼロ又は1つ以上のビデオスキームトラック。
【1685】
V-PCCトラック(V-PCC track)
【1686】
V-PCCトラックサンプルエントリー(V-PCC Track Sample Entry)
【1687】
Sample Entry Type:'vpc1'、'vpcg'
【1688】
Container:SampleDescriptionBox
【1689】
Mandatory:A 'vpc1' or 'vpcg' sample entry is mandatory
【1690】
Quantity:One or more sample entries may be present
【1691】
V-PCCトラックはサンプルエントリータイプ'vpc1'又は'vpcg'を有するボリュメトリックビジュアルサンプルエントリー(VolumetricVisualSampleEntry)を拡張するVPCCサンプルエントリーを使用する。
【1692】
'vpc1'サンプルエントリーにおいて、全てのアトラスシーケンスパラメータセット、アトラスフレームパラメータセット、アトラス適応パラメータセット又はV-PCC必須SEI又はV-PCC非必須SEIは、セットアップユニット(setupUnit)アレイ内にある。'vpcg'サンプルエントリーにおいて、アトラスシーケンスパラメータセット、アトラスフレームパラメータセット、アトラス適応パラメータセット、V-PCC必須SEI又はV-PCC非必須SEIは、ストリーム内のアレイ内に存在する。
【1693】
aligned(8) class VPCCSampleEntry() extends VolumetricVisualSampleEntry ('vpc1') {
【1694】
VPCCConfigurationBox config;
【1695】
VPCCUnitHeaderBox unit_header;
【1696】
VPCC3DBoundingInformationBox();
【1697】
ViewingInformationBox();
【1698】
}
【1699】
VPCC3Dバウンディング情報ボックス(VPCC3DBoundingInformationBox)は、このトラック内に伝達されるサンプルに対応するV-PCCコンテンツの3Dバウンディングボックス情報を示す。
【1700】
3Dバウンディングボックス更新フラグ(3d_bb_updated_flag):この値が1であると、シグナリングされた3Dバウンディングボックス情報がこのトラック内に伝達されるサンプルに対応するV-PCCコンテンツの初期の3Dバウンディングボックス情報であることを示す。動的に変化する3Dバウンディングボックス情報は、サンプルグルーピング又は時間指定メタデータによりシグナリングされる。この値が0であると、対応するV-PCCコンテンツの3Dバウンディングボックス情報は変化しない。
【1701】
3Dバウンディングボックスタイプ(3d_bb_type):この値が0である場合、サンプルデータに連関する3Dバウンディングボックスのうち、一番大きいバウンディングボックス情報がシグナリングされる。3d_bb_type値が1である場合は、連関する初期3Dバウンディングボックス情報がシグナリングされ、変化する3Dバウンディングボックス情報はサンプルグルーピング或いは別のメタデータトラックなどによりシグナリングされる。
【1702】
視聴情報ボックス(ViewingInformationBox)はこのトラック内に伝達されるサンプルに対応するV-PCCコンテンツの視聴情報(視聴位置、オリエンテーション又は方向を含む)を示す。視聴情報サンプルグループ又は視聴情報時間指定メタデータトラックが存在する場合、初期の視聴情報を示す。
【1703】
VPCC構成ボックス(VPCCConfigurationBox config)は共通データ構造(common data structure)で説明した内容を参照する。
【1704】
V-PCCトラックサンプルフォーマット(V-PCC track sample format)
【1705】
V-PCCトラック内の各々のサンプルは、シングルコーディングされたアトラスアクセスユニットに対応する。様々なコンポーネントトラック内のこのフレームに対応するサンプルはV-PCCトラックサンプルと同一の構成時間を有する。各々のV-PCCサンプルはただ1つ又は1つ以上のアトラスNALユニットを含むタイプVPCC_ADの1つのV-PCCユニットペイロードを含む。
【1706】
aligned(8) class VPCCSample {
【1707】
unsigned int PointCloudPictureLength=sample_size;//size of sample(例えば、from SampleSizeBox)
【1708】
for (i=0;i<PointCloudPictureLength;) {
【1709】
sample_stream_nal_unit nalUnit;
【1710】
i+=(VPCCDecoderConfigurationRecord.lengthSizeMinusOne+1)+nalUnit.ssnu_nal_unit_size;
【1711】
}
【1712】
}
【1713】
NALユニット(nalUnit)はNALユニットサンプルストリームフォーマット内のシングルアトラスNALユニットを含む。
【1714】
V-PCCトラック同期サンプル(V-PCC track sync sample)
【1715】
V-PCCトラック内の同期サンプルは、イントラ任意アクセスポイント(intra random access point、IRAP)コーディングされたアトラスアクセスユニットを含むサンプルである。アトラスサブビットストリームパラメータセット(例えば、ASPS、AAPS、AFPS)及びSEIメッセージが必要な場合、任意アクセスを許容するために、同期サンプルで繰り返される。
【1716】
ビデオ符号化されたV-PCCコンポーネントトラック(Video-encoded V-PCC component tracks)
【1717】
プレーヤー側でポイントクラウドを復元せず、特質、ジオメトリ又は占有マップトラックから復号されたフレームをディスプレイすることは意味がないので、ビデオスキップタイプ(a restricted video scheme type)がこのようなビデオコーディングされたトラックに対して定義される。
【1718】
ビデオ スキーム(Restricted video scheme)
【1719】
V-PCCコンポーネントビデオトラックはビデオとしてファイル内に表現され、それらのビデオサンプルエントリーのスキーム情報ボックス(RestrictedSchemeInfoBox)のスキームタイプボックス(SchemeTypeBox)のスキームタイプ(scheme_type)フィールド内の'pccv'により識別される。
【1720】
特質、ジオメトリ及び占有マップV-PCCコンポーネントを符号化するために使用されるビデオコーデックに対する制限がない。さらに、かかるコンポーネントは異なるビデオコーデックを使用して符号化される。
【1721】
スキーム情報(Scheme information)
【1722】
スキーム情報ボックス(SchemeInformationBox)が存在し、VPCCユニットヘッダボックス(VPCCUnitHeaderBox)を含む。
【1723】
V-PCCコンポーネントトラックの参照(Referencing V-PCC component tracks)
【1724】
V-PCCトラックをコンポーネントビデオトラックにリンクするために、3つのトラック参照タイプボックス(TrackReferenceTypeBoxes)は各々のコンポーネントに対する1つ、V-PCCトラックのトラックボックス(TrackBox)内のトラック参照ボックス(TrackReferenceBox)に加えられる。トラック参照タイプボックス(TrackReferenceTypeBox)はV-PCCトラックを参照するビデオトラックを指定するトラックID(track_IDs)のアレイを含む。トラック参照タイプボックス(TrackReferenceTypeBox)の参照タイプ(reference_type)はコンポーネントタイプ(占有マップ、ジオメトリ又は特質又は占有マップ)を識別する。かかるトラック参照タイプの4CCを以下のように説明できる。
【1725】
'pcco':参照されたトラックはビデオコーディングされた占有マップV-PCCコンポーネントを含む。
【1726】
'pccg':参照されたトラックはビデオコーディングされたジオメトリV-PCC コンポーネントを含む。
【1727】
'pcca':参照されたトラックはビデオコーディングされた特質V-PCCコンポーネントを含む。
【1728】
参照されたビデオトラック(restricted video track)により伝達されるトラックのスキーム情報ボックス(RestrictedSchemeInfoBox)内にシグナリングされるV-PCCコンポーネントのタイプは、V-PCCトラックからトラック参照の参照タイプにマッチングされる。
【1729】
V-PCCビットストリームのシングルトラックコンテナ(Single track container of V-PCC Bitstream)
【1730】
V-PCCデータのシングルトラックカプセル化はシングルクラックにより表現されるV-PCC符号化された基本ビットストリームを要求する。
【1731】
PCCデータのシングルトラックカプセル化は、V-PCC符号化されたビットストリームのシンプルISOBMFFカプセル化の場合に活用される。このようなビットストリームは追加プロセシングなしに直接シングルトラックに格納される。V-PCCユニットヘッダデータ構造はビットストリーム内に存在する。シングルトラックコンテナは追加処理(マルチトラックファイル生成、トランスコーディング、DASHセグメントなど)のためのメディアワークフローに提供される。
【1732】
V-PCCビットストリームトラック(V-PCC bitstream track)
【1733】
Sample Entry Type:'vpe1'、'vpeg'
【1734】
Container:SampleDescriptionBox
【1735】
Mandatory:A 'vpe1' or 'vpeg' sample entry is mandatory
【1736】
Quantity:One or more sample entries may be present
【1737】
V-PCCビットストリームトラックはサンプルエントリータイプ'vpe1'又は'vpeg'を有するボリュメトリックビジュアルサンプルエントリー(VolumetricVisualSampleEntry)を使用する。
【1738】
V-PCCビットストリームサンプルエントリーはVPCC構成ボックス(VPCCConfigurationBox)を含む。
【1739】
'vpe1'サンプルエントリーにおいて、全てのアトラスシーケンスパラメータセット、アトラスフレームパラメータセット、アトラス適応パラメータセット、V-PCC必須SEI又はV-PCC非必須SEIがこのアレイ又はこのストリーム内に存在する。
【1740】
aligned(8) class VPCCBitStreamSampleEntry() extends VolumetricVisualSampleEntry ('vpe1'){
【1741】
VPCCConfigurationBox config;
【1742】
VPCC3DBoundingInformationBox();
【1743】
ViewingInformationBox();
【1744】
}
【1745】
VPCC3Dバウンディング情報ボックス(VPCC3DBoundingInformationBox)は、トラック内伝達されるサンプルに対応するV-PCCコンテンツの3Dバウンディングボックス情報を示す。
【1746】
3Dバウンディングボックス更新フラグ(3d_bb_updated_flag):この値が1であると、シグナリングされた3Dバウンディングボックス情報がトラック内伝達されるサンプルに対応するV-PCCコンテンツの初期の3Dバウンディングボックス情報であることを示す。動的に変化する3Dバウンディングボックス情報は、サンプルグルーピング又は時間指定メタデータトラックにシグナリングされる。この値が0であると、対応するV-PCCコンテンツの3Dバウンディングボックス情報が変化しないことを示す。
【1747】
3d_bb_type値が0である場合、サンプルデータに連関する3Dバウンディングボックスのうち、一番大きいバウンディングボックス情報がシグナリングされる。3d_bb_type値が1である場合、連関する初期3Dバウンディングボックス情報がシグナリングされ、変化する3Dバウンディングボックス情報はサンプルグルーピング或いは別のメタデータトラックなどによりシグナリングされる。
【1748】
視聴情報ボックスがトラック内伝達されるサンプルに対応するV-PCCコンテンツの視聴情報(視聴位置、オリエンテーション又は方向を含み)を示す。これは視聴情報サンプルグループ又は視聴情報時間指定メタデータトラックが存在する場合、初期の視聴情報を示す。
【1749】
V-PCCビットストリームサンプルフォーマット(V-PCC bitstream sample format)
【1750】
V-PCCビットストリームサンプルは同一のプレゼンテーション時間、即ち、1つのV-PCCアクセスユニットに属する1つ又は1つ以上のV-PCCユニットを含む。サンプルは同期サンプルのように自立的であるか(be self-contained)又はV-PCCビットストリームトラックの他のサンプルに従属する復号特性を有する。
【1751】
V-PCCビットストリーム同期サンプル(V-PCC bitstream sync sample)
【1752】
V-PCCビットストリーム同期サンプルは以下の全ての条件を満たす:
【1753】
独立して復号可能である。
【1754】
復号順に同期サンプル後のサンプルが同期サンプルに先だってサンプル上の復号従属状態を有しない。
【1755】
復号順に同期サンプル後の全てのサンプルが成功的に復号される。
【1756】
V-PCCビットストリームサブサンプル(V-PCC bitstream sub-sample)
【1757】
V-PCCビットストリームサブサンプルはV-PCCビットストリームサンプル内に含まれるV-PCCユニットである。
【1758】
V-PCCビットストリームトラックは、V-PCCビットストリームサブサンプルを並べるムービーフラグメントボックス(MovieFragmentBoxes)の各々のトラックフラグメントボックス(TrackFragmentBox)内のサンプルテーブルボックス(SampleTableBox)又は内の1つのサブサンプル情報ボックス(SubSampleInformationBox)を含む。サブサンプルを示すV-PCCユニットの32ビットユニットヘッダは、サブサンプル情報ボックス(SubSampleInformationBox)内のサブサンプルエントリーの32ビットコーデック特定のパラメータ(codec_specific_parameterS)フィールドにコピーされる。各々のサブサンプルのV-PCCユニットタイプは、サブサンプル情報ボックス(SubSampleInformationBox)内のサブサンプルエントリーのコーデック特定のパラメータ(codec_specific_parameters)フィールドをパースすることにより識別される。
【1759】
時間指定メタデータトラック(Timed metadata track)
【1760】
3Dバウンディングボックス時間指定メタデータトラック(3D bounding box timed metadata track)
【1761】
V-PCCコンテンツの3Dバウンディングボックス情報を示す動的3Dバウンディングボックス時間指定メタデータトラックは、時間によって動的に変化する。3Dバウンディングボックス時間指定メタデータトラックは、'cdsc'トラック参照を活用してアトラスサブビットストリーム(例えば、V-PCCトラック又はV-PCCビットストリームトラック)又はV-PCCコンポーネントビットストリームを伝達する個別トラックにリンクされる。
【1762】
3Dバウンディングボックス時間指定メタデータトラックは'cdsc’トラック参照を活用して個別トラックグループにリンクされる。
【1763】
aligned(8) class 3DBoundingBoxSampleEntry extends MetadataSampleEntry('dy3b') {
【1764】
VPCC3DBoundingInformationBox initial_3d_bb;
【1765】
}
【1766】
この時間指定メタデータトラックのサンプルエントリーは対応するV-PCCコンテンツに適用されるデフォルト3Dバウンディングボックス情報を含む3Dバウンディングボックス情報を含む。
【1767】
時間指定メタデータトラックのサンプルフォーマットは以下の通りである。
【1768】
aligned(8) class 3DBoundingBoxSample{
【1769】
unsigned int(7)reserved=0;
【1770】
unsigned int(1)anchor_updated_flag;
【1771】
3DBoundingBoxStruct(anchor_updated_flag);
【1772】
}
【1773】
アンカー更新フラグ(anchor_updated_flag):3Dバウンディングボックスの3Dアンカーポイント(原点)が更新されるか否かを示すフラグである。この値が1であると、3Dアンカーポイントがサンプル内に存在し、3Dバウンディングボックスが座標系内のシグナリングされた3Dアンカーポイントに対して表現される。この値が0であると、3Dアンカーポイントがこのサンプル内に存在せず、3Dバウンディングボックスはサンプルエントリー内のシグナリングされる3Dアンカーポイントに対して表現される。
【1774】
視聴情報時間指定メタデータトラック(Viewing information timed metadata track)
【1775】
動的視聴情報時間指定メタデータトラックは視聴情報(視聴位置、視聴オリエンテーション、視聴方向を含み)を示し、動的に時間によって変化する。視聴情報時間指定メタデータトラックは'cdsc'トラック参照を活用してアトラスサブビットストリーム(例えば、V-PCCトラック又はV-PCCビットストリームトラック)又はV-PCCコンポーネントビットストリームを伝達する個別トラックにリンクされる。
【1776】
視聴情報時間指定メタデータトラックは'cdsc'トラック参照を活用して個別トラックグループに連結される。
【1777】
aligned(8) class ViewingInformationSampleEntry extends MetadataSampleEntry('dyvi') {
【1778】
ViewingInformationBox();
【1779】
}
【1780】
視聴情報時間指定メタデータトラックのサンプルエントリーは対応するV-PCCコンテンツに適用される初期の視聴情報(視聴位置、視聴オリエンテーション、視聴方向を含み)を含む。
【1781】
時間指定メタデータトラックのサンプルフォーマットは以下の通りである。
【1782】
aligned(8) class ViewingInformationSample{
【1783】
ViewingInformationStruct();
【1784】
}
【1785】
視聴情報構造(ViewingInformationStruct)は動的に変化する視聴情報(視聴位置、視聴オリエンテーション、視聴方向を含み)を含む。
【1786】
上述した実施例によるデータは、図45のように、ポイントクラウドデータが非時間指定データである場合、イメージアイテムとしてファイル内で生成され、カプセル化されて送受信される。かかるカプセル化は、実施例によるファイル/セグメントカプセル化部20004、21009により行われ、カプセル化に対応するデカプセル化は、実施例によるファイル/セグメントデカプセル化部22000により行われる。
【1787】
実施例によるアイテムタイプはV-PCCアイテム及びV-PCCユニットアイテムを含み、非時間指定V-PCCデータをカプセル化するために定義される。
【1788】
実施例によるアイテムは図45の対応する説明を参照する。
【1789】
VPCC構成アイテムプロパティ(V-PCC configuration item property)はV-PCCパラメータセットを格納し、V-PCCアイテムに連関する。
【1790】
一方、vpcc_unit_payload_structはVPCCユニットペイロードサイズ(vpcc_unit_payload_size)及びVPCCユニットペイロード(vpcc_unit_payload)を含み、VPCCユニットペイロードサイズはVPCCユニットペイロードのサイズを示す。
【1791】
VPCCユニットペイロードはvpcc_VPSタイプのVPCCユニットを含む。
【1792】
3Dバウンディングボックスアイテムプロパティ(3DBoundingbox item property)
【1793】
box Types:‘vpbb’
【1794】
Property type:Descriptive item property
【1795】
Container:ItemPropertyContainerBox
【1796】
Mandatory (per item):no
【1797】
Quantity (per item):zero or one
【1798】
3Dバウンディングボックス情報を含む3Dバウンディングボックス構造(3DBoundingBoxStruct())はアイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに連関する。
【1799】
aligned(8) class 3DBoundingBoxItemProperty() extends ItemFullProperty(‘vpbb'、vers1ion=0、0) {
【1800】
unsigned int(7) resrved=0 ;
【1801】
unsinged int(1)anchor_presence_flag;
【1802】
3DBoundingBoxStruct (anchor_presence_flag);
【1803】
}
【1804】
アンカー存在フラグ(anchor_presence_flag):この値が1であると、3Dアンカーポイントがシグナリングされた3Dバウンディングボックス構造内に存在し、3Dバウンディングボックスは座標系内にシグナリングされた3Dアンカーポイントについて表現される。この値が0であると、3Dアンカーポイントはシグナリングされた3Dバウンディングボックス構造内に存在せず、シグナリングされた3Dバウンディングボックスは(0、0、0)に対して表現される。
【1805】
一方、この明細書において、実施例によるアンカーポイントはポイントクラウドデータの3次元空間上のバウンディングボックスの基準点であり(3次元空間上のバウンディングボックスのx、y、z軸のオリジン)であると定義することができる。
【1806】
3Dバウンディングボックス構造(3DBoundingBoxStruct())はV-PCCアイテムに連関する3Dバウンディングボックス情報を示す。
【1807】
視聴情報アイテムプロパティ(Viewing information item property)
【1808】
box Types:‘vpvi’
【1809】
Property type:Descriptive item property
【1810】
Container:ItemPropertyContainerBox
【1811】
Mandatory (per item):no
【1812】
Quantity (per item):zero or one
【1813】
視聴情報プロパティ(ViewingInformationProperty)はユーザにレンダラーされるべきイメージによる視聴情報を示す。視聴情報(視聴位置、視聴オリエンテーション又は視聴方向を含み)を含む視聴情報構造はアイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに連関する。
【1814】
aligned(8) class ViewingInformationProperty () extends ItemFullProperty(‘vpvi'、version=0、0) {
【1815】
ViewingInformationStruct ();
【1816】
}
【1817】
視聴情報構造(ViewingInformationStruct())はV-PCCアイテムに連関する視聴情報(視聴位置、視聴オリエンテーション又は視聴方向を含み)を含む。
【1818】
実施例によるファイルカプセル化部20004,21009は以下のフローチャートに従ってポイントクラウドデータを処理する。
【1819】
1.V-PCCビデオ或いはイメージの3Dバウンディング情報或いはビットストリーム上に存在する3Dバウンディングボックス情報の変化程度によってファイル内トラック或いはイメージアイテム内に生成して格納する。
【1820】
2.これに関連するシグナリング情報を格納する。
【1821】
3.V-PCCビデオ或いはイメージの視聴情報に基づいてそれをファイル内トラック或いはイメージアイテム内に生成、格納し、関連シグナリング情報を格納する。
【1822】
実施例によるファイルデカプセルか又はファイルデカプセル化部22000は、以下のフローチャートに従ってポイントクラウドデータを処理する。
【1823】
1.ファイル内トラック或いはイメージアイテムに含まれているシグナリング及び3Dバウンディングボックスなどの情報を得る。
【1824】
2.それに基づいてファイル内トラックデータ或いはイメージデータを効果的に抽出、復号、後処理などを行う。
【1825】
3.ファイル内トラック或いはイメージアイテムに含まれているシグナリング及び視聴情報を得て、それらに基づいてポイントクラウドビデオ或いはイメージレンダリングなどを行う。
【1826】
実施例によるポイントクラウドデータ送受信方法/装置は、実施例によるファイルカプセル化部及びファイルデカプセル化部などの動作により、以下のような効果を提供する。
【1827】
上述したV-PCC及びV-PCCシステムのデータは、実施例による送信装置のカプセル化部(又は生成器などとも称する)で生成され、送信装置の送信機により送信される。また、上述したV-PCC及びV-PCCシステムのデータは、実施例による受信装置の受信部により受信され、受信装置のデカプセル化部(又はパースなどとも称される)により得られる。受信装置のデコーダ、レンダラーなどは、上述したV-PCC及びV-PCCシステムのデータに基づいてユーザに適するポイントクラウドデータを提供する。
【1828】
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化する段階、ポイントクラウドデータを含むビットストリームをファイルに基づいてカプセル化する段階、及びファイルを送信する段階を含む。
【1829】
実施例によるビットストリームはポイントクラウドデータに関するパラメータ情報を含み、パラメータ情報はポイントクラウドデータに関するボックスの座標系内のオフセット情報及びボックスのサイズ情報を含む。即ち、バウンディングボックスの位置及びサイズ情報がシグナリングされる(図30を参照)。
【1830】
実施例によるファイルはポイントクラウドデータに関する空間情報を含み、空間情報はポイントクラウドデータに対する3Dバウンディングボックスに含まれたポイントの座標値及び3Dバウンディングボックスの座標系内の拡張値を含む(図44を参照)。
【1831】
実施例によるファイルはポイントクラウドデータに関するパラメータセット及びアトラスサブビットストリームパラメータセットを含むサンプルエントリーを含むトラックを含み、トラックはポイントクラウドデータに関する空間情報を含む(図44の対応段落を参照)。
【1832】
実施例によるファイルはポイントクラウドデータに関するパラメータセット及びアトラスサブビットストリームパラメータセットを含むサンプルエントリーを含むトラックを含み、トラックは時間指定メタデータトラックを含み、時間指定メタデータトラックは動的に変化する空間情報を含む(図44の対応段落を参照)。即ち、時間によって変化するポイントクラウドデータの場合、実施例による方法/装置は時間指定メタデータトラックに動的な3Dバウンディングボックス又は空間に関する情報を含めることができる。
【1833】
実施例によるファイルはポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラックを含み、トラックはグルーピングされる(図63の対応段落を参照)。
【1834】
実施例によるファイルはポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラック又はアイテムを含み、トラック又はアイテムはグルーピングされ、3Dバウンディングボックスはポイントクラウドデータに連関する1つ又は1つ以上のエンティティを示す。実施例によるエンティティとは、ポイントクラウドデータで表現されるオブジェクトを意味する。複数のエンティティが存在する場合、実施例による方法/装置は複数のエンティティを効率的にレンダリングするために、符号化/復号のためのファイルコンテナ構造を提供する(図63の対応段落を参照)。
【1835】
図64は実施例によるポイントクラウドデータ送信方法を示す。
【1836】
S64000、実施例によるポイントクラウドデータ送信方法はポイントクラウドデータを符号化する段階を含む。
【1837】
実施例による符号化動作は、図1の送信装置10000、ポイントクラウドビデオエンコーダ10002、図2及び図3のポイントクラウドデータの獲得及び処理、図4のエンコーダ、図5及び図14のポイントクラウドデータの処理、図15のエンコーダ、図18の送信装置、図20の獲得20000、プロセッサ20001、エンコーダ20002,20006、図21のポイントクラウドデータの獲得21000、ポイントクラウドデータのプロセッサ21001ないし21006、エンコーダ21007,21008、図23のスマートフォン2440、XRデバイス2430、図24及び図25のオブジェクトに対するバウンディングボックスの処理及び情報生成、図26及び図27のポイントクラウドデータを含むビットストリームの生成、及び図31のアトラス(サブ)ビットストリームの生成/符号化などの動作を含む。
【1838】
S64010、実施例によるポイントクラウドデータ送信方法はさらにポイントクラウドデータをカプセル化する段階を含む。
【1839】
実施例によるカプセル化動作は、図1の送信装置10000、ファイル/セグメントカプセル化部10003、図20のファイル/セグメントカプセル化部20004、図21のファイル/セグメントカプセル化部21009、図24及び図25のバウンディングボックスに関する情報生成、図31及び図50のアトラス(サブ)ビットストリームに関する情報生成、図40及び図41のファイル生成、図42のサンプルエントリー内の情報生成、図43のトラック参照及びグルーピング生成、及び図45のアイテム生成などの動作を含む。
【1840】
S64020、実施例によるポイントクラウドデータ送信方法はさらにポイントクラウドデータを送信する段階を含む。
【1841】
実施例による送信動作は、図1の送信装置10000、送信機10004、図20のファイル又はセグメント伝達、及び図21のファイル又はセグメントの伝達などの動作を含む。
【1842】
図65は実施例によるポイントクラウドデータ受信方法を示す。
【1843】
S65000、実施例によるポイントクラウドデータ受信方法はポイントクラウドデータを受信する段階を含む。
【1844】
実施例による受信動作は、図1の受信装置10005、受信機10006、図19の受信装置の受信、図20のファイル伝達の受信、及び図22のファイル又はセグメント受信などの動作を含む。
【1845】
S65010、実施例によるポイントクラウドデータ受信方法はさらにポイントクラウドデータをデカプセル化する段階を含む。
【1846】
実施例によるデカプセル化動作は、図1の受信装置10005、ファイル/セグメントデカプセル化部10007、図20のファイル/セグメントデカプセル化部20005、図22のファイル/セグメントデカプセル化部22000、図24及び図25のバウンディングボックスに関する情報パース、図31及び図50のアトラス(サブ)ビットストリームに関する情報パース、図40及び図41のファイルパース、図42のサンプルエントリー内の情報パース、図43のトラック参照及びグルーピングパース、及び図45のアイテムパースなどの動作を含む。
【1847】
S65020、実施例によるポイントクラウドデータ受信方法はさらにポイントクラウドデータを復号する段階を含む。
【1848】
実施例による復号動作は、ポイントクラウドデータビデオデコーダ10008、レンダラー10009、図16及び図17のデコーダ、図19の受信装置、図20のデコーダ20006、ポイントクラウドデータプロセッサ/レンダラー、ディスプレイ、図22のデコーダ22001,22002、ポイントクラウドデータのプロセッサ22003、レンダラー、図23のスマートフォン2440、XRデバイス2430、図24及び図25のオブジェクトに対するバウンディングボックスの処理及び情報復号、図26及び図27のポイントクラウドデータを含むビットストリームの復号、及び図31のアトラス(サブ)ビットストリームの処理/復号などの動作を含む。
【1849】
実施例による方式において、ポイントクラウドコンテンツサービスを提供するための送信機又は受信機は、上述したように、V-PCCビットストリームを構成し、ファイルを格納する。
【1850】
V-PCCビットストリームを効果的に多重化することができる。V-PCCユニット単位でビットストリームの効率的な接近を支援する。V-PCCビットストリームのアトラスストリームを効果的にファイル内トラックに格納及び送信できるようにする。
【1851】
実施例による方式は、ユーザのビューポートに適するファイル内のポイントクラウドデータを含むトラック或いはアイテムなどを選択するか、又はトラック或いはアイテム内のデータを部分的にパース、復号或いはレンダリングする。不要なデータ、即ち、ユーザのビューポートに連関のないポイントクラウドデータに対する不要な演算過程を減らすことにより、ポイントクラウドデータのファイルでのパース、ポイントクラウドデータの復号/レンダリングを効果的に行うようにする。
【1852】
この明細書の実施例によるポイントクラウド圧縮処理装置、送信機、受信機、ポイントクラウドプレーヤー、エンコーダ又はデコーダは上述した効果を提供する。
【1853】
言い換えれば、上述したデータ表現方式は、ポイントクラウドビットストリームに効率的に接近する効果を提供する。それと共に、ポイントクラウドビットストリームのデータ処理及びレンダリングのために必要な情報を効果的に接近できるという効果を提供する。
【1854】
この明細書の実施例による送信機又は受信機は、V-PCCビットストリームをファイル内の1つ以上の複数のトラックに分割格納及びシグナリング、格納されたV-PCCビットストリーム複数のトラック間の関係を示すためのシグナリング、ファイル内に格納されたalternative V-PCCトラックに対する指示によりポイントクラウドビットストリームのファイルを効率的に格納して送信する。
【1855】
上述した実施例による方法/装置はV-PCCデータ伝達方法及び装置などと結合して説明される。
【1856】
実施例は方法及び又は装置の観点で説明しており、方法の説明及び装置の説明は互いに補完して適用できる。
【1857】
説明の便宜のために、各図を区分して説明したが、各図に表された実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。実施例による装置及び方法は、上述したように説明された実施例の構成と方法が限定して適用されることではなく、実施例は様々に変形可能に各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
【1858】
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれのチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のいずれか一つ又はそれ以上の動作/方法を行わせるか、又は実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではないCRM又は他のコンピュータープログラム製品に格納されるか、又は一つ又はそれ以上のプロセッサにより実行されるために構成された一時的なCRM又は他のコンピュータープログラム製品に格納される。また実施例によるメモリは、揮発性メモリ(例えば、RAMなど)だけではなく、非揮発性メモリ、フラッシュメモリ、PROMなどを全部含む概念として使用される。また、インターネットによる送信などのような伝送波の形式で具現されることも含む。またプロセッサが読み取られる記録媒体は、ネットワークで連結されたコンピューターシステムに分散されて、分散方式によりプロセッサが読み取られるコードが格納されて実行される。
【1859】
この明細書において、“/”と“、”は“及び/又は”に解釈される。例えば、“A/B”は“A及び/又はB”に解釈され、“A、B”は“A及び/又はB”に解釈される。さらに、“A/B/C”は“A、B及び/又はCのいずれか”を意味する。また、“A、B、C”も“A、B及び/又はCのいずれか”を意味する。さらに、この文書において、“又は”は“及び/又は”に解釈される。例えば、“A又はB”は、1)“A”のみを意味するか、2)“B”のみを意味するか、又は3)“A及びB”を意味する。言い換えれば、この明細書において“又は”は“さらに(additionally)又は代わりに(alternatively)”を意味する。
【1860】
第1、第2などの用語は実施例の様々な構成要素を説明するために使用される。しかし、実施例による様々な構成要素は上記用語により解釈が制限されてはいけない。かかる用語は一つの構成要素を他の構成要素と区別するために使用されることに過ぎない。例えば、第1ユーザ入力信号は第2ユーザ入力信号と称することができる。同様に、第2ユーザ入力信号は第1ユーザ入力信号と称することができる。かかる用語の使用は様々な実施例の範囲から離脱していない。第1ユーザ入力信号及び第2ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
【1861】
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限するものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味することではない。実施例を説明するために使用される、「~である場合」、「~の時」などの条件表現は選択的な場合にのみ制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。
【1862】
また、この明細書で説明する実施例による動作は、実施例によってメモリ及び/又はプロセッサを含む送受信装置により行われる。メモリは実施例による動作を処理/制御するためのプログラムを格納し、プロセッサはこの明細書で説明した様々な動作を制御する。プロセッサはコントローラとも称される。実施例において、動作はファームウェア、ソフトウェア及び/又はそれらの組み合わせにより行われ、ファームウェア、ソフトウェア及び/又はそれらの組み合わせはプロセッサに格納されるか又はメモリに格納される。
【1863】
一方、上述した実施例による動作は実施例による送信装置及び/又は受信装置により行われる。送受信装置はメディアデータを送受信する送受信部、実施例によるおプロセスに対する指示(プログラムコード、アルゴリズム、フローチャート及び/又はデータ)を格納するメモリ、及び送受信装置の動作を制御するプロセッサを含む。
【1864】
プロセッサはコントローラなどとも称され、例えば、ハードウェア、ソフトウェア及び/又はそれらの組み合わせに対応する。上記実施例による動作はプロセッサにより行われる。またプロセッサは上記実施例の動作のためのエンコーダ/デコーダなどで具現される。
【1865】
上述したように、実施例を実施するための最善の形態について関連内容を説明した。
【産業上の利用可能性】
【1866】
上述したように、実施例はポイントクラウドデータの送受信装置及びシステムに全体的又は部分的に適用することができる。
【1867】
当業者は実施例の範囲内で実施例を様々に変更又は変形することができる。
【1868】
実施例は変更/変形を含み、変更/変形は請求の範囲及びそれらの範囲内のものである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56
図57
図58
図59
図60
図61
図62
図63
図64
図65
【手続補正書】
【提出日】2024-05-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
エンコーダがポイントクラウドデータを符号化する方法であって、
前記ポイントクラウドデータのジオメトリデータを符号化する段階と、
前記ポイントクラウドデータの特質データを符号化する段階と、
前記符号化されたジオメトリデータ及び前記符号化された特質データをファイル内にカプセル化する段階と、
前記ファイルを送信する段階と、を含み、
前記ファイルは、前記ジオメトリデータ及び前記特質データを含む第1トラックを含み、
前記ファイルは、前記ポイントクラウドデータに対するバウンディングボックス情報を含む第2トラックを更に含み、前記バウンディングボックス情報は、バウンディングボックスの位置情報を含み、
前記第2トラックは、動的タイプに対するサンプルエントリーと、動的空間領域に関連する領域情報を含むサンプルとを含む時間指定メタデータトラックを更に含み、前記サンプルエントリー内の動的空間領域情報は、時間によって動的に変化する、ポイントクラウドデータ符号化方法。
【請求項2】
前記第2トラックは、前記ポイントクラウドデータに対するパラメータセット及び前記ポイントクラウドデータに対するアトラスサブビットストリームパラメータセットを含むサンプルエントリーを含む、請求項1に記載のポイントクラウドデータ符号化方法。
【請求項3】
前記ファイルは、前記ポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラックを含み、
前記トラックはグルーピングされる、請求項1に記載のポイントクラウドデータ符号化方法。
【請求項4】
前記ファイルは、前記ポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラック又はアイテムを含み、
前記トラック又は前記アイテムはグルーピングされ、
前記3Dバウンディングボックスは、前記ポイントクラウドデータに関連する1つ又は1つ以上のエンティティを示す、請求項1に記載のポイントクラウドデータ符号化方法。
【請求項5】
デコーダがポイントクラウドデータを復号する方法であって、
ポイントクラウドデータを含むファイルを受信する段階と、
前記ファイルをデカプセル化する段階であって
前記ファイルは、前記ポイントクラウドデータのジオメトリデータ及び前記ポイントクラウドデータの特質データを含む第1トラックを含み、
前記ファイルは、前記ポイントクラウドデータに対するバウンディングボックス情報を含む第2トラックを更に含み、前記バウンディングボックス情報は、バウンディングボックスの位置情報を含み、
前記第2トラックは、動的タイプに対するサンプルエントリーと、動的空間領域に関連する領域情報を含むサンプルとを含む時間指定メタデータトラックを更に含み、前記サンプルエントリー内の動的空間領域情報は、時間によって動的に変化する、段階と、
前記ジオメトリデータを復号する段階と、
前記特質データを復号する段階と、を含む、ポイントクラウドデータ復号方法。
【請求項6】
前記第2トラックは、前記ポイントクラウドデータに対するパラメータセット及び前記ポイントクラウドデータに対するアトラスサブビットストリームパラメータセットを含むサンプルエントリーを含む、請求項5に記載のポイントクラウドデータ復号方法。
【請求項7】
前記ファイルは、前記ポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラックを含み、
前記トラックはグルーピングされる、請求項5に記載のポイントクラウドデータ復号方法。
【請求項8】
前記ファイルは、前記ポイントクラウドデータに対する同一の3Dバウンディングボックスに属するトラック又はアイテムを含み、
前記トラック又は前記アイテムはグルーピングされ、
前記3Dバウンディングボックスは、前記ポイントクラウドデータに関連する1つ又は1つ以上のエンティティを示す、請求項5に記載のポイントクラウドデータ復号方法。
【請求項9】
ポイントクラウドデータを符号化するための装置であって、
メモリと、
前記メモリ内の1つ以上の命令を実行するよう構成されたプロセッサと、を含み、
前記1つ以上の命令は、前記プロセッサに、
前記ポイントクラウドデータのジオメトリデータを符号化すること
前記ポイントクラウドデータの特質データを符号化すること、
前記符号化されたジオメトリデータ及び前記符号化された特質データをファイル内にカプセル化すること
前記ファイルを送信することを実行させ、
前記ファイルは、前記ジオメトリデータ及び前記特質データを含む第1トラックを含み、
前記ファイルは、前記ポイントクラウドデータに対するバウンディングボックス情報を含む第2トラックを更に含み、前記バウンディングボックス情報は、バウンディングボックスの位置情報を含み、
前記第2トラックは、動的タイプに対するサンプルエントリーと、動的空間領域に関連する領域情報を含むサンプルとを含む時間指定メタデータトラックを更に含み、前記サンプルエントリー内の動的空間領域情報は、時間によって動的に変化する、ポイントクラウドデータ符号化装置。
【請求項10】
ポイントクラウドデータを復号するための装置であって、
メモリと、
前記メモリ内の1つ以上の命令を実行するよう構成されたプロセッサと、を含み、
前記1つ以上の命令は、前記プロセッサに、
ポイントクラウドデータを含むファイルを受信すること
前記ファイルをデカプセル化することであって
前記ファイルは、前記ポイントクラウドデータのジオメトリデータ及び前記ポイントクラウドデータの特質データを含む第1トラックを含み、
前記ファイルは、前記ポイントクラウドデータに対するバウンディングボックス情報を含む第2トラックを更に含み、前記バウンディングボックス情報は、バウンディングボックスの位置情報を含み、
前記第2トラックは、動的タイプに対するサンプルエントリーと、動的空間領域に関連する領域情報を含むサンプルとを含む時間指定メタデータトラックを更に含み、前記サンプルエントリー内の動的空間領域情報は、時間によって動的に変化する、こと、
前記ジオメトリデータを復号すること、
前記特質データを復号することを実行させる、ポイントクラウドデータ復号装置。