添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというより、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に関する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。
実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものもあり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。
図1は実施例によるポイントクラウドコンテンツ提供システムの一例を示す図である。
図1に示したポイントクラウドコンテンツ提供システムは、送信装置(transmission device)10000及び受信装置(reception device)10004を含む。送信装置10000及び受信装置10004はポイントクラウドデータを送受信するために有無線通信が可能である。
実施例による送信装置10000は、ポイントクラウドビデオ(又はポイントクラウドコンテンツ)を確保し処理して送信する。実施例において、送信装置10000は固定局(fixed station)、BTS(base transceiver system)、ネットワーク、AI(Ariticial Intelligence)機器及び/又はシステム、ロボット、AR/VR/XR機器及び/又はサーバーなどを含む。また実施例において、送信装置10000は無線接続技術(例、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による送信装置10000は、ポイントクラウドビデオ獲得部(Point Cloud Video Acquisition)10001、ポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002及び/又は送信機(Transmitter(又は通信モジュール)10003を含む。
実施例によるポイントクラウドビデオ獲得部10001は、キャプチャー、合成又は生成などの処理過程によりポイントクラウドビデオを獲得する。ポイントクラウドビデオは、3次元空間に位置するポイントの集合であるポイントクラウドで表現されるポイントクラウドコンテンツであって、ポイントクラウドビデオデータなどと呼ばれる。実施例によるポイントクラウドビデオは、一つ又はそれ以上のフレームを含む。一つのフレームは停止映像/ピクチャを示す。よって、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャを含み、ポイントクラウド映像、フレーム及びピクチャのうちのいずれかに呼ばれる。
実施例によるポイントクラウドビデオエンコーダ10002は、確保したポイントクラウドビデオデータを符号化する。ポイントクラウドビデオエンコーダ10002はポイントクラウド圧縮(Point Cloud Compression)コーディングに基づいてポイントクラウドビデオデータを符号化する。実施例によるポイントクラウド圧縮コーディングは、G-PCC(Geometry-based Point Cloud Compression)コーディング及び/又はV-PCC(Video based Point Cloud Compression)コーディング又は次世代コーディングを含む。なお、実施例によるポイントクラウド圧縮コーディングは、上述した実施例に限られない。ポイントクラウドビデオエンコーダ10002は、符号化されたポイントクラウドビデオデータを含むビットストリームを出力することができる。ビットストリームは符号化されたポイントクラウドビデオデータだけではなく、ポイントクラウドビデオデータの符号化に関連するシグナリング情報を含む。
実施例による送信機10003は、符号化されたポイントクラウドビデオデータを含むビットストリームを送信する。実施例によるビットストリームはファイル又はセグメント(例えば、ストリーミングセグメント)などにカプセル化されて、放送網及び/又はブロードバンド網などの様々なネットワークにより送信される。図示していないが、送信装置10000はカプセル化動作を行うカプセル化部(又はカプセル化モジュール)を含む。また実施例において、カプセル化部は送信機10003に含まれる。実施例において、ファイル又はセグメントはネットワークにより受信装置10004に送信されるか、又はデジタル格納媒体(例えば、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど)に格納される。実施例による送信機10003は受信装置10004(又は受信機(Receiver)10005)と4G、5G、6Gなどのネットワークにより有無線通信が可能である。また送信機10003はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)によって必要なデータ処理動作を行うことができる。また送信装置10000はオン・デマンド(On Demand)方式によってカプセル化されたデータを送信することもできる。
実施例による受信装置10004は、受信機(Receiver)10005、ポイントクラウドビデオデコーダ(Point Cloud Decoder)10006及び/又はレンダラー(Renderer)10007を含む。実施例において、受信装置10004は無線接続技術(例、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による受信機10005は、ポイントクラウドビデオデータを含むビットストリーム又はビットストリームがカプセル化されたファイル/セグメントなどをネットワーク又は格納媒体から受信する。受信機10005はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)により必要なデータ処理動作を行う。実施例による受信機10005は、受信したファイル/セグメントをデカプセル化してビットストリームを出力する。また実施例において、受信機10005はデカプセル化の動作を行うためのデカプセル化部(又はデカプセル化モジュール)を含む。またデカプセル化部は受信機10005とは別個のエレメント(又はコンポーネント)で具現される。
ポイントクラウドビデオデコーダ10006は、ポイントクラウドビデオデータを含むビットストリームを復号する。ポイントクラウドビデオデコーダ10006はポイントクラウドビデオデータが符号化された方式により復号することができる(例えば、ポイントクラウドビデオエンコーダ10002の動作の逆の過程)。従って、ポイントクラウドビデオデコーダ10006はポイントクラウド圧縮の逆過程であるポイントクラウド復元コーディングを行って、ポイントクラウドビデオデータを復号することができる。ポイントクラウド復元コーディングはG-PCCコーディングを含む。
レンダラー10007は復号されたポイントクラウドビデオデータをレンダリングする。レンダラー10007はポイントクラウドビデオデータだけではなく、オディオデータもレンダリングしてポイントクラウドコンテンツを出力する。実施例において、レンダラー10007はポイントクラウドコンテンツをディスプレイするためのディスプレイを含む。実施例において、ディスプレイはレンダラー10007に含まれず、別のデバイス又はコンポーネントで具現される。
図面において、点線で示した矢印は、受信装置10004で得たフィードバック情報(feedback information)の送信経路を示す。フィードバック情報はポイントクラウドコンテンツを消費するユーザとの相互作用を反映するための情報であって、ユーザの情報を含む(例えば、ヘッドオリエンテーション情報)、ビューポート情報など)。特に、ポイントクラウドコンテンツがユーザとの相互作用が必要なサービス(例えば、自律走行サービスなど)のためのものである場合には、フィードバック情報はコンテンツ送信側(例えば、送信装置10000)及び/又はサービス供給者に伝達されることができる。実施例において、フィードバック情報は送信装置10000だけではなく受信装置10004でも使用されることができ、提供されないこともできる。
実施例によるヘッドオリエンテーション情報はユーザの頭の位置、方向、角度、動きなどに関する情報である。実施例による受信装置10004はヘッドオリエンテーション情報に基づいてビューポート情報を計算する。ビューポート情報はユーザが見ているポイントクラウドビデオの領域に関する情報である。視点(viewpoint)はユーザがポイントクラウドビデオを見ている点であり、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とする領域であり、領域のサイズ、形態などはFOV(Field Of View)により決定される。従って、受信装置10004はヘッドオリエンテーション情報以外に、装置が支援する垂直(vertical)或いは水平(horizontal)FOVなどに基づいてビューポート情報を抽出することができる。また受信装置10004はゲイズ分析(Gaze Analysis)などを行って、ユーザのポイントクラウド消費方式、ユーザが凝視するポイントクラウドビデオ領域、凝視時間などを確認する。実施例において、受信装置10004はゲイズ分析の結果を含むフィードバック情報を送信装置10000に送信することができる。実施例によるフィードバック情報はレンダリング及び/又はディスプレイ過程で得られる。実施例によるフィードバック情報は受信装置10004に含まれた一つ又はそれ以上のセンサにより確保される。また実施例において、フィードバック情報はレンダラー10007又は別の外部エレメント(又はデバイス、コンポーネントなど)により確保される。図1に示された点線はレンダラー10007で確保したフィードバック情報の伝達過程を示す。ポイントクラウドコンテンツ提供システムはフィードバック情報に基づいてポイントクラウドデータを処理(符号化/復号)する。従って、ポイントクラウドビデオデータデコーダ10006はフィードバック情報に基づいて復号の動作を行うことができる。また受信装置10004はフィードバック情報を送信装置10000に送信することができる。送信装置10000(又はポイントクラウドビデオデータエンコーダ10002)はフィードバック情報に基づいて符号化の動作を行うことができる。従って、ポイントクラウドコンテンツ提供システムは全てのポイントクラウドデータを処理(符号化/復号)せず、フィードバック情報に基づいて必要なデータ(例えば、ユーザのヘッド位置に対応するポイントクラウドデータ)を効率的に処理して、ユーザにポイントクラウドコンテンツを提供することができる。
実施例において、送信装置10000はエンコーダ、送信デバイス、送信機などに呼ばれ、受信装置10004はデコーダ、受信デバイス、受信機などに呼ばれる。
実施例による図1のポイントクラウドコンテンツ提供システムで処理される(獲得/符号化/送信/復号/レンダリングの一連の過程で処理される)ポイントクラウドデータは、ポイントクラウドコンテンツデータ又はポイントクラウドビデオデータとも呼ばれる。実施例において、ポイントクラウドコンテンツデータはポイントクラウドデータに関連するメタデータ或いはシグナリング情報を含む概念として使用することができる。
図1に示したポイントクラウドコンテンツ提供システムのエレメントは、ハードウェア、ソフトウェア、プロセッサ及び/又はこれらの組み合わせなどで具現される。
図2は実施例によるポイントクラウドコンテンツ提供の動作を示すブロック図である。
図2は図1で説明したポイントクラウドコンテンツ提供システムの動作を示すブロック図である。上述したように、ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディング(例えば、G-PCC)に基づいてポイントクラウドデータを処理する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)では、ポイントクラウドビデオを獲得する(20000)。ポイントクラウドビデオは3次元空間を表現する座標系に属するポイントクラウドで表現される。実施例によるポイントクラウドビデオはPly(Polygon File format or the Stanford Triangle format)ファイルを含む。ポイントクラウドビデオが一つ又はそれ以上のフレームを有する場合、獲得したポイントクラウドビデオは一つ又はそれ以上のPlyファイルを含む。Plyファイルはポイントのジオメトリ(Geometry)及び/又は特質(Attribute)のようなポイントクラウドデータを含む。ジオメトリはポイントの位置を含む。それぞれのポイントの位置は3次元座標系(例えば、XYZ軸からなる座標系など)を示すパラメータ(例えば、X軸、Y軸、Z軸それぞれの値)で表現される。特質はポイントの特質(例えば、それぞれのポイントのテクスチャ情報、色相(YCbCr又はRGB)、反射率(r)、透明度など)を含む。一つのポイントは一つ又はそれ以上の特質(又は属性)を有する。例えば、一つのポイントは、色相の一つの特質を有するか、或いは色相及び反射率の二つの特質を有することができる。実施例において、ジオメトリは位置、ジオメトリ情報、ジオメトリデータなどとも呼ばれ、特質は特質、特質情報、特質データなどとも呼ばれる。またポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)は、ポイントクラウドビデオの獲得過程に関連する情報(例えば、深さ情報、色相情報など)からポイントクラウドデータを確保することができる。
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又はポイントクラウドビデオエンコーダ10002)は、ポイントクラウドデータを符号化する(20001)。ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディングに基づいてポイントクラウドデータを符号化する。上述したように、ポイントクラウドデータはポイントのジオメトリ及び特質を含む。よって、ポイントクラウドコンテンツ提供システムは、ジオメトリを符号化するジオメトリ符号化を行ってジオメトリビットストリームを出力することができる。ポイントクラウドコンテンツ提供システムは、特質を符号化する特質符号化を行って特質ビットストリームを出力することができる。実施例において、ポイントクラウドコンテンツ提供システムはジオメトリ符号化に基づいて特質符号化を行うことができる。実施例によるジオメトリビットストリーム及び特質ビットストリームは多重化されて一つのビットストリームで出力される。実施例によるビットストリームはジオメトリ符号化及び特質符号化に関連するシグナリング情報をさらに含む。
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又は送信機10003)は、符号化されたポイントクラウドデータを送信する(20002)。図1で説明したように、符号化されたポイントクラウドデータはジオメトリビットストリーム、特質ビットストリームで表現される。また符号化されたポイントクラウドデータはポイントクラウドデータの符号化に関連するシグナリング情報(例えば、ジオメトリ符号化及び特質符号化に関連するシグナリング情報)と共に、ビットストリームの形態で送信される。またポイントクラウドコンテンツ提供システムは符号化されたポイントクラウドデータを送信するビットストリームをカプセル化してファイル又はセグメントの形態で送信する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、符号化されたポイントクラウドデータを含むビットストリームを受信する。またポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、ビットストリームを逆多重化することができる。
ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームで送信される符号化されたポイントクラウドデータ(例えば、ジオメトリビットストリーム、特質ビットストリーム)を復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームに含まれたポイントクラウドビデオデータの符号化に関連するシグナリング情報に基づいてポイントクラウドビデオデータを復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ジオメトリビットストリームを復号してポイントの位置(ジオメトリ)を復元する。ポイントクラウドコンテンツ提供システムは、復元したジオメトリに基づいて特質ビットストリームを復号してポイントの特質を復元する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、復元されたジオメトリによる位置及び復号された特質に基づいてポイントクラウドビデオを復元する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号されたポイントクラウドデータをレンダリングする(20004)。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号過程で復号されたジオメトリ及び特質を様々なレンダリング方式によってレンダリングする。ポイントクラウドコンテンツのポイントは、一定の厚さを有する定点、該当定点の位置を中央とする所定の最小サイズを有する立方体、又は定点の位置を中央とする円などにレンダリングされる。レンダリングされたポイントクラウドコンテンツの全部又は一部の領域はディスプレイ(例えば、VR/ARディスプレイ、一般ディスプレイなど)によりユーザに提供される。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004)は、フィードバック情報を確保することができる(20005)。ポイントクラウドコンテンツ提供システムは、フィードバック情報に基づいてポイントクラウドデータを符号化及び/又は復号する。実施例によるフィードバック情報及びポイントクラウドコンテンツ提供システムの動作は、図1で説明したフィードバック情報及び動作と同一であるので、具体的な説明は省略する。
図3は実施例によるポイントクラウドビデオキャプチャー過程の一例を示す図である。
図3は図1及び図2で説明したポイントクラウドコンテンツ提供システムのポイントクラウドビデオキャプチャー過程の一例を示す。
ポイントクラウドコンテンツは、様々な3次元空間(例えば、現実環境を示す3次元空間、仮想環境を示す3次元空間など)に位置するオブジェクト(object)及び/又は環境を示すポイントクラウドビデオ(イメージ及び/又は映像)を含む。従って、実施例によるポイントクラウドコンテンツ提供システムは、ポイントクラウドコンテンツを生成するために一つ又はそれ以上のカメラ(例えば、深さ情報を確保できる赤外線カメラ、深さ情報に対応する色相情報を抽出できるRGBカメラなど)、プロジェクト(例えば、深さ情報を確保するための赤外線パターンプロジェクターなど)、LiDARなどを使用してポイントクラウドビデオをキャプチャーする。実施例によるポイントクラウドコンテンツ提供システムは、深さ情報から3次元空間上のポイントで構成されたジオメトリの形態を抽出し、色相情報からそれぞれのポイントの特質を抽出してポイントクラウドデータを確保する。実施例によるイメージ及び/又は映像は内向き(inward-facing)方式及び外向き(outward-facing)方式のうちのいずれかに基づいてキャプチャーされる。
図3の左側には内向き方式が示されている。内向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトをキャプチャーする方式である。内向き方式は核心客体に対する360°イメージをユーザに提供するポイントクラウドコンテンツ(例えば、ユーザに客体(例:キャラクター、選手、品物、俳優などの核心となる客体)の360°イメージを提供するVR/ARコンテンツ)を生成するために使用される。
図3の右側には外向き方式が示されている。外向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトではない中心オブジェクトの環境をキャプチャーする方式である。外向き方式はユーザの視点からの周辺環境を提供するためのポイントクラウドコンテンツ(例えば、自律走行車両のユーザに提供される外部環境を示すコンテンツ)を生成するために使用される。
図示したように、ポイントクラウドコンテンツは一つ又はそれ以上のカメラのキャプチャー動作に基づいて生成される。この場合、それぞれのカメラの座標系が異なるので、ポイントクラウドコンテンツ提供システムはキャプチャー動作前にグローバル空間座標系(global coordinate system)を設定するために、一つ又はそれ以上のカメラの較正(calibration)を行う。またポイントクラウドコンテンツ提供システムは、上述したキャプチャー方式でキャプチャーされたイメージ及び/又は映像と任意のイメージ及び/又は映像を合成してポイントクラウドコンテンツを生成する。またポイントクラウドコンテンツ提供システムは、仮想空間を示すポイントクラウドコンテンツを生成する場合、図3で説明したキャプチャー動作を行わない。実施例によるポイントクラウドコンテンツ提供システムは、キャプチャーしたイメージ及び/又は映像に対して後処理を行うこともできる。即ち、ポイントクラウドコンテンツ提供システムは、望まない領域(例えば、背景)を除去したり、キャプチャーしたイメージ及び/又は映像が連結された空間を認識して空間(spatial hole)がある場合、それを埋める動作を行うことができる。
またポイントクラウドコンテンツ提供システムは、それぞれのカメラから確保したポイントクラウドビデオのポイントに対して座標系変換を行って、一つのポイントクラウドコンテンツを生成することができる。ポイントクラウドコンテンツ提供システムは、それぞれのカメラの位置座標を基準としてポイントの座標系変換を行う。これにより、ポイントクラウドコンテンツ提供システムは、一つの広い範囲を示すコンテンツを生成するか、或いはポイントの密度が高いポイントクラウドコンテンツを生成することができる。
図4は実施例によるポイントクラウドエンコーダ(Point Cloud Encoder)の一例を示す図である。
図4は図1のポイントクラウドビデオエンコーダ10002の一例を示す。ポイントクラウドエンコーダは、ネットワーク状況或いはアプリケーションなどによってポイントクラウドコンテンツの質(例えば、無損失-lossless、損失-lossy、損失に近い-near-lossless)を調節するために、ポイントクラウドデータ(例えば、ポイントの位置及び/又は特質)を再構成して符号化動作を行う。ポイントクラウドコンテンツの全体サイズが大きい場合(例えば、30fpsの場合、60Gbpsであるポイントクラウドコンテンツ)、ポイントクラウドコンテンツ提供システムは該当コンテンツをリアルタイムストリーミングすることができない。従って、ポイントクラウドコンテンツ提供システムは、ネットワーク環境などに合わせて提供するために、最大ターゲットビットレートに基づいてポイントクラウドコンテンツを再構成することができる。
図1及び図2に示したように、ポイントクラウドエンコーダはジオメトリ符号化及び特質符号化を行うことができる。ジオメトリ符号化は特質符号化よりも先に行われる。
実施例によるポイントクラウドエンコーダは、座標系変換部(Transformation Coordinates)40000、量子化部(Quantize and Remove Points(Voxelize))40001、八分木分析部(Analyze Octree)40002、表面近似分析部(Analyze Surface Approximation)40003、演算エンコーダ(Arithmetic Encode)40004、ジオメトリ再構成部(Reconstruct Geometry)40005、色変換部(Transform Colors)40006、特質変換部(Transfer Attributes)40007、RAHT変換部40008、LOD生成部(Generated LOD)40009、リフト変換部(Lifting)40010、係数量子化部(Quantize Coefficients)40011及び/又は演算エンコーダ(Arithmetic Encode)40012を含む。
座標系変換部40000、量子化部40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004及びジオメトリ再構成部40005は、ジオメトリ符号化を行うことができる。実施例によるジオメトリ符号化は、八分木ジオメトリコーディング、ダイレクトコーディング(direct coding)、trisoupジオメトリ符号化(trisoup geometry encoding)及びエントロピー符号化を含む。ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に或いは組み合わせて適用される。なお、ジオメトリ符号化は上記の例示に限られない。
図示したように、実施例による座標系変換部40000は、位置を受信して座標系(coordinate)に変換する。例えば、位置は3次元空間(例えば、XYZ座標系で表現される3次元空間など)の位置情報に変換される。実施例による3次元空間の位置情報はジオメトリ情報とも称される。
実施例による量子化部40001はジオメトリを量子化する。例えば、量子化部40001は全体ポイントの最小位置値(例えば、X軸、Y軸、Z軸に対して各軸上の最小値)に基づいてポイントを量子化する。量子化部40001は最小の位置値とそれぞれのポイントの位置値との差に所定の量子スケール(quatization scale)値を掛けた後、切り下げ又は切り上げをして最も近い整数値を探す量子化動作を行う。従って、一つ又はそれ以上のポイントは同一の量子化された位置(又は位置値)を有することができる。実施例による量子化部40001は量子化されたポイントを再構成するために、量子化された位置に基づいてボクセル化(voxelization)を行う。2次元イメージ/ビデオ情報を含む最小単位はピクセル(pixel)のように、実施例によるポイントクラウドコンテンツ(又は3次元ポイントクラウドビデオ)のポイントは一つ又はそれ以上のボクセル(voxel)に含まれる。ボクセルはボリューム(Volume)とピクセル(Pixel)を組み合わせた言葉であり、3次元空間を表現する軸(例えば、X軸、Y軸、Z軸)に基づいて3次元空間をユニット(unit=1.0)単位で分けたときに発生する3次元キュービック空間を意味する。量子化部40001は3次元空間のポイントのグループをボクセルでマッチングすることができる。実施例において、一つのボクセルは一つのポイントのみを含むことができる。実施例において、一つのボクセルは一つ又はそれ以上のポイントを含む。また一つのボクセルを一つのポイントで表現するために、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて、該当ボクセルの中央点(ceter)の位置を設定することができる。この場合、一つのボクセルに含まれた全ての位置の特質が統合されて(combined)、該当ボクセルに割り当てられる。
実施例による八分木分析部40002は、ボクセルを八分木構造で表すための八分木ジオメトリコーディング(又は八分木コーディング)を行う。八分木構造は八分割構造に基づいてボクセルにマッチングされたポイントを表現する。
実施例による表面近似分析部40003は、八分木を分析して近似化する。実施例による八分木分析及び近似化は、八分木及びボクセル化を効率的に提供するために、多数のポイントを含む領域をボクセル化するために分析を行う過程である。
実施例による演算エンコーダ40004は、八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。符号化の結果としてジオメトリビットストリームが生成される。
色変換部40006、特質変換部40007、RAHT変換部40008、LOD生成部40009、リフト変換部40010、係数量子化部40011及び/又は演算エンコーダ40012は、特質符号化を行う。上述したように、一つのポイントは一つ又はそれ以上の特質を有する。実施例による特質符号化は、一つのポイントが有する特質に対して等しく適用される。但し、一つの特質(例えば、色相)が一つ又はそれ以上の要素を含む場合は、(各)要素ごとに独立した特質符号化が適用される。実施例による特質符号化は、色変換コーディング、特質変換コーディング、RAHT(Region Adaptive Hierarchial Transform)コーディング、予測変換(Interpolaration-based hierarchical nearest-neighbour prediction-Prediction Transform)コーディング及びリフト変換(interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step(Lifting Transform))コーディングを含む。ポイントクラウドコンテンツによって、上述したRAHTコーディング、予測変換コーディング及びリフト変換コーディングが選択的に使用されるか、又は一つ又はそれ以上のコーディングの組み合わせが使用される。また実施例による特質符号化は上述した例示に限られない。
実施例による色変換部40006は、特質に含まれた色値(又はテクスチャ)を変換する色変換コーディングを行う。例えば、色変換部40006は色相情報のフォーマットを変換(例えば、RGBからYCbCrに変換)する。実施例による色変換部40006の動作は、特質に含まれた色値によって任意に(optional)適用される。
実施例によるジオメトリ再構成部40005は、八分木及び/又は近似化した八分木を再構成(復元)する。ジオメトリ再構成部40005はポイントの分布を分析した結果に基づいて八分木/ボクセルを再構成する。再構成された八分木/ボクセルは再構成されたジオメトリ(又は復元されたジオメトリ)とも呼ばれる。
実施例による特質変換部40007は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。上述したように、特質はジオメトリに従属するので、特質変換部40007は再構成されたジオメトリ情報に基づいて特質を変換することができる。例えば、特質変換部40007は、ボクセルに含まれたポイントの位置値に基づいてその位置のポイントが有する特質を変換することができる。上述したように、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて該当ボクセルの中央点の位置が設定される場合、特質変換部40007は一つ又はそれ以上のポイントの特質を変換する。trisoupジオメトリ符号化が行われた場合、特質変換部40007はtrisoupジオメトリ符号化に基づいて特質を変換することができる。
特質変換部40007は、各ボクセルの中央点の位置(又は位置値)から特定の位置/半径内に隣接しているポイントの特質又は特質値(例えば、各ポイントの色相、又は反射率など)の平均値を計算して特質変換を行う。特質変換部40007は平均値の計算時、中央点から各ポイントまでの距離による加重値を適用する。従って、各ボクセルは位置及び計算された特質(又は特質値)を有する。
特質変換部40007はK-Dツリー又はモールトンコード(moulton code)に基づいて各ボクセルの中央点の位置から特定の位置/半径内に存在する隣接ポイントを探索する。K-Dツリーは二分探索木(binary search tree)で迅速に最短隣接点探索(Nearest Neighbor Search-NNS)をできるように、ポイントを位置基盤に管理する資料構造を支援する。モールトンコードは全てのポイントの3次元位置を示す座標値(例えば、(x,y,z))をビット値で示し、ビットを混ぜて生成される。例えば、ポイントの位置を示す座標値が(5,9,1)であると、座標値のビット値は(0101、1001、0001)である。ビット値をz、y、xの順にビットインデックスに合わせて混ぜると、010001000111である。この値を10進数で示すと1095になる。即ち、座標値が(5,9,1)であるポイントのモールトンコード値は1095である。特質変換部40007はモールトンコード値を基準としてポイントを整列し、depth-first traversal過程により最短隣接点探索(NNS)を行う。特質変換動作後、特質コーディングのための他の変換過程でも最短隣接点探索(NNS)が必要であれば、K-Dツリー又はモールトンコードが活用される。
図示したように、変換された特質はRAHT変換部40008及び/又はLOD生成部40009に入力される。
実施例によるRAHT変換部40008は、再構成されたジオメトリ情報に基づいて特質情報を予測するRAHTコーディングを行う。例えば、RAHT変換部40008は、八分木の下位レベルにあるノードに連関する特質情報に基づいて、八分木の上位レベルにあるノードの特質情報を予測することができる。
実施例によるLOD生成部40009は予測変換コーディングを行うために、LOD(Level of Detail)を生成する。実施例によるLODはポイントクラウドコンテンツの詳細を示す程度であり、LOD値が小さいほどポイントクラウドコンテンツの詳細が下がり、LOD値が大きいほどポイントクラウドコンテンツの詳細が高いことが示されている。ポイントをLODによって分類できる。
実施例によるリフト変換部40010は、ポイントクラウドの特質を加重値に基づいて変換するリフト変換コーディングを行う。上述したように、リフト変換コーディングは選択的に適用される。
実施例による係数量子化部40011は、特質コーディングされた特質を係数に基づいて量子化する。
実施例による演算エンコーダ40012は、量子化された特質を演算コーディングに基づいて符号化する。
図4のポイントクラウドエンコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図4のポイントクラウドエンコーダのエレメントの動作及び/又は機能のうち、いずれか一つを行うことができる。また、一つ又はそれ以上のプロセッサは、図4のポイントクラウドエンコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行することができる。実施例による一つ又はそれ以上のメモリは高速ランダムアクセスメモリを含むか、又は非揮発性メモリ(例えば、一つ又はそれ以上のマグネチックディスク格納デバイス、フラッシュメモリデバイス、又は他の非揮発性固体のメモリデバイス(Solid-state memory devices)など)を含む。
図5は実施例によるボクセルの一例を示す図である。
図5はX軸、Y軸、Z軸の3つの軸で構成された座標系で表現される3次元空間上に位置するボクセルを示す。図4に示すように、ポイントクラウドエンコーダ(例えば、量子化部40001など)はボクセル化を行う。ボクセルは3次元空間を表現する軸(例えば、X軸、Y軸、Z軸)に基づいて3次元空間をユニット(unit=1.0)単位で分けたときに発生する3次元キュービック空間を意味する。図5は2つの極点(0,0,0)及び(2d、2d、2d)により定義される境界ボックス(cubical axis-aligned bounding box)を再帰的に分割(reculsive subdividing)する八分木構造により生成されたボクセルの一例を示す。一つのボクセルは少なくとも一つ以上のポイントを含む。ボクセルはボクセル群(voxel group)との位置関係から空間座標を推定することができる。上述したように、ボクセルは2次元イメージ/映像のピクセルと同様に、特質(色相又は反射率など)を有する。ボクセルに対する具体的な説明は図4で説明した通りであるので、省略する。
図6は実施例による八分木及び占有コード(occupancy code)の一例を示す図である。
図1ないし図4に示したように、ポイントクラウドコンテンツ提供システム(ポイントクラウドビデオエンコーダ10002)又はポイントクラウドエンコーダ(例えば、八分木分析部40002)は、ボクセルの領域及び/又は位置を効率的に管理するために、八分木構造基盤の八分木ジオメトリコーディング(又は八分木コーディング)を行う。
図6の上側は八分木構造を示している。実施例によるポイントクラウドコンテンツの3次元空間は座標系の軸(例えば、X軸、Y軸、Z軸)で表現される。八分木構造は2つの極点(0,0,0)及び(2d、2d、2d)により定義される境界ボックス(cubical axis-aligned bounding box)を再帰的に分割(reculsive subdividing)して生される。2dはポイントクラウドコンテンツ(又はポイントクラウドビデオ)の全体ポイントを取り囲む最小の境界ボックスを構成する値で設定される。dは八分木の深さを示す。d値は以下の式により決定される。以下の式において、(xint
n、yint
n、zint
n)は量子化されたポイントの位置(又は位置値)を示す。
d=
図6の上側中央に示したように、分割によって全体3次元空間は8つの空間に分かれる。分割されたそれぞれの空間は6つの面を有するキューブで表現される。図6の右上側に示したように、8つの空間はそれぞれ再び座標系の軸(例えば、X軸、Y軸、Z軸)により分かれる。よって、それぞれの空間は再び8つの小さい空間に分かれる。分割された小さい空間も6つの面を有するキューブで表現される。このような分割方式は八分木のリーフノード(leaf node)がボクセルになるまで適用される。
図6の下側は八分木の占有コードを示す。八分木の占有コードは一つの空間が分かれて発生する8つの分割空間がそれぞれ少なくとも一つのポイントを含むか否かを示すために生成される。従って、一つの占有コードは8つの子ノード(child node)で表現される。それぞれの子ノードは分割された空間の占有率(occupancy)を示し、子ノードは1ビットの値を有する。従って、占有コードは8ビットコードで表現される。即ち、子ノードに対応する空間に少なくとも一つのポイントが含まれていると、該当ノードは1値を有する。ノードに対応する空間にポイントが含まれていないと(empty)、該当ノードは0値を有する。図6に示した占有コードは00100001であるので、8つの子ノードのうち、3番目の子ノード及び8番目の子ノードに対応する空間はそれぞれ少なくとも一つのポイントを含むことを示している。図示したように、3番目の子ノード及び8番目の子ノードはそれぞれ8つの子ノードを有し、それぞれの子ノードは8ビットの占有コードで表現される。図面では、3番目の子ノードの占有コードが10000111であり、8番目の子ノードの占有コードが01001111であることを示している。実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40004)は占有コードをエントロピー符号化することができる。また圧縮効率を高めるために、ポイントクラウドエンコーダは占有コードをイントラ/インターコーディングすることができる。実施例による受信装置(例えば、受信装置10004又はポイントクラウドビデオデコーダ10006)は占有コードに基づいて八分木を再構成する。
実施例によるポイントクラウドエンコーダ(例えば、図4のポイントクラウドエンコーダ、又は八分木分析部40002)は、ポイントの位置を格納するためにボクセル化及び八分木コーディングを行う。しかし、3次元空間内のポイントがいつも均一に分布していることではないので、ポイントが多く存在しない特定の領域が存在し得る。従って、3次元空間の全体に対してボクセル化を行うことは非効率的である。例えば、特定の領域にポイントがほぼ存在しないと、該当領域までボクセル化を行う必要はない。
従って、実施例によるポイントクラウドエンコーダは、上述した特定の領域(又は八分木のリーフノードを除いたノード)についてはボクセル化を行わず、特定の領域に含まれたポイントの位置を直接コーディングするダイレクトコーディング(Direct coding)を行う。実施例によるダイレクトコーディングポイントの座標は、ダイレクトコーディングモード(Direct Coding Mode、DCM)と呼ばれる。また実施例によるポイントクラウドエンコーダは、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化(Trisoup geometry encoding)を行うことができる。trisoupジオメトリ符号化はオブジェクトの表現を三角形メッシュ(triangle mesh)のシリーズで表現するジオメトリ符号化である。従って、ポイントクラウドデコーダはメッシュ表面からポイントクラウドを生成することができる。実施例によるダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に行われる。また実施例によるダイレクトコーディング及びtrisoupジオメトリ符号化は八分木ジオメトリコーディング(又は八分木コーディング)と結合して行うことができる。
ダイレクトコーディング(Direct coding)を行うためには、ダイレクトコーディングを適用するための直接モード(direct mode)の使用オプションが活性化されている必要があり、ダイレクトコーディングを適用するノードはリーフノードではなく、特定のノード内に閾値(threshold)以下のポイントが存在する必要がある。またダイレクトコーディングの対象となる全体ポイントの個数は所定の閾値を超えてはいけない。上記条件を満たすと、実施例によるポイントクラウドエンコーダ(又は演算エンコーダ40004)はポイントの位置(又は位置値)をエントロピーコーディングすることができる。
実施例によるポイントクラウドエンコーダ(例えば、表面近似分析部40003)は、八分木の特定のレベルを定め(レベルは八分木の深さdよりは小さい場合)、そのレベルからは表面モデルを使用してノード領域内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化を行うことができる(trisoupモード)。実施例によるポイントクラウドエンコーダは、trisoupジオメトリ符号化を適用するレベルを指定できる。例えば、指定されたレベルが八分木の深さと同一であると、ポイントクラウドエンコーダはtrisoupモードで動作しない。即ち、実施例によるポイントクラウドエンコーダは指定されたレベルが八分木の深さ値よりも小さい場合にのみtrisoupモードで動作することができる。実施例による指定されたレベルのノードの3次元立方体領域をブロック(block)と呼ぶ。一つのブロックは一つ又はそれ以上のボクセルを含む。ブロック又はボクセルはブリック(brick)に対応することもできる。それぞれのブロック内においてジオメトリは表面(surface)と表現される。実施例による表面は最大1回、ブロックの各エッジ(edge)と交差することができる。
一つのブロックは12個のエッジを有するので、一つのブロック内に少なくとも12個の交差点が存在する。それぞれの交差点はバーテックス(vertex、頂点又は頂上)と呼ばれる。エッジに沿って存在するバーテックスは該当エッジを共有する全てのブロックのうち、そのエッジに隣接する少なくとも一つの占有ボクセル(occupied voxel)がある場合に検知される。実施例による占有ボクセルはポイントを含むボクセルを意味する。エッジに沿って検出されたバーテックスの位置は、該当エッジを共有する全てのブロックのうち、該当エッジに隣接する全てのボクセルのエッジによる平均位置である(the average position along the edge of all voxels)。
バーテックスが検出されると、実施例によるポイントクラウドエンコーダは、エッジの開始点(x、y、z)、エッジの方向ベクトル(Δx、Δy、Δz)、バーテックス位置値(エッジ内の相対的位置値)をエントロピーコーディングすることができる。trisoupジオメトリ符号化が適用された場合、実施例によるポイントクラウドエンコーダ(例えば、ジオメトリ再構成部40005)は三角形再構成(triangle reconstruction)、アップ-サンプリング(up-sampling)、ボクセル化過程を行って復元されたジオメトリ(再構成されたジオメトリ)を生成することができる。
加えられた値の最小値を求め、最小値がある軸に沿って投影(Projection)過程を行う。例えば、x要素(element)が最小である場合、各バーテックスをブロックの中心を基準としてx軸に投影し、(y,z)平面に投影させる。(y,z)平面に投影させて得た値が(ai,bi)であれば、atan2(bi、ai)によりθ値を求め、θ値を基準としてバーテックスを整列する。以下の表はバーテックスの個数によって三角形を生成するためのバーテックスの組み合わせを示している。バーテックスは1からnまで順に整列される。以下の表は4つのバーテックスに対して、バーテックスの組み合わせによって2つの三角形が構成されることを示している。1番目の三角形は整列されたバーテックスのうち、1、2、3番目のバーテックスで構成され、2番目の三角形は整列されたバーテックスのうち、3,4,1番目のバーテックスで構成される。
表.Triangles formed from vertices ordered 1
n Triangles
3 (1,2,3)
4 (1,2,3)、(3,4,1)
5 (1,2,3)、(3,4,5)、(5,1,3)
6 (1,2,3)、(3,4,5)、(5,6,1)、(1,3,5)
7 (1,2,3)、(3,4,5)、(5,6,7)、(7,1,3)、(3,5,7)
8 (1,2,3)、(3,4,5)、(5,6,7)、(7,8,1)、(1,3,5)、(5,7,1)
9 (1,2,3)、(3,4,5)、(5,6,7)、(7,8,9)、(9,1,3)、(3,5,7)、 (7,9,3)
10 (1,2,3)、(3,4,5)、(5,6,7)、(7,8,9)、(9,10,1)、(1,3,5)、 (5,7,9)、(9,1,5)
11 (1,2,3)、(3,4,5)、(5,6,7)、(7,8,9)、(9,10,11)、 (11,1,3)、 (3,5,7)、(7,9,11)、(11,3,7)
12 (1,2,3)、(3,4,5)、(5,6,7)、(7,8,9)、(9,10,11)、 (11,12,1)、(1,3,5)、(5,7,9)、(9,11,1)、(1,5,9)
アップサンプリング過程は三角形のエッジに沿って中間に点を追加してボクセル化するために行われる。アップサンプリング係数(upsampling factor)とブロックの幅を基準として追加点を生成する。追加点はリファインドバーテックス(refined vertice)と呼ばれる。実施例によるポイントクラウドエンコーダはリファインドバーテックスをボクセル化することができる。またポイントクラウドエンコーダはボクセル化された位置(又は位置値)に基づいて特質符号化を行うことができる。
図7は実施例による隣接ノードパターンの一例を示す図である。
ポイントクラウドビデオの圧縮効率を増加させるために、実施例によるポイントクラウドエンコーダはコンテキスト適応演算(context adaptive arithmetic)コーディングに基づいてエントロピーコーディングを行う。
図1ないし図6で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダ(例えば、ポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ又は演算エンコーダ40004)は、占有コードをすぐエントロピーコーディングすることができる。またポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダは、現在ノードの占有コードと隣接ノードの占有率に基づいてエントロピー符号化(イントラ符号化)を行うか、又は以前フレームの占有コードに基づいてエントロピー符号化(インター符号化)を行うことができる。実施例によるフレームは、同時間に生成されたポイントクラウドビデオの集合を意味する。実施例によるイントラ符号化/インター符号化の圧縮効率は、参照する隣接ノードの個数によって異なる。ビットが大きくなると複雑になるが、一側に傾くようにして圧縮効率を高めることができる。例えば、3-bit contextを有すると、2の3乗である8つの方法でコーディングする。分けてコーディングする部分は具現の複雑度に影響を及ぼす。従って、圧縮効率と複雑度の適正水準を合わせる必要がある。
図7は隣接ノードの占有率に基づいて占有パターンを求める過程を示す。実施例によるポイントクラウドエンコーダは、八分木の各ノードの隣接ノードの占有率(occupancy)を判断して隣接ノードパターン(neighbor pattern)値を得る。隣接ノードパターンは該当ノードの占有パターンを推論するために使用される。図7の左側はノードに対応するキューブ(真ん中に位置するキューブ)及び該当キューブと少なくとも一面を共有する6つのキューブ(隣接ノード)を示している。図示したノードは同じ深さのノードである。図示した数字は6つのノードとそれぞれ連関する加重値(1、2、4、8、16、32、など)を示す。各加重値は隣接ノードの位置によって順に付与される。
図7の右側は隣接ノードパターン値を示す。隣接ノードパターン値は占有された隣接ノード(ポイントを有する隣接ノード)の加重値が掛けられた値の合計である。従って、隣接ノードパターン値は0から63までの値を有する。隣接ノードパターン値が0であることは、該当ノードの隣接ノードのうち、ポイントを有するノード(占有ノード)がないことを意味する。隣接ノードパターン値が63であることは、隣接ノードが全て占有ノードであることを意味する。図示したように、加重値1、2、4、8が付与された隣接ノードは占有ノードであるので、隣接ノードパターン値は1、2、4、8を併せた値である15である。ポイントクラウドエンコーダは隣接ノードパターン値によってコーディングを行うことができる(例えば、隣接ノードパターン値が63である場合、64つのコーディングを行う)。実施例においてポイントクラウドエンコーダは隣接ノードパターン値を変更して(例えば、64を10又は6に変更するテーブルに基づく)、コーディングの複雑度を減らすことができる。
図8は実施例によるLODごとのポイント構成の一例を示す図である。
図1ないし図7で説明したように、特質符号化が行われる前、符号化されたジオメトリは再構成(復元)される。ダイレクトコーディングが適用された場合、ジオメトリ再構成の動作はダイレクトコーディングされたポイントの配置を変更することを含む(例えば、ダイレクトコーディングされたポイントをポイントクラウドデータの前方に配置)。trisoupジオメトリ符号化が適用された場合、ジオメトリ再構成の過程は三角形再構成、アップサンプリング、ボクセル化の過程を特質はジオメトリに従属するので、特質符号化は再構成されたジオメトリに基づいて行われる。
ポイントクラウドエンコーダ(例えば、LOD生成部40009)はポイントをLODごとに分類する(reorganization)。図面はLODに対応するポイントクラウドコンテンツを示す。図において左側はオリジナルポイントクラウドコンテンツを示す。図において左側から2番目は最低LODのポイントの分布を示し、最右側は最高LODのポイントの分布を示す。即ち、最低LODのポイントは粗い(sparse)分布であり、最高LODのポイントは細かい分布である。即ち、図面の下側に示された矢印方向に沿ってLODが増加するほどポイント間の間隔(又は距離)は短くなる。
図9は実施例によるLODごとのポイント構成の一例を示す図である。
図1ないし図8で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダ(例えば、ポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ又はLOD生成部40009)はLODを生成する。LODはポイントを設定されたLOD距離値(又はユークリッド距離(Euclidean Distance)のセット)によって改良レベル(refinement levels)のセットで再整列して生成される。LOD生成過程はポイントクラウドエンコーダだけではなく、ポイントクラウドデコーダでも行われる。
図9の上側は3次元空間に分布されたポイントクラウドコンテンツのポイントの一例(P0~P9)を示す。図9のオリジナルオーダー(Original order)はLOD生成前のポイントP0~P9の順を示す。図9のLoD基盤のオーダー(LOD based order)はLOD生成によるポイントの順を示す。ポイントはLODごとに再整列される。また高いLODは低いLODに属するポイントを含む。図9に示すように、LOD0はP0、P5、P4及びP2を含む。LOD1はLOD0のポイントとP1、P6及びP3を含む。LOD2はLOD0のポイント、LOD1のポイント及びP9、P8及びP7を含む。
図4で説明したように、実施例によるポイントクラウドエンコーダは予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングを選択的に又は組み合わせて行うことができる。
実施例によるポイントクラウドエンコーダは、ポイントに対する予測機(predictor)を生成して各ポイントの予測特質(又は予測特質値)を設定するための予測変換コーディングを行う。即ち、N個のポイントに対してN個の予測機が生成される。実施例による予測機は各ポイントのLOD値とLODごとに設定された距離内に存在する隣接ポイントに対するインデックス情報及び隣接ポイントまでの距離値に基づいて加重値(=1/距離)を計算することができる。
実施例による予測特質(又は特質値)は、各ポイントの予測機に設定された隣接ポイントの特質(又は特質値、例えば、色相、反射率など)に各隣接ポイントまでの距離に基づいて計算された加重(又は加重値)を掛けた値の平均値で設定される。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は、各ポイントの特質(特質値)から予測特質(特質値)を引いた残余値(residuals、残余特質、残余特質値、特質予測残余値などとも呼ばれる)を量子化(quatization)及び逆量子化(inverse quantization)することができる。量子化過程は以下の表の通りである。
Attribute prediction residuals quantization pseudo code
int PCCQuantization(int value、int quantStep) {
if( value >=0) {
return floor(value / quantStep + 1.0 / 3.0);
} else {
return -floor(-value / quantStep + 1.0 / 3.0);
}
}
Attribute prediction residuals inverse quantization pseudo Code
int PCCInverseQuantization(int value、int quantStep) {
if( quantStep ==0) {
return value;
} else {
return value * quantStep;
}
}
実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがあれば、上述したように、量子化及び逆量子化された残余値をエントロピーコーディングする。実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがないと、上述した過程を行わず、該当ポイントの特質をエントロピーコーディングする。
実施例によるポイントクラウドエンコーダ(例えば、リフト変換部40010)は、各ポイントの予測機を生成し、予測機に計算されたLODを設定及び隣接ポイントを登録し、隣接ポイントまでの距離による加重値を設定してリフト変換コーディングを行う。実施例によるリフト変換コーディングは、上述した測変換コーディングと類似するが、特質値に加重値を累積適用するという点で差がある。実施例による特質値に加重値を累積適用する過程は以下の通りである。
1)各ポイントの加重値を貯蔵する配列QW(QuantizationWieght)を生成する。QWの全ての要素の初期値は1.0である。予測機に登録された隣接ノードの予測機インデックスのQW値に現在ポイントの予測機の加重値を掛けた値を加える。
2)リフト予測過程:予測された特質値を計算するために、ポイントの特質値に加重値を掛けた値を既存の特質値から引く。
3)アップデートウェイト(updateweight)及びアップデートという臨時配列を生成し、臨時配列を0に初期化する。
4)全ての予測機に対して計算された加重値に予測機インデックスに該当するQWに貯蔵された加重値をさらに掛けて算出された加重値をアップデートウェイト配列に隣接ノードのインデックスとして累積して合算する。アップデート配列には隣接ノードのインデックスの特質値に算出された加重値を掛けた値を累積して合算する。
5)リフトアップデート過程:全ての予測機に対して、アップデート配列の特質値を予測機インデックスのアップデートウェイト配列の加重値で割り、割った値に再び既存の特質値を加える。
6)全ての予測機に対して、リフトアップデート過程でアップデートされた特質値にリフト予測過程でアップデートされた(QWに貯蔵された)加重値をさらに掛けて予測特質値を算出する。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は予測特質値を量子化する。またポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は量子化された特質値をエントロピーコーディングする。
実施例によるポイントクラウドエンコーダ(例えば、RAHT変換部40008)は、八分木の下位レベルのノードに連関する特質を使用して上位レベルのノードの特質を予測するRAHT変換コーディングを行う。RAHT変換コーディングは八分木バックワードスキャンによる特質イントラコーディングの一例である。実施例によるポイントクラウドエンコーダは、ボクセルから全体領域にスキャンし、各ステップもぽてボクセルをもっと大きいブロックに合わせながらルートノード(root node)までの併合過程を繰り返して行う。実施例による併合過程は、占有ノードのみについて行われる。空ノード(empty node)については併合過程が行われず、空ノードの直上位ノードについて併合過程が行われる。
以下の式はRAHT変換行列を示す。
はレベルlでのボクセル(voxel)の平均特質値を示す。
は
と
から計算される。
と
の加重値は
と
である。
はローパス(low-pass)値であって、次の上位レベルでの併合過程で使用される。
はハイパス係数(high-pass coefficients)であって、各ステップでのハイパス係数は量子化されてエントロピーコーディングされる(例えば、計算エンコーダ400012の符号化)。加重値は
により計算される。ルートノードは最後の
と
により以下のように生成される。
gDC値もハイパス係数のように量子化されてエントロピーコーディングされる。
図10は実施例によるポイントクラウドデコーダ(Point Cloud Decoder)の一例を示す図である。
図10に示したポイントクラウドデコーダは、図1に示したポイントクラウドビデオデコーダ10006の一例であり、図1で説明したイントクラウドビデオデコーダ10006の動作などと同一又は類似する動作を行う。図示したように、ポイントクラウドデコーダは一つ又はそれ以上のビットストリーム(bitstream)に含まれたジオメトリビットストリーム(geometry bitstream)及び特質ビットストリーム(Attribute bitstream)を受信する。ポイントクラウドデコーダはジオメトリデコーダ(geometry decoder)及び特質デコーダ(Attribute decoder)を含む。ジオメトリデコーダはジオメトリビットストリームに対してジオメトリ復号を行って復号されたジオメトリ(decoded geometry)を出力する。特質デコーダは復号されたジオメトリ及び特質ビットストリームに基づいて特質復号を行って復号された特質(decoded Attributes)を出力する。復号されたジオメトリ及び復号された特質はポイントクラウドコンテンツを復元(decoded point cloud)するために使用される。
図11は実施例によるポイントクラウドデコーダ(Point Cloud Decoder)の一例を示す図である。
図11に示したポイントクラウドデコーダは図10で説明したポイントクラウドデコーダの一例であり、図1ないし図9で説明したポイントクラウドエンコーダの符号化動作の逆過程である復号動作を行う。
図1及び図10で説明したように、ポイントクラウドデコーダはジオメトリ復号及び特質復号を行う。ジオメトリ復号は特質復号よりも先に行われる。
実施例によるポイントクラウドデコーダは、演算デコーダ(arithmetic decode)11000、八分木合成部(synthesize octree)11001、表面近似合成部(synthesize surface approximation)11002、ジオメトリ再構成部(reconstruct geometry)11003、座標系逆変換部(inverse transform coordinates)11004、演算デコーダ(arithmetic decode)11005、逆量子化部(inverse quantize)11006、RAHT変換部11007、LOD生成部(generate LOD)11008、逆リフト部(Inverse lifting)11009及び/又は色逆変換部(inverse transform colors)11010を含む。
演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び座標系逆変換部11004はジオメトリ復号を行う。実施例によるジオメトリ復号はダイレクトコーディング(direct coding)及びtrisoupジオメトリ復号(trisoup geometry decoding)を含む。ダイレクトコーディング及びtrisoupジオメトリ復号は選択的に適用される。またジオメトリ復号は上記の例示に限られず、図1ないし図9で説明したジオメトリ符号化の逆過程で行われる。
実施例による演算デコーダ11000は、受信したジオメトリビットストリームを演算コーディングに基づいて復号する。演算デコーダ11000の動作は演算エンコーダ40004の逆過程に対応する。
実施例による八分木合成部11001は、復号されたジオメトリビットストリームから(又は復号結果、確保されたジオメトリに関する情報)から占有コードを獲得して八分木を生成する。占有コードに関する具体的な説明は図1ないし図9に説明した通りである。
実施例による表面近似合成部11002は、trisoupジオメトリ符号化が適用された場合、復号されたジオメトリ及び/又は生成された八分木に基づいて表面を合成する。
実施例によるジオメトリ再構成部11003は、表面及び/又は復号されたジオメトリに基づいてジオメトリを再生成する。図1ないし図9で説明したように、ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に適用される。従って、ジオメトリ再構成部11003はダイレクトコーディングが適用されたポイントの位置情報を直接持ってきて追加する。また、trisoupジオメトリ符号化が適用される場合、ジオメトリ再構成部11003はジオメトリ再構成部40005の再構成動作、例えば、三角形再構成、アップサンプリング、ボクセル化動作を行ってジオメトリを復元する。具体的な内容は図6で説明した通りであるので省略する。復元されたジオメトリは特質を含まないポイントクラウドピクチャ又はフレームを含む。
実施例による座標系逆変換部11004は復元されたジオメトリに基づいて座標系を変換してポイントの位置を得る。
演算デコーダ11005、逆量子化部11006、RAHT変換部11007、LOD生成部11008、逆リフト部11009及び/又は色逆変換部11010は、図10で説明した特質復号を行う。実施例による特質復号は、RAHT(Region Adaptive Hierarchial Transform)復号、予測変換(Interpolaration-based hierarchical nearest-neighbour prediction-Prediction Transform)復号、及びリフト変換(interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step (Lifting Transform))復号を含む。上記3つの復号は選択的に使用されるか、又は一つ又はそれ以上の復号の組み合わせが使用される。また実施例による特質復号は上述した例示に限られない。
実施例による演算デコーダ11005は、特質ビットストリームを演算コーディングに復号する。
実施例による逆量子化部11006は、復号された特質ビットストリーム又は復号結果確保した特質に関する情報を逆量子化(inverse quantization)して、逆量子化された特質(又は特質値)を出力する。逆量子化はポイントクラウドエンコーダの特質符号化に基づいて選択的に適用される。
実施例においてRAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009は、再構成されたジオメトリ及び逆量子化された特質を処理する。上述したように、RAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009は、ポイントクラウドエンコーダの符号化によってそれに対応する復号動作を選択的に行う。
実施例による色逆変換部11010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色逆変換部11010の動作はポイントクラウドエンコーダの色変換部40006の動作に基づいて選択的に行われる。
図11のポイントクラウドデコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図11のポイントクラウドデコーダのエレメント動作及び/又は機能のうちのいずれかを行う。また、一つ又はそれ以上のプロセッサは、図11のポイントクラウドデコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行する。
図12は実施例による送信装置の一例を示す。
図12に示した送信装置は、図1の送信装置10000(又は図4のポイントクラウドエンコーダ)の一例である。図12に示した送信装置は、図1ないし図9で説明したポイントクラウドエンコーダの動作及び符号化方法と同一又は類似する動作及び方法のうちのいずれかを行う。実施例による送信装置は、データ入力部12000、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005、演算コーダー12006、メタデータ処理部12007、色相変換処理部12008、特質変換処理部(又は属性変換処理部)12009、予測/リフト/RAHT変換処理部12010、演算コーダー12011及び/又は送信処理部12012を含む。
実施例によるデータ入力部12000はポイントクラウドデータを受信又は獲得する。データ入力部12000はポイントクラウドビデオ獲得部10001の動作及び/又は獲得方法(又は図2に示した獲得過程20000)と同一又は類似する動作及び/又は獲得方法を行う。
データ入力部12000、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005及び演算コーダー12006はジオメトリ符号化を行う。実施例によるジオメトリ符号化は、図1ないし図9で説明したジオメトリ符号化と同一又は類似するので、具体的な説明は省略する。
実施例による量子化処理部12001は、ジオメトリ(例えば、ポイントの位置値、又はポジション値)を量子化する。量子化処理部12001の動作及び/又は量子化は、図4に示した量子化部40001の動作及び/又は量子化と同一又は類似する。具体的な説明は図1ないし図9に説明した通りである。
実施例によるボクセル化処理部12002は、量子化されたポイントの位置値をボクセル化する。ボクセル化処理部120002は図4に示した量子化部40001の動作及び/又はボクセル化過程と同一又は類似する動作及び/又は過程を行う。具体的な説明は図1ないし図9に説明した通りである。
実施例による八分木占有コード生成部12003は、ボクセル化されたポイントの位置を八分木構造に基づいて八分木コーディングを行う。八分木占有コード生成部12003は占有コードを生成する。八分木占有コード生成部12003は図4及び図6で説明したポイントクラウドエンコーダ(又は八分木分析部40002)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1ないし図9に説明した通りである。
実施例による表面モデル処理部12004は、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセル基盤に再構成するtrisoupジオメトリ符号化を行う。表面モデル処理部12004は図4に示したポイントクラウドエンコーダ(例えば、表面近似分析部40003)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1ないし図9に説明した通りである。
実施例によるイントラ/インターコーディング処理部12005は、ポイントクラウドデータをイントラ/インターコーディングする。イントラ/インターコーディング処理部12005は、図7で説明したイントラ/インターコーディングと同一又は類似するコーディングを行う。具体的な説明は図7に説明した通りである。実施例においてイントラ/インターコーディング処理部12005は演算コーダー12006に含まれる。
実施例による演算コーダー12006は、ポイントクラウドデータの八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。演算コーダー12006は演算エンコーダ40004の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
実施例によるメタデータ処理部12007は、ポイントクラウドデータに関するメタデータ、例えば、設定値などを処理してジオメトリ符号化及び/又は特質符号化などの必要な処理過程に提供する。また実施例によるメタデータ処理部12007は、ジオメトリ符号化及び/又は特質符号化に関連するシグナリング情報を生成及び/又は処理する。実施例によるシグナリング情報はジオメトリ符号化及び/又は特質符号化とは別途に符号化処理される。また実施例によるシグナリング情報はインターリービングされることもある。
色相変換処理部12008、特質変換処理部12009、予測/リフト/RAHT変換処理部12010及び演算コーダー12011は特質符号化を行う。実施例による特質符号化は、図1ないし図9で説明した特質符号化と同一又は類似するので具体的な説明は省略する。
実施例による色相変換処理部12008は、特質に含まれた色相値を変換する色相変換コーディングを行う。色相変換処理部12008は再構成されたジオメトリに基づいて色相変換コーディングを行う。再構成されたジオメトリに関する説明は、図1ないし図9に説明した通りである。また図4で説明した色変換部40006の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は省略する。
実施例による特質変換処理部12009は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。特質変換処理部12009は図4に説明した特質変換部40007の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は省略する。実施例による予測/リフト/RAHT変換処理部12010は変換された特質をRAHTコーディング、予測変換コーディング及びリフト変換コーディングのうちのいずれか一つ又は組み合わせてコーディングする。予測/リフト/RAHT変換処理部12010は図4に説明したRAHT変換部40008、LOD生成部40009及びリフト変換部40010の動作と同一又は類似する動作のうちのいずれかを行う。また、予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングに関する説明は図1ないし図9に説明した通りであるので、具体的な説明は省略する。
実施例による演算コーダー12011は、コーディングされた特質を演算コーディングに基づいて符号化する。演算コーダー12011は演算エンコーダ400012の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
実施例による送信処理部12012は、符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報を含む各ビットストリームを送信するか、又は符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報を一つのビットストリームで構成して送信する。実施例による符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報が一つのビットストリームで構成された場合、ビットストリームは一つ又はそれ以上のサブビットストリームを含む。実施例によるビットストリームはシーケンスレベルのシグナリングのためのSPS(Sequence Parameter Set)、ジオメトリ情報コーディングのシグナリングのためのGPS(Geometry Parameter Set)、特質情報コーディングのシグナリングのためのAPS(Attribute Parameter Set)、タイルレベルのシグナリングのためのTPS(Tile Parameter Set)を含むシグナリング情報及びスライスデータを含む。スライスデータは一つ又はそれ以上のスライスに関する情報を含む。実施例による一つのスライスは一つのジオメトリビットストリーム(Geom00)及び一つ又はそれ以上の特質ビットストリーム(Attr00、Attr10)を含む。
実施例によるTPSは一つ又はそれ以上のタイルに対してそれぞれのタイルに関する情報(例えば、bounding boxの座標値情報及び高さ/サイズ情報など)を含む。
ジオメトリビットストリームはヘッダとペイロードを含む。実施例によるジオメトリビットストリームのヘッダはGPSに含まれたパラメータセットの識別情報(geom_parameter_set_id)、タイル識別子(geom_tile_id)、スライス識別子(geom_slice_id)及びペイロードに含まれたデータに関する情報などを含む。上述したように、実施例によるメタデータ処理部12007はシグナリング情報を生成及び/又は処理して送信処理部12012に送信することができる。実施例において、ジオメトリ符号化を行うエレメント及び特質符号化を行うエレメントは、点線処理したように、相互データ/情報を共有することができる。実施例による送信処理部12012は送信機10003の動作及び/又は送信方法と同一又は類似する動作及び/又は送信方法を行う。具体的な説明は図1及び図2に説明した通りであるので、省略する。
図13は実施例による受信装置の一例を示す。
図13に示した受信装置は、図1の受信装置10004(又は図10及び図11のポイントクラウドデコーダ)の一例である。図13に示した受信装置は、図1ないし図11で説明したポイントクラウドデコーダの動作及び復号方法と同一又は類似する動作及び方法のうちのいずれかを行う。
実施例による受信装置は、受信部13000、受信処理部13001、演算(arithmetic)デコーダ13002、占有コード(Occupancy code)基盤の八分木再構成処理部13003、表面モデル処理部(三角形再構成、アップサンプリング、ボクセル化)13004、逆(inverse)量子化処理部13005、メタデータ分析13006、演算(arithmetic)デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009、色相逆変換処理部13010及び/又はレンダラー13011を含む。実施例による復号の各構成要素は実施例による符号化の構成要素の逆過程を行う。
実施例による受信部13000は、ポイントクラウドデータを受信する。受信部13000は図1の受信機10005の動作及び/又は受信方法と同一又は類似する動作及び/又は受信方法を行う。具体的な説明は省略する。
実施例による受信処理部13001は受信したデータからジオメトリビットストリーム及び/又は特質ビットストリームを得る。受信処理部13001は受信部13000に含まれる。
演算デコーダ13002、占有コード基盤の八分木再構成処理部13003、表面モデル処理部13004及び逆量子化処理部13005はジオメトリ復号を行う。実施例によるジオメトリ復号は図1ないし図10で説明したジオメトリ復号と同一又は類似するので、具体的な説明は省略する。
実施例による演算デコーダ13002はジオメトリビットストリームを演算コーディングに基づいて復号する。演算デコーダ13002は演算デコーダ11000の動作及び/又はコーディングと同一又は類似する動作及び/又はコーディングを行う。
実施例による占有コード基盤の八分木再構成処理部13003は、復号されたジオメトリビットストリームから(又は復号結果、確保されたジオメトリに関する情報)から占有コードを獲得して八分木を再構成する。占有コード基盤の八分木再構成処理部13003は、八分木合成部11001の動作及び/又は八分木生成方法と同一又は類似する動作及び/又は方法を行う。実施例による表面モデル処理部13004はtrisoupジオメトリ符号化が適用された場合、表面モデル方式に基づいてtrisoupジオメトリ復号及びそれに関連するジオメトリ再構成(例えば、三角形再構成、アップサンプリング、ボクセル化)を行う。表面モデル処理部13004は表面近似合成部11002及び/又はジオメトリ再構成部11003の動作と同一又は類似する動作を行う。
実施例による逆量子化処理部13005は復号されたジオメトリを逆量子化する。
実施例によるメタデータ分析13006は受信したポイントクラウドデータに含まれたメタデータ、例えば、設定値などを分析する。メタデータ分析13006はメタデータをジオメトリ復号及び/又は特質復号に伝達する。メタデータに関する具体的な説明は図12で説明した通りであるので省略する。
演算デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009及び色相逆変換処理部13010は特質復号を行う。特質復号は図1なしい図10で説明した特質復号と同一又は類似するので、具体的な説明は省略する。
実施例による演算デコーダ13007は、特質ビットストリームを演算コーディングに復号する。演算デコーダ13007は再構成されたジオメトリに基づいて特質ビットストリームの復号を行う。演算デコーダ13007は演算デコーダ11005の動作及び/又はコーディングと同一又は類似する動作及び/又はコーディングを行う。
実施例による逆量子化処理部13008は、復号された特質ビットストリームを逆量子化する。逆量子化処理部13008は逆量子化部11006の動作及び/又は逆量子化方法と同一又は類似する動作及び/又は方法を行う。
実施例による予測/リフト/RAHT逆変換処理部13009は、再構成されたジオメトリ及び逆量子化された特質を処理する。予測/リフト/RAHT逆変換処理部13009は、RAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009の動作及び/又は復号と同一又は類似する動作及び/又は復号のうちのいずれかを行う。実施例による色相逆変換処理部13010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色相逆変換処理部13010は色逆変換部11010の動作及び/又は逆変換コーディングと同一又は類似する動作及び/又は逆変換コーディングを行う。実施例によるレンダラー13011はポイントクラウドデータをレンダリングする。
図14は実施例によるポイントクラウドデータ送受信方法/装置に連動可能な構造の一例を示す。
図14の構造はサーバー1460、ロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440、家電1450及び/又はHMD1470のうちのいずれかがクラウドネットワーク1410に連結された構成を示している。ロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440又は家電1450などは装置とも呼ばれる。またXR装置1430は実施例によるポイントクラウドデータ(PCC)装置に対応するか又はPCC装置に連動する。
クラウドネットワーク1400はクラウドコンピューティングインフラの一部を構成するか、又はクラウドコンピューティングインフラ内に存在するネットワークを意味する。ここで、クラウドネットワーク1400は3Gネットワーク、4G又はLTEネットワーク又は5Gネットワークなどを用いて構成される。
サーバー1460はロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440、家電1450及び/又はHMD1470のいずれかにクラウドネットワーク1400により連結され、連結された装置1410~1470のプロセシングの少なくとも一部を助けることができる。
HMD(Head-Mount Display)1470は実施例によるXRデバイス及び/又はPCCデバイスが具現されるタイプのうちのいずれかを示す。実施例によるHMDタイプのデバイスは、コミュニケーションズユニット、コントロールユニット、メモリユニット、I/Oユニット、センサユニット及びパーワ供給ユニットなどを含む。
以下、上記技術が適用される装置1410~1450の様々な実施例について説明する。ここで、図14に示した装置1410~1450は上述した実施例によるポイントクラウドデータ送受信装置に連動/結合することができる。
<PCC+XR>
XR/PCC装置1430はPCC及び/又はXR(AR+VR)技術が適用されて、HMD(Head-Mount Display)、車両に備えられたHUD(Head-Up Display)、TV、携帯電話、スマートフォン、コンピューター、ウェアラブルデバイス、家電機器、デジタル看板、車両、固定型ロボットや移動型ロボットなどに具現されることもできる。
XR/PCC装置1430は、様々なセンサにより又は外部装置から獲得した3次元ポイントクラウドデータ又はイメージデータを分析して3次元ポイントに対する位置データ及び特質データを生成することにより周辺空間又は現実オブジェクトに関する情報を得て、出力するXR客体をレンダリングして出力することができる。例えば、XR/PCC装置1430は認識された物体に関する追加情報を含むXR客体を該当認識された物体に対応して出力することができる。
<PCC+XR+携帯電話>
XR/PCC装置1430はPCC技術が適用されて携帯電話(mobile phone)1440などで具現される。
携帯電話1440はPCC技術に基づいてポイントクラウドコンテンツを復号し、ディスプレイすることができる。
<PCC+自立走行+XR>
自律走行車両1420はPCC技術及びXR技術が適用されて、移動型ロボット、車両、無人飛行体などで具現される。
XR/PCC技術が適用された自律走行車両1420は、XR映像を提供する手段を備えた自律走行車両やXR映像内での制御/相互作用の対象となる自律走行車両などを意味する。特に、XR映像内での制御/相互作用の対象となる自律走行車両1420はXR装置1430とは区分されて互いに連動されることができる。
XR/PCC映像を提供する手段を備えた自律走行車両1420は、カメラを含むセンサからセンサ情報を得、得たセンサ情報に基づいて生成されたXR/PCC映像を出力する。例えば、自律走行車両1420はHUDを備えてXR/PCC映像を出力することにより、搭乗者に現実オブジェクト又は画面内のオブジェクトに対応するXR/PCC客体を提供することができる。
この時、XR/PCC客体がHUDに出力される場合には、XR/PCC客体の少なくとも一部が搭乗者の視線が向く実際の客体にオーバーラップされるように出力される。反面、XR/PCC客体が自律走行車両内に備えられるディスプレイに出力される場合には、XR/PCC客体の少なくとも一部が画面内の客体にオーバーラップされるように出力される。例えば、自律走行車両1220は車路、他の車両、信号灯、交通表示板、二輪車、歩行者、建物などのような客体に対応するXR/PCC客体を出力することができる。
実施例によるVR(Virtual Reality)技術、AR(Augmented Reality)技術、MR(Mixed Reality)技術及び/又はPCC(Point Cloud Compression)技術は、様々なデバイスに適用可能である。
即ち、VR技術は現実の客体や背景などをCG映像のみで提供するディスプレイ技術である。反面、AR技術は実際物事の映像上に仮想のCG映像を共に見せる技術である。また、MR技術は現実世界に仮想客体を混ぜて見せるという点では上記AR技術と類似する。しかし、AR技術では現実の客体とCG映像からなる仮想の客体の区別が明らかであり、現実客体を補完する形態で仮想の客体を使用する反面、MR技術では仮想の客体と現実の客体が同様の性格と見なされるという点でAR技術とは区別される。より具体的には、例えば、上記MR技術が適用されたことがホログラムサービスである。
但し、最近にはVR、AR、MR技術を明確に区別するよりは、XR(extended Reality)技術とも呼ぶ。よって、本発明の実施例はVR、AR、MR、XR技術のいずれにも適用可能である。かかる技術はPCC、V-PCC、G-PCC技術基盤の符号化/復号が適用される。
実施例によるPCC方法/装置は自律走行サービスを提供する車両に適用できる。
自律走行サービスを提供する車両はPCCデバイスと有無線通信可能に連結される。
実施例によるポイントクラウドデータ(PCC)送受信装置は、車両と有無線通信可能に連結された場合、自律走行サービスと共に提供できるAR/VR/PCCサービス関連コンテンツデータを受信/処理して車両に送信することができる。またポイントクラウドデータ送受信装置車両に搭載された場合は、ポイントクラウド送受信装置はユーザインターフェース装置で入力されたユーザ入力信号によってAR/VR/PCCサービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信する。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含む。
図15は実施例によるポイントクラウドエンコーダを示す図である。
実施例によるポイントクラウドエンコーダ15000は、ポイントクラウドデータ(PCCデータ、15000a)を受信して、これらを符号化する。実施例によるポイントクラウドエンコーダは幾何情報ビットストリーム15000b及び属性情報ビットストリーム15000cを出力する。実施例によるポイントクラウドエンコーダ15000は空間分割部15001、幾何情報符号化部15002及び/又は属性情報符号化部15003を含む。
図15のポイントクラウドエンコーダは、図1の送信装置1000、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などに対応又は結合する。
空間分割部15001は、ポイントクラウドエンコーダはポイントクラウドデータ(PCCデータ、15000a)を受信し、ポイントクラウドデータを一つ又はそれ以上の3次元空間に分割する。空間分割部15001はポイントクラウドデータを受信し、ポイントクラウドデータを3次元ブロックに空間分割する。ポイントクラウドデータはポイント(又は複数のポイント)の幾何情報及び/又は属性情報を含む。空間分割部15001は境界ボックス(bounding box)及び/又は副境界ボックスなどにに基づいてポイントクラウドデータ(PCCデータ)を空間分割する。実施例による方法/装置は分割された単位(ボックス)に基づいて符号化/復号を行う。
実施例による送信装置(例えば、空間分割部)は、3次元空間上のポイントクラウドデータを圧縮するために、並列処理が可能な単位に分割することができる。実施例による空間分割部15001は、受信装置がユーザに拡張性(Scalability)、及び/又は関心領域(ROI)の機能を支援するために、ポイントクラウドデータをスライス単位に分割することができる。
実施例による送信装置は、低遅延、低複雑度、時間的拡張性、空間的拡張性、関心領域基盤の空間的拡張性、品質拡張性、並列的符号化、及び受信装置の並列的復号化を達成するために、実施例によるポイントクラウドデータをスライス(ブリックとも呼ばれる)、タイル単位に分割することができる。よって、実施例による送信装置は、スライス単位で拡張性の調節、量子値の調節などを支援する動作を行う必要がある。従って、実施例によるポイントクラウドデータ送信装置は、スライス間の重畳領域が含まれるように重畳スライスを構成することができる。実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上のスライス(又は重畳スライス)に分割する方法については、以下に詳しく説明する。
スライスとは、実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを符号化及び/又は復号するための単位(又は最小単位)を意味し、ポイントクラウドデータ送信装置及び/又は受信装置は、スライス単位でポイントクラウドデータを独立的に(independently)符号化及び/又は復号化することができる。実施例によるスライスは、他にはブリック、ブロック、マクロブロックとも呼ばれる。
空間分割部15001は図1のクラウド獲得(Point Cloud Acquisition)10001、図2の獲得20000の動作、図3ないし図5による動作、図12のデータ入力部12000動作の一部/全部を行うことができる。
幾何情報符号化部15002は、実施例によるポイントクラウドデータ(PCCデータ)のジオメトリ情報を受信してそれを符号化する。ジオメトリ情報はポイントクラウドデータに含まれたポイントの位置情報を意味する。幾何情報符号化部15002はジオメトリ情報を符号化して幾何情報ビットストリームを出力する。幾何情報符号化部15002はポイントの位置情報を再構成して復元された幾何情報15002aを出力することができる。幾何情報符号化部15002は復元された幾何情報を属性情報符号化部15002に伝達する。
幾何情報符号化部15002は、図1のポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002、図2の符号化20001、図4の座標系変換部40000、量子化40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004、ジオメトリ再構成部40005、図12の量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005及び/又は演算コーダー12006の動作の一部/全部を行う。
属性情報符号化部15003は実施例によるポイントクラウドデータの属性情報を受信し、幾何情報符号化部15003から受信した復元された幾何情報を用いて属性情報を符号化する。属性情報符号化部15003は属性情報を符号化して属性情報ビットストリーム15000cを出力する。属性情報符号化部15003は例えば、実施例による予測変換(prediction transform)、リフト変換(lifting transform)及び/又はRAHT(Region Adaptive Hierarchical Transform)変換を行う。属性情報符号化部15003は、例えば、予測リフト(prediction lifting)変換を行う。予測リフト変換は実施例による予測変換及び/又はリフト変換の各々の詳しい動作の一部又は全部を組み合わせたことを意味する。
実施例によるポイントクラウドエンコーダは、実施例による予測変換(prediction transform)、リフト変換(lifting transform)及び/又はRAHT(Region Adaptive Hierarchical Transform)変換の一部、全部及び/又はそれぞれの組み合わせにより符号化を行う。
属性情報符号化部15003は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化20001、図4の色変換部40006、属性変換部40007、RATH変換部40008、LOD生成部40009、リフト変換部40010、係数量子化部40011及び/又は演算符号化部40012の動作、図12の色相変換処理部12008、属性変換処理部12009、予測/リフト/RAHT変換処理部12010、演算コーダー12011の動作の全部/一部を行う。
ここで、復元された幾何情報15002cは、図4で説明したジオメトリ再構成部(Reconstruct Geometry)40005により再構成された八分木及び/又は近似化された八分木を意味する。復元された幾何情報は図6で説明した占有コードを意味するか又は八分木構造を意味する。復元された幾何情報は図12で説明した八分木占有コード生成部12003により生成された八分木占有コードを意味することもできる。
属性情報符号化部15003は、実施例によるポイントクラウドデータの属性情報を符号化する。ここで、実施例による符号化部15003は実施例による復元された幾何情報(又は復元されたジオメトリ情報)を用いて属性情報を符号化する。属性情報符号化部15003は受信されたデータを符号化して特質情報(又は属性情報)を含むビットストリームを生成することができる。
実施例による属性情報符号化部15003は、図4の色相変換部40006、属性送信部40007、RAHT変換部40008、LOD生成部40009、リフト部40010、量子化部40011及び/又は演算符号化部400012を含む。
実施例によるポイントクラウドデータは、データの特性によってカテゴリー1とカテゴリー3に分類される。カテゴリー1のデータは静的データであって、1枚のフレーム(frame)で構成されたデータである。カテゴリー3のデータは動的データであって、N枚のフレームで構成されたデータである。ポイントクラウドデータのファイルフォーマットであるplyファイルは、データの獲得方法によって複数のポイントで構成される。
実施例によるポイントは、該当ポイントの位置情報(ジオメトリ情報)及び色相情報、反射度情報、時間情報、法線ベクトル(Normal vector)情報などを含む属性情報(特質情報)を含む。実施例によるポイントは表現しようとする条件によって様々な情報を含む。ポイントからなるカテゴリー1とカテゴリー3のデータは大容量の点を含むフレームを含む。しかし、実施例によるポイントクラウドデータ送信装置は、かかるポイントを含むフレームを受信して符号化する場合、遅延時間と不要なリソースが多く使われるという問題がある。
従って、実施例によるポイントクラウドデータ送信装置では、ポイントクラウドデータの送信動作、符号化動作、受信装置の復号化動作、及び受信装置のレンダリング処理動作がリアルタイムで行われると共に、低遅延で処理するために、ポイントクラウドデータを複数の領域に分割する。実施例によるポイントクラウドデータ送信装置では、ポイントクラウドデータのフレームをタイル、スライス(slice)及び/又はブリック(brick)単位に分割する。
従って、実施例によるポイントクラウドデータ送信装置では、3次元ポイントクラウド(Point Cloud)データの並列処理能力の向上及び拡張性(scalability)を向上させるための独立的なデータ分割方法によってポイントクラウドデータを分割することができる。独立的なデータ分割を行うとき、空間上近い点同士に再分割が行われる方法を支援することで空間適応的分割方法を含むことができる。
実施例によるポイントクラウドデータ送信装置はポイントクラウドデータを分割して、それらをそれぞれ独立的に符号化することにより、ポイントクラウドデータが占有する3次元空間上の任意接続(random access)と並列符号化を可能にするという効果を提供する。
図16は実施例によるポイントクラウドエンコーダを示す。
実施例によるポイントクラウドエンコーダは、データ特性調査部16000、ブリックタイリング部16001、分割されたデータ入力部16002、座標変換部16003、量子化/ボクセル化処理部16004、八分木占有コード生成部16005、表面モデル処理部16006、第1演算コーダー16007、ジオメトリ再構成部16008、色相変換処理部16009、属性変換処理部16010、予測/リフト/RAHT変換処理部16011、係数量子化処理部16012、第2演算コーダー16013及び/又はビットストリーム結合部16014を含む。
図16に示したポイントクラウドエンコーダは、図1の送信装置1000、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などに対応又は結合する。
図16のデータ特性調査部16000、ブリックタイリング部16001、分割されたデータ入力部16002は、図1のポイントクラウドビデオ獲得10001、ポイントクラウドビデオエンコーダ10002、図2の獲得18000、符号化18002、図12のデータ入力部12000、図15の空間分割部15001に含まれた構成である。
座標変換部16003は図4の変換座標部38000であるか、又は図12の量子化処理部12001である。量子化/ボクセル化処理部16004は図4の量子化及びポイント除去部(ボクセル化部)38001、図12のボクセル化処理部12002であり、図5ないし図7の動作を行う。八分木占有コード生成部16005は図4の八分木分析部38002、八分木占有コード生成部12003であり、図6及び図7の動作を行う。表面モデル処理部16006は図4の表面近似分析部38003、図12の表面モデル処理部12004である。第1演算コーダー16007、ジオメトリ再構成部16008は図4の演算符号化部38004、図12の演算コーダー12006である。色相変換処理部16009は図4の色相変換部38006、図12の色相変換処理部12008である。属性変換処理部16010は図4の特質送信部38007、図12の属性変換処理部12009である。予測/リフト/RAHT変換処理部16011は図4のRAHT38008、LOD生成部38009、リフト部40010の全部又は一部であり、図12の予測/リフト/RAHT変換処理部12010である。係数量子化処理部16012、第2演算コーダー16013は図4の係数量子化部40011、演算符号化部40012、図12の演算コーダー12011である。
図16の座標変換部16003、量子化/ボクセル化処理部16004、八分木占有コード生成部16005、表面モデル処理部16006、第1演算コーダー16007、ジオメトリ再構成部16008は、図15の幾何情報符号化部15002に含まれる。図16のジオメトリ再構成部16008、色相変換処理部16009、属性変換処理部16010、予測/リフト/RAHT変換処理部16011、係数量子化処理部16012、第2演算コーダー16013は、図15の属性情報符号化部15003に含まれる。
実施例によるポイントクラウドデータエンコーダは、図15の実施例によるポイントクラウドデータエンコーダ15000の一例を示す。実施例によるエンコーダ、符号化器は符号化器と呼ばれ、デコーダ、復号化器は復号化器と呼ばれる。
データ特性調査部16000は、実施例によるポイントクラウドデータを受信し、受信したポイントクラウドデータの特性を調査する。例えば、データ特性調査部16000は、ポイントクラウドデータのポイントが特定の領域には密に分布して特定の領域には疎らに(sparse)分布するか否かを調査する。データ特性調査部16000は、ポイントクラウドデータがLiDARデータや自立走行のためのデータのように複数のフレームを含むポイントクラウドシーケンスで構成されているか否かを調査する。データ特性調査部16000は、一つのフレーム内のポイントクラウドデータが特定の領域に集まっているか否か(例えば、左側、右側、上側、下側、前側又は後側に連続する属性情報値が集まっている場合)を調査する。データ特性調査部16000は、ポイントクラウドデータが表現するオブジェクトが互いに疎らに存在するか否かを調査する。データ特性調査部16000は、ポイントクラウドデータが占有する3次元空間が一方向に延びているかどうか(例えば、特定の軸の長さが他の軸の長さより長すぎる場合)を調査する。
タイリング部16001は実施例によるポイントクラウドデータを受信し、受信したポイントクラウドデータで一つ又はそれ以上のタイル、一つ又はそれ以上のスライス、又は一つ又はそれ以上のブリックを生成する。即ち、ブリックタイリング部16001ではポイントクラウドデータをタイル、スライス又はブリック単位に分割する。ブリックタイリング部16001はタイル、スライス又はブリック単位に分割されたポイントクラウドデータを出力する。
タイルとは、実施例によるポイントクラウドデータが占有する3次元空間の一部領域を意味する。実施例によるタイルは一つ又はそれ以上のスライスを含む。実施例によるタイルは一つ又はそれ以上のスライスに分割されることにより、ポイントクラウドデータエンコーダはポイントクラウドデータを並列的に符号化することができる。実施例によるタイルは一つ又はそれ以上のスライスごとにポイントクラウドデータエンコーダがデータの特性によって異なる量子化及び/又は変換を行う。
スライス(slice)とは、実施例によるポイントクラウドデータ送信装置及び受信装置が符号化及び復号化を行うデータの単位を意味する。スライスはポイントクラウドデータが占有する3次元空間上のデータの集合を意味するか、又はポイントクラウドデータのうち、一部のデータの集合を意味する。スライスは実施例によるタイル内に含まれたポイントの領域又はポイントの集合を意味する。実施例によるタイルは一つのタイル内に含まれたポイントの数に基づいて一つ又はそれ以上のスライスに分割される。例えば、一つのタイルはポイントの数ごとに分割されたポイントの集合を意味する。実施例によるタイルはポイントの数に基づいてスライスを分割され、分割過程において一部のデータが分離(split)又は併合(merge)される。
ブロック(block)とは、スライス内に含まれたポイントクラウドデータをポイントごとに分割する単位を意味する。例えば、ブロックとは、一つのスライス内のクラウドデータが占有する3次元空間の一部領域を意味し、実施例によるポイントクラウドデータ送信装置及び受信装置が符号化及び復号化を行う細部単位を意味する。
ブリック(brick)とは、実施例によるブロック又はスライスを意味する。即ち、ブリックはスライス又はポイントクラウドデータを分割するポイントの集合又は領域を意味することもできる。実施例においては、ブリックを領域とも呼ぶ。
実施例によるブリックタイリング(brick tiling)は、ポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上のブリック(スライス)に分割することを意味する。ブリックタイリングはスライス分配(slice partitioning)とも呼ばれる。
実施例によるブリックタイリング部16001は、点密度基盤のブリックタイリング(スライス分配)、円形セクターブリックタイリング(スライス分配)、レイヤブリックタイリング(スライス分配)、球形/楕円形領域タイリング(スライス分配)、属性基盤のブリックタイリング(スライス分配)、軸基盤の適応型分割方法のように、データの特性によって分ける方法の色々な変形方法に基づいてスライス分配を行うことができる。分割を行う方法は、以下の図19ないし図31で後述する。
実施例によれば、点密度基盤のブリックタイリングは点密度基盤のスライス分配と、円形セクターブリックタイリングは円形セクタースライス分配と、レイヤブリックタイリングはレイヤスライス分配と、球形/楕円形領域タイリングは球形/楕円形スライス分配と、属性基盤のブリックタイリングは属性基盤のスライス分配とも呼ばれる。
例えば、データ特性調査部16000によりポイントクラウドデータのポイントが特定の領域に密に分布し、特定の領域に疎らに(sparse)分布していることが確認された場合、それに基づいてブリックタイリング部16001は点密度基盤のブリックタイリング(スライス分配)方法で分割を行う。
例えば、ブリックタイリング部16001は、データ特性調査部16000によりポイントクラウドデータがLiDARデータや自立走行のためのデータのように複数のフレームを含むポイントクラウドシーケンスで構成されていることが確認された場合は、円形のセクターブリックタイリング(スライス分配)方法で分割を行う。ブリックタイリング部16001は、データ特性調査部16000により一つのフレーム内のポイントクラウドデータが特定の領域に集まっていることが確認された場合は、レイヤブリックタイリング(スライス分配)方法で分割を行う。ブリックタイリング部16001は、データ特性調査部16000によりポイントクラウドデータが表現するオブジェクトが互いに疎らに存在することが確認された場合は、球形/楕円形領域タイリングに基づいて分割を行う。データ特性調査部16000は、ポイントクラウドデータが占有する3次元空間が一方向に延びている場合は、軸基盤の適応型分割方法で分割を行う。
実施例によれば、ポイントクラウドデータは複数のスライスに分割することができる。ポイントクラウドデータを複数のスライスに分割する方法は色々ある。実施例によるスライス内に含まれたポイントクラウドデータは独立的に符号化が行われる。実施例によるポイントクラウドデータ送信装置及び受信装置は、スライス単位で独立的に符号化及び復号化を行うことにより、符号化及び復号化の過程で反復されるエラーを防止することができる。
スライスは、ポイントクラウドデータ内のポイントクラウドフレームを符号化のために分割する単位を意味する。ポイントクラウドデータはスライス分配構成(slice partitioning scheme)によって複数のスライスに分割される。
ポイントクラウドデータを複数のスライスに分割する方法の実施例によれば、色連続性(color continuity)を保障するために、色情報の分散(variance)情報に基づいて分割する方法がある。例えば、特定のポイントクラウド又はポイントクラウドデータの領域内の色情報の分散情報が第1閾値より大きければ、該当データ又は領域を非平滑(non-smooth)ブロックと見なし、全体ポイントクラウドデータにおいて非平滑ブロックの比重が第2閾値より大きければ、非平滑ブロックに該当するブロック(又は非平滑ブロック内に含まれた一部のポイント)を抽出して第1スライスとして分離し、残りの分離されていないクラウドデータは第2スライスとして分離する。実施例によれば、第1スライスと第2スライスを分離するために色情報の分散情報を計算し、色情報の分散情報はkd-treeを用いることができる。
実施例によるk-d tree(kdツリー)は、二分木(binary tree)の一種であって、k次元の空間の分割のための階層を示す。Kd-treeスキームはポイントクラウドデータのスライスへの分割をジオメトリ-適応的に行う方法を意味する。
実施例によれば、スライスはブリック、ブロック、マクロブロック(macroblock)及び/又はタイルなどの色々な用語に呼ばれる。また、実施例によるブリックタイリング(brick tiling)はスライス分配(slice partitioning)とも呼ばれる。
分割されたデータ入力部16002はブリックタイリング部16001により出力された分割されたポイントクラウドデータを受信する。分割されたデータ入力部16002は、それぞれのブリック(又はスライス又はタイル)内のポイントの位置情報(ジオメトリ情報)及びポイントの属性情報(特質情報)を出力する。分割されたデータ入力部16002はブリック単位に(又はスライス又はタイル単位に)ポイントの位置情報を座標変換部16003に伝達し、ポイントの属性情報を色相変換処理部16009に伝達する。
実施例によるデータ特性調査部16000、ブリックタイリング部16001及び/又は分割されたデータ入力部16002は、図15の空間分割部15001内に含まれる。
座標系変換部16003は実施例によるポイントの位置情報(ジオメトリ情報)を受信し、それらの座標情報を変換する。座標系変換部16003は変換された座標情報を量子化/ボクセル化処理部16004に伝達する。座標系変換部16003は図4の座標系変換部40000の動作を行う。
量子化/ボクセル化処理部16004は座標変換部16003によりポイントの位置情報に対して量子化及び/又はボクセル化を行う。量子化/ボクセル化処理部16004は量子化及び/又はボクセル化が行われたポイントの位置情報(ジオメトリ情報)を八分木占有コード生成部16005に送信する。量子化/ボクセル化処理部16004は図4の量子化及びボクセル化処理部40001、図12のボクセル化処理部12002の動作を行う。
八分木占有コード生成部16005は量子化及び/又はボクセル化されたジオメトリ情報を受信し、それらに基づいて八分木占有コード(Octree occupancy code)を生成する。八分木占有コードは実施例によるポイントの位置情報を表現するデータ構造を含む。八分木占有コード生成部16005は八分木占有コードを第1演算コーダ16007、表面モデル処理部16006及び/又はジオメトリ再構成部16008に伝達する。八分木占有コード生成部16005は図4の八分木分析部40002、図12の八分木占有コード生成部12003の動作を行う。
表面モデル処理部16006は実施例による八分木占有コードを受信して表面モデルを処理する。表面モデル処理部16006は表面モデル処理されたジオメトリ情報を出力して、第1演算コーダ16007に送信する。表面モデル処理部16006は、図4の表面近似分析部40003、図12の表面モデル処理部12004の動作を行う。
第1演算コーダ16007は実施例による八分木占有コード及び/又は表面モデル処理が行われた八分木占有コードを受信して、それらを符号化する。第1演算コーダ16007はジオメトリビットストリームを出力する。第1演算コーダ16007はジオメトリビットストリームをビットストリーム結合部に送信する。第1演算コーダ16007は図4の演算符号化40004、図12の演算コーダ12006の動作を行う。
第1演算コーダ16007は分割されたデータ入力部16002に該当ブリック(又はスライス又はタイル)に関するジオメトリ情報の符号化実行有無に関連する情報を送信する。
ジオメトリ再構成部16008は実施例による八分木占有コード及び/又は表面モデル処理が行われた八分木占有コードを受信し、それらに基づいてジオメトリ情報を再構成する。ジオメトリ再構成部16008は実施例によるモールトンコードを生成し、それらに基づいてジオメトリ情報を再構成する。ジオメトリ再構成部16008は図4のジオメトリ再構成部40005の動作を行う。
色相変換処理部16009は実施例によるポイントの属性情報を受信し、属性情報の色相情報の変換を行う。色相変換処理部は変換処理された属性情報を出力し、これらを属性変換処理部16010に送信する。色相変換処理部16009は図4の色相変換部40006、図12の色相変換処理部12008の動作を行う。
属性変換処理部16010は実施例によるポイントの位置情報、実施例による色相変換処理部16009により色相変換が処理された属性情報及び/又はジオメトリ再構成部16008により再構成されたジオメトリ情報をマッピングして属性変換処理を行う。属性変換処理部16010は、図4の属性伝達部40007、12の属性変換処理部12009の動作を行う。
予測/リフト/RAHT変換処理部16011は属性変換処理部16010により変換処理された属性情報を予測(Prediction)、リフト(lifting)及び/又はRAHT方法によって変換を行う。予測/リフト/RAHT変換処理部16011は予測、リフト及び/又はRAHT方法によって変換された属性情報を出力し、それらを係数量子化処理部16012に送信する。予測/リフト/RAHT変換処理部16011は図4のRAHT40008、LOD生成部40009及び/又はリフト40010、図12の予測/リフト/RAHT変換処理部12010の動作を行う。
係数量子化処理部16012は予測/リフト/RAHT変換処理部16011により変換された属性情報を受信して、それらを量子化する。係数量子化処理部16012は量子化された属性情報を第2演算コーダ16013に送信する。係数量子化処理部16012は図4の係数量子化部40011の動作を行う。
第2演算コーダ16013は係数量子化処理部16012により量子化された属性情報を受信し、それらを符号化する。第2演算コーダ16013は符号化された属性情報を含む属性ビットストリームを出力する。第2演算コーダ16013は属性ビットストリームを出力し、それらをビットストリーム結合部16014に送信する。
第2演算コーダ16013は分割されたデータ入力部16002に該当ブリック(又はスライス又はタイル)に関する特質情報の符号化実行有無に関連する情報を送信する。第2演算コーダ16013は図4の演算符号化部40012、図12の演算コーダ12011の動作を行う。
ビットストリーム結合部16014は実施例によるジオメトリビットストリーム及び/又は属性情報ビットストリームを結合する。ビットストリーム結合部16014は実施例によるブリック(又はスライス又はタイル)単位にジオメトリビットストリーム及び属性ビットストリームを結合する。
実施例によるポイントクラウドデータ送信装置は、データ特性調査部16000、ブリックタイリング部16001、分割されたデータ入力部16002、及びビットストリーム結合部16014を含む。実施例によるポイントクラウドデータ送信装置は、例えば、brick_tiling_filter情報に対応して、ブリックタイリング部でポイントクラウドデータを一つ又はそれ以上のブリックに分割する。実施例によるポイントクラウドデータはブリックタイリング部16001によりN個の領域に分割されて、分割されたデータ入力部16002に入力される。分割されたN個のブリックのそれぞれに対して、それぞれのブリック内のポイントクラウドデータがポイントの位置情報及びポイントの属性情報に分かれて符号化される。N個のブリックのそれぞれに対して符号化過程が行われると、実施例によるビットストリーム結合部16014において符号化されたポイントの位置情報及びポイントの属性情報が一つのビットストリームに結合される。
実施例によるポイントクラウドデータ送信装置は、ブリックタイリング部16001を用いてポイントクラウドデータを一つ又はそれ以上のブリック単位に分割し、分割されたブリック単位で符号化を行うことにより、領域ごとに符号化を行うことができ、この場合、実施例によるポイントクラウドデータ受信装置に必要な領域のデータとより重要ではない領域を区分して効率的に符号化を行うことができる。かかる構成によりポイントクラウドデータ送信装置は符号化効率を高めることができる。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータを一つ又はそれ以上のタイル、スライス、ブロック及び/又はブリックに分割し、分割されたそれぞれの単位に対して互いに異なる量子化(quantization)を設定することができる。かかる方法によりポイントクラウドデータを分割することにより、ポイントクラウドデータエンコーダは重要度が異なるポイントを差等して符号化することができる。また、ポイントクラウドデータ受信装置は差等して符号化されたデータを効率的に復号化してユーザに重要な情報を迅速に提供することができる。
ポイントクラウドデータ送信装置は、ポイントクラウドデータを一つ又はそれ以上のブリック単位に分割し、分割されたブリック単位で符号化を行うことにより、データの特性に最適化した符号化方法を提供する。例えば、特定の領域に密に分布するポイントを含むポイントクラウドデータである場合、ポイントが密に分布する領域を細かく分割して符号化することにより、符号化の時に発生し得るエラーを抑えることができる。例えば、LiDARデータや自立走行のような複数のフレームで構成されたデータのシーケンスでは、後述する円形セクターブリックタイリング方法でポイントクラウドデータを分割して符号化することにより、フレームごとの符号化エラーを軽減することができる。
実施例によるポイントクラウドデータ送信装置及び受信装置は、スライス単位で独立的に符号化及び復号化を行うことにより、符号化及び復号化の過程で繰り返されるエラーを防止することができる。
実施例によるポイントクラウドデータの送信装置では、ポイントクラウドデータの送信、符号化/復号化、レンダリングなどの様々な処理状況で発生し得る要求事項ごとに適応的に行われる分割方法に基づく分割動作を行うことにより、リアルタイム処理、低遅延及び並列処理が可能なポイントクラウドコンテンツを提供する。
図17は実施例によるポイントクラウドデータ送信装置のビットストリーム結合部を示す。
図17に示したビットストリーム結合部17000は、図1の送信装置10000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などに対応又は結合する。
図17のビットストリーム結合部17000は図16のビットストリーム結合部16014であるか、或いは図12の送信処理部12012、図1の送信機10003、図2の送信部18002に含まれる。即ち、図17のジオメトリビットストリーム17000a、特質ビットストリーム17000bは、図16のビットストリーム結合部16014が受信するジオメトリビットストリーム及び属性ビットストリームに対応するか、或いは図15の幾何情報ビットストリーム15000b及び属性情報ビットストリーム15000c、図4の演算エンコーダ38004で出力されるジオメトリビットストリーム及び演算エンコーダ40012で出力される特質ビットストリーム、図12の演算コーダ12006で出力されるビットストリーム及び図12の演算コーダー12011で出力ビットストリームである。
ビットストリーム結合部17000を示す。ビットストリーム結合部17000はジオメトリビットストリーム17000a及び/又は特質ビットストリーム17000bを受信する。ビットストリーム結合部17000は受信したジオメトリビットストリーム17000a及び特質ビットストリーム17000bを結合してビットストリーム17000cを出力する。
ビットストリーム結合部17000は領域単位で符号化が行われたジオメトリビットストリーム17000a及び領域単位で符号化が行われた特質ビットストリーム17000bを受信してこれらを結合する。ビットストリーム結合部17000は領域単位のビットストリーム17000cを出力する。実施例によれば、ビットストリーム結合部17000は、図19ないし図25により分割された一つ又はそれ以上の領域に該当するポイントクラウドデータが符号化されたビットストリーム17000a、17000bを受信してこれらを結合する。従って、ビットストリーム結合部17000は図19ないし図25による領域単位にビットストリーム17000cを出力することができる。
ビットストリーム結合部17000は図19のビットストリーム結合部16014を意味する。ジオメトリビットストリーム17000aと特質ビットストリーム17000bは図19のジオメトリビットストリーム及び属性ビットストリームを意味する。ジオメトリビットストリーム17000aと特質ビットストリーム17000bは図18のジオメトリビットストリーム1500b及び属性情報ビットストリーム15000cを意味する。
ビットストリーム結合部17000は実施例によるジオメトリビットストリーム17000a及び特質ビットストリーム17000bを結合する結合実行部17001を含む。結合実行部17001は上述したジオメトリビットストリーム17000a及び特質ビットストリーム17000bを受信してこれらを領域別に結合してビットストリーム17000cを出力する。
ビットストリーム結合部17000はジオメトリビットストリーム17000aと特質ビットストリーム17000bをどのような順に結合するか、どのように結合を行うかを決定する。結合を行う方法は、多重化(Multiplexing)、MVCビット列結合、順次結合、重要度基盤の結合などの方法がある。実施例による結合を行う方法は、受信したジオメトリビットストリーム17000a及び/又は特質ビットストリーム17000bの特定(例えば、色々な属性のビットストリーム、属性ビットストリームの存在有無、ジオメトリと特質ビットストリームの量子化程度、ビットストリームの長さ、タイリングの有無など)によって決定又は選択される。ポイントクラウドデータエンコーダは、結合されたジオメトリビットストリームと特質ビットストリームを送信するために符号化器でどの結合方法を使用したかに関する情報(combining_filter_index)を生成し、これらをビットストリーム形態で送信する。実施例によれば、ビットストリームの送信特性によって特定の結合方法が固定的に使用されることができる。
実施例によるポイントクラウドデータ送信装置は、ビットストリーム結合部17000を構成することにより、図19ないし図25により分割された領域が符号化されて生成されたビットストリームを領域ごとに送信することができる。従って、実施例によるポイントクラウドデータ受信装置は、領域ごとに受信したポイントクラウドデータをシグナリング情報と共に効率的に復号を行うことができる。
図18は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す図である。
実施例によるブリックは、スライスに対応する。この明細書において、ブリックはスライスとも称される。
図18に示した動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合して行われる。
実施例によるポイントクラウドデータはポイントクラウドデータを得、得られたポイントクラウドデータを一つ又はそれ以上のスライスに分割することができる。
図18に示した動作は、例えば、図15の空間分割部15001、図16のデータ特性調査部16000、ブリックタイリング部16001、及び図12のデータ入力部12000により行われる。
図18の左側イメージ18000は実施例によるポイントクラウドデータを示す。ポイントクラウドデータは複数のタイプのポイントクラウドデータ(例えば、LiDARデータなど)に区分される。ポイントクラウドデータのタイプはポイントクラウドデータのポイントが密に分布するか或いは疎らに分布するかによって分類される。
図18の右側イメージ18001は図20の左側イメージ18000のポイントクラウドデータを3つのブリックに分割する動作を示す。実施例によるポイントクラウドデータを3つのブリックに分割する動作は、図15の空間分割部15001、図16のブリックタイリング部16001により行われる。
図18の右側イメージ18001を参照すると、実施例によるブリックタイリング部16001は図18の左側イメージ18000のポイントクラウドデータを第1ブリック18001a、第2ブリック18001b及び第3ブリック18001cに分割する。実施例によるブリックタイリング部19001はポイントクラウドデータのタイプに基づいてポイントクラウドデータを分割する。実施例によるブリックは同等な意味の範囲内で他の名称に呼ばれることもできる。
実施例によるポイントクラウドデータ送信装置は、図18及び図19で説明したように、ポイントクラウドデータをタイル、スライス及び/又はブリック単位に分割することにより、ポイントクラウドデータが占有する3次元空間上の任意接続(random access)と並列符号化を可能にする効果を提供する。
図19は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す図である。
図19に示した分割する方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
実施例によるポイントクラウドデータはポイントクラウドデータを得、得られたポイントクラウドデータを図19に示したように、一つ又はそれ以上のスライスに分割することができる。図19に示した動作は、例えば、図15の空間分割部15001、図16のデータ特性調査部16000、ブリックタイリング部16001、及び図12のデータ入力部12000により行われる。
図19(a)はポイントクラウドデータが占める3次元空間19A00を3次元空間19A00の軸の長さに基づいて分割することを示す。実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを符号化する。実施例によるポイントクラウドデータ送信装置は、実施例によるポイント又は3次元空間19A00を一つ又はそれ以上の分割された領域19A01a~19A01cに分割し、分割された領域に含まれたポイントに対して独立的に実施例による符号化を行うことができる。
ポイントクラウドデータが占める3次元空間19A00は、実施例によるポイントクラウドデータを含む。3次元空間19A00はポイントクラウドデータを示す複数のポイントを含む。複数のポイントは実施例によるポイントクラウドデータを構成する単位である。実施例によるポイントクラウドデータ送信装置は、それぞれの複数のポイントの位置情報及び属性情報を符号化することができる。
分割された領域19A01a~19A01cは実施例によるポイントクラウドデータのポイント19A00の一部を含む。実施例によるポイントクラウドデータ送信装置はポイントクラウドデータの特性に基づいてポイントクラウドデータを一つ又はそれ以上の分割された領域19A01a~19a01cに分割する。実施例による分割された領域19A01a~19A01cはタイルに対応するか、スライスに対応するか、ブリックに対応するか、或いはブロックに対応するか又は称される。
実施例によるポイントクラウドデータ送信装置は、ポイントを含む3次元空間19A00を3次元空間の軸の長さに基づいて分割する。ポイントを含む3次元空間19A00は、境界ボックス(bounding box)であるか、又はタイルである。実施例による3次元空間(例えば、境界ボックス又はタイル)は、x軸、y軸及びz軸で表現される。
実施例によるポイントクラウドデータは、例えば、x軸、y軸及びz軸のうちのいずれかの長さが残りの2つの長さより短い。例えば、1つの軸を除いた2つの軸に沿って広く分散している地形を表すポイントクラウドデータが存在する。ポイントクラウドデータの送信装置がが軸の長さとは関係なく境界ボックス内のポイントに対して符号化を行う場合、符号化の効率が落ちる。よって、ポイントクラウドデータ送信装置は、3次元空間の軸の長さに適応して一つ又はそれ以上の領域に分割する必要がある。従って、実施例によるポイントクラウドデータ送信装置は、x軸、y軸及びz軸の互いの相対的な長さを計算し、計算した相対的な長さに基づいてポイントクラウドデータを一つ又はそれ以上の領域に分割する。
従って、実施例によるポイントクラウドデータ送信装置は、x軸、y軸及びz軸のうち、最短軸の長さと最長軸の長さを確認して、最長軸を最短軸の長さ単位に分割する。例えば、図19(a)に示したように、境界ボックスの最長軸はy軸30であり、最短軸はz軸10である。よって、実施例によるポイントクラウドデータ送信装置は、Y軸をZ軸の長さである10単位に分割して、ポイントクラウドデータを3つのスライス19A01a~19A01cに分割する。
実施例によるポイントクラウドデータ送信装置は、分割されたスライスを再び分割することもできる。例えば、分割された一つのスライス19A01aを再び最長軸を最短軸の長さ単位に分割することができる。この場合、X軸、Y軸及びZ軸がいずれも長さ10である2つのスライスが生成される。
実施例によるポイントクラウドデータ送信装置は、図19(a)に示したように、最長エッジの長さに基づくユニフォーム-ジオメトリ分配(Uniform-Geometry partition along the longest edge)のスライス分配構成(slice partition scheme)に基づいてポイントクラウドデータを分割する。最長エッジの長さに基づくユニフォーム-ジオメトリ分配(Uniform-Geometry partition along the longest edge)は、以下のように分配(分割)される方法を意味する。
1)3次元空間の最長エッジの長さ、最短エッジの長さ、スライスの数、スライスのサイズをそれぞれmaxEdge、minEdge、sliceNum及びsliceSizeと仮定する。SliceNumの基本値はmaxEdge/minEdgeであり、sliceSizeはminEdgeのような値に設定される(Assume the longest edge and the shortest edge as maxEdge and minEdge, slice number as sliceNum, slice size as sliceSize. The default value of sliceNum is set as maxEdge/minEdge and sliceSize is set as minEdge.)。
2)実施例によるユニフォーム-ジオメトリ分配構成によりポイントクラウドデータをsliceNumだけ分割する。
図19(b)はポイントクラウドデータが占める3次元空間19B00を3次元空間19B00内に含まれたポイントに関する八分木情報に基づいて分割することを示す。
実施例による八分木情報は、実施例によるポイントのジオメトリ情報を示すための八分木構造(octree structure)を意味する。実施例によるポイントクラウドデータ送信装置は、3次元空間が八分木により表現される一つ又はそれ以上の空間に対応するようにスライスを分割することができる。
実施例によるポイントクラウドデータ送信装置は、即ち、八分木を用いたユニフォーム-ジオメトリ分配(Uniform-Geometry partitioning using Octree)を行うことができる。八分木を用いたユニフォーム-ジオメトリ分配方法は以下の通りである。
1)八分木分配の深さを基本値depOctree=1として設定する(Set the depth of octree partition depOctree=1 by Default)。八分木分配の深さは八分木構造のレベルを意味する。
2)ポイントクラウドデータを八分木分配構造により8^depOctreeスライスだけ分割する。
例えば、実施例によるポイントクラウドデータ送信装置は、depOctreeが1である場合、ポイントクラウドデータを8つの空間に対するポイントを含む8つのスライスを分割する。
実施例によるポイントクラウドデータ送信装置は、かかる方法で境界ボックスの分割を行うことにより、重畳していないスライスごとに個々に符号化を行い、同様に受信装置も個々にポイントクラウドデータをスライスごとに復号化することができる。
実施例によるポイントクラウドデータ送信装置は、任意のタイル内のポイントの特質データである色相情報又は反射度情報に基づいて、3次元空間を一つ又はそれ以上のスライスに分割する。例えば、実施例によるポイントクラウドデータ送信装置は、実施例による特質データを昇順に整列した後、特質データの値に整列されたポイントにスライスを分割することができる。
実施例によるポイントクラウドデータ送信装置は、このようにポイントを分割する場合、昇順整列に基づいて分割したので、境界ボックスがスライス間に重畳可能であり、1つの空間内において複数のスライスが共有する形態でスライスが分割される。従って、実施例によるポイントクラウドデータ送信装置は、ポイントクラウド圧縮のための要求事項である空間的拡張性、関心領域基盤の空間的拡張性を支援することができる。
図20は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す。
図20に示した分割する方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図20に示した動作は、例えば、図15の空間分割部15001、図16のデータ特性調査部16000、ブリックタイリング部16001、及び図12のデータ入力部12000により行われる。
図20(a)はポイントクラウドデータが占有する3次元空間20A00を示す。実施例によるポイントクラウドデータ送信装置は実施例によるポイントクラウドデータを符号化する。実施例によるポイントクラウドデータ送信装置は、実施例によるポイント20A01又は3次元空間20A00を一つ又はそれ以上の分割された領域20A02に分割し、分割された領域に含まれたポイントに対して独立的に実施例による符号化を行う。
ポイントクラウドデータが占有する3次元空間20A00は実施例によるポイントクラウドデータを含む。3次元空間20A00はポイントクラウドデータを示す複数のポイント20A01を含む。
複数のポイント20A01は実施例によるポイントクラウドデータを構成する単位である。実施例によるポイントクラウドデータ送信装置はそれぞれの複数のポイント20A01の位置情報及び属性情報を符号化する。
分割された領域20A02は実施例によるポイントクラウドデータのポイント20A01の一部を含む。実施例によるポイントクラウドデータ送信装置はポイントクラウドデータの特性に基づいてポイントクラウドデータを一つ又はそれ以上の分割された領域20A02に分割する。実施例による分割された領域20A02はタイルに対応するか、スライスに対応するか、ブリックに対応するか、或いはブロックに対応するか又は称される。
ポイントクラウドデータの特性はポイント20A01の密度に関連する特性である。例えば、実施例によるポイントクラウドデータは矢印20A03の方向にポイントが密に分布したデータである。従って、実施例によるポイントクラウドデータ送信装置はポイントの密度に基づいてポイントクラウドデータを一つ又はそれ以上の分割された領域20A02に分割することができる。
例えば、実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを第1ブリック20A02-1及び第2ブリック20A02-2を含む分割された領域20A02に分割することができる。第1ブリック20A02-1は複数のポイントのうち、相対的に疎らに分布したポイントを含む領域である。第2ブリック20A02-2は複数のポイントが相対的に密に分布するポイントを含む領域である。実施例によれば、ポイントが密に分布する第2ブリック20A02-2は、ポイントが疎らに分布する第1ブリック20A02-1よりもブリックのサイズが大きい。
図20(b)はポイントクラウドデータが占有する3次元空間20A00を一つ又はそれ以上の領域に分割する方法及び各ブリックに対して符号化を行う過程を示す。具体的には、図20(b)はポイントクラウドデータのポイントの密度に基づいてポイントクラウドデータを一つ又はそれ以上のブリックに分割することを示す。かかるポイントクラウドデータの分割方法を点密度基盤のブリックタイリングと呼ぶ。
実施例による点密度基盤のブリックタイリングは、実施例によるポイントの密度又はポイントの距離によって、実施例によるポイントクラウドデータを一つ又はそれ以上のブリックに分割することを意味する。実施例によれば、分割されたブリックは一つの3次元ブロック或いは2つ以上のブロックの束で構成される。
図20(b)の動作は図15の空間分割部15001、図16のブリックタイリング部16001により行われる。図20(b)に示す過程は、ポイントクラウドデータを受信する段階(20B00)、ブリック分割実行有無を判断する段階(20B01)、ブリック個数を決定する段階(20B02)、ポイントの密度を計算する段階(20B03)、各ブリックに対してポイントの密度による量子化係数を決定する段階(20B04)、(各)ブリックごとに符号化を行う段階(20B05)及び/又はブリックごとにビットストリームを出力する段階(20B06)を含む。
ポイントクラウドデータを受信する段階(20B00)では実施例によるポイントクラウドデータを受信する。
ブリック分割実行有無を判断する段階(20B01)は受信ポイントクラウドデータを一つ又はそれ以上のブリック(又はスライス又はタイル)に分割するか否かを決定する段階である。
ブリック分割実行有無を判断する段階(20B01)は受信ポイントクラウドデータ内のポイントのx座標値、y座標値及び/又はz座標値に基づいてブリック分割実行有無を判断する段階である。
ブリック分割実行有無を判断する段階(20B01)では、受信ポイントクラウドデータのタイプに基づいてブリック分割を行うか否かを決定する。ブリック分割実行有無を判断する段階(20B01)はブリック分割実行有無を示すbrick_tiling_filter情報を生成する段階である。
ブリック個数を決定する段階(20B02)では、ブリック分割実行有無を判断する段階でブリック分割を決定した場合、ポイントクラウドデータをいくつのブリックに分割するかを決定する。ブリック個数を決定する段階(20B02)において、分割するブリックの数は受信ポイントクラウドデータのタイプに基づいて決定される。
ポイントの密度を計算する段階(20B03)は、実施例によるポイントの密度を計算し、計算した密度に基づいてポイントクラウドデータを一つ又はそれ以上のブリックに分割する段階である。実施例によれば、ポイントの密度はポイントが占有する体積ごとのポイントの数、又はポイント間の距離の平均などに基づいて定義される。実施例によれば、(各)ブリックごとのポイントの密度は可変的に決定される。
各ブリックに対してポイントの密度による量子化係数を決定する段階(20B04)では、実施例によるポイントクラウドデータ送信装置がポイントの密度によって可変的に復号化を行うために密度による量子化係数を決定する。
(各)ブリックごとに符号化を行う段階(20B05)は、実施例によるポイントクラウドデータ送信装置が(各)ブリックごとにポイントクラウドデータを符号化する動作を意味する。実施例によれば、分割されたそれぞれのブリックはポイントクラウドデータ送信装置の設定によって流動的に変更される。ポイントクラウドデータ送信装置は分割情報を知らせるための情報(例えば、brick_unit_information、brick_density_quantization_step)などの情報を生成する。
ブリックごとのビットストリームを出力する段階(20B06)は、ポイントクラウドデータ送信装置がポイントクラウドデータが各ブリック単位で符号化が行われて出力されたビットストリームを出力する動作を意味する。
実施例によるポイントクラウドデータ送信装置は、実施例による点密度基盤のタイリングを行うことにより、一つのフレーム内の領域ごとにポイントの密度が異なるように分布するシーケンスを効果的に符号化することができる。
実施例によるポイントクラウドデータ送信装置は、実施例による点密度基盤のタイリングを行うことにより、ポイントの密度によって低密度のブリックに対して倍率(Scaling Factor)を下げることができ、ジオメトリ情報の圧縮率を上げることができる。また、高密度のポイントを含むブリックは倍率を上げて、位置情報を精密に表現する効果を提供することができる。
図21は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す図である。
図21に示した分割する方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などにより結合して行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図21に示した動作は、例えば、図15の空間分割部15001、図16のデータ特性調査部16000、ブリックタイリング部16001、図12のデータ入力部12000により行われる。
図21はポイントクラウドデータ送信装置がポイントクラウドデータが占有する3次元空間又はポイントクラウドデータ21A00を一つ又はそれ以上の円形セクター21A02に分割することを示す。実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを分割された円形セクター21A02ごとに符号化する。図21に示すポイントクラウドデータを分割する動作は、図15の空間分割部15001、図16のブリックタイリング部16001により行われる。
実施例によるセクター21A02は、実施例によるタイルに対応するか、スライスに対応するか、ブリックに対応するか、或いはブロックに対応するか又は称される。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータ21A00を基準軸21A01を基準として一つ又はそれ以上の円形セクター21A02に分割する。ポイントクラウドデータを一つ又はそれ以上の円形セクター形態のブリックに分割する動作を円形セクターブリックタイリングとも呼ぶ。
ポイントクラウドデータ21A00はポイントクラウドデータ送信装置が獲得したポイントクラウドデータを意味する。ポイントクラウドデータ21A00は複数のポイントを含む。
基準軸21A01はポイントクラウドデータを一つ又はそれ以上の円形セクター21A02に分割するために基準となる軸を意味する。基準軸21A01はポイントクラウドデータが占有する3次元空間(例えば、境界ボックス)の中心を示す。例えば、基準軸は3次元空間のx軸及びy軸の中心であり、x-y平面において鉛直方向である軸である。例えば、基準軸は3次元空間のy軸及びz軸の中心であり、y-z平面において鉛直方向である軸である。例えば、基準軸は3次元空間のx軸及びz軸の中心であり、x-z平面において鉛直方向である軸である。
実施例によれば、ポイントクラウドデータは円形セクターの原点を含む基準軸21A01を基準としてポイントクラウドデータを一つ又はそれ以上の円形セクターに分割する。実施例によれば、一つ又はそれ以上の円形セクターが決定されると、(各)単位ごとに位置情報或いは属性情報を含むポイントを含むことができる。
実施例による基準軸21A01は中心点情報を示す情報に基づいて決定される。実施例による中心点情報は、例えば、central_node_xyzである。実施例による基準軸21A01は中心点情報を経、3次元空間のx軸、y軸及びz軸のうち、軸の長さが最も短い軸方向に決定される。
円形セクター21A02は実施例によるポイントクラウドデータを分割するブリックを意味する。円形セクター21A02はポイントを含む。円形セクター21A00は基準軸と中心として中心角21A02-1だけ放射する形態で弧状に構成された領域を意味する。
実施例によれば、分割されたそれぞれの円形セクター21A02は互いに同一又は異なる半径21A02-1を有する。円形セクター21A02の半径21A02-1はポイントクラウドデータの密度に基づいて決定される。実施例による半径21A02-1はbounding_box_radiusで示される。
実施例によるポイントクラウドデータ送信装置は様々な中心角21A02-2を有する円形セクター21A02に分割される。実施例によるポイントクラウドデータ送信装置は各円形セクターの中心角を決定する。円形セクターの中心角はポイントクラウドデータの密度に基づいて決定される。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータが複数のフレームで構成される場合、ポイントクラウドデータに含まれた客体の移動方向21A03に基づいて分割領域の模様を決定する。ポイントクラウドのデータが複数のフレームで構成される場合、ポイントクラウドデータに含まれた客体の移動方向(例えば、青色矢印の方向)を定義することができる。実施例による客体の移動方向はmoving_direction_vectorで示される。
実施例による境界ボックス(ポイントクラウドデータが占有する3次元空間)の情報は1フレームごとに定義され、各フレームの座標情報(例えば、x、y、z情報)により決定される。実施例によれば、全フレームに同じ境界ボックスの情報を適用する時、境界ボックス情報フラグ(use_identical_bounding_box_information_flag)が送信される。
実施例によれば、ポイントクラウドデータ送信装置は、それぞれのフレームに対して量子化係数、ジオメトリ圧縮方法、属性圧縮方法、単一の属性/多重の属性を異なるようにして符号化を行う。
実施例によるポイントクラウドデータ送信装置は、円形セクターブリックタイリングを行うことにより、LiDARデータや自立走行のためのデータのような複数のフレームを含むデータシーケンスで効果的に符号化を行うことができる。
実施例によるポイントクラウドデータ送信装置は、円形セクターブリックタイリングを行うことにより、ブリックの半径情報と角度のみでブリックをシグナリングすることができるので、受信装置の複雑度を減少できる。また、円形セクターブリックタイリングを行うことにより、同じ円形セクター内の点の分布が同一であるとき、位置情報予測による符号化を向上させることができる。
図22は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す図である。
図22はポイントクラウドデータ送信装置がポイントクラウドデータが占める3次元空間又はポイントクラウドデータ23A00を一つ又はそれ以上のレイヤ22A01又は22A02に分割することを示す。実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを分割されたレイヤ22A02ごとに符号化することができる。
図22に示した分割する方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図22に示した動作は、例えば、図15の空間分割部15001、図16のデータ特性調査部16000、ブリックタイリング部16001、図12のデータ入力部12000により行われる。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータ22A00を一つ又はそれ以上のレイヤ22A01に分割する。実施例によるポイントクラウドデータを一つ又はそれ以上のレイヤ22A01に分割する方法はレイヤブリックタイリングとも呼ばれる。
実施例によるレイヤ22A01は、実施例によるタイルに対応するか、スライスに対応するか、ブリックに対応するか、或いはブロックに対応するか又は称される。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを一つ又はそれ以上のレイヤに分割する前、ポイントクラウドデータを整列する。ポイントクラウドデータ送信装置は、ポイントクラウドデータを昇順、降順又はモールトンコードの順に整列する。実施例によるポイントクラウドデータ整列動作は、図15の空間分割部15001、図16のブリックタイリング部16001又はデータ特性調査部16000で行われる。実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータの整列方法を示す情報(例えば、enable_sorting_flag)を生成し、それをビットストリーム形態で送信する。
レイヤ22A01、22A02はポイントクラウドデータが占有する3次元空間のx軸、y軸又はz軸の一定の範囲に含まれたポイントクラウドデータの集合を意味する。即ち、レイヤ22A01、22A02は点の集合で構成される。
図22の左側イメージに示したレイヤ22A01は、図22の左側イメージのように、一定の範囲のy座標情報を有する全てのポイントクラウドデータのポイントの集合を意味する。従って、実施例によれば、ポイントクラウドデータはポイントのy座標情報の範囲において複数のレイヤで構成される。かかる図22の左側イメージに示したレイヤはx-zレイヤ(又はy方向レイヤ)とも呼ばれる。
図22の右側イメージに示したレイヤ22A02は、図22の右側イメージのように、一定の範囲のx座標情報を有する全てのポイントクラウドデータのポイントの集合を意味する。従って、実施例によれば、ポイントクラウドデータはポイントのx座標情報の範囲において複数のレイヤで構成される。かかる図22の右側イメージに示したレイヤはy-zレイヤ(又はx方向レイヤ)とも呼ばれる。
同様にポイントクラウドデータはポイントのz座標情報の範囲において複数のレイヤで構成される。かかる図22の左側イメージに示したレイヤはx-yレイヤ(又はz方向レイヤ)とも呼ばれる。実施例によれば、ポイントクラウドデータは一つ又はそれ以上のx方向レイヤ、y方向レイヤ又はz方向レイヤに分割される。
実施例によるポイントクラウドデータはポイントの時間順の移動側に基づいて形成された複数のレイヤで構成されることもできる。
実施例によるポイントクラウドデータ送信装置は、一つ又はそれ以上のレイヤに対して漸進的コーディングを行うことができる。実施例による漸進的コーディングは、整列されたレイヤ単位で漸進的に符号化を行うことを意味する。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを一つ又はそれ以上のレイヤに分割することにより、1フレーム内のポイントクラウドデータが特定の領域に集まっている場合(例えば、左側、右側、上側、下側、前側又は後側に連続する属性情報値が集まっている場合)のデータ特性において圧縮が効果的に適用される。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを一つ又はそれ以上のレイヤに分割することにより、ブリック内の位置情報の連関度を向上させて符号化効率を高めることができる。
図23は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す図である。
図23はポイントクラウドデータ送信装置がポイントクラウドデータが占有する3次元空間又はポイントクラウドデータを一つ又はそれ以上の球形/楕円形領域23001aないし23001fに分割すことを示す。実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを一つ又はそれ以上の球形/楕円形領域23001aないし23001fごとに符号化する。図23に示したポイントクラウドデータを分割する動作は、図15の空間分割部15001、図16のブリックタイリング部16001により行われる。図23に示した動作は、例えば、図12のデータ入力部12000により行われる。
図23示した分割する方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
実施例において球形/楕円形領域23001a-23001fは、実施例によるタイルに対応するか、スライスに対応するか、ブリックに対応するか、或いはブロックに対応するか又は称される。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータ23000内において重要な領域に位置するポイントを正確に符号化し、重要ではない部分の符号化は適切に行う。例えば、ポイントクラウドデータ23000が、図23に示したように、特定の都市を示すデータ23000である場合、ポイントクラウドデータ送信装置の符号化過程において正確な符号化が必要な部分があり得る。例えば、図23の円形又は楕円形で表示された領域23001aないし23001fは符号化過程において正確な符号化が必要な部分である可能性がある。特に、ポイントクラウドデータは膨大な反面、正確な符号化が必要な領域が特定の領域に特定されている場合、全てのポイントクラウドデータに対して符号化を行うと、送受信過程で遅延が発生し得る。
従って、実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータの効率的な符号化のために、ポイントクラウドデータ2300を一つ又はそれ以上の球形領域(又は楕円形領域)23001aないし23001fに分割し、分割された球形領域23001aないし23001fに対して符号化を行う。
ポイントクラウドデータ23000は一つ又はそれ以上のポイントを含むデータである。ポイントクラウドデータ23000は特定の方法の符号化が必要な領域(又は符号化において正確な符号化が必要な領域など)を一つ又はそれ以上含む。特定の方法の符号化が必要な領域は、図23の23001a及び23001bで示したように円形(又は球形)に形成されるか、又は図23の23001cないし23001fで示したように楕円形(又は潰れた球形)に形成される。前者のように円形(又は球形)に形成された領域は球形領域(又は円形ブリック)とも呼ばれる。後者のように楕円形(又は潰れた球形)に形成された領域は楕円形領域(又は長球形領域)とも呼ばれる。
ポイントクラウドデータが一つ又はそれ以上の球形領域又は楕円形領域に分割される方法は球形/楕円形領域タイリングとも呼ばれる。
実施例によれば、ポイントクラウドデータが球面座標系又は地理座標系に基づいて表現される場合、ポイントクラウドデータは球形領域に分割できる。実施例によれば、ブリックの形態によって様々な座標系(円筒座標系など)が使用される。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを一つ又はそれ以上の球形領域23001a、23001b又は楕円形領域23001cないし23001fに分割することができる。実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータのブリックが球形領域又は楕円形領域であるか否かを示す球形/楕円形領域の利用フラグ(sphere_or_oval_flag)を生成し、それをビットストリーム内に含めて送信する。
実施例によるポイントクラウドデータ送信装置は、球形領域及び/又は楕円形領域のそれぞれに関する情報を生成してそれをビットストリーム内に含めて送信する。例えば、ポイントクラウドデータは球形領域又は楕円形領域のそれぞれの模様に関連する情報を含む。
球形領域23001a、23001bは球形状(Sphere)に構成されたブリックを意味する。球形領域23001a、23001bは境界ボックス内の円形又は球形領域内のポイントクラウドデータのポイントの集合を意味する。ポイントクラウドデータ送信装置は、球形領域23001a、23001bのそれぞれに関する中心点情報(例えば、center_point_xyz)、半径情報(radius_distance)を生成し、それらをブリックのそれぞれに対してビットストリーム形態で送信する。
楕円形領域23001cないし23001fは楕円形又は長球形(Prolate)に構成されたブリックを意味する。楕円形領域23001cないし23001fは境界ボックス内の円形又は球形領域内のポイントクラウドデータのポイントの集合を意味する。ポイントクラウドデータ送信装置は、楕円形領域23001cないし23001fのそれぞれに関する中心点情報(例えば、center_point_xyz)、半径情報(radius_distance)、方位角情報(azimuth_angle)を生成し、それらをブリックのそれぞれに対してビットストリーム形態で送信する。
実施例によるポイントクラウドデータ送信装置は、球形/楕円形領域タイリングを用いることにより、LiDARデータの中でも事物が疎らに存在し、空間上においてデータに客体が存在する部分と存在しない部分が明らかなシーケンスで効果的に符号化を行うことができる。
実施例によるポイントクラウドデータ送信装置は、球形/楕円形領域タイリングを用いることにより、VP-treeなどのように位置情報が円形に分散されているデータに対して高い圧縮率を提供することができる。
図24は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す図である。
図24に示した分割する方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図24はポイントクラウドデータ送信装置がポイントクラウドデータが占有する3次元空間又はポイントクラウドデータ24000を属性基盤の領域24001ないし24003に分割することを示す。実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを一つ又はそれ以上の属性基盤の領域24001ないし24003ごとに符号化することができる。図24に示したポイントクラウドデータを分割する動作は、図15の空間分割部15001、図16のブリックタイリング部16001により行われる。図24に示した動作は、例えば、図12のデータ入力部12000により行われる。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータ24000内のポイントの属性情報に基づいて分割する。例えば、ポイントクラウドデータ送信装置は、ポイントクラウドデータを構成する属性(色相、反射度、透明度、時間情報、客体インデックスなど)によって一つ又はそれ以上の領域を構成する。実施例による属性情報に基づく領域の分割方法は、属性基盤の領域タイリング(例えば、属性基盤のブリックタイリング)とも呼ばれる。
図24の左側イメージは境界ボックス内の複数のポイント24000aないし24000cを示す。複数のポイントは、例えば、赤色系の色相を有するポイント(P0、P2、P4、P5)、青色系の色相を有するポイント(P7、P8、P9)及び緑色系の色相を有するポイント(P1、P3、P6)を含む。実施例によるポイントクラウドデータ送信装置は、例えば、ポイントの色相によって一つ又はそれ以上の領域(例えば、ブリック)に分割することができる。
図24の右側イメージは複数のポイント24000aないし24000cが3つのブリック24001、24002、24003に分割されたことを示す。例えば、赤色系の色相を有するポイント(P0、P2、P4、P5)は第1ブリック24001に、青色系の色相を有するポイント(P7、P8、P9)は第2ブリック24002に、及び緑色系の色相を有するポイント(P1、P3、P6)は第3ブリック24003に分割される。
実施例によるポイントクラウドデータは、複数のポイントを属性情報に基づいて一つ又はそれ以上の領域に分割する前に、複数のポイントの属性情報を調査する。複数のポイントの属性情報を調査する動作は、図16のデータ特性調査部16000により行われる。例えば、実施例によるポイントクラウドデータは、ポイントのうち、赤色系のポイントを調査することができる。例えば、赤色系のポイントを調査する動作はポイントのRGB情報の値に基づいて行われる。
実施例によるポイントクラウドデータ送信装置(送信装置)は、ポイントクラウドデータに対して実施例による属性基盤の領域タイリングを行ったか否かを示す情報をビットストリーム形態で送信することができる。また実施例によるポイントクラウドデータ送信装置(送信装置)は、属性基盤の領域タイリングが行われた場合、分割する基準となる属性タイプ(referenced_attribute_type)をビットストリーム形態で送信することができる。実施例による分割の基準は複数の属性タイプを含み、この基準は属性情報値の範囲(referenced_attribute_type_range)或いは属性情報値(referenced_attribute_type_value)である。
実施例によるポイントクラウドデータ送信装置は、実施例による属性基盤の領域タイリングを用いることにより、属性情報値が一つであるか又は類似する値に対応する複数のジオメトリ情報が多く含まれたシーケンスで効果的な符号化を行うことができる。
図25は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す図である。
図25に示した分割する方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図25はポイントクラウドデータ送信装置がポイントクラウドデータが占有する3次元空間又はポイントクラウドデータ25000を境界ボックスの軸の長さに基づいて分割された領域25001、25002に分割することを示す。実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを一つ又はそれ以上の境界ボックスの軸の長さに基づいて分割された領域25001、25002ごとに符号化することができる。図25に示したポイントクラウドデータを分割する動作は、図15の空間分割部15001、図16のブリックタイリング部16001により行われる。実施例によれば、境界ボックスの軸の長さに基づいて分割された領域25001、25002(例えば、ブリック)に分割する動作は、適応的軸長さ基盤の領域タイリング(又は適応的軸長さ基盤のブリックタイリング)とも呼ばれる。図25に示した動作は、例えば、図12のデータ入力部12000により行われる。
ポイントクラウドデータ25000は一つ又はそれ以上のポイントを含む。ポイントクラウドデータは3次元空間(例えば、境界ボックス)内に含まれる。実施例による3次元空間(例えば、境界ボックス)はx軸、y軸及びz軸で表現される。
ポイントクラウドデータ25000は、例えば、x軸、y軸及びz軸のうちのいずれかの長さが残りの2つの長さより短いか又は顕著に短い。例えば、1つの軸を除いた2つの軸に広く分散されている形態の地形を表現するポイントクラウドデータが存在する。ポイントクラウドデータの送信装置が軸の長さとは関係なく境界ボックス内のポイントに対して符号化を行う場合、符号化の効率が落ちる。従って、ポイントクラウドデータ送信装置は、3次元空間の軸の長さに適応して一つ又はそれ以上の領域に分割する必要がある。従って、実施例によるポイントクラウドデータ送信装置は、x軸、y軸及びz軸の互いの相対的な長さを計算し、計算した相対的な長さに基づいてポイントクラウドデータを一つ又はそれ以上の領域に分割することができる。
実施例によるポイントクラウドデータ送信装置(例えば、図16のタイル分割部16000)は、3次元空間のx軸の長さ25000x、y軸の長さ25000y及びz軸の長さ25000zのうち、最長長さの軸(例、X軸)の長さを最短長さの軸(例えば、Z軸)の長さ単位に分割して一つ又はそれ以上のスライス(又は第1ブリック、25001)を構成することができる。1つ又はそれ以上のスライス(又は第1ブリック)に分かれたデータは並列的に符号化及び復号可能な単位である。
実施例によるポイントクラウドデータ送信装置(例えば、図18のタイル分割部18000、又は図19のタイリング部19001)は、第1ブリックのうちの一部のブリック25001に対して再分割を行うことができる。実施例による再分割では、第1ブリックのうちの一部のブリックに対して、最長長さの軸(即ち、図25の25001ブリックではy軸、25000y)を最短長さの軸(例えば、x軸又はz軸)の長さ単位に分割して一つ又はそれ以上の細部スライス(又は第2ブリック、25002)を構成する。一つ又はそれ以上の細部スライス(又は第2ブリック)に分かれたデータは並列的に符号化及び復号可能な単位である。
実施例によるポイントクラウドデータ送信装置は、第1ブリック内のポイントの最大個数と最小個数(maxPointNum、minPointNum)により、空間上のデータ分布によらず、点のmin/max情報に基づいて分割を行うこともできる。
実施例によるポイントクラウドデータ送信装置は、第1ブリック又は第2ブリックを領域内のポイントの数、領域のそれぞれが割り当てる空間のサイズ、領域内に含まれたポイントの密度に基づいて、再び再分割を行うか否かを決定する。実施例によれば、空間上に再分割を行う場合、空間適応的に行うことができ、単純に特定の軸で分ける方法以外にも中間軸を基準として再分割するなどの方法でスライスを分割することができる。
実施例によるポイントクラウドデータ送信装置は、実施例による適応的軸長さ基盤の領域タイリングを用いることにより、大きい地形地物を含むポイントクラウドデータの一つのフレーム内で空間単位に連関関係があるシーケンスで効果的に符号化を行うことができる。実施例によるポイントクラウドデータ受信装置は、大きい地形地物を含むポイントクラウドデータに対して効果的に復号化を行うことができる。
実施例による送信装置は、ポイントクラウドデータ(又はタイル内のポイント)を一つ又はそれ以上のスライスに分割することができる。実施例によるスライスは、スライスのそれぞれに含まれたポイントが互いに3次元空間上で重ならないように構成される。反面、実施例によるスライスは、スライスのそれぞれに含まれたポイントが互いに3次元空間上で重なる領域を有するように構成されてもよい。このように送信装置は3次元空間上で重なった領域を有するようにスライスを構成することもでき、かかるスライスを重畳スライスと呼ぶ。実施例による送信装置は、重畳スライスを構成することにより、リアルタイム処理/低遅延、拡張性及び並列処理可能にポイントクラウドデータを符号化することができる。
実施例による送信装置は、ポイントクラウドデータの分割を行いながら、実施例による重畳したスライスを構成することができる。実施例による送信装置は、ポイントクラウドデータを符号化する前に、ポイントクラウドデータ(原本データ)を境界ボックス(Bounding box)の情報を有することができるタイル単位に分割する。タイルとは、並列的に送信装置が符号化するために又は受信装置が復号するためにできる限り最小限の空間上の単位である。
実施例によるタイルはさらにデータ構造を定義できる最小の単位であるスライスで構成される。スライスはポイントクラウドデータを構成するポイントの集合であり、最大110万個から最小55万個のポイントで構成される。実施例によるスライスは互いに重畳した空間上の領域を含む。
実際、符号化/復号化の過程が行われる前に実施例によるポイントクラウドデータはN個のタイルに分割され、それぞれのタイルはN個のスライスで構成される。ポイントクラウドデータを一つ又はそれ以上のタイルに分割する動作は送信装置内に含まれたタイル構成部により行われ、一つのタイルを一つ又はそれ以上のスライスに分割する動作は送信装置のスライス構成部により行われる。この時、重畳した空間上の領域を含むようにポイントクラウドデータを一つ又はそれ以上のスライスに分割する様々な方法がある。
送信装置(例えば、スライス構成部)は、ポイントクラウドデータの特性によって多重点サンプリング基盤の重畳スライス構成方法に基づいて、重要度基盤の重畳スライス構成方法に基づいて、属性範囲基盤の重畳スライス構成方法に基づいて、又はモールトンコード順基盤の重畳スライス構成方法に基づいて、ポイントクラウドデータ(又はタイル内のポイント)を一つ又はそれ以上の重畳スライスに分割することができる。
実施例によるスライス構成部は、多重点サンプリング基盤の重畳スライス構成部、重要度基盤の重畳スライス構成部、属性範囲基盤の重畳スライス構成部、又はモールトンコード順基盤の重畳スライス構成部のうちのいずれかを含む。上述した方法は図26ないし図30に詳しく説明する。
また実施例による送信装置は重畳スライスを構成する時、他のタイルが分割される時間を該当スライス分割部が待たないように順にタイル出力部でスライスを分割するタイルごとの順次入力スライス構成部を含む。上述した方法は図31に詳しく説明する。
また重畳スライスを構成する時、他のタイルが分割される時間を該当スライス分割部が待たないように順にタイル出力部でスライスを分割するタイルごとの順次入力スライス構成部を含む。タイルごとに様々なスライス構成方法を使用することができる。
図26は実施例によるポイントクラウドデータ送信装置の分割部を示す。
図26に示した分割部26000は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
実施例によるポイントクラウドデータ送信装置は分割部26000を含む。実施例による分割部26000は、図15の空間分割部15001、図16のブリックタイリング部16001を意味する。図26に示した分割部26000は、例えば、図12のデータ入力部12000内に含まれた構成である。
実施例による分割部26000は、実施例によるジオメトリデータ及び/又は特質データを受信する。分割部26000は受信したジオメトリデータ及び/又は特質データを一つ又はそれ以上のスライスに分割して、スライスごとのジオメトリデータ(ビットストリーム)及び/又はスライスごとの特質データ(ビットストリーム)を出力することができる。
実施例による分割部26000は、タイル分割実行部26001及び/又はスライス分割実行部26002を含む。実施例によるポイントクラウドデータ送信装置は、実施例によるスライス分割が行われる前にジオメトリデータと特質データに基づいてポイントクラウドデータを一つ又はそれ以上のタイルに分割することができる。
実施例による分割部26000は、実施例によるポイントクラウドデータのポイントを一つ又はそれ以上のスライスに区分又は分配する。実施例によるスライスは3D空間上の領域のうち、互いに重なる領域を含む。従って、実施例によるポイントクラウドデータ送信装置のスライス分割部は、重畳スライス分割部26002とも呼ばれる。
タイル分割実行部26001は実施例によって得られたポイントクラウドデータを一つ又はそれ以上のタイルに分割する。
スライス分割実行部26002は、実施例によるタイル内のポイントクラウドデータのポイントを一つ又はそれ以上のスライスに分配(partitioning)(又は分割)する。例えば、一つのタイル内に100個のポイントがあれば、スライス分割部26002は10個のポイントを含む10個のスライスに該当タイルを分割することができる。この時、10個のポイントで構成されたそれぞれのスライスは互いに重畳することができる。即ち、一つ又はそれ以上のスライスのうちの一部は重畳した領域を含む。
実施例によるスライス分割実行部26002は、一つのタイル又はポイントクラウドデータのポイントを一つ又はそれ以上のスライスに分割して、スライスごとのジオメトリビットストリーム及びスライスごとの特質ビットストリームを出力する。実施例による送信装置は、実施例による重畳スライス分割が行われた後、スライスごとに独立的にジオメトリビットストリームと特質ビットストリームの対を出力し、これらを結合部で復号化することができる。
実施例による分割部26000は、実施例によるスライス分割部26002がタイル内でスライス間重畳領域を含むようにポイントを分割してスライスを構成する。実施例による分割部26000又はスライス分割部26002は、重畳領域を含むようにスライスを構成するか否かを示すオーバーラップスライスコムポーズ情報(又はフラグ)(overlapping_slice_compose_flag)を生成する。
実施例によるオーバーラップスライスコムポーズ情報の値が、重畳スライスを構成しないことを示すと(これを非重畳スライス分割とも呼ぶ)、実施例による分割部は、ポイントを上述した軸基盤のスライス構成方法或いは八分木基盤のスライス構成方法に基づいて分割する。
実施例によるオーバーラップスライスコムポーズ情報の値が、重畳スライスを構成することを示すと(これを重畳スライス分割とも呼ぶ)、実施例による分割部は、ポイントを多重点サンプリング基盤の重畳スライス構成方法、重要度基盤の重畳スライス構成方法、属性範囲基盤の重畳スライス構成方法、又はモールトンコード順基盤の重畳スライス構成方法などに基づいて分割する。
実施例によるスライス分割実行部26002は、タイルごとのスライス分割を行う時、待機状態を経ず、タイルごとの順次入力スライス分割を行う場合、かかる方法に基づいて分割されるか否かを示す情報(sequential_input_slice_configuration_in_tile_flag)を受信装置にシグナリングする。
実施例によるスライス分割実行部26002は、ジオメトリビットストリームと属性ビットストリームを送信するために符号化器でどのような分割方法を使用したかに関する情報(overlapping_slice_compose_method)を実施例による符号化部に送信する。一つのタイル内で色々な分割方法を使用することができる。この時、分割方法は一つのスライスごとにシグナリングする。
一つのタイル内のポイント又はポイントクラウドデータのポイントを重畳領域を含むように一つ又はそれ以上のスライスに分割する方法(即ち、重畳スライス分割の方法)については、図27から詳しく説明する。
実施例によるスライス分割部26000はスライス構成部とも呼ばれる。実施例によるスライス構成部は、ポイントクラウドデータの特性によって多重点サンプリング基盤の重畳スライス構成方法、重要度基盤の重畳スライス構成方法、特質データ範囲基盤の重畳スライス構成方法、順次入力基盤の重畳スライス構成方法、又はモールトンコード順基盤の重畳スライス構成方法などの分割方法に基づいて実施例によるスライスを構成する。実施例によれば、一つのタイル内に様々なスライス構成方法に基づいて分割されたスライスを含むことができる。
図27は実施例による重畳スライス分割方法を示す。
図27は実施例による重畳スライス分割方法のうちの一実施例である多重点基盤の重畳スライス構成方法を示す。図27に示したスライス分割方法は、図26の分割部26000又はスライス分割実行部26002により行われる。また図27に示したスライス分割方法は、図15の空間分割部15001、図16のブリックタイリング部16001により行われる。図27に示した動作は、例えば、図12のデータ入力部12000により行われる。
図27に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
実施例による多重点サンプリング基盤の重畳スライスは、図27に示したように、一つのタイル内で任意のN個のポイントをサンプリングして、サンプリングされたポイントで一つ又はそれ以上のスライスを構成する方法を意味する。
実施例による送信装置は、実施例によるタイルを一つ又はそれ以上のスライスに分割するために、タイル27000内のx、y、z軸のエッジに近いポイントを用いてサンプリングすることができる。例えば、実施例による送信装置は、1番目のスライス27001aを構成するために、タイル27001内の横軸(例えば、x軸)から最も近いポイント27001a-2及びタイル内の縦軸(例えば、y軸)から最も近いポイント27001a-1をサンプリングする。タイル27000内のx、y、z軸のエッジに近いポイントを導き出す方法は、3次元空間(境界ボックス)内においてx、y、z座標値が最小の点或いは最大の点を計算する方法がある。実施例による送信装置は、サンプリングされた2つのポイント27001a-1、27001a-2を含むようにスライスを構成する。
実施例による送信装置は、実施例によるタイルを一つ又はそれ以上のスライスに分割するために、タイル27000内の任意のポイント27001b-1,27001b-2をサンプリングする。実施例による送信装置は、サンプリングされた2つのポイント27001b-1,27001b-2を含むようにスライス27001bを構成する。
実施例による送信装置は、実施例によるポイントのうち、サンプリングポイントを導き出す方法として、特定距離だけ離れているN個のポイントを導き出す方法を用いる。実施例による送信装置は、2つ又はそれ以上のポイントを用いてスライスを生成し、またスライスの境界ボックスを設ける。実施例による送信装置は、一つのスライスにおいて境界ボックスを構成するためにサンプリングされた点は、他のスライスの境界ボックスを構成するために再び使用でき、この時、重畳スライスが構成される。
実施例による送信装置は、サンプリングされたポイントで構成されたスライスを構成し、各スライス内に含まれたポイントの識別子を含む集合を生成することができる。この時、スライス内に入らないポイントがあり得るが、受信装置はかかるポイントのみで再度一つの又はそれ以上のスライスを構成することができる。又は受信装置はかかるポイントをポイントの数が最も少ないスライスに追加してスライスを構成することができる。
実施例による受信装置は、サンプリングポイントで構成された各スライスに対して、最小ポイントの数(例えば、550,000個)と最大ポイントの数(例えば、1,100,000個)だけのポイントが分布しているか否かを確認することができる。受信装置は、該当スライスが上述したポイントの数分布を満足しないと、タイル内のポイントのうち、他のサンプリングポイントをサンプリングして新しい境界ボックスを生成した後、次のポイントの数分布に該当するか否かを確認することができる。
かかる構成により、受信装置は互いに異なるスライスに属するポイントを1つのスライス内で量子化、整列、オフセット調節、スケーリングすることにより、ポイントクラウド圧縮のための拡張性を図り、ユーザの関心領域に関する情報を効果的に伝達することができる。
図28は実施例による重畳スライス分割方法を示す。
図28に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図28は実施例による重畳スライス分割方法のうちの一実施例である重要度基盤の重畳スライス構成方法を示す。図28に示したスライス分割方法は、図26の分割部26000又はスライス分割実行部26002により行われる。また、図27に示したスライス分割方法は、図15の空間分割部15001、図16のブリックタイリング部16001により行われる。図28に示した動作は、例えば、図12のデータ入力部12000により行われる。
実施例による重要度基盤の重畳スライス構成方法は、図28に示したように、一つのタイル内において重要度が高い一つ又はそれ以上のポイントをサンプリングして、サンプリングされたポイントで一つ又はそれ以上のスライスを構成する方法を意味する。
実施例による送信装置は、図28に示したように、一つのタイル内において重要度が高いポイントをサンプリングし、これらを基準として一つ又はそれ以上のスライスを構成する。実施例による送信装置が、重要度の高いポイントを区分する方法は、一つのタイル内において特質値のうち、代表値として選択された色相値や反射度値を意味する。
実施例による重要度基盤の代表値は代表ポイントとも呼ばれる。
例えば、色相値は特定の空間(又は隣接した空間)内において類似する色相を有するポイントがさらに有り得るので、実施例による送信装置は、色相の代表値を有するポイント(又は値それ自体)をタイルごとに又は一つの3次元空間ごとに指定することができる。実施例による送信装置は、代表値として指定されたポイントを中心とする立体的形状を境界ボックス(bounding box)とするスライスを生成する。代表値として指定されたポイントを中心とする立体的形状は、例えば、立方体状のキュービク(cubic)であるか、球形(spherical)状であるか、直方体状であるか、又はシリンダ状である。実施例による送信装置は、代表値として指定されたポイントを中心とする立体的形状の範囲内に含まれたポイントを一つのスライスで構成することができる。
実施例による重要度基盤の代表値を有するポイントを導き出す又は探す方法は様々である。例えば、実施例による送信装置は、特質値の分布を導き出した後、分布が最も多い色相を有するポイントのうち、一つ又はそれ以上を重要度基盤の代表値を有するポイントとして決定する。例えば、図28の下側には、一つの3次元空間又はタイル内のポイントの反射度値を基準として特質値の分布を示した反射度値分布度28002を示している。
反射度値分布度28002を参照すると、例えば、x軸は反射度の値28002bを示し、y軸は該当反射度の値を有するポイントの数28002aを示す。例えば、図28に示した反射度値分布図28002を参照すると、該当3次元空間又はタイル内では反射度の値が32ないし50を有するポイントが多数存在し、反射度値が140以上であるポイントはいずれもそれぞれ200ポイント未満に存在する。従って、実施例による送信装置は、反射度値分布図28002を参照して、例えば、反射度値が47であるポイントは実施例による重要度基盤の代表値を有するポイントである。
また、例えば、図28に示した反射度値分布図28002を参照すると、該当3次元空間又はタイル内において、データの特性によって特定の反射度値に対して多数のポイントが存在する場合がある。例えば、反射度の値が0,15,28,50,62などの値を有するポイントが他の反射度値に比べて多い。かかる反射度値をピーク(peak)値と呼ぶ。この場合、実施例による送信装置は、かかる反射度値を重要度基盤の代表値を有するポイントとして決定することができる。
実施例による送信装置は、代表ポイントとして実施例による特質データのうち、ピーク値を有するポイントを指定することができる。また、実施例による送信装置は、代表ポイント以外にも特質データの平均値と最も類似する特質データ値を有するポイントを代表ポイントとして指定することができる。また実施例による送信装置は、特質データの平均値を有するポイント、平均値と類似する特質値を有するポイント、特質データの最小値/最大値などを代表ポイントとして指定することができる。
実施例による送信装置は、代表ポイントを中点として上側、下側、左側、右側、前側及び後側にそれぞれ一定距離の空間を占める立方体又は直方体状の境界ボックス内のポイントを含むスライスを構成することができる。実施例による送信装置は、代表ポイントを中点として一定距離の空間を占める球形状の境界ボックス内のポイントを含むスライスを構成することもできる。実施例によれば、スライスに属しないポイントは最も近いスライスに属し、実施例による送信装置はかかるポイントを用いて別に一つのスライスを構成することもできる。
実施例による送信装置は、ポイントクラウドデータが図28に示した方法に基づいて分割される場合、これをシグナリング情報(例えば、value_based_overlapping_slice_partition)によりシグナリングして送信装置に送信することができる。
このような構成により、受信装置は互いに異なるスライスに属するポイントを一つのスライス内で量子化、整列、オフセット調節、スケーリングすることにより、ポイントクラウド圧縮のための拡張性を図り、ユーザの関心領域に関する情報を効果的に伝達することができる。
図29は実施例による重畳スライス分割方法を示す。
図29に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図29は実施例による重畳スライス分割方法のうちの一実施例である特質データ範囲基盤の重畳スライス構成方法を示す。図29に示したスライス分割方法は図26の分割部26000又はスライス分割実行部26002により行われる。また図27に示したスライス分割方法は図15の空間分割部15001、図16のブリックタイリング部16001により行われる。図29に示した動作は例えば、図12のデータ入力部12000により行われる。
実施例による特質データ範囲基盤の重畳スライス構成方法は、図29に示したように、一つのタイル内において特定範囲内の特質値を有する一つ又はそれ以上のポイントを導き出して(サンプリングして)一つ又はそれ以上のスライスを構成する方法を意味する。
実施例によるポイントクラウドデータ送信装置は、一つのタイル又は3次元空間内に属するポイントを特質データ値を基準として整列(昇順又は降順)して、特質データ値の範囲に分けて一つ又はそれ以上のスライスを構成することができる。
実施例による送信装置は、ポイントクラウドデータのポイントの特質データに対して実施例による昇順整列を行わず、スライスごとの特質データ値の範囲を割り当て、割り当てられた特質データ値の範囲に基づいてポイントをスライスに割り当てる方法でスライスを構成する。
例えば、図29を参照すると、実施例による送信装置は、特質データ値(例えば、色相値)の範囲をN個のスライスごとに割り当てる。実施例による送信装置は、ポイントの特質データを確認し、ポイントごとに対応する特質データ値(例えば、色相値)の範囲を比較する。実施例による送信装置は、スライスにポイントのインデックスを挿入する方法でスライスを構成する。実施例によれば、特質データ値(色相値)の範囲は、具体的に色相値と反射度値などが基準となる。実施例によれば、一つ又はそれ以上のスライスは特質データ値に基づいて分配されるので、各々のスライスが境界ボックスを基準として重なることができる。この方法は、実施例によるポイントクラウドデータが復号される時、特定の特質データの範囲値を優先して復号化しなければならないシナリオで使用される。
特質データ値の範囲を割り当てる方法以外にも、特質データの分布度によって実施例による送信装置が自動に特質データ値の範囲を決定して分配を行うことができる。実施例による特質データの分布度は、重要度基盤の重畳スライスの反射度分布度と同様に、代表ポイントの特質値を基準として分割を行うこともできる。代表ポイントは特質データの平均値、類似する属性値などが該当する。
実施例によれば、送信装置が特質データ値を基準としてスライスを分割する時、特質データ値の範囲が全体シーケンスに比べて小さいので、隣接ノードを選択した時、残差値が小さくなる傾向がある。よって、実施例による特質データ値の範囲に基づいてスライスを分配する場合、圧縮率が高くなる。
実施例による送信装置は、ポイントクラウドデータが図29に示した方法により分割された場合、それをシグナリング情報(例えば、attribute_range_based_slice_partition)によりシグナリングして送信装置に送信する。
図30は実施例による重畳スライス分割方法を示す。
図30に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図30は実施例による重畳スライス分割方法のうちの一実施例であるモートンコード(Morton code)基盤の重畳スライス構成方法を示す。図30に示したスライス分割方法は図26の分割部26000又はスライス分割実行部26002により行われる。また図27に示したスライス分割方法は図15の空間分割部15001、図16のブリックタイリング部16001により行われる。図30に示した動作は例えば、図12のデータ入力部12000により行われる。
実施例によるモートンコード基盤の重畳スライス構成方法は、図30に示したように、一つのタイル内のポイントのモートンコードを導き出し、導き出されたモートンコードに基づいて一つ又はそれ以上のスライスを構成する方法を意味する。実施例によるモートンコードは、実施例による送信装置、例えば、図15の空間分割部15001、図16のブリックタイリング部16001で生成される。
モートンコードはポイントの位置情報(ジオメトリデータ内に存在する)の座標値(例えば、x座標値、y座標値、z座標値)をビット単位でインターリービングして生成されたコードを意味する。実施例によれば、ポイントクラウドデータのポイントはそれぞれ互いに異なるモートンコードを有する。
図30(a)は実施例によるポイントの座標値を用いてモートンコードを生成する数式を示す。実施例によるモートンコードは、例えば、図30(a)の30A00に示したように、ポイントの座標値を2進数に変更する段階、及び/又は図30(a)の30A01に示したように、2進数で表された座標値のビットをインターリービングする段階を含む。
図30(a)において、x_k、y_k、z_kはそれぞれx座標値、y座標値及びz座標値のk番目の桁ビットを意味する。図30(a)において、Nは2進数で表された座標値の総桁数を意味する。x_i、y_i、z_iは実施例によるポイントクラウドデータのポイントのうち、i番目のポイントを意味する。MC(x,y,z)は実施例による特定のポイントのモートンコードを意味する。Mは実施例によるポイントの座標値の総桁数を意味する。
ポイントクラウドデータ送信装置は、ポイントの座標値のビットをインターリービングしてモートンコードを生成する。例えば、実施例による送信装置は、ポイントの各軸に対する座標値を2進数に変換する動作を行う(30A00)。実施例によるポイントクラウドデータ送信装置は、各軸に対する座標値を順にインターリービングしてモートンコードを生成する(30A01)。
例えば、(3,4,5)の座標値を位置情報として有する第1ポイントをインターリービングすると仮定する。送信装置は第1ポイントの各軸に対する座標値の2進数を導き出すことができる(011,100,101)(30A00)。送信装置は第1ポイントの座標値のx値の最上位ビット(例えば、0)、第1ポイントの座標値のy値の最上位ビット(例えば、1)、第1ポイントの座標値のz値の最上位ビット(例えば、1)を順に配列する(例えば、011)。送信装置は第1ポイントの座標値のx値の2番目の最上位ビット(例えば、1)、第1ポイントの座標値のy値の2番目の最上位ビット(例えば、0)、第1ポイントの座標値のz値の2番目の最上位ビット(例えば、0)を順に配列する(例えば、100)。実施例によるモートンコードは、座標値の1番目の最上位ビットの配列に連続して配置された座標値の2番目の最上位ビットの配列を含む(例えば、011100)。ポイントクラウドデータ送信装置(又はモートンコード生成部)は、第1ポイントの座標値のx値の最下位ビット(例えば、1)、第1ポイントの座標値のy値の最下位ビット(例えば、0)、第1ポイントの座標値のz値の最下位ビット(例えば、1)を順に配列する。実施例によるモートンコードは、座標値の1番目の最上位ビットの配列及び座標値の2番目の最上位ビットの配列に連続して配置された最下位ビットの配列を含む(例えば、011100101)(30A01)。実施例による第1ポイントの2進数で表されたモートンコード(例えば、01110010)は10進数で表されることができる(299)。
実施例による送信装置は、ポイントクラウドデータのポイントをモールトンコード順の探索(Z順探索とも呼ぶ)を用いて、実施例による一つ又はそれ以上のスライスを構成する。モールトンコード順の探索とは、実施例によるポイントの位置情報をモートンコードに変更した時、モートンコードの昇順又は降順の順に探索する方法を意味する。
図30(b)は実施例による送信装置が一つ又はそれ以上のスライスを分割する方法であって、実施例によるポイントのモートンコード(Morton code)を用いた方法を意味する。図30(b)は実施例によるモートンコード基盤の重畳スライス構成方法を示す。
図30(b)に示したモートンコード基盤の重畳スライス構成方法は、ポイントをモートンコード値を基準として昇順又は降順に整列する段階(30B00)、整列されたポイントを最小点の数(minPoint)ないし最大点の数(maxPoint)の範囲を有する個数だけポイントを有するようにスライスに分割する段階(30B01)、及び/又は最小点の数(minPoint)ないし最大点の数(maxPoint)範囲を有する個数だけポイントが存在しないスライスに対して合併及び再分割する段階を含む(30B02)。
実施例による送信装置は、実施例によるモートンコードを導き出す方法から1ポイントごとに一つのモートンコードを生成する(30B00)。実施例による送信装置は、各ポイントに対するモートンコードを昇順或いは降順に整列する。図30(b)の30B00を参照すると、TilePointNumは実施例によるタイル内のポイントの数を意味する。MC_iはi番目のポイントのモートンコードを意味する。sort(MC_i)は実施例によるポイントをモートンコードを基準として昇順整列及び/又は降順整列する関数を意味する。実施例による整列方法(例えば、昇順に整列したか又は降順に整列したかなど)は送信装置が受信装置に送信するシグナリング情報により伝達される。
実施例による送信装置は、実施例による整列されたモートンコードを用いて、一つのスライス内において最小点の数(minimum number of points)ないし最大点の数(maximum number of points)の範囲だけポイントが分布するようにポイントクラウドデータを一つ又はそれ以上のスライスに分割する(30B01)。例えば、実施例による送信装置は、最小点の数(minimum number of points)ないし最大点の数(maximum number of points)の範囲だけ一つのスライス内に含まれるように、スライスにポイントのインデックスを挿入する。
図30(b)の30B01を参照すると、minPointは一つのスライス内に存在する最少のポイントの数を意味し、maxPointは一つのスライス内に存在する最大のポイントの数を意味する。minPoint及びmaxPointは実施例による最小点の数(minimum number of points)及び最大点の数(maximum number of points)を意味する。sliceNは実施例によるN番目のスライスを意味する。例えば、実施例による送信装置はN個のスライスを生成する。
図30(b)の30B02を参照すると、送信装置は生成されたN個のスライスのうちの一部を他のスライスと合併(merge)することができる。送信装置は生成されたN個のスライスのうちの一部を分割(split)(例えば、半分に分割(splitHalf))することができる。例えば、N-1個のスライスは(最大点の数-1)個のポイントを含むスライスである。また、残りの一つのスライスは(最小点の数)より少ない個数のポイントを含むスライスである。残りの一つのスライスは実施例によるN-1個のスライスのうちの一部と合併するか、又は送信装置により分割されてN-1個のスライスのそれぞれに対して合併される。
実施例による送信装置は、ポイントクラウドデータが図30に示した方法に基づいて分割された場合、それをシグナリング情報(例えば、morton_order_based_slice_partition)によりシグナリングして送信装置に送信する。
実施例によれば、モートンコードは3D空間内に存在する全てのポイントを近い距離に基づいて探索する。従って、実施例による送信装置は、モートンコード基盤の重畳スライス構成方法を用いることにより、特定のポイントから近いポイントを少ない演算量で探索することができるという長所がある。
また実施例によるモートンコード基盤の重畳スライス構成方法により、実施例による送信機は、モートンコードを導き出すことにより八分木を用いた空間分割演算に比べて演算実行が非常に速く、空間分割時に重なる空間を最小化することにより効率的なポイントクラウドデータ符号化を図ることができる。
図31は実施例による重畳スライス分割方法を示す。
図31に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図31は実施例による重畳スライス分割方法のうちの一実施例であるタイルごとのスライス構成方法を示す。図31に示したタイルごとの順次入力スライス構成方法は図26の分割部26000又はスライス分割実行部26002により行われる。また図27に示したタイルごとの順次入力スライス構成方法は図15の空間分割部15001、図16のブリックタイリング部16001により行われる。図31に示した動作は例えば、図12のデータ入力部12000により行われる。
実施例によるタイルごとの順次入力スライス構成方法は、図31に示したように、実施例によるポイントクラウドデータを一つ又はそれ以上のタイル単位に分割し、分割されたそれぞれのタイルを一つ又はそれ以上のスライスに分割する方法を意味する。
図31(a)は実施例による送信装置がポイントクラウドデータをタイル単位に分割し、分割されたタイルをスライス単位に分割する動作を示す。
実施例による送信装置は、図31(a)に示したように、ポイントクラウドデータをポイントの数など(又はデータサイズ)に基づいて一つ又はそれ以上のタイルに分割してそれらをバッファーに格納し、バッファーに格納されたタイル内のデータを順に一つ又はそれ以上のスライスに分割して実施例によるエンコーダに伝達する。
従って、実施例による送信装置(又は図15による空間分割部)は、例えば、タイル入力部31A00、タイル構成部31A01、タイル出力部31A02、スライス入力部31A03、スライス構成部31A04及び/又はスライス出力部31A05を含む。
タイル入力部31A00には実施例による得られたポイントクラウドデータが入力される。
タイル構成部31A01は、実施例によるタイル入力部31A00が入力されたポイントクラウドデータを受信して、ポイントクラウドデータを一つ又はそれ以上のタイルに分割する。実施例によるタイル構成部31A01は、まず入力されたタイルが生成されるまでタイルを出力する前に待機31A01aする。
タイル出力部31A02はポイントクラウドデータが分割されて生成された一つ又はそれ以上のタイルを出力する。
スライス入力部31A03は一つのタイルに対するデータを受信してそれらに含まれたポイントが入力される。
スライス構成部31A04はスライス 入力部31A03により入力された一つのタイルに含まれたポイントを用いて一つ又はそれ以上のスライスを生成(又は分割)する。
スライス出力部31A05は生成された一つ又はそれ以上のスライスを出力する。出力されたスライスはスライスごとに実施例によるエンコーダ(符号化器)に伝達される。
実施例による分割された一つ又はそれ以上のスライスは、各々のスライス同士に空間上で重なるか、又は重ならない。
図31(b)は実施例による送信装置がポイントクラウドデータをタイル単位に分割し、分割されたタイルをスライス単位に分割する動作を示す。
実施例による送信装置は、図31(b)に示したように、ポイントクラウドデータをポイントの数など(又はデータサイズ)に基づいて一つ又はそれ以上のタイルに分割してそれらをバッファーに格納し、バッファーに格納されたタイル内のデータを順に一つ又はそれ以上のスライスに分割して実施例によるエンコーダに伝達することができる。
従って、実施例による送信装置(又は図15による空間分割部)は、例えば、タイル入力部31B00、タイル構成部31B01、タイル出力部31B02、スライス入力部31B02、スライス構成部31B03及び/又はスライス出力部31B04を含む。
タイル入力部31B00には実施例による得られたポイントクラウドデータが入力される。
タイル構成部31B01は実施例によるタイル入力部31B00に入力されたポイントクラウドデータを受信してポイントクラウドデータを一つ又はそれ以上のタイルに分割する。
タイル出力部又はスライス入力部31A02には、ポイントクラウドデータが分割されて生成された一つ又はそれ以上のタイルを生成し、それらに含まれたポイントに関するデータが入力される。
スライス構成部31B03はスライス入力部31A02により入力された一つのタイルに含まれたポイントを用いて一つ又はそれ以上のスライスを生成(又は分割)する。
スライス出力部31B04は生成された一つ又はそれ以上のスライスを出力する。出力されたスライスはスライスごとに実施例によるエンコーダ(符号化器)に伝達される。
実施例による分割された一つ又はそれ以上のスライスは各スライス同士に空間上で重なるか、又は重ならない。
実施例による送信装置は、図31(b)のように、ポイントクラウドデータを一つ又はそれ以上のスライスに分割することにより、実施例による送信装置がタイサイズごとにタイルを構成する間に、他のタイルに対して別途にスライスが分割されることができる。従って、図31(b)のような構成により、送信装置は効率的にポイントを複数のスライスに迅速に分割することができる。
実施例による送信装置は、ポイントクラウドデータが図30に示した方法に基づいて分割された場合、それらをシグナリング情報(例えば、sequential_input_slice_configuration_in_tile)によりシグナリングして送信装置に送信することができる。
図32は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上のスライスに分割するか否かを決定する動作を示す。
図32に示した分割有無を決定する動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図32に示した動作は、実施例によるポイントクラウドデータ送信装置、図15に示した空間分割部15001、図16に示したデータ特性調査部16000、ブリックタイリング部16001、分割されたデータ入力部16002、及び図26に示した分割部26000などにより行われる。実施例によるポイントクラウドデータ送信装置(又は空間分割部)は、ポイントクラウドデータを一つ又はそれ以上のスライスに分割する。図32に示した動作は、例えば、図12のデータ入力部12000により行われる。
実施例によるポイントクラウドデータ送信装置は、実施例による分割(分配)が行われる前に、スライスの分割動作が行われる条件を先に確認して分割動作の実行有無を確認する。
実施例による送信装置は分割動作が行われる前、ポイントクラウドデータの一つのフレームに含まれたポイントの数が最大ポイントの数(maximum number of points, MaxPointNum)以下であると(Yes)、実施例による送信装置は実施例による分割動作と精製動作(又は合併動作)を除いてすぐ符号化部により符号化を行う(32000a)(Yes)。
実施例による最大ポイントの数(maximum number of points, MaxPointNum)はポイントクラウドデータ送信装置内で所定の情報(値)であるか、又はユーザから入力されて設定された値である。また実施例による最大ポイントの数はポイントクラウドデータの特性に基づいて決定される。実施例による最大ポイントの数はシグナリング情報により実施例による受信装置に伝達されることができる。
実施例による送信装置は、実施例による最大ポイントの数を設定することにより、スライス単位に符号化されるポイントクラウドデータの送信装置のエンコーダの符号化効率を高めることができる。実施例による送信装置は、ポイントクラウドデータの特性に基づいて最大ポイントの数を設定することにより、データの特性に適応的に符号化効率を高めることができる。
従って、一つのスライスに現在挿入されたポイントの数を確認する段階32000aを含む。
実施例によるポイントクラウドデータ送信装置(又は空間分割部)は、もし該当スライス内に現在挿入されたポイントの数が最大ポイントの数(maximum number of points, MaxPointNum)より多いこともある。この場合、実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを分割32001及び/又は実施例によるポイントクラウドデータを精製32002することができる。
実施例によるポイントクラウドデータ送信装置(又は空間分割部)は、もし該当スライス内に現在挿入されたポイントの数が最大ポイントの数(maximum number of points, MaxPointNum)より少ないこともある。この場合、実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを分割32001又は精製32002せず、実施例による符号化器により符号化される。
ポイントクラウドデータを分割32001する動作は、図15ないし図31で説明したポイントクラウドデータ(又はタイル内のポイント)を分割する動作を意味する。ポイントクラウドデータ送信装置(又は空間分割部)は、ポイントクラウドデータを分割32001する動作を行うポイントクラウドデータ分割部をさらに含むことができる。
ポイントクラウドデータを精製32002する動作は、実施例による分割されたスライス内のポイントを精製する動作を意味する。ポイントクラウドデータ送信装置(又は空間分割部)は、ポイントクラウドデータを精製32002する動作を行うポイントクラウドデータ精製部をさらに含む。
実施例による精製(refinement)する動作とは、実施例によって一つ又はそれ以上のスライスを合併又は分割(split)動作を意味する。例えば、送信装置はスライスのうちの一部を特定の目的で合併して一つのスライスを生成することができる。同様に、送信装置はスライスのうちの一部をそれぞれ再分割してより多いスライスを生成することができる。実施例による送信装置は精製するために特定のスライスの隣接スライスのポイントの数を確認することができる。
例えば、一つのスライス内にポイントの数が実施例による最大ポイントの数(MaxPointNum)より大きい場合、送信装置は該当スライスを2つ以上のスライスに分割する。他の例として、一つのスライス内にポイントの数が実施例による最小ポイントの数(MinPointNum)より少ない場合、送信装置は該当スライスを隣接する他のスライスと合併する。
例えば、実施例によるポイントクラウドデータ送信装置は、実施例による分割する動作を行った後(即ち、スライス分配が行われた後(after slice partition))、実施例によるMaxPointNumより多いポイントの数を有するスライスを一つ又はそれ以上の下位スライスに分割(split)するか、又は少ないポイントの数を有するスライスを一つのスライスに合併する。
分割(split)とは、実施例による精製する段階の動作の一例であり、ポイントカウント(Asize)がMaxPointNumより大きいと、該当ポイントを含むスライスをn個のパーティション(partition)に分割する。パーティションはスライスであることもできる。例えば、n=ceil(Asize/MaxPointNum)である。
合併とは、一つのスライス内のポイントクラウドデータのポイントの数がMinPointNumより少ないと、該当スライスの以前のスライス(prior slice)又は次のスライス(next slice)と合併することができる。以前のスライスは該当スライスよりスライスのインデックスが1だけ小さいスライスを意味し、次のスライスは該当スライスよりスライスのインデックスが1だけ大きいスライスを意味する。
合併は例えば、以下の動作に基づいて行われる。
1)該当スライス(current slice)が最初のスライス(first slice)である場合、合併しようとするスライスの方向(direction of merging)は、次のスライス(next slice)の方向である。
2)該当スライス(current slice)が最後のスライス(end slice)である場合、合併しようとするスライスの方向(direction of merging)は、以前のスライス(prior slice)の方向である。
3)該当スライス(current slice)が最初のスライス(first slice)でもなく、最後のスライス(end slice)でもない場合もある。該当スライス(current slice)と以前のスライス(prior slice)のポイントの和をSumFront、該当スライス(current slice)と次のスライス(next slice)のポイントの和をSumNextとすると、
a)もし(SumFront>MaxPointNumであり、SumNext>MaxPointNum)であるか、又は(SumFront<MaxPointNum and SumNext<MaxPointNum)であると、合併しようとするスライスの方向(direction of merging)は、ポイントがより多いスライスと合併する方向である。
b)もし上記a)の場合ではないと、合併しようとするスライスの方向(direction of merging)は、ポイントがより少ないスライスと合併する方向である。
実施例による送信装置は、合併後に合併されたスライスを全てトラバースし(traverse)、SubMergedとMaxPointNumを比較する(SubMergedは合併されたスライスのポイントの数を示す)。もし、SubMerged<MinPointNumであると、送信装置は該当スライスの合併を実行し続ける。もし、SubMerged>MaxPointNumであると、送信装置はMaxPointNumの間隙で合併されたスライスを分割(split)する。もし、MinPointNum<SumMerged<MaxPointNumであると、送信装置は該当スライスを維持して、次のスライスを確認する。
図32に示した動作を疑似コード(Pseudo Code)で示すと、以下の通りである。
std::vector<Partition> curSlices;
switch (params→partition.method || inputPointCloud.getPointCount()
<params→partition.sliceMaxPoints) {
case PartitionMethod::kNone:
return 1
case PartitionMethod::kUniformGeom:
partitionByUniformGeom()
case PartitionMethod::kOctreeUniform:
partitionByOctreeDepth()
params→partition.methodは実施例による分割動作の分割方法を示す。分割方法は図26ないし図31で説明した方法のうちのいずれかである。
inputPointCloud.getPointCount()は実施例によるポイントクラウドデータのポイントの数を返還する方式(method)を意味する。
params→partition.sliceMaxPointsは一つのスライス(又はタイル)内に含まれる最大ポイントの数を意味する。即ち、疑似コードを参照すると、入力されたポイントクラウドデータのポイントの数がparams→partition.sliceMaxPoints(又はMaxPointNum)より少ないと、疑似コードに示したように、partitionByUniform()とpartitionByOctreeDepth()を行わず、単一のスライスが出力される。また、疑似コードを参照すると、入力されたポイントクラウドデータのポイントの数がparams→partition.sliceMaxPointsより多いと、partitionByUniform()及びpartitionByOctreeDepth()のうちのいずれかの構文を行うことにより、実施例によるポイントクラウドデータを分割する動作を行うことができる。例えば、分割動作が図19に示したユニフォーム-ジオメトリパーティション(Uniform-Geometry partition along the longest edge)のスライスパーティション構成(slice partition scheme)に基づいて行われる場合にシグナリングされた場合であれば(params→partition.method == PartitionMethod::kUniformGeom)、このパーティション構成に基づいて分配が行われる(partitionByUniformGeom())。例えば、分割動作が図19に示したユニフォーム-ジオメトリ分配(Uniform-Geometry partitioning Using Octree)のスライスパーティション構成(Slice partition scheme)に基づいて行われる場合にシグナリングされた場合であれば(params→partition.method==PartitionMethod::kOctreeUniform)、このパーティション構成に基づいて分配が行われる(partitionByOctreeDepth())。
従って、実施例によるポイントクラウドデータ送受信装置は、最大ポイントの数(maximum number of points, MaxPointNum)に基づいてデータ分割及び/又はデータ精製を行うか否かを決定する。ポイントクラウドデータのポイントの数が一定の値より少ない場合は、別のポイントを分割又は併合する別の過程を行わず、迅速にポイントを圧縮又は復号できるという効果がある。
同様に、ポイントクラウドデータのポイントの数が一定の値より多い場合は、符号化/復号性能を向上させるために効率的なデータの単位で処理するために、データ分割及び/又はデータ精製などの動作をさらに行う。
実施例による最大ポイント数の値(MaxPointNum)はユーザから入力される。
実施例による最大ポイント数の値(MaxPointNum)はシステム設定により生成される。
実施例による最大ポイント数の値(MaxPointNum)はパラメータ情報としてポイントクラウドビットストリーム(図38を参照)内に含まれて送信される。
実施例による送信装置は上記疑似コードに限られず、図26ないし図31で説明した分割方法に基づいて実施例による分割方法を行うことができる。
図33は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上のスライスに分割する動作を示す。
図33に示した分割する動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化18001、送信部18002、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
実施例による送信装置(又は送信装置に含まれた空間分割部)が実施例による分割方法によって分割を行う場合、先に分割する対象が指定される。実施例による分割しようとする対象は様々なデータである。
実施例による入力されたポイントクラウドデータは、量子化(quantization)が行われていないポイントクラウドデータが分割部に入力されるか、或いは量子化されたポイントクラウドデータが分割部に入力される。実施例による入力されたポイントクラウドデータは、ポイントクラウドデータにオフセットが適用された、或いは適用されていないポイントクラウドデータが分割部に入力されてもよい。
よって、実施例によるポイントクラウドデータ送信装置(又は分割部)は、ポイントクラウドデータを分割する前に、ポイントクラウドデータを量子化する動作をさらに行う。ポイントクラウドデータ送信装置(又は空間分割部)は、ポイントクラウドデータを量子化する動作を行うポイントクラウドデータ量子化部33000をさらに含む。
実施例によるポイントクラウドデータ送信装置(又は分割部)は、ポイントクラウドデータを量子化せず、実施例による一つ又はそれ以上のスライスに分割することができる。
実施例によるポイントクラウドデータ送信装置(又は分割部)は、実施例による量子化動作を行ったか否かを示すシグナリング情報を生成及び送信する。よって、実施例によるポイントクラウドデータ受信装置は、実施例による量子化動作を行ったか否かを示すシグナリング情報に基づいて実施例による復号を行うことができる。
実施例によるポイントクラウドデータ量子化部33000は、図4に示した量子化部(Quantize and Remove Points(Voxelize)、40001)の動作の一部又全部を行う。例えば、量子化部33000は量子化されたポイントを再構成するために量子化された位置に基づいてボクセル化(voxelization)を行う。
ポイントの位置は符号化(圧縮)される前に、負数ではないdビットの整数として内部的に表される。実施例による送信装置(又は量子化部, 33000)が実施例による整数を得るために、内部座標システム内のポイント位置(point positions)を丸めることができる。X_n^inTを内部座標システム内のポイント位置とすると、負数ではないdビットの整数の表現は以下の通りである。Round()はベクトルの要素(components)を最も近接する整数に丸める関数である。
実施例によれば、送信装置(又は量子化部、33000)がポイントクラウドデータを量子化すると、同じ位置に複数のポイントが存在し得るが、かかる複数のポイントを二重ポイント(duplicate points)といえる。かかる二重ポイントを除去する過程は、送信装置(又は量子化部、33000)により任意に行われる。もし二重のポイントを送信装置(又は量子化部、33000)が除去する場合、送信装置(又は量子化部、33000)は同一に量子化された座標を有するポイントを除去することができる。実施例による二重ポイントを送信装置が検出するために、STLセットデータ構造が利用(活用)される。
実施例による量子化部33000により、同じ量子化位置及び異なる特質データを有するポイントが一つのポイントに合併される。
実施例による量子化部33000が実施例による量子化を行う動作、二重の(duplicate)ポイントを除去する動作及び/又は残りのポイントに対して特質データを割り当てる動作の全部又は一部は、ボクセル化(voxelization)とも呼ばれる。実施例によれば、ボクセル化は、ポイントを一つ又はそれ以上のボクセル内にグルーピング(grouping)する過程を意味する。実施例によるボクセルのセットは、0ないし2^d-1の値を有する整数i、j及びkに対して[i-0.5,i+0.5)x[j-0.5,j+0.5)x[k-0.5,k+0.5)の範囲を満たす単位キューブ(unit cube)である。実施例によれば、1ボクセル内の全てのポイントの位置はボクセルの中心に量子化され、該当ボクセル内の全てのポイントの特質データは結合又は平均化されて該当ボクセル内に割り当てられる。実施例によれば、ボクセル内の如何なるポイントクラウドデータのポイントが存在すると、該当ボクセルは占有されたと言われる。
実施例によるポイントクラウドデータ分割部33001及びポイントクラウドデータ精製部33002は、図32で説明したポイントクラウドデータ分割部32001及びポイントクラウドデータ精製部32002を意味する。実施例による図33の動作を疑似コード(Pseudo Code)で表すと、以下の通りである。
quantizedInputCloud=quantization(inputPointCloud)
switch(params→partition.method)
refineSlices(quantizedInputCloud)
実施例によるポイントクラウドデータ送信装置は、符号化過程においてデータ量子化、データ分割部、及びデータ精製部などの動作を行う。
実施例によるポイントクラウドデータ送信装置は、データのタイプ、属性などによる効率的な圧縮性能のために、データ量子化33000の動作をスキップしてもよい。またデータ量子化動作の実行有無に関する情報をシグナリング情報としてビットストリーム(図38を参照)内に含ませて送信することができる。実施例によるポイントクラウドデータ受信装置は、ビットストリーム内に含まれた情報に基づいてデータ量子化の実行有無を確認し、送信側の逆過程によりポイントクラウドデータを低遅延に復元することができる。
実施例によれば、quantization(inputPointCloud)は、実施例によるポイントクラウドデータを実施例による量子化部33000が量子化する動作を意味する。
switch(param→partition.method)は、実施例による量子化されたポイントクラウドデータを分割する動作を意味する。例えば、switch(param→partition.method)は、量子化されたポイントクラウドデータをスライス分配(slice partitioning)方法によって一つ又はそれ以上のスライスに分割することを示す。量子化されたポイントクラウドデータを分割する動作は、図32で説明した動作を意味する。
refineSlices(quantizedInputCloud)は、実施例による送信装置が、switch(param→partition.method)構文により分割されたポイントクラウドデータを精製(refinement)する動作を示す。ポイントクラウドデータを精製する動作は、図33で説明した動作を意味する。
図34は実施例によるポイントクラウドデコーダを示す。
図34に示した分割する動作は、図1の受信装置10004、受信部10005、ポイントクラウドビデオデコーダ10006、図2の復号18003、送信部18002、図10及び図11のデコーダ、図13の受信装置、及び図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
実施例によるポイントクラウドデコーダ34000は幾何情報復号化部34001及び/又は属性情報復号化部34002を含む。実施例によれば、ポイントクラウドデコーダはPCC復号化器、PCC復号化部、ポイントクラウド復号化器、ポイントクラウド復号化部、PCCデコーダなどとも呼ばれる。
幾何情報復号化部34001はポイントクラウドデータの幾何情報ビットストリーム34000aを受信する。幾何情報復号化部34001はポイントクラウドデータの幾何情報ビットストリーム34000aを復号化(復号)して復元されたポイントクラウドデータ34000cの特質情報を出力する。幾何情報復号化部34001は幾何情報ビットストリームをジオメトリ情報で再構成して復元された幾何情報34001を出力する。幾何情報ビットストリーム34000aは図15の幾何情報ビットストリーム、ジオメトリビットストリームを意味する。属性情報ビットストリーム34000bは図15の属性情報ビットストリーム、特質ビットストリームを意味する。
幾何情報復号化部34001は入力された幾何情報ビットストリームを復号化して幾何情報を復元する。復元された幾何情報は属性情報復号化部に入力される。属性情報復号化部34002は入力された属性情報ビットストリームと幾何情報復号化部から入力された復元された幾何情報が入力された属性情報を復元する。復元された幾何情報は図11で説明したジオメトリ再構成部(reconstruct geometry)11003により再構成されたジオメトリを意味する。復元された幾何情報は図13で説明した占有コード基盤の八分木再構成処理部13003により再構成された八分木占有コードを意味することもできる。
幾何情報復号化部34001は実施例による受信装置が受信した幾何情報ビットストリームを受信する。幾何情報復号化部34001は幾何情報ビットストリームを復号化することができる。
幾何情報復号化部34001は図1のポイントクラウドビデオデコーダの動作、図2の復号20003、図10のジオメトリデコーダの動作、図11で説明した演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び/又は座標系逆変換部11004の動作の全部/一部を行う。
属性情報復号化部34002はポイントクラウドデータの属性情報ビットストリーム34000bを受信する。属性情報復号化部34002はポイントクラウドデータの属性情報ビットストリーム34000bを復号化(復号)して復元されたポイントクラウドデータ34000cの特質情報を出力する。属性情報復号化部34002は幾何情報復号化部34001により生成された復元された幾何情報34001aに基づいて属性情報ビットストリームを復号化(復号)する。
属性情報復号化部34002は実施例による受信装置が受信した属性情報ビットストリームを受信する。属性情報復号化部は復元された幾何情報に基づいて属性情報ビットストリームの属性情報を復号化する。ポイントクラウドデータに含まれた幾何情報及び/又は属性情報は復号化されて復元されたPCCデータであり得る。
属性情報復号化部34002は図1のポイントクラウドビデオデコーダ、図2の復号20003の動作、図10で説明した特質デコーダ(attribute decoder)の動作、図11の逆量子化部11006、RAHT11007、LOD生成部11008、逆リフト部11009及び/又は色相逆変換部11010の動作、図13で説明した演算デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009、色相逆変換処理部13010及び/又はレンダラー13011の動作の一部又は全部を行う。
図35は実施例によるポイントクラウドデコーダを示す。
図35に示した実施例によるポイントクラウドデータデコーダの一部又は全部は、図1の受信装置10004、受信部10005、ポイントクラウドビデオデコーダ10006、図2の復号18003、送信部18002、図10及び図11のデコーダ、図13の受信装置、図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図35の実施例によるポイントクラウドデコーダは図34の実施例によるポイントクラウドデータデコーダ34000を意味する。実施例によるポイントクラウドデコーダは受信部35000、分割されたデータ入力部35001、第1演算デコーダ35002、占有コード基盤の八分木再構成処理部35003、表面モデル処理部35004、ジオメトリ再構成部35005、座標逆変換部35006、第2演算デコーダ35007、逆量子化処理部35008、予測/リフト/RAHT逆変換処理部35009、属性再構成部35010、色相逆変換部35011及び/又はポイント結合部35012を含む。
図35に示した実施例によるポイントクラウドデータデコーダの構成要素はブリック単位で行われ、ブリック単位で独立的に行われることもできる。
受信部35000は実施例によるポイントクラウドデータを含むビットストリームを受信する。受信部35000は受信したビットストリームを分割されたデータ入力部35001に送信する。受信部35000は図1の受信10007、図2の送信20002、図13の受信部13000の動作を行う。
分割されたデータ入力部35001は実施例によるポイントクラウドデータを含むビットストリームをブリック単位で受信し、ブリック単位で復号を行うために、ブリック単位でポイントクラウドデータのジオメトリビットストリームと属性ビットストリームを出力する。分割されたデータ入力部35001はブリック単位のジオメトリビットストリームを第1演算デコーダ35002に送信し、ブリック単位の属性ビットストリームを第2演算デコーダ35002に送信する。
分割されたデータ入力部35001は、受信部35000により受信したビットストリームに含まれた、ブリック単位に符号化されたことを示すシグナリング情報(例えば、bistream_brick_decoding_flag)が存在する場合(又はブリック単位に符号化されたことを指示する場合)、実施例によるポイントクラウドデータ受信装置は受信ビットストリームに対してN回の復号動作が行われる。分割されたデータ入力部35001は図1の受信10007、図2の送信20002、図13の受信処理部13001の動作を行う。
第1演算デコーダ35002はブリック単位にジオメトリビットストリームを受信する。第1演算デコーダ35002はジオメトリビットストリームを復号化する。第1演算デコーダ35002は復号化されたジオメトリ情報を出力する。
第1演算デコーダ35002は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の演算復号部11000、図13の演算デコーダ13002の動作を行う。
占有コード基盤の八分木再構成処理部35003は復号化されたジオメトリ情報を受信する。占有コード基盤の八分木再構成処理部35003はブリック単位のジオメトリビットストリームに基づいて占有(occupancy)基盤の八分木(octree)を再構成する。占有コード基盤の八分木再構成処理部35003は再構成された八分木を表面モデル処理部29004に送信する。
占有コード基盤の八分木再構成処理部35003は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の八分木分析部11001、図13の占有コード基盤の八分木再構成処理部13003の動作を行う。
表面モデル処理部35004は第1演算デコーダ35002により復号されたジオメトリ情報及び/又は占有コード基盤の八分木再構成処理部35003により再構成された八分木に基づいてジオメトリ情報の表面モデル処理を行う。ジオメトリ情報の表面モデル処理は、例えば、三角形再構成動作、アップ-サンプリング動作、ボクセル化動作を含む。
表面モデル処理部35004は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の表面近似分析部11002、図13の表面モデル処理部13004の動作を行う。
ジオメトリ再構成部35005は、表面モデル処理部35004により表面モデル処理されたジオメトリ情報を受信する。ジオメトリ再構成部は表面モデル処理されたジオメトリ情報を再構成する。ジオメトリ再構成部35005は再構成されたジオメトリ情報を予測/リフト/RAHT逆変換処理部35009及び/又は座標逆変換部35006に送信する。
ジオメトリ再構成部35005は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11のジオメトリ再構成部11003の動作を行う。
座標逆変換部35006はジオメトリ再構成部35005により生成されたジオメトリ情報の座標情報を逆変換する。座標逆変換部35006はジオメトリ情報を逆変換してポイントクラウドデータのポイントの位置情報を出力する。座標逆変換部35006はポイントの位置情報をポイント結合部35012に送信する。
座標逆変換部35006は該当ポイントに対応するブリックに対してジオメトリ復号が行われたことを示す情報を分割されたデータ入力部35001に送信する。
座標逆変換部35006は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の座標逆変換部11004の動作を行う。
第2演算デコーダ35007はブリック単位にジオメトリビットストリームを受信する。第2演算デコーダ35007は属性ビットストリーム(特質ビットストリーム)を復号化する。第2演算デコーダ35007は復号化された特質情報を出力する。
第2演算デコーダ35007は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の演算復号11005、図13の演算デコーダ13007の動作を行う。
逆量子化処理部35008は第2演算デコーダ35007により生成された復号化された特質情報を受信する。逆量子化処理部35008は受信した復号化された特質情報を逆量子化する。逆量子化処理部35008は逆量子化された特質情報を出力し、逆量子化された特質情報を予測/リフト/RAHT逆変換処理部35009に送信する。
逆量子化処理部35008は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の逆量子化部11006、図13の演算デコーダ13007の動作を行う。
予測/リフト/RAHT逆変換処理部35009は、逆量子化処理部35008により逆量子化されたジオメトリ情報を受信して、それらを逆変換する。予測/リフト/RAHT逆変換処理部35009は逆量子化された特質情報を予測方法(Prediction)、リフト方法(lifting)、RAHT方法のうちのいずれかに基づいて逆変換する。予測/リフト/RAHT逆変換処理部35009はジオメトリ再構成部35005により再構成されたジオメトリ情報(又は復元されたジオメトリ情報)に基づいて特質情報を逆変換する。
予測/リフト/RAHT逆変換処理部35009は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11のRAHT11007、LOD生成部11008、逆リフト部11009の動作を行う。
属性再構成部35010は予測/リフト/RAHT逆変換処理部29009により逆変換された特質情報に基づいて属性情報を再構成する。属性再構成部は再構成された属性情報を出力し、それを色相逆変換処理部35011に送信する。
属性再構成部35010は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の色相逆変換部11010、図13の色相逆変換処理部13010の動作を行う。
色相逆変換部35011は属性再構成部35010により再構成されたジオメトリ情報を受信する。色相逆変換部35011は再構成されたジオメトリ情報を色相逆変換する。色相逆変換部35011はポイントクラウドデータのポイントの属性情報を出力する。
色相逆変換部35006は該当ポイントに対応するブリックに対して特質復号が行われたことを示す情報を分割されたデータ入力部35001に送信する。属性再構成部35010は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の色相逆変換部11010、図13の色相逆変換処理部13010の動作を行う。
ポイント結合部35012は実施例によるポイントクラウドデータのポイントのジオメトリ情報(位置情報)及び/又はポイントの特質情報(属性情報)を受信する。ポイント結合部35012はブリック単位のポイントクラウドデータのポイントのジオメトリ情報(位置情報)及び/又はポイントの特質情報(属性情報)を受信し、これらをブリック単位に結合する。ポイント結合部35012はポイントの位置情報と属性情報を含むブリック単位のポイントクラウドデータを出力する。
図36は実施例によるポイントクラウドデータ受信装置を示す。
実施例によるポイントクラウドデータ受信装置36000は、実施例によるポイントクラウドデータ復号化器36002、又はデコーダ)を含む。
図35に示した実施例によるポイントクラウドデータ受信装置の一部又は全部は、図1の受信装置10004、受信部10005、ポイントクラウドビデオデコーダ10006、図2の復号18003、送信部18002、図10及び図11のデコーダ、図13の受信装置、図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
ポイントクラウドデータ受信装置36000は、スライスごとに符号化されたポイントクラウドデータを含むビットストリーム36001を受信する。ビットストリーム36001は各スライス内に含まれたポイントに関するジオメトリ情報及び/又は特質情報を含む。ビットストリーム36001は実施例によるポイントクラウドデータデコーダ36002から入力される。
実施例によるビットストリーム36001はポイントクラウドデータが一つ又はそれ以上のタイル及び/又はスライスに分割されたデータである。実施例によるスライスは図21ないし図31で説明したように分割されたスライスを意味する。
実施例によるデコーダ36002は、ビットストリーム36001内に含まれたジオメトリビットストリームと特質ビットストリームをそれぞれ復号化する。実施例によるデコーダ36002は、送信装置からシグナリングされた実施例による分割方法を示す情報、又は重畳スライス分割方法を示す情報に基づいて復号を行う。
図37は実施例によるポイントクラウドデコーダのポイント結合部を示す。
図37に示した実施例によるポイント結合部37000の一部又は全部は、図1の受信装置10004、受信部10005、ポイントクラウドビデオデコーダ10006、図2の復号18003、送信部18002、図10及び図11のデコーダ、図13の受信装置、図14のXRデバイス1430などにより結合されて行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
ポイント結合部3700を示す。ポイント結合部37000はポイントのジオメトリ情報37000a及び/又はポイントの特質情報37000bを受信する。ポイント結合部37000は受信したポイントのジオメトリ情報37000a及びポイントの特質情報37000bを結合してポイントクラウドデータ37000cを出力する。ポイント結合部37000は結合実行部37001を含む。
結合実行部37001はブリック又はタイルごとにポイントのジオメトリ情報及びポイントの特質情報を受信する。ポイント結合部37000はブリック又はタイルごとにポイントのジオメトリ情報及びポイントの特質情報を受信して、それらを結合方法に基づいて結合する。
実施例による結合方法は、多重化、MVCビット列結合、順次結合、重要度基盤の結合などの方法のうちのいずれかの逆過程に基づく動作を意味する。実施例によるポイントクラウドデコーダはポイントの位置値(ジオメトリ情報)とポイントの属性値(特質情報)がそれぞれ復号化されると、どの結合方法を使用して位置値と属性値の結合を行うかを決定する。
実施例による結合実行部37001は、一つの位置値(ジオメトリ情報)に一つの属性値(特質情報)を1:1マッピングすることができる。実施例による結合実行部37001は、一つの位置値(ジオメトリ情報)に一つの属性値(特質情報)を1:1マッピングできない場合は、損失結合方法を使用する。例えば、特定の位置値(ジオメトリ情報)に存在した属性値(特質情報)は存在せず、一つの位置値に複数の属性値が存在することができる。実施例による損失結合方法は、複数の特質情報がマッピングされる場合には、重複属性値表示(duplicated_attribute_index)によりポイントの情報を構成することができる。
実施例によるポイントクラウドデコーダ(例えば、ポイント結合部37000、結合実行部37001)は、ポイントクラウドデータ受信装置が受信するビットストリーム内に含まれた、結合方法を示す情報(例えば、combining_filter_index)に基づいてポイントのジオメトリ情報とポイントの特質情報を結合することができる。
ポイントのジオメトリ情報37000aは実施例によるポイントクラウドデコーダが復号化したジオメトリビットストリームを意味する。ポイントジオメトリ情報37000aは図29の座標逆変換部29006で出力されるポイントのジオメトリ情報、図28の幾何情報復号化部28001で出力された復号化されたジオメトリ情報を意味する。
ポイントの特質情報37000bは実施例によるポイントクラウドデコーダが復号化した特質ビットストリームを意味する。ポイント特質情報37000bは図35の色相逆変換処理部35011で出力されるポイントの特質情報、図34の属性情報復号化部34002で出力された復号化された特質情報を意味する。
図38は実施例によるポイントクラウドデータのビットストリーム構造の一例を示す。
図38は実施例によるポイントクラウドデータのビットストリーム構造38000の一例である。図38に示したポイントクラウドデータのビットストリーム構造38000は、実施例による送信装置の図1の送信機10003、図2の送信部18002、図12の送信処理部12012、図16のビットストリーム結合部16014、図17のビットストリーム結合部17000で生成される。
図38に示したポイントクラウドデータのビットストリーム構造38000は、実施例による受信装置の図1の受信部10005、図2の復号部18003、図13の受信部13000、図35の受信部35000で受信するビットストリームである。図38に示したポイントクラウドデータのビットストリーム構造38000は、図36のスライスごとのジオメトリと属性ビットストリーム36001を意味する。
図38に示した実施例によるビットストリーム構造38000の一部又は全部は、図14のXRデバイス1430により生成される。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
実施例によるポイントクラウドデータ送信装置は、図31に示すようなビットストリーム構造を有するビットストリーム38000を送信する。ポイントクラウドデータのビットストリーム38000は、SPS(Sequential Parameter Set)38001、GPS(Geometry Parameter Set)38002、APS(Attribute Parameter Set)38003、TPS(Tile Parameter Set)38004及び一つ又はそれ以上のスライス(slice 0、slice 1 …slice n)38004を含む。ポイントクラウドデータのビットストリーム38000は一つ又はそれ以上のタイルを含む。実施例によるタイルは一つ又はそれ以上のスライスを含むスライスのグループである。実施例によるビットストリーム38000はポイントクラウドデータを領域ごとに分けて処理できるようにタイル又はスライスを提供する。実施例によるビットストリーム38000のそれぞれの領域は互いに異なる重要度を有する。従って、ポイントクラウドデータはタイルに分かれる場合、(各)タイルごとに異なるフィルタ(符号化方法)、異なるフィルタユニットを適用することができる。ポイントクラウドはスライスに分かれる場合、(各)スライスごとに異なるフィルタ、異なるフィルタユニットを適用することができる。
実施例によるポイントクラウドデータ送信装置は、図31のようなビットストリーム38000の構造によってポイントクラウドデータを送信することにより、重要度によって異なる符号化動作を適用し、高品質の符号化方法を重要な領域に使用する方案を提供することができる。
実施例によるポイントクラウドデータ受信装置は、受信装置の処理能力(capacity)によってポイントクラウドデータの全体に複雑な復号化(フィルタリング)方法を使用する代わりに、領域ごとに(タイルに分かれたか又はスライスに分かれた領域)互いに異なるフィルタリング(復号化方法)を適用することにより、ユーザに重要な領域により良質の画質とシステム上適切な遅延(latency)を保障することができる。
SPS(Sequence Parameter Set)38001は、それぞれのスライスセグメントヘッダ(slice segment header)内のシンタックスエレメント(syntax element)により参照されるPPS内のシンタックスエレメントのコンテンツにより決定される0個又はそれ以上の全体CVSに適用されるシンタックスエレメントを含むシンタックス構造である(A syntax structure containing syntax elements that apply to zero or more entire CVSs as determined by the content of a syntax element found in the PPS referred to by a syntax element found in each slice segment header)。SPSは実施例によるポイントクラウドデータビットストリームのシーケンス情報を含む。
GPS(Geometry Parameter Set)38002は、0個又はそれ以上の全体ジオメトリ(又は符号化されたジオメトリ)が適用されるシンタックスエレメント(syntax elements)を含むシンタックス構造(syntax structure)を意味する。実施例によるGPS38002は、一つ又はそれ以上のスライス38004に含まれたポイントクラウドデータの特質(属性)情報を符号化する方法に関する情報を含む。GPS38002は実施例によるどのSPS38001に関連するジオメトリパラメータを含むかを示すSPS識別子情報、該当GPSを識別するGPS識別子情報を含む。
APS(Attribute Parameter Set)38003は、0個又はそれ以上の全体特質(又は符号化された特質)が適用されるシンタックスエレメントを含むシンタックス構造を意味する。実施例によるAPS38003は、一つ又はそれ以上のスライス38004に含まれたポイントクラウドデータの特質(属性)情報を符号化する方法に関する情報を含む。APS38003は実施例によるどのSPS38001に関連するジオメトリパラメータを含むかを示すSPS識別子情報、該当APSを識別するGPS識別子情報を含む。
TPS(Tile Parameter Set)38004は、0個又はそれ以上の全体タイル(又は符号化されたタイル)が適用されるシンタックスエレメントを含むシンタックス構造を意味する。タイルインベントリーは実施例によるポイントクラウドデータビットストリームに含まれた0個又はそれ以上のタイルに関する情報を含む。タイルインベントリーは実施例によってTPS(Tile Parameter Set)とも呼ばれる。
TPS(Tile Parameter Set)38004は、一つ又はそれ以上のタイルを識別する識別子情報及び一つ又はそれ以上のタイルの範囲(即ち、タイルの境界ボックス)を示す情報を含む。一つ又はそれ以上のタイルの範囲(即ち、タイルの境界ボックス)を示す情報は、該当タイルが示す境界ボックスの基準となる点の座標情報(例えば、Tile(n).tile_bounding_box_xyz0)及び該当境界ボックスの幅、高さ及び深さに関する情報(例えば、Tile(n).tile_boudning_box_whd)を含む。複数のタイルが存在する場合、タイルインベントリー(Tile Inventory)33004はタイルのそれぞれに対する境界ボックスを示す情報を含む。例えば、各タイルがタイルの識別子情報によって0ないしnで表現される場合、各タイルの境界ボックスを示す情報は、Tile(0).tile_bounding_box_xyz0、Tile(0).tile_bounding_box_whd、Tile(1).tile_bounding_box_xyz0、Tile(1).tile_bounding_box_whd…などのように表現される。
スライス38004は実施例によるポイントクラウドデータの送信装置がポイントクラウドデータを符号化するための単位を意味する。実施例によるスライス38004は一つのジオメトリビットストリーム(Geom00)38004a及び一つ又はそれ以上の特質ビットストリーム(Attr00、Attr10)38004b、38004bを含む単位を意味する。
スライス38004は該当スライス内に含まれたポイントクラウドデータのジオメトリ情報を示すジオメトリスライス(Geometry slice、Geom)38004a及び該当スライス内に含まれたポイントクラウドデータの特質情報を示す一つ又はそれ以上の特質スライス(Attribute slice、Attr)38004b、38004cを含む。
ジオメトリスライス(Geometry slice、Geom)38004aはポイントクラウドデータのジオメトリ情報を含むジオメトリスライスデータ(Geometry slice Data、Geom_slice_data)38004a-2及びジオメトリスライスデータに関する情報を含むジオメトリスライスヘッダ(Geometry slice Header、Geom_slice_header、GSH)38004a-1を含む。
ジオメトリスライスヘッダ38004a-1は該当スライス内のジオメトリスライスデータ38004a-2に関する情報を含む。例えば、ジオメトリスライスヘッダ38004a-1はどのGPS38002が該当スライスのジオメトリ情報を示すかを識別するためのジオメトリパラメータセット識別子(geom_geom_parameter_set_id)、該当ジオメトリスライスを識別するためのジオメトリスライス識別子(geom_slice_id)、該当ジオメトリスライスデータのボックス原点を示すジオメトリボックスオリジン情報(geomBoxOrigin)、ジオメトリスライスのログスケールを示す情報(geom_box_log2_scale)、及び該当ジオメトリスライスのポイントの数に関連する情報(geom_num_points)などを含む。
実施例によるポイントクラウドデータビットストリームが一つ又はそれ以上のタイルを含む場合、実施例によるジオメトリビットストリームのヘッダは該当ジオメトリビットストリームを含むタイルを識別するための情報(geom_tile_id)をさらに含む。
特質スライス(Attribute slice、Attr)38004b、38004cはポイントクラウドデータの特質情報を含む特質スライスデータ(Attribute slice Data、Attr_slice_data)及び特質スライスデータに関する情報を含む特質スライスヘッダ(Attribute slice Header、Attr_slice_header、ASH)33705cを含む。
実施例によれば、ポイントクラウド符号化に必要なパラメータは、ポイントクラウドのパラメータセット及びヘッダ情報として新しく定義される。例えば、属性情報符号化を行う時は、attribute parameter set RBSP syntaxに、タイル基盤の符号化を行う時には、tile_header syntaxなどに追加することができる。
実施例によれば、送信装置は実施例に他の重畳スライスの構成をシグナリングするために、タイルごと又はスライスごとに異なるスライス構成ヘッダユニットを生成することができる。
実施例によるポイントクラウドデータ送受信方法では、かかるビットストリーム構造を提供することにより、受信機をしてポイントクラウドデータの属性情報の復号化性能を上げることができる。
図39は実施例によるビットストリームのSPS(Sequence Parameter Set)を示す。
図39に示すパラメータは図38で説明したSPS(Sequence Parameter Set)内に含まれる。実施例によるSPSは実施例によるスライスの分割(スライス分配)、スライスタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
profile_idcは、H.264標準文書のAnnex Aを満たすビットストリームのプロファイルを示す情報を意味する。profile_idcの他の値はISO/IECにより追って使用できる(indicates a profile to which the bitstream conforms as specified in Annex A. Bitstreams shall not contain values of profile_idc other than those specified in Annex A. Other values of profile_idc are reserved for future use by ISO/IEC.)。
profile_compatibility_flagsが1であると、該当ビットストリームがprofile_idcがAnnex Aによってjであるプロファイルを満たすことを示す。profile_compatibility_flag[j]の値はAnnex Aによって定義された値ではなくjを有する場合、0である(equal to 1、indicates that the bitstream conforms to the profile indicated by profile_idc equal to j as specified in Annex A. The value of profile_compatibility_flag[j] shall be equal to 0 for any value of j that is not specified as an allowed value of profile_idc in Annex A.)。
level_idcは、H.264標準文書のAnnex Aを満たすビットストリームのレベルを示す。ビットストリームはH.264標準文書のAnnex Aに定義された情報とは異なる情報であって、level_idcの値を有さない。Level_idcの他の値はISO/IECにより今後のために残す(indicates a level to which the bitstream conforms as specified in Annex A. Bitstreams may not contain values of level_idc other than those specified in Annex A. Other values of level_idc are reserved for future use by ISO/IEC.)。
sps_bounding_box_present_flagは、境界ボックスオフセットとサイズ情報がシグナリングされる場合、1である(equal to 1 specifies the bounding box offset and size information is signalled. sps_bounding_box_present_flag equal to 0 specifies)。
sps_bounding_box_present_flag)がtrue値を有すると、実施例によるSPSは、sps_bounding_box_offset_x、sps_bounding_box_offset_y、sps_bounding_box_offset_z、sps_bounding_box_scale_factor、sps_bounding_box_size_width、sps_bounding_box_size_height及びsps_bounding_box_size_depthをさらに含む。
sps_bounding_box_offset_xは、直交座標系の原本境界ボックスのxオフセットを示す。該当情報が存在しない場合、このパラメータの値は0である(indicates the x offset of the source bounding box in the cartesian coordinates. When not present、the value of sps_bounding_box_offset_x is inferred to be 0.)。
sps_bounding_box_offset_yは、直交座標系の原本境界ボックスのyオフセットを示す。該当情報が存在しない場合、このパラメータの値は0である(indicates indicates the y offset of the source bounding box in the cartesian coordinates. When not present、the value of sps_bounding_box_offset_y is inferred to be 0.)。
sps_bounding_box_offset_zは、直交座標系の原本境界ボックスのzオフセットを示す。該当情報が存在しない場合、このパラメータの値は0である(indicates indicates the z offset of the source bounding box in the Cartesian coordinates. When not present、the value of sps_bounding_box_offset_x is inferred to be 0.)。
sps_bounding_box_scale_factorは、直交座標系内の原本境界ボックスの倍率を示す。該当情報が存在しない場合、このパラメータの値は1又は0である(indicates the scale factor the source bounding box in the Cartesian coordinates. When not present、the value of sps_bounding_box_scale_factor is inferred to be 1. Indicates. When not present、the value of sps_bounding_box_scale_factor is inferred to be 0.)。
sps_bounding_box_size_widthは、直交座標系内の原本境界ボックスの幅を示す。該当情報が存在しない場合、sps_bounding_box_size_widthの値は10などの特定の値である(indicates the width of the source bounding box in the Cartesian coordinates. … When not present、the value of sps_bounding_box_size_width is inferred to be a specific value (such as 10).)。
sps_bounding_box_size_heightは、直交座標系内の原本境界ボックスの高さを示す。該当情報が存在しない場合、sps_bounding_box_size_heightの値は1又は0である(indicates the height of the source bounding box in the Cartesian coordinates. When not present、the value of sps_bounding_box_size_height is inferred to be 1. When not present、the value of sps_bounding_box_size_hieght is inferred to be 0.)。
sps_bounding_box_size_depthは、直交座標系内の原本境界ボックスの深さを示す。該当情報が存在しない場合、sps_bounding_box_size_heightの値は1又は0である(indicates the depth of the source bounding box in the Cartesian coordinates. When not present、the value of sps_bounding_box_size_depth is inferred to be 1. When not present、the value of sps_bounding_box_size_depth is inferred to be 0.)。
sps_source_scale_factorは、原本ポイントクラウドの倍率を示す(indicates the scale factor of the source point cloud.)。
sps_seq_parameter_set_idは、他のシンタックスエレメントにより参照されるSPSに関するid情報を示す。sps_seq_parameter_set_idは該当バージョンの明細書内の条件を満たす範囲内で0から15の値に定められる。0ではない他の情報であってsps_seq_parameter_set_idはISO/IECにより追って使用できる(Provides an identifier for the SPS for reference by other syntax elements. In The value of SPS_seq_parameter_set_id may be in the range of 0 to 15、inclusive in bitstreams conforming to this version of this Specification. The value other than 0 for sps_seq_parameter_set_id is reserved for future use by ISO/IEC.)。
sps_num_attribute_setsは、ビットストリーム内のコーディングされた属性の数を示す。sps_seq_parameter_set_idは0から64の範囲を有する(indicates the number of coded attributes in the bitstream. The value of sps_num_attribute_sets may be in the range of 0 to 64.)。
実施例によるSPSはsps_num_attribute_setsだけのattribute_dimension[i]、attribute_instance_id[i]、attribute_bitdepth[i]、attribute_cicp_colour_primaries[i]、attribute_cicp_transfer_characteristics[i]、attribute_cicp_matrix_coeffs[i]、attribute_cicp_video_full_range_flag[i]及び/又はknown_attribute_label_flag[i]を含む。
attribute_dimension[i]は、i番目の属性のコンポーネントの数を示す(specifies the number of components of the i-thattribute.)。
attribute_instance_id[i]は、属性インスタンスidを示す(specifies attribute instance id.)。
attribute_bitdepth[i]は、i番目の属性信号のビット深さ(bitdepth)情報を示す(specifies the bitdepth of the i-th attribute signal(s).)。
attribute_cicp_colour_primaries[i]は、色相属性ソースプライマリの色度を示す(indicates the chromaticity coordinates of the colour attribute source primaries.)。
attribute_cicp_transfer_characteristics[i]は、原本入力線形視覚的強度(input linear optical intensity)であるLcと0から1の間の名目実際値とで構成された、色属性の参照光電子的伝達特性関数を示す。又はこのパラメータは出力線形視覚的強度(output linear optical intensity)であるLoと0から1の範囲を有する名目実際値とで構成された、参照光電子的伝達特性関数の逆を示す(either indicates the reference opto-electronic transfer characteristic function of the colour attribute as a function of a source input linear optical intensity Lc with a nominal real-valued range of 0 to 1 or indicates the inverse of the reference electro-optical transfer characteristic function as a function of an output linear optical intensity Lo with a nominal real-valued range of 0 to 1)。
attribute_cicp_matrix_coeffs[i]は、緑色、青色及び赤色(又はY、Z、Xの三原色)のルマ(luma)と彩度(chroma)信号の行列係数を示す(describes the matrix coefficients used in deriving luma and chroma signals from the green、blue、and red、or Y、Z、and X primaries.)。
attribute_cicp_video_full_range_flag[i]は、E’Y、E’PB及びE’PR又はE’R、E’G及びE’B実際値コンポーネント信号から導き出されるブラックレベルとルマ及び彩度信号の範囲を示す(specifies indicates the black level and range of the luma and chroma signals as derived from E’Y、E’PB、and E’PR or E’R、E’G、and E’B real-valued component signals.)。
known_attribute_label_flag[i]が1である場合、i番目の属性に対してknow_attribute_labelがシグナリングされることをを示す。該当パラメータが0である場合は、attribute_label_four_bytesがi番目の属性に対してシグナリングされることを示す(equal to 1 specifies know_attribute_label is signalled for the i-th attribute. known_attribute_label_flag[i] equal to 0 specifies attribute_label_four_bytes is signalled for the i-th attribute.)。
known_attribute_label_flag[i]が1(true)であると、実施例によるSPSはknown_attribute_label[i]をさらに含む。
known_attribute_label[i]が0である場合、属性が色であることを示す。該当パラメータが1である場合、属性は反射率であることを示す。該当パラメータが2である場合は、属性はフレームインデックスであることを示す(equal to 0 specifies the attribute is colour. known_attribute_label[i] equal to 1 specifies the attribute is reflectance. known_attribute_label[i] equal to 2 specifies the attribute is farme index.)。
実施例によるSPSは、partitioning_enabling_flagをさらに含む。
partitioning_enabling_flagは、実施例によるポイントクラウド送信装置がポイントクラウドデータをスライス又はブリック単位に分割を行うか否かを示す情報(又はフラグ)を示す。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001)は、partitioning_enabling_flagに基づいて、受信したビットストリームのポイントクラウドデータがスライス単位に分割されているか否かを判断し、partitioning_enabling_flagに基づいてビットストリーム内のポイントクラウドデータをスライス単位で受信する。
split_recursive_enabling_flagは、実施例によるポイントクラウド送信装置が分割されたスライス又はブリックを再分割したか否かを示す情報(又はフラグ)を示す。
実施例によるSPSはpartitioning_enabling_flagが1(true)であると、split_recursive_enabling_flag、multiple_brick_partitioning_flag、partitioning_unit_size及び/又はpartitioning_type_indexをさらに含む。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001)は、split_recursive_enabling_flagに基づいて、受信したビットストリームのポイントクラウドデータのスライスが細部分割単位に分割されているか否かを判断する。
partitioning_unit_sizeは、実施例によるポイントクラウド送信装置が分割したスライス又はブリックの分割単位を示す情報である。例えば、partitioning_unit_sizeは実施例によるスライス又はブリックの単位サイズを示す。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001)は、partitioning_unit_sizeに基づいて、受信したビットストリームのポイントクラウドデータのスライスの分割単位を判断し、分割単位に該当するビットストリームだけ復号化を行うことができる。
multiple_brick_partitioning_flagは、実施例によるポイントクラウドデータを複数のスライス分割方法に基づいて分割を行うか否かを示す情報(又はフラグ)である。即ち、このパラメータはスライス分割に使用するpartitioning typeを色々な分割方法を使用するかどうかについて知らせる情報である。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001)は、multiple_brick_partitioning_flagに基づいてポイントクラウドデータを一つ又はそれ以上のスライス分割方法に基づいて分割されているか否かを判断する。
partitioning_type_indexは、実施例によるポイントクラウドデータをスライス単位に分割する方法を示す。実施例によるスライス単位に分割する方法は、実施例による点密度基盤のスライス分割方法、実施例による円形セクタースライス分割方法、実施例によるレイヤスライス分割方法、実施例による球形/楕円形領域スライス分割方法、実施例による属性基盤のスライス分割方法、実施例による適応的軸長さ基盤のスライス分割方法を含む。partitioning_type_indexは、例えば、以下のように決定される。
partitioning_type_index=1は点密度基盤のスライス分配(ブリックタイリング)を行ったことを示す。点密度基盤のスライス分配(ブリックタイリング)は図21に示した方法によるスライスの分割を意味する。
partitioning_type_index=2は円形セクタースライス分配(ブリックタイリング)を行ったことを示す。円形セクタースライス分配(ブリックタイリング)は図22に示した方法によるブリックの分割を意味する。
partitioning_type_index=3はレイヤスライス分配(ブリックタイリング)を行ったことを示す。レイヤスライス分配(ブリックタイリング)は図23に示した方法によるスライスの分割を意味する。
partitioning_type_index=4は球形/楕円形スライス分配(ブリックタイリング)を行ったことを示す。球形/楕円形領域タイリングは図24に示した方法によるブリック(スライス)の分割を意味する。
partitioning_type_index=5は属性基盤のスライス分配(ブリックタイリング)を行ったことを示す。属性基盤のスライス分配(ブリックタイリング)は図25に示した方法によるブリック(スライス)の分割を意味する。
partitioning_type_index=6は適応的軸長さ基盤のスライス分配(ブリックタイリング)を行ったことを示す。適応的軸長さ基盤のスライス分配(ブリックタイリング)は図26に示した方法によるブリック(スライス)の分割を意味する。
partitioning_type_index=7は上述した方法以外のユーザ定義のスライス分配(ブリックタイリング)方法を行ったことを示す。実施例によれば、境界ボックスの座標軸の短い軸を基準として長い軸を分割した後、分割されたスライスを再度分割することができる。この時、短い軸を基準として中間軸を再分割する過程を行うことができる。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001)は、partitioning_type_indexに基づいてポイントクラウドデータをスライス単位で復号化することができる。
実施例によるSPSはsplit_recursive_enabling_flagが1(true)であると、partition_current_unitをさらに含む。
partition_current_unitは、実施例によるポイントクラウド送信装置がスライス又はブリックに対して再分割を行う場合、再分割されたスライス又はブリックの分割単位を示す情報である。例えば、partition_current_unitは実施例による再分割されたスライス又はブリックの単位サイズを示す。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001)は、split_recursive_enabling_flagに対応して受信したビットストリームのポイントクラウドデータのスライスが細部分割単位に分割されていることを確認した場合、partition_current_unitに基づいて再分割されたスライスの分割単位を判断することができる。
combining_filter_indexは、結合されたジオメトリビットストリームと属性ビットストリームを送信するために符号化器でどの結合方法を使用したかに関する情報を示す。実施例によれば、ビットストリームの送信環境及び特性によって結合方法がシグナリングされて圧縮率が向上することができる。
combining_filter_index=0である場合、多重化方法に基づく結合方法が使用されたことを示す。実施例によれば、多重化方法は個別ビットストリームをビット又はバイトグループにシーケンスすることができる。
combining_filter_index=1である場合、順次的結合方法に基づく結合方法が使用されたことを示す。実施例によれば、順次的結合方法は幾何ビットストリームと属性ビットストリームを順に結合する。
combining_filter_index=2である場合、重要度基盤の結合に基づく結合方法が使用されたことを示す。実施例によれば、重要度基盤の結合は重要度の高いビットストリームに対して優先して結合することができる。
実施例によるポイントクラウドデータ受信装置(例えば、図35のポイント結合部35012、図37のポイント結合部37000)は、combining_filter_indexに基づいて受信ビットストリーム内のジオメトリビットストリームと特質ビットストリームを抽出することができる。例えば、combining_filter_indexが0である場合、実施例によるポイントクラウドデータ受信装置は多重化方法の逆過程に基づいて受信ビットストリーム内のジオメトリビットストリームと特質ビットストリームを抽出する。例えば、combining_filter_indexが1である場合は、順次的結合方法の逆過程に基づいて受信ビットストリーム内のジオメトリビットストリームと特質ビットストリームを抽出する。例えば、combining_filter_indexが2である場合は、重要度基盤結合の逆過程に基づいて受信ビットストリーム内のジオメトリビットストリームと特質ビットストリームを抽出する。
duplicated_attribute_indexは、複数の特質情報が一つのジオメトリ情報にマッピングされる場合、該当ジオメトリが重複する属性情報を含むことを示す。重複するポイントの属性情報は重複属性を適用することができる。
duplicated_attribute_index=0である場合、色相重複を意味する。一つの幾何情報に複数の色相値が重複してマッピングされる時、重複属性を使用することができる。
duplicated_attribute_index=1である場合、反射度重複を意味する。一つの幾何情報に複数の反射度値が重複してマッピングされる時、重複属性を使用することができる。
実施例によるポイントクラウドデータ受信装置は、duplicated_attribute_indexに基づいてジオメトリが重複する属性情報を決定することができる。
sps_extension_present_flagが1である場合、sps_extension_dataがSPS RBSPシンタックス構造内に存在することを示す。該当パラメータが0である場合、該当シンタックス構造が存在しないことを示す。存在しない場合、sps_extension_present_flagの値が0である(equal to 1 specifies that the sps_extension_data syntax structure is present in the SPS RBSP syntax structure. sps_extension_present_flag equal to 0 specifies that this syntax structure is not present. When not present、the value of sps_extension_present_flag is inferred to be equal to 0)。
sps_extension_data_flagはどの値であってもよい。該当パラメータの存在はデコーダの該当標準文書のAnnex Aに提示されたプロファイルの動作に影響を及ぼさない(may have any value. Its presence and value do not affect decoder conformance to profiles specified in Annex A Decoders conforming to a profile specified in Annex A.)。
実施例によるSPSは、sequential_input_slice_configuration_in_tile_flag、overlapping_slice_compose_flag、overlapping_slice_compose_method[i]情報をさらに含む。
sequential_input_slice_configuration_in_tile_flagは、実施例による送信装置がタイルごとのスライス分割動作を待機状態なしにタイルごとに順次入力スライス分割を行うか否かを示す情報を意味する。
overlapping_slice_compose_flagは、実施例による送信装置が重畳スライス分割方法を使用するか否かを示す情報を意味する。
overlapping_slice_compose_flag情報が1(true)である場合、実施例によるSPSはoverlapping_slice_compose_method[i]をさらに含む。SPSはoverlapping_slice_compose_method[i]情報を実施例による送信装置が送信するスライスの数だけ含む。
overlapping_slice_compose_method[i]は、i番目のスライスのスライス分割方法を示す情報を意味する。i番目のスライスのスライス分割方法とそれに対応するoverlapping_slice_compose_method[i]の値は以下の通りである。
0=multiple_point_sampling_based_overlapping_slice_parititon_method:実施例による多重点サンプリング基盤の重畳スライス構成方法としてスライス構成方法使用
1=value_based_overlapping_slice_partition_method:実施例による重要度基盤の重畳スライス構成方法としてスライス構成方法使用
2=attribute_range_based_slice_partition_method:実施例による属性範囲基盤の重畳スライス構成方法としてスライス構成方法使用
3=morton_order_based_slice_partition_method:実施例によるモールトンコードの順基盤の重畳スライス構成方法としてスライス構成方法使用
4~=other_slice_partition_method:その他の分割方法使用
図40は実施例によるビットストリームのTPS(Tile Parameter Set)を示す。
図40に示したパラメータは、図38で説明したTPS(Tile Parameter Set)内に含まれる。実施例によるTPSは、実施例によるスライスの分割(スライス分配)、スライスタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
num_tilesは該当ビットストリーム内に存在するタイルの数を示す(Represents the number of tiles signalled for the bitstream)。もし該当ビットストリーム内に存在するタイルがなければ、num_tilesは0にシグナリングされる(When not present、num_tiles is inferred to be 0)。
実施例によるTPSはタイルの数(num_tiles)に示された値だけ以下のシグナリング情報を含む。
tile_bounding_box_offset_x[i]は、直交座標系内のi-番目のタイルのxオフセットを示す(indicates the x offset of the i-th tile in the cartesian coordinates)。もし該当xオフセットが存在しないと、tile_bounding_box_offset_x[0]の値がsps_bounding_box_offset_xである(When not present、the value of tile_bounding_box_offset_x[0] is inferred to be sps_bounding_box_offset_x.)。
tile_bounding_box_offset_y[i]は、直交座標系内のi-番目のタイルのyオフセットを示す(indicates the y offset of the i-th tile in the cartesian coordinates)。もし該当yオフセットが存在しないと、tile_bounding_box_offset_y[0]の値がsps_bounding_box_offset_yである(When not present、the value of tile_bounding_box_offset_y[0] is inferred to be sps_bounding_box_offset_y.)。
tile_bounding_box_offset_z[i]は、直交座標系内のi-番目のタイルのzオフセットを示す(indicates indicates the z offset of the i-th tile in the Cartesian coordinates.)。もし該当zオフセットが存在しないと、tile_bounding_box_offset_z[0]の値がsps_bounding_box_offset_zである(When not present、the value of tile_bounding_box_offset_z[0] is inferred to be sps_bounding_box_offset_z.)。
tile_bounding_box_scale_factor[i]は、直交座標系内のi-番目のタイルに関連する倍率を示す(indicates the scale factor the i-th tile in the Cartesian coordinates.)。もし該当倍率が存在しないと、tile_bounding_box_scale_factor[0]がsps_bounding_box_scale_factorである(When not present、the value of tile_bounding_box_scale_factor[0] is inferred to be sps_bounding_box_scale_factor.)。
tile_bounding_box_size_width[i]は、直交座標系内のi-番目のタイルの幅を示す(indicates the width of the i-th tile in the Cartesian coordinates.)。もし幅値が存在しない場合、tile_bounding_box_size_width[0]はsps_bounding_box_size_widthである(When not present、the value of tile_bounding_box_size_width[0] is inferred to be sps_bounding_box_size_width.)。
tile_bounding_box_size_height[i]は、直交座標系内のi-番目のタイルの高さを示す(indicates the height of the i-th tile in the Cartesian coordinates.)。もし高さ値が存在しない場合、tile_bounding_box_size_height[0]はsps_bounding_box_size_heightである(When not present、the value of tile_bounding_box_size_height[0] is inferred to be sps_bounding_box_size_height.)。
tile_bounding_box_size_depth[i]は、直交座標系内のi-番目のタイルの深さを示す(indicates the depth of the i-th tile in the Cartesian coordinates.)。もし深さ値が存在しない場合、tile_bounding_box_size_depth[0]はsps_bounding_box_size_depthである(When not present、the value of tile_bounding_box_size_depth[0] is inferred to be sps_bounding_box_size_depth.)。
実施例によるTPSはpartitioning_enable_flagを含む。
partitioning_enabling_flagは、実施例によるポイントクラウド送信装置がポイントクラウドデータをスライス又はブリック単位に分割を行うか否かを示す情報(又はフラグ)を示す。partitioning_enable_flagは図39で説明したpartitioning_enabling_flagと同じ情報を示す情報である。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001)は、partitioning_enabling_flagに基づいて、受信したビットストリームのポイントクラウドデータがスライス単位に分割されているか否かを判断し、partitioning_enabling_flagに基づいてビットストリーム内のポイントクラウドデータをスライス単位で受信する。
実施例によるTPSはpartitioning_enable_flagが1(true)であると、multiple_brick_partitioning_flag、partitioning_unit_size及び/又はpartitioning_type_indexをさらに含む。
multiple_brick_partitioning_flagは、図39で説明したSPS内に含まれたmultiple_brick_partitioning_flagを意味する。partitioning_unit_sizeは、図39で説明したSPS内に含まれたpartitioning_unit_sizeを意味する。partitioning_type_indexは、図39で説明したSPS内に含まれたpartitioning_type_indexを意味する。
実施例によるTPSはbrick_tiling_type情報をさらに含む。
brick_tiling_typeは、実施例による送信装置がポイントクラウドデータを一つ又はそれ以上のブリック(又はスライスとも呼ばれる)に分割する方法を示す。
brick_tiling_typeは、図39で説明したpartitioning_type_indexと同じ情報を示す。即ち、brick_tiling_typeはpartitioning_type_indexとも呼ばれる。
brick_tiling_type情報が1である場合(点密度基盤のブリックタイリング(スライス分配)を示す場合)、実施例によるTPSはbrick_unit_information、brick_density_quantization_stepをさらに含む。
brick_unit_informationは、一つのブリック(又はスライス)に関するユニット情報及び/又は分割方法に関する情報を示す。
brick_density_quantization_stepは、分割されるブリック(又はスライス)に対して、該当ブリック(又はスライス)で使用する量子化係数を指定してサンプリング可能な程度を示す。
bounding_box_radiusは、ポイントクラウドデータ送信装置が実施例による円形セクターブリックタイリング(スライス分配)を行った場合、該当ブリック(又はスライス)の半径を示す情報である。このパラメータは図22のbounding_box_radiusパラメータを意味する。該当パラメータは各ブリック(又はスライス)に存在する。
brick_tiling_type情報が2である場合(円形セクターブリックタイリング(スライス分配)を示す場合)、実施例によるTPSはbounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flagをさらに含む。
central_node_xyzは、ポイントクラウドデータ送信装置が実施例による円形セクターブリックタイリング(スライス分配)を行った場合、該当ブリック(又はスライス)の中心点情報のx座標、y座標及びz座標を示す情報である。このパラメータは図22のcentral_node_xyzパラメータを意味する。
moving_direction_vectorは、ポイントクラウドデータ送信装置が実施例による円形セクターブリックタイリング(スライス分配)を行った場合、ポイントクラウドデータが表現する客体の移動方向を示す。moving_direction_vectorはベクトル形態で表現される。図22のmoving_direction_vectorパラメータを意味する。
use_identical_bounding_box_information_flagは、ポイントクラウドデータ送信装置が実施例による円形セクターブリックタイリング(スライス分配)を行った場合、全フレームに同一の境界ボックスを定義するか否かを示す情報(又はフラグ)である。実施例によれば、境界ボックスの情報は1つのフレームごとに定義され、各フレームのx、y、z値により決定される。
brick_tiling_type情報が3である場合(レイヤブリックタイリング(スライス分配)を示す場合)、実施例によるTPSはenable_sorting_flagをさらに含む。
enable_sorting_flagは、ポイントクラウドデータ送信装置が実施例によるレイヤブリックタイリング(スライス分配)を行った場合、ポイントクラウドデータを整列(例えば、昇順、降順、モールトンなど)したか否か示す情報(又はフラグ)である。図23のenable_sorting_flagパラメータを意味する。該当パラメータは各ブリック(スライス)に存在し得る。
brick_tiling_type情報が4である場合(球形/楕円ブリックタイリング(スライス分配)を示す場合)、実施例によるTPSはsphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angleをさらに含む。
sphere_or_oval_flagは、ポイントクラウドデータ送信装置が実施例による球形/楕円形領域タイリング(スライス分配)を行った場合、ポイントクラウドデータを球形或いは楕円形領域に分割するか否かを示す。図24のsphere_or_oval_flagパラメータを意味する。該当パラメータは各ブリック(スライス)に存在し得る。
center_point_xyzは、ポイントクラウドデータ送信装置が実施例による球形/楕円形領域タイリングを行った場合、実施例による球形/楕円形領域の中心点情報の座標情報(例えば、(x、y、z)情報)を含む。図24のcenter_point_xyzパラメータを意味する。該当パラメータは各ブリック(スライス)に存在し得る。
radius_distanceは、ポイントクラウドデータ送信装置が実施例による球形/楕円形領域タイリングを行った場合、実施例による球形/楕円形のブリック(スライス)の半径情報(又は距離情報)を示す。図24のradius_distanceパラメータを意味する。該当パラメータは各ブリック(スライス)に存在し得る。
azimuth_angleは、ポイントクラウドデータ送信装置が実施例による球形/楕円形領域タイリングを行う場合、球面座標系で原点からの距離と基準ベクトルとの角度を意味する。該当パラメータは各ブリック(スライス)に存在する。図24のazimuth_angleパラメータを意味することができる。
brick_tiling_type情報が4である場合(球形/楕円ブリックタイリング(スライス分配)を示す場合、実施例によるTPSはreferenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_valueをさらに含む。
referenced_attribute_typeは、ポイントクラウドデータ送信装置が実施例による属性基盤のブリックタイリング(スライス分配)を行った場合、ブリック(スライス)分割の基準となる属性情報を示す。図25のreferenced_attribute_typeパラメータを意味する。
referenced_attribute_type_rangeは、ポイントクラウドデータ送信装置が実施例による属性基盤のブリックタイリング(スライス分配)を行った場合、属性情報の属性値の範囲でブリック(スライス)を構成するか否かを示す。図25のreferenced_attribute_typeパラメータを意味する。
referenced_attribute_type_valueは、属性情報の属性値それ自体でブリック(スライス)を構成するか否かを示す情報である。図25のreferenced_attribute_type_valueパラメータを意味する。
実施例によるTPSはcombining_filter_index、duplicated_attribute_index、divide_mid_length_axisをさらに含む。
combining_filter_indexは、結合されたジオメトリビットストリームと属性ビットストリームを送信するために符号化器でどの結合方法を使用したかに関する情報を示す。実施例によれば、ビットストリームの送信環境及び特性によって結合方法がシグナリングされ、圧縮率が向上することができる。combining_filter_indexは図32のcombining_filter_indexを意味する。
duplicated_attribute_indexは、複数の特質情報が一つのジオメトリ情報にマッピングされる場合、該当ジオメトリが重複する属性情報を含むことを示す。重複するポイントの属性情報は重複属性を適用することができる。duplicated_attribute_indexは図32のduplicated_attribute_indexを意味する。
divide_mid_length_axisは、ポイントクラウドデータ送信装置が実施例による図26の適応的軸長さ基盤のタイリングを行う場合、中間軸に関する情報を示す。例えば、0であると、X軸が中間軸、1であると、Y軸が中間軸、2であると、Z軸が中間軸を示す。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001、図35のポイント結合部35012、図37のポイント結合部37000)は、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、combining_filter_index、duplicated_attribute_index、divide_mid_length_axisパラメータなどを用いて実施例によるスライスの形態を判断することができ、上述したパラメータに基づいて復号化を行うポイントクラウドデータを確認することができる。
実施例によるTPSはsequential_input_slice_configuration_in_tile_flag、overlapping_slice_compose_flag、overlapping_slice_compose_method[i]情報をさらに含む。
sequential_input_slice_configuration_in_tile_flagは、実施例による送信装置がタイルごとのスライス分割動作を待機状態なしにタイルごとの順次入力スライス分割を行うか否かを示す情報を意味する。
overlapping_slice_compose_flagは、実施例による送信装置が重畳スライス分割方法を使用するか否かを示す情報を意味する。
overlapping_slice_compose_flag情報が1(true)である場合、実施例によるSPSはoverlapping_slice_compose_method[i]をさらに含む。SPSはoverlapping_slice_compose_method[i]情報を実施例による送信装置が送信するスライスの数だけ含む。
overlapping_slice_compose_method[i]は、i番目のスライスのスライス分割方法を示す情報を意味する。i番目のスライスのスライス分割方法とそれに対応するoverlapping_slice_compose_method[i]の値は以下の通りである。
0=multiple_point_sampling_based_overlapping_slice_parititon_method:実施例による多重点サンプリング基盤の重畳スライス構成方法としてスライス構成方法使用
1=value_based_overlapping_slice_partition_method:実施例による重要度基盤の重畳スライス構成方法としてスライス構成方法使用
2=attribute_range_based_slice_partition_method:実施例による属性範囲基盤の重畳スライス構成方法としてスライス構成方法使用
3=morton_order_based_slice_partition_method:実施例によるモールトンコードの順基盤の重畳スライス構成方法としてスライス構成方法使用
4~=other_slice_partition_method:その他の分割方法使用
図41は実施例によるビットストリームのGPS(Geometry Parameter Set)を示す。
図41に示したパラメータは図38で説明したGPS(Geometry Parameter Set)内に含まれる。実施例によるGPSは、実施例によるスライスの分割(slice partitioning)、スライスタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
gps_geom_parameter_set_idは、他のシンタックスエレメントにより参照されるGPSの識別子を示す。このパラメータの値は0ないし15である(Provides an identifier for the GPS for reference by other syntax elements. The value of gps_seq_parameter_set_id may be in the range of 0 to 15、inclusive.)。
gps_seq_parameter_set_idは、該当アクティブSPSに対するsps_seq_parameter_set_idの値を示す。該当値は0ないし15である(specifies the value of sps_seq_parameter_set_id for the active SPS. The value of gps_seq_parameter_set_id shall be in the range of 0 to 15、inclusive.)。
geometry_coding_typeは、ジオメトリ情報に対するコーディングタイプを意味する。該当パラメータの値は0又は1であり、他の値はISO/IECにより追って使用できる。デコーダは該当パラメータが他の値を有する場合、無視できる。該当パラメータは、例えば、0であると、八分木を、1であると、trisoup(triangle soup)を示す(indicates that the coding type for the geometry in Table 7 1Table 7 1 for the given value of geometry_coding_type. The value of geometry_coding_type shall be equal to 0 or 1 in bitstreams conforming to this version of this Specification. Other values of geometry_coding_type are reserved for future use by ISO/IEC。Decoders conforming to this version of this Specification may ignore reserved values of geometry_coding_type。0=Octree、1=Triangle Soup(Trisoup))。
gps_box_present_flagは、追加境界ボックス情報が該当GPS内でジオメトリヘッダ(geometry header)内に提供される場合、1である。該当パラメータは追加境界ボックス情報がジオメトリヘッダ内に提供されない場合は、0を示す(equal to 1 specifies an additional bounding box information is provided in a geometry header that references the current GPS. gps_bounding_box_present_flag equal to 0 specifies that additional bounding box information is not signalled in the geometry header.)。
unique_geometry_points_flagは、全ての出力されたポイントが固有の位置を有する場合、1である。該当パラメータは出力ポイントが同じ位置に存在する場合、0である(equal to 1 indicates that all output points have unique positions.unique_geometry_points_flag equal to 0 indicates that the output points may have same positions.)。
neighbour_context_restriction_flagが0である場合、八分木占有コーディングが6つの隣接ノードに基づいて決定されたコンテンツを使用することを示す。1である場合、八分木占有コーディングが兄弟ノードのみに基づいて決定されたコンテキストを使用することを示す(equal to 0 indicates that octree occupancy coding uses contexts determined from six neighbouring parent nodes. neighbour_context_restriction_flag equal to 1 indicates that octree coding uses contexts determined from sibling nodes only.)。
inferred_direct_coding_mode_enabled_flagが0である場合、八分木コーディングがinferred_direct_coding_modeを使用したことを示す。1である場合、兄弟隣接ノードから決定された複数のコンテキストを使用して八分木コーディングを行ったことを示す(equal to 0 indicates the octree coding uses inferred_direct_coding_mode. inferred_direct_coding_mode_enabled_flag equal to 1 indicates the octree coding uses multiple context determined from sibling neighbouring nodes.)。
log2_neighbour_avail_boundaryは復号プロセスが以下のように利用されるNeighbAvailBoundaryの値を示す(specifies the value of the variable NeighbAvailBoundary that is used in the decoding process as follows:)。
NeighbAvailBoundary=2log2_neighbour_avail_boundary
neighbour_context_restriction_flagが1である場合、neighbour_context_restriction_flagは13である(When neighbour_context_restriction_flag is equal to 1、NeighbAvailabilityMask is set equal to 13.)。neighbour_context_restriction_flagが0である場合は、NeighbAvailabilityMaskは以下のように決定される(Otherwise、 neighbour_context_restriction_flag equal to 0、 NeighbAvailabilityMask is set equal to)。
(1<<log2_neighbour_avail_boundary)
log2_trisoup_node_sizeは以下のように決定される三角形ノードのサイズであってTrisoupNodeSizeを示す(specifies the variable TrisoupNodeSize as the size of the triangle nodes as follows.)。
TrisoupNodeSize=2log2_trisoup_node_size
log2_trisoup_node_sizeの値は0より大きい。log2_trisoup_node_sizeのサイズが0である場合、ジオメトリビットストリームはひたすら八分木コーディングシンタックスのみを含むことを示す(The value of log2_trisoup_node_size may be equal to or greater than 0. When log2_trisoup_node_size is equal to 0、the geometry bitstream includes only the octree coding syntax.)。
trisoup_depthはポイント座標のそれぞれのコンポーネントを示すために使用されるビット数を示す。trisoup_depthは2から21の値を有する(specifies the number of bits used to represent each component of a point coordinate. The value of trisoup_depth may be In the range of 2 to 21. [Ed(df):20 should perhaps be a level limit].)。
trisoup_triangle_levelは八分木が切り取られたレベルを示す。trisoup_triangle_levelは1からtrisoup_depth-1の値を有する(specifies the level at which the octree is pruned. The value of trisoup_triangle_level may be in the range of 1 to trisoup_depth-1.)。
gps_extension_present_flagが1であると、gps_extension_dataシンタックス構造がGPS RBSPシンタックス構造内に存在することを示す。0である場合、該当シンタックス構造が存在しないことを示す(equal to 1 specifies that the gps_extension_data syntax structure is present in the GPS RBSP syntax structure. gps_extension_present_flag equal to 0 specifies that this syntax structure is not present. When not present、the value of gps_ extension_present_flag is inferred to be equal to 0.)。
gps_extension_data_flagはどの値であってもよい。該当値が存在する場合、値はデコーダに影響を及ぼさない(may have any value. Its presence and value do not affect decoder conformance to profiles specified in Annex A. Decoders conforming to a profile specified in Annex A.)。
実施例によるGPSは、図39及び図40で上述した、partitioning_enable_flag、multiple_brick_partitioning_flag、partitioning_unit_size、partitioning_type_index、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、Sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、divide_mid_length_axis、combining_filter_index、duplicated_attribute_indexをさらに含む。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001、図35のポイント結合部35012、図37のポイント結合部37000)は、GPS内の上述したパラメータなどを用いて実施例によるスライスの形態を判断し、上述したパラメータに基づいて復号化を行うポイントクラウドデータを確認することができる。
実施例によるGPSはsequential_input_slice_configuration_in_tile_flag、overlapping_slice_compose_flag、overlapping_slice_compose_method[i]情報をさらに含む。
sequential_input_slice_configuration_in_tile_flagは、実施例による送信装置がタイルごとのスライス分割動作を待機状態なしにタイルごとの順次入力スライス分割を行うか否かを示す情報を意味する。
overlapping_slice_compose_flagは実施例による送信装置が重畳スライス分割方法を使用するか否かを示す情報を意味する。
overlapping_slice_compose_flag情報が1(true)である場合、実施例によるSPSはoverlapping_slice_compose_method[i]をさらに含む。SPSはoverlapping_slice_compose_method[i]情報を実施例による送信装置が送信するスライスの数だけ含む。
overlapping_slice_compose_method[i]は、i番目のスライスのスライス分割方法を示す情報を意味する。i番目のスライスのスライス分割方法とそれに対応するoverlapping_slice_compose_method[i]の値は以下の通りである。
0=multiple_point_sampling_based_overlapping_slice_parititon_method:実施例による多重点サンプリング基盤の重畳スライス構成方法としてスライス構成方法使用
1=value_based_overlapping_slice_partition_method:実施例による重要度基盤の重畳スライス構成方法としてスライス構成方法使用
2=attribute_range_based_slice_partition_method:実施例による属性範囲基盤の重畳スライス構成方法としてスライス構成方法使用
3=morton_order_based_slice_partition_method:実施例によるモールトンコードの順基盤の重畳スライス構成方法としてスライス構成方法使用
4~=other_slice_partition_method:その他の分割方法使用
図42は実施例によるビットストリームのジオメトリスライスヘッダ(GSH, Geometry slice Header)を示す。
図42に示したパラメータは図38で説明したジオメトリスライスヘッダ(GSH、Geometry slice Header)内に含まれる。実施例によるGSHは実施例によるスライスの分割(スライス分配)、スライスタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
gsh_geometry_parameter_set_idは、アクティブGPSのgps_geom_parameter_set_idの値を示す(specifies the value of the gps_geom_parameter_set_id of the active GPS.)。
gsh_tile_idはタイルのidを示す(specifies id of tile.)。
gsh_slice_idはスライスのidを示す(specifies id of slice.)。
gsh_box_log2_scaleはスケール値を示す(specifies scale value.)。
gsh_box_origin_xは直交座標系内のソース境界ボックスのx座標情報を示す。(specifies the x of the source bounding box in the cartesian coordinates.)。
gsh_box_origin_yは直交座標系内のソース境界ボックスのy座標情報を示す。(specifies the y of the source bounding box in the cartesian coordinates.)。
gsh_box_origin_zは直交座標系内のソース境界ボックスのz座標情報を示す。(specifies the z of the source bounding box in the cartesian coordinates.)。
gsh_log2_max_nodesizeは復号プロセスが以下のように行われるMaxNodeSizeの値を示す(specifies the value of the variable MaxNodeSize that is used in the decoding process as follows:)。
MaxNodeSize=2(gbh_log2_max_nodesize)
gbh_points_numberはスライス内のコーディングされたポイントの数を示す。(specifies the number of coded points in the slice.)。
実施例によるGSHは、図39ないし図41で上述したpartitioning_enable_flag、multiple_brick_partitioning_flag、partitioning_unit_size、partitioning_type_index、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、divide_mid_length_axis、combining_filter_index、duplicated_attribute_indexをさらに含む。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001、図35のポイント結合部35012、図37のポイント結合部37000)は、GSH内の上述したパラメータなどを用いて実施例によるブリックの形態を判断し、上述したパラメータに基づいて復号化を行うポイントクラウドデータを確認することができる。
図43は実施例によるビットストリームの特質スライスヘッダ(ASH, Attribute slice Header)を示す。
図43に示したパラメータは図38で説明した特質スライスヘッダ(ASH、Attribute slice Header)内に含まれる。実施例によるASHは実施例によるスライスの分割、スライスタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
abh_attr_parameter_set_idは、現在アクティブAPSのaps_attr_parameter_set_idの値を示す(specifies the value of the aps_attr_parameter_set_id of the active APS.)。
abh_attr_sps_attr_idxは、現在アクティブSPS内の特質セットを示す。abh_attr_sps_attr_idxの値は0ないし現在アクティブSPSのsps_num_attribute_setsdの値の範囲内である(specifies the attribute set in the active SPS. The value of abh_attr_sps_attr_idx may be in the range of 0 to sps_num_attribute_sets in the active SPS.)。
abh_attr_geom_slice_idは、ジオメトリスライスidの値を示す(specifies the value of geom slice id.)。
実施例によるGPSは図39ないし図41で上述したpartitioning_enable_flag、multiple_brick_partitioning_flag、partitioning_unit_size、partitioning_type_index、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、divide_mid_length_axis、combining_filter_index、duplicated_attribute_indexをさらに含む。
実施例によるポイントクラウドデータ受信装置(例えば、図35の受信部35000、分割されたデータ入力部35001、図35のポイント結合部35012、図37のポイント結合部37000)は、ASH内の上述したパラメータなどを用いて実施例によるブリック(スライス)の形態を判断し、上述したパラメータに基づいて復号化を行うポイントクラウドデータを確認することができる。
図44は実施例によるポイントクラウドデータ送信段階を示す。
実施例によるポイントクラウドデータ送信段階は、ポイントクラウドデータを符号化する段階44000、ポイントクラウドデータ及びポイントクラウドデータに関するシグナリング情報を含むビットストリームを送信する段階44001を含む。
実施例によるポイントクラウドデータ送信段階は、ポイントクラウドデータを分割する段階をさらに含む。実施例による分割する段階は、ポイントクラウドデータを一つ又はそれ以上のスライス(又はタイル、又はマクロブロック)に分割することができる。実施例による分割する方法は、スライス内に含まれたポイントの最大個数情報に基づいてポイントクラウドデータを分割する。実施例による最大個数情報は予め設定された値である。
実施例による分割する段階は、図12のデータ入力部12000の動作、図15の空間分割部15001の動作、図16のデータ特性調査部16000の動作、ブリックタイリング部16001の動作、分割されたデータ入力部16002の動作、及び図18ないし図33に示した動作を行う。
実施例によるスライスのうちの一部は3次元空間上の重なった領域を含む。例えば、一つ又はそれ以上のスライスは第1スライス及び第2スライスを含み、第1スライス及び第2スライスはポイントクラウドデータを含む3次元空間内の重なった領域を含む。
実施例による分割する方法は、ポイントクラウドデータの八分木に基づいて分割する方法、及びポイントクラウドデータを含む3次元空間の軸の長さに基づいて分割する方法のうちのいずれかである。実施例による分割方法に関する詳しい説明は図15ないし図43に詳しく説明されている。
ポイントクラウドデータを符号化する段階44000では、実施例によるポイントクラウドデータを符号化する。実施例による符号化する段階44000は、実施例によるタイル、スライス又はマクロブロックごとに独立的に行われる。実施例による符号化する段階44000は、ポイントクラウドデータのポイントのジオメトリデータを符号化する段階及び/又はポイントクラウドデータのポイントの特質データを符号化する段階を含む。
ポイントクラウドデータを符号化する段階44000は、図1のポイントクラウドビデオエンコーダ10002の動作、図2の符号化18001の動作、図4の動作、図5ないし図9の動作、図12の動作、図15の幾何情報符号化部15002及び/又は属性情報符号化部15003の動作、及び図16の16003ないし16014の動作を行う。
実施例によるポイントクラウドデータ送信段階は、ポイントクラウドデータに関するシグナリング情報を送信する。実施例によるシグナリング情報は、分割する段階の実行有無を示す情報及び/又は分割する段階が行われる場合、分割を行う方法を示す情報を含む。
実施例による送信ビットストリームは図38のようなシンタックス構造を有する。また、実施例によるシグナリング情報は図38ないし図43に示した情報の全部又は一部を含む。
図44に示した実施例によるポイントクラウドデータ送信動作の一部又は全部は、図14のXRデバイス1430により行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
図45は実施例によるポイントクラウドデータ受信段階を示す。
実施例によるポイントクラウドデータ受信段階は、ポイントクラウドデータのジオメトリデータ及びポイントクラウドデータの特質データを含むビットストリームを受信する段階45000、及び/又はビットストリーム内のポイントクラウドデータを復号する段階45001を含む。
ポイントクラウドデータのジオメトリデータ及びポイントクラウドデータの特質データを含むビットストリームを受信する段階45000は、実施例によるポイントクラウドデータ送信装置が送信したビットストリームを受信する。実施例によるビットストリームはポイントクラウドデータを含み、ポイントクラウドデータは一つ又はそれ以上のタイル又はスライス又はマクロブロック、ブリックにより伝達される。
実施例による復号する段階45000は、図1のポイントクラウドビデオデコーダ10006、図2の復号18003、図11の動作、及び図13の動作を行う。図34の幾何情報復号化部34001及び/又は属性情報復号化部34002、及び図35ないし図37の動作の全部又は一部を行う。
ビットストリーム内のポイントクラウドデータを復号する段階45001は、ポイントクラウドデータのジオメトリデータを復号する段階及び/又はポイントクラウドデータの特質データを復号する段階を含む。実施例による復号する段階45001は、ポイントクラウドデータが伝達されるブリック、スライスごとに別々に(separately)復号される。
実施例によるスライスのうちの一部は互いに重なった領域を含む。例えば、実施例によるスライスは第1スライス及び第2スライスを含み、第1スライス及び第2スライスはポイントクラウドデータを含む3次元空間内の重なった領域を含む。
実施例によるビットストリームは、実施例によるポイントクラウドデータに関するシグナリング情報をさらに含む。実施例によるシグナリング情報は、ポイントクラウドデータが一つ又はそれ以上のスライスに分割されるか否かを示す情報を含む。受信したポイントクラウドデータが一つ又はそれ以上のスライスの単位に分割されている場合、実施例による復号する段階は、一つ又はそれ以上のスライスを独立的に復号することができる。実施例によるスライス、ブリック内のポイントの数はポイントの最大個数情報に基づいて決定される。
実施例によるシグナリング情報は、一つ又はそれ以上のスライスに対する分割方法を示す情報を含む。実施例による分割方法は、ポイントクラウドデータの八分木に基づいて分割する方法、及びポイントクラウドデータを含む3次元空間の軸の長さに基づいて分割する方法のうちのいずれかである。
実施例による受信ビットストリームは、図38のようなシンタックス構造(syntax structure)を有する。また実施例によるシグナリング情報は、図38ないし図43に示した情報を全部又は一部含むことができる。
図45に示した実施例によるポイントクラウドデータ受信動作の一部又は全部は、図14のXRデバイス1430により行われる。また、この図で説明しているブリックはスライスに対応し、その逆も可能である。この明細書においてブリックはスライスとも称される。
上述した実施例は方法及び/又は装置の観点で説明しており、方法の説明及び装置の説明は相互補完して適用できる。
説明の便宜のために、各図を区分して説明したが、各図に述べられている実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。実施例による装置及び方法は、上述したように、説明された実施例の構成と方法が限定して適用されることではなく、実施例は様々に変形可能に各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれ個々のチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のうちのいずれか一つ又はそれ以上の動作/方法を行わせるか、実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではないCRM又は他のコンピュータープログラム製品に格納されるか、又は一つ又はそれ以上のプロセッサにより実行されるために構成された一時的なCRM又は他のコンピュータープログラム製品に格納されることができる。また実施例によるメモリは、揮発性メモリ(例えば、RAMなど)だけではなく、非揮発性メモリ、フラッシュメモリ、PROMなどを全部含む概念として使用される。また、インターネットによる送信などのような搬送波の形態で具現されることも含む。またプロセッサが読み取られる記録媒体は、ネットワークで連結されたコンピューターシステムに分散されて、分散方式によりプロセッサが読み取られるコードが格納されて実行されることができる。
この明細書において、“/”と“,”は“及び/又は”に解釈される。例えば、“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)”を意味する。
第1、第2などの用語は実施例の様々な構成要素を説明するために使用される。しかし、実施例による様々な構成要素は上記用語により解釈が制限されてはいけない。かかる用語は一つの構成要素を他の構成要素と区別するために使用されることに過ぎない。例えば、第1ユーザ入力信号は第2ユーザ入力信号と称することができる。同様に、第2ユーザ入力信号は第1ユーザ入力信号と称することができる。かかる用語の使用は様々な実施例の範囲から離脱していない。第1ユーザ入力信号及び第2ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限されるものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味しない。実施例を説明するために使用される、「~である場合」、「~の時」などの条件表現は選択的な場合にのみ制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。
また、この明細書で説明する実施例による動作は、実施例によってメモリ及び/又はプロセッサを含む送受信装置により行われる。メモリは実施例による動作を処理/制御するためのプログラムを格納し、プロセッサはこの明細書で説明した様々な動作を制御する。プロセッサはコントローラとも称される。実施例において、動作はファームウェア、ソフトウェア及び/又はそれらの組み合わせにより行われ、ファームウェア、ソフトウェア及び/又はそれらの組み合わせはプロセッサに格納されるか又はメモリに格納される。
以上、実施例を実施するための最善の形態について説明した。