以下、添付図面を参照しながらこの明細書に記載された実施例について詳しく説明するが、図面符号に関係なく、同一又は類似する構成要素には同じ参照符号を付し、重複する説明は省略する。以下の実施例は本発明を具体化するためのものであり、本発明の権利範囲を制限又は限定するものではない。本発明の詳細な説明及び実施例から本発明が属する技術分野の専門家が容易に類推できるものは本発明の権利範囲に属するものと解釈される。
この明細書の詳細な説明は全ての面で制限的に解釈されてはいけず、例示的なものとして考慮されるべきである。本発明の範囲は添付する請求範囲の合理的な解釈に基づいて決定されるべきであり、本発明の等価的範囲内での全ての変更は本発明の範囲に含まれる。
添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというより、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に関する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものもあり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。また、以下の図面及び詳細な説明は具体的に記載された実施例に限って解釈してはいけず、図面及び詳細な説明に記載の実施例と均等又は代替可能なものまで含むものと解釈すべきである。
図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の右側には外向き方式が示されている。外向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトではない中心オブジェクトの環境をキャプチャーする方式である。外向き方式はユーザの視点からの周辺環境を提供するためのポイントクラウドコンテンツ(例えば、自律走行車両のユーザに提供される外部環境を示すコンテンツ)を生成するために使用される。
図3の通り、ポイントクラウドコンテンツは一つ又はそれ以上のカメラのキャプチャー動作に基づいて生成される。この場合、それぞれのカメラの座標系が異なるので、ポイントクラウドコンテンツ提供システムはキャプチャー動作前にグローバル空間座標系(global coordinate system)を設定するために、一つ又はそれ以上のカメラの較正(calibration)を行う。またポイントクラウドコンテンツ提供システムは、上述したキャプチャー方式でキャプチャーされたイメージ及び/又は映像と任意のイメージ及び/又は映像を合成してポイントクラウドコンテンツを生成する。またポイントクラウドコンテンツ提供システムは、仮想空間を示すポイントクラウドコンテンツを生成する場合、図3で説明したキャプチャー動作を行わない。実施例によるポイントクラウドコンテンツ提供システムは、キャプチャーしたイメージ及び/又は映像に対して後処理を行うこともできる。即ち、ポイントクラウドコンテンツ提供システムは、望まない領域(例えば、背景)を除去し、キャプチャーしたイメージ及び/又は映像が連結された空間を認識して空間(spatial hole)がある場合、それを埋める動作を行うことができる。
またポイントクラウドコンテンツ提供システムは、それぞれのカメラから確保したポイントクラウドビデオのポイントに対して座標系変換を行って、一つのポイントクラウドコンテンツを生成することができる。ポイントクラウドコンテンツ提供システムは、それぞれのカメラの位置座標を基準としてポイントの座標系変換を行う。これにより、ポイントクラウドコンテンツ提供システムは、一つの広い範囲を示すコンテンツを生成するか、或いはポイントの密度が高いポイントクラウドコンテンツを生成することができる。
図4は実施例によるポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)の一例を示す図である。
図4は図1のポイントクラウドビデオエンコーダ10002の一例を示す。ポイントクラウドビデオエンコーダは、ネットワーク状況或いはアプリケーションなどによってポイントクラウドコンテンツの質(例えば、無損失-lossless、損失-lossy、損失に近い-near-lossless)を調節するために、ポイントクラウドデータ(例えば、ポイントの位置及び/又は特質)を再構成して符号化動作を行う。ポイントクラウドコンテンツの全体サイズが大きい場合(例えば、30fpsの場合、60Gbpsであるポイントクラウドコンテンツ)、ポイントクラウドコンテンツ提供システムは該当コンテンツをリアルタイムストリーミングすることができない。従って、ポイントクラウドコンテンツ提供システムは、ネットワーク環境などに合わせて提供するために、最大ターゲットビットレートに基づいてポイントクラウドコンテンツを再構成することができる。
図1及び図2に示したように、ポイントクラウドビデオエンコーダはジオメトリ符号化及び特質符号化を行うことができる。ジオメトリ符号化は特質符号化よりも先に行われる。
実施例によるポイントクラウドビデオエンコーダは、座標系変換部(Transformation Coordinates unit)40000、量子化部(Quantization unit)40001、八分木分析部(Octree Analysis unit)40002、表面近似分析部(Surface Approximation Analysis unit)40003、演算エンコーダ(Arithmetic Encode)40004、ジオメトリ再構成部(Geometry Reconstruction unit)40005、色変換部(Color Transformation unit)40006、特質変換部(Attribute Transformation unit)40007、RAHT(Region Adaptive Hierachical Transform)変換部40008、LOD生成部(LOD Generation unit)40009、リフト変換部(Lifting Transformation unit)40010、係数量子化部(Coefficient Quantization unit)40011及び/又は演算エンコーダ(Arithmetic Encoder)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値は以下の数1により決定される。以下の数1において、(xintn、yintn、zintn)は量子化されたポイントの位置(又は位置値)を示す。
図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)は占有コードに基づいて八分木を再構成する。
実施例によるポイントクラウドビデオエンコーダ(例えば、八分木分析部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)、ボクセル化過程を行って復元されたジオメトリ(再構成されたジオメトリ)を生成することができる。
ブロックのエッジに位置するバーテックスはブロックを通過する表面を決定する。実施例による表面は非平面多角形である。三角形再構成の過程ではエッジの開始点、エッジの方向ベクトルとバーテックスの位置値に基づいて三角形で示される表面を再構成する。三角形再構成の過程は以下の数2の通りである。(丸1):各バーテックスの中心(centroid)値を計算し、(丸2):各バーテックスの値から中心値を引いた値に、(丸3):自乗を行って、その値を全て加算した値を得る。
その後、加えられた値の最小値を求め、最小値がある軸に沿って投影(Projection)過程を行う。 例えば、x要素(element)が最小である場合、各バーテックスをブロックの中心を基準としてx軸に投影し、(y,z)平面に投影させる。(y,z)平面に投影させて得た値が(ai,bi)であれば、atan2(bi、ai)によりθ値を求め、θ値を基準としてバーテックスを整列する。以下の表1はバーテックスの個数によって三角形を生成するためのバーテックスの組み合わせを示している。バーテックスは1からnまで順に整列される。以下の表1は4つのバーテックスに対して、バーテックスの組み合わせによって2つの三角形が構成されることを示している。1番目の三角形は整列されたバーテックスのうち、1、2、3番目のバーテックスで構成され、2番目の三角形は整列されたバーテックスのうち、3,4,1番目のバーテックスで構成される。
表1.Triangles formed from vertices ordered 1
アップサンプリング過程は三角形のエッジに沿って中間に点を追加してボクセル化するために行われる。アップサンプリング係数(upsampling factor)とブロックの幅を基準として追加点を生成する。追加点はリファインドバーテックス(refined vertice)と呼ばれる。実施例によるポイントクラウドビデオエンコーダはリファインドバーテックスをボクセル化することができる。またポイントクラウドビデオエンコーダはボクセル化された位置(又は位置値)に基づいて特質符号化を行うことができる。図7は実施例による隣接ノードパターンの一例を示す図である。
ポイントクラウドビデオの圧縮効率を増加させるために、実施例によるポイントクラウドビデオエンコーダはコンテキスト適応演算(context adaptive arithmetic)コーディングに基づいてエントロピーコーディングを行う。
図1ないし図6で説明したように、ポイントクラウドコンテンツ提供システム又は図2のポイントクラウドビデオエンコーダ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)又はグルーピング(grouping)することができる。図8はLODに対応するポイントクラウドコンテンツを示す。図8の最左側はオリジナルポイントクラウドコンテンツを示す。図8の左側から2番目は最低LODのポイントの分布を示し、図8の最右側は最高LODのポイントの分布を示す。即ち、最低LODのポイントは粗い(sparse)分布であり、最高LODのポイントは細かい分布である。即ち、図8の下側に示された矢印方向に沿ってLODが増加するほどポイント間の間隔(又は距離)は短くなる。
図9は実施例によるLODごとのポイント構成の一例を示す図である。
図1ないし図8で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドビデオエンコーダ(例えば、図2のポイントクラウドビデオエンコーダ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で説明したように、実施例によるポイントクラウドビデオエンコーダはLOD基盤の予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングを選択的に又は組み合わせて行うことができる。
実施例によるポイントクラウドビデオエンコーダは、ポイントに対する予測器(predictor)を生成して各ポイントの予測特質(又は予測特質値)を設定するためのLOD基盤の予測変換コーディングを行う。即ち、N個のポイントに対してN個の予測器が生成される。実施例による予測器は各ポイントのLOD値とLODごとに設定された距離内に存在する隣接ポイントに対するインデックス情報及び隣接ポイントまでの距離値に基づいて加重値(=1/距離)を計算することができる。
実施例による予測特質(又は特質値)は、各ポイントの予測器に設定された隣接ポイントの特質(又は特質値、例えば、色相、反射率など)に各隣接ポイントまでの距離に基づいて計算された加重(又は加重値)を掛けた値の平均値で設定される。実施例によるポイントクラウドビデオエンコーダ(例えば、係数量子化部40011)は、該当ポイントの特質(即ち、オリジナル特質値)から該当予測特質(特質値)を引いた該当ポイントの残余値(residual、残余の特質、残余の特質値、特質予測残余値、予測エラー特質値などとも呼ばれる)を量子化(quatization)及び逆量子化(inverse quantization)することができる。残余の特質値に対して行われる送信機での量子化過程は表2の通りである。また表2のように量子化された残余の特質値に対して行われる受信機での逆量子化過程は表3の通りである。
実施例によるポイントクラウドビデオエンコーダ(例えば、演算エンコーダ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)については併合過程が行われず、空ノードの直上位ノードについて併合過程が行われる。
gDC値もハイパス係数のように量子化されてエントロピーコーディングされる。
図10は実施例によるポイントクラウドビデオデコーダ(Point Cloud Video Decoder)の一例を示す図である。
図10に示したポイントクラウドビデオデコーダは、図1に示したポイントクラウドビデオデコーダ10006の一例であり、図1で説明したポイントクラウドビデオデコーダ10006の動作などと同一又は類似する動作を行う。図示したように、ポイントクラウドビデオデコーダは一つ又はそれ以上のビットストリームに含まれたジオメトリビットストリーム(geometry bitstream)及び特質ビットストリーム(Attribute bitstream)を受信する。ポイントクラウドビデオデコーダはジオメトリデコーダ(geometry decoder)及び特質デコーダ(Attribute decoder)を含む。ジオメトリデコーダはジオメトリビットストリームに対してジオメトリ復号を行って復号されたジオメトリ(decoded geometry)を出力する。特質デコーダは復号されたジオメトリに基づいて特質ビットストリームに対して特質復号を行って復号された特質(decoded Attributes)を出力する。復号されたジオメトリ及び復号された特質はポイントクラウドコンテンツを復元(decoded point cloud)するために使用される。
図11は実施例によるポイントクラウドビデオデコーダの一例を示す図である。
図11に示したポイントクラウドビデオデコーダは図10で説明したポイントクラウドビデオデコーダの一例であり、図1ないし図9で説明したポイントクラウドビデオエンコーダの符号化動作の逆過程である復号動作を行う。
図1及び図10で説明したように、ポイントクラウドビデオデコーダはジオメトリ復号及び特質復号を行う。ジオメトリ復号は特質復号よりも先に行われる。
実施例によるポイントクラウドビデオデコーダは、演算デコーダ(arithmetic decoder、11000)、八分木合成部(octree synthesis unit、11001)、表面近似合成部(surface approximation synthesis unit、11002)、ジオメトリ再構成部(geometry reconstruction unit、11003)、座標系逆変換部(coordinates inverse transformation unit、11004)、演算デコーダ(arithmetic decoder、11005)、逆量子化部(inverse quantization unit、11006)、RAHT変換部11007、LOD生成部(LOD generation unit、11008)、逆リフト部(Inverse lifting unit、11009)、及び/又は色逆変換部(color inverse transformation unit、11010)を含む。
演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び座標系逆変換部11004は、ジオメトリ復号を行う。実施例によるジオメトリ復号はダイレクト復号(direct decoding)及び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は演算エンコーダ40012の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
実施例による送信処理部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の構造はサーバー17600、ロボット17100、自律走行車両17200、XR装置17300、スマートフォン17400、家電17500及び/又はHMD(Head-Mount Display)17700のうちのいずれかがクラウドネットワーク17100に連結された構成を示している。ロボット17100、自律走行車両17200、XR装置17300、スマートフォン17400又は家電17500などは装置とも呼ばれる。またXR装置17300は実施例によるポイントクラウドデータ(PCC)装置に対応するか又はPCC装置に連動する。
クラウドネットワーク17000はクラウドコンピューティングインフラの一部を構成するか、又はクラウドコンピューティングインフラ内に存在するネットワークを意味する。ここで、クラウドネットワーク17000は3Gネットワーク、4G又はLTEネットワーク又は5Gネットワークなどを用いて構成される。
サーバー17600はロボット17100、自律走行車両17200、XR装置17300、スマートフォン17400、家電17500及び/又はHMD17700のいずれかにクラウドネットワーク17000により連結され、連結された装置17100~17700のプロセシングの少なくとも一部を助けることができる。
HMD(Head-Mount Display)17700は実施例によるXRデバイス及び/又はPCCデバイスが具現されるタイプのうちのいずれかを示す。実施例によるHMDタイプのデバイスは、コミュニケーションズユニット、コントロールユニット、メモリユニット、I/Oユニット、センサユニット及びパーワ供給ユニットなどを含む。
以下、上記技術が適用される装置17100~17500の様々な実施例について説明する。ここで、図14に示した装置17100~17500は上述した実施例によるポイントクラウドデータ送受信装置に連動/結合することができる。
<PCC+XR>
XR/PCC装置17300はPCC及び/又はXR(AR+VR)技術が適用されて、HMD(Head-Mount Display)、車両に備えられたHUD(Head-Up Display)、TV、携帯電話、スマートフォン、コンピューター、ウェアラブルデバイス、家電機器、デジタル看板、車両、固定型ロボットや移動型ロボットなどに具現されることもできる。
XR/PCC装置17300は、様々なセンサにより又は外部装置から獲得した3次元ポイントクラウドデータ又はイメージデータを分析して3次元ポイントに対する位置データ及び特質データを生成することにより周辺空間又は現実オブジェクトに関する情報を得て、出力するXR客体をレンダリングして出力することができる。例えば、XR/PCC装置17300は認識された物体に関する追加情報を含むXR客体を該当認識された物体に対応して出力することができる。
<PCC+自立走行+XR>
自律走行車両17200はPCC技術及びXR技術が適用されて、移動型ロボット、車両、無人飛行体などで具現される。
XR/PCC技術が適用された自律走行車両17200は、XR映像を提供する手段を備えた自律走行車両やXR映像内での制御/相互作用の対象となる自律走行車両などを意味する。特に、XR映像内での制御/相互作用の対象となる自律走行車両17200はXR装置17300とは区分されて互いに連動されることができる。
XR/PCC映像を提供する手段を備えた自律走行車両17200は、カメラを含むセンサからセンサ情報を得、得たセンサ情報に基づいて生成されたXR/PCC映像を出力する。例えば、自律走行車両17200は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サービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信する。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含む。
一方、送信側のポイントクラウドビデオエンコーダは、ポイントクラウドデータを符号化する前に、ポイントクラウドデータを一つ以上の3次元ブロックで空間分割(division or partition)する空間分割過程をさらに行う。即ち、送信装置の符号化及び送信動作、また受信装置の復号及びレンダリング動作がリアルタイムで行われると同時に低遅延処理するために、送信装置においてポイントクラウドデータを複数の領域に空間分割する。また送信装置は空間分割された領域(又はブロック)をそれぞれ独立または非独立に符号化することにより、ポイントクラウドデータが占める3次元空間上の任意接続(random access)と並列符号化を可能にする効果を提供する。また送信装置及び受信装置は、空間分割された領域(又はブロック)単位で独立又は非独立に符号化及び復号を行うことにより、符号化及び復号の過程で繰り返されるエラーを防止することができる。
図15は実施例によるポイントクラウド送信装置のさらに他の例を示す図であり、空間分割部を備えている。
実施例によるポイントクラウド送信装置は、データ入力部51001、座標系変換部51002、量子化処理部51003、空間分割部51004、シグナリング処理部51005、ジオメトリエンコーダ51006、特質エンコーダ51007及び送信処理部51008を含む。実施例によって、座標系変換部51002、量子化処理部51003、空間分割部51004、ジオメトリエンコーダ51006及び特質エンコーダ51007をポイントクラウドビデオエンコーダと称する。
データ入力部51001は、図1のポイントクラウドビデオ獲得部10001の動作の一部又は全部を行い、又は図12のデータ入力部12000の動作の一部又は全部を行う。座標系変換部51002は、図4の座標系変換部40000の動作の一部又は全部を行う。また量子化処理部51003は、図4の量子化部40001の動作の一部又は全部を行い、又は図12の量子化処理部12001の動作の一部又は全部を行う。
空間分割部51004は、量子化処理部51003で量子化されて出力されるポイントクラウドデータを境界ボックス(bounding box)及び/又は副境界ボックスなどに基づいて一つ以上の3次元ブロックで空間分割する。このとき、3次元ブロックはタイルグループ(Tile Group)又はタイル又はスライス又はコーディング単位(Coding Unit、CU)、予測単位(Prediction Unit、PU)又は変換単位(TU)を意味する。また空間分割のためのシグナリング情報は、シグナリング処理部51005でエントロピー符号化された後、ビットストリーム形態で送信処理部51008により送信されることを一実施例とする。
図16(a)ないし図16(c)は境界ボックスを一つ以上のタイルに分割する一例を示している。図16(a)のように、ポイントクラウドデータに該当するポイントクラウドオブジェクトは座標系に基づくボックス形態に示されるが、これを境界ボックスという。即ち、境界ボックスはポイントクラウドポイントを全部入れられる六面体を意味する。
図16(b)及び図16(c)は図16(a)の境界ボックスがタイル1(tile1#)とタイル2(tile2#)に分割される例を示しており、タイル2(tile2#)はさらにスライス1(slice1#)とスライス2(slice2#)に分割される例が示されている。
一実施例において、ポイントクラウドコンテンツはアクタ(actor)などの一人或いは複数の人、又は一つの事物或いは複数の事物であるが、より大きい範囲では、自律走行のためのマップ、ロボットの実内ナビゲーションのためのマップなどであることもできる。この場合、ポイントクラウドコンテンツは地域的に連結された膨大な量のデータである。そうすると、ポイントクラウドコンテンツを一度に符号化/復号することはできないので、ポイントクラウドコンテンツの圧縮を行う前にタイル分配(partitioning)が行われる。例えば、建物内の101号を一つのタイルに、他の102号は他のタイルに分割する。分割されたタイルを並列化を適用して迅速な符号化/復号のための支援を行うために、さらにスライスに分配(又は分割)する。これをスライス分配(又は分割)という。
即ち、タイル(tile)とは、実施例によるポイントクラウドデータが占める3次元空間の一部の領域(例えば、矩形の立方体)を意味する。実施例によるタイルは、一つ又はそれ以上のスライスを含む。実施例によるタイルは、一つ又はそれ以上のスライスに分割(分配)されることにより、ポイントクラウドビデオエンコーダはポイントクラウドデータを並列的に符号化することができる。
スライス(slice)とは、実施例によるポイントクラウドビデオエンコーダにおいて独立して符号化を行えるデータ(又はビットストリーム)の単位、及び/又はポイントクラウドビデオデコーダにおいて独立して復号を行えるデータ(又はビットストリーム)の単位を意味する。実施例によるスライスは、ポイントクラウドデータが占める3次元空間上のデータの集合を意味するか、又はポイントクラウドデータのうちの一部データの集合を意味する。スライスは、実施例によるタイル内に含まれたポイントの領域又はポイントの集合を意味する。実施例によるタイルは、一つのタイル内に含まれたポイントの数に基づいて一つ又はそれ以上のスライスに分割される。例えば、一つのタイルは、ポイントの数ごとに分割されたポイントの集合を意味する。実施例によるタイルは、ポイントの数に基づいて一つ以上のスライスに分割することができ、分割する過程において一部のデータが分離(split)又は併合(merge)されることもある。即ち、スライスは該当タイル内において独立してコーディングされる単位である。このように空間分割されたタイルは、迅速かつ効率的な処理のために、さらに一つ以上のスライスに分けられる。
実施例によるポイントクラウドビデオエンコーダは、スライス単位又は一つ以上のスライスを含むタイル単位にポイントクラウドデータの符号化を行う。また実施例によるポイントクラウドビデオエンコーダは、タイルごと又はスライスごとに量子化及び/又は変換を異なるように行うことができる。
空間分割部51004で空間分割された一つ以上の3次元ブロック(例えば、スライス)の位置はジオメトリエンコーダ51006に出力され、特質情報(又は特質という)は特質エンコーダ51007に出力される。位置は分割された単位(ボックス又はブロック又はタイル又はタイルグループ又はスライス)に含まれたポイントの位置情報であり、ジオメトリ情報と称する。
ジオメトリエンコーダ51006は、空間分割部51004で出力される位置に基づいて八分木を構成し、符号化(即ち、圧縮)してジオメトリビットストリームを出力する。またジオメトリエンコーダ51006は、八分木及び/又は近似化された八分木を再構成して特質エンコーダ51007に出力する。再構成された八分木(reconstructed octree)は再構成されたジオメトリ(又は復元されたジオメトリ)とも呼ばれる。
特質エンコーダ51007は、ジオメトリエンコーダ51006で出力される再構成されたジオメトリに基づいて空間分割部51004で出力される特質を符号化(即ち、圧縮)して特質ビットストリームを出力する。
図17は実施例によるジオメトリエンコーダ51006及び特質エンコーダ51007の他の例を示す詳細ブロック図である。
図17のジオメトリエンコーダ51006のボクセル化処理部53001、八分木生成部53002、ジオメトリ情報予測部53003、及び演算コーダ53004は、図4の八分木分析部40002、表面近似分析部40003、演算エンコーダ40004、及びジオメトリ再構成部40005の動作の一部又は全部を行う。又は、図12のボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005、及び演算(Arithmetic)コーダ12006の動作の一部又は全部を行う。
図17の特質エンコーダ51007は、色相変換処理部53005、特質変換処理部53006、LOD構成部53007、隣接ポイント集合構成部53008、特質情報予測部53009、残余特質情報量子化処理部53010、及び演算コーダ53011を含む。
一実施例において、空間分割部51004とボクセル化処理部53001の間にさらに量子化処理部が備えられる。量子化処理部は、空間分割部51004で空間分割された一つ以上の3次元ブロック(例えば、スライス)の位置を量子化する。この場合、量子化部は図4の量子化部40001の動作の一部又は全部を行うか、又は図12の量子化処理部12001の動作の一部又は全部を行う。空間分割部51004とボクセル化処理部53001の間にさらに量子化処理部が備えられる場合、図15の量子化処理部51003は省略されても、省略されなくてもよい。
実施例によるボクセル化処理部53001は、空間分割された一つ以上の3次元ブロック(例えば、スライス)の位置又は量子化された位置に基づいてボクセル化(voxelization)を行う。ボクセル化は3次元空間上の位置情報を表す最小限のユニットを意味する。実施例によるポイントクラウドコンテンツ(又は3次元ポイントクラウドビデオ)のポイントは、一つ又はそれ以上のボクセル(voxel)に含まれることができる。実施例によって、一つのボクセルは一つ又はそれ以上のポイントを含む。一実施例において、ボクセル化を行う前に量子化が行われた場合は、複数のポイントが一つのボクセルに属することが発生し得る。
この明細書では、二つ以上のポイントが一つのボクセルに含まれる場合、これら二つ以上のポイントを重複ポイント(又は重畳ポイント、duplicated points)と称する。即ち、ジオメトリ符号化過程において、ジオメトリ量子化とボクセル化により重複ポイントが生成されることができる。
実施例によるボクセル化処理部53001は、1つのボクセルに属した重畳ポイントを併合(merge)せず、そのまま八分木生成部53002へ出力してもよく、又は重畳ポイントを1つのポイントに併合し、八分木生成部53002へ出力してもよい。
実施例による八分木生成部53002は、ボクセル化処理部53001から出力するボクセルに基づいて八分木を生成する。
実施例によるジオメトリ情報予測部53003は、八分木生成部53002から生成された八分木に基づいてジオメトリ情報の予測及び圧縮を行い、演算コーディング部53004へ出力する。また、ジオメトリ情報予測部53003は、圧縮により変更された位置に基づいてジオメトリを再構成し、再構成された(又は復号化された)ジオメトリを特質エンコーダ51007のLOD構成部53007へ出力する。ジオメトリ情報の再構成は、ジオメトリ情報予測部53003とは別途のデバイス又はコンポーネントで行われてもよい。他の実施例として、再構成されたジオメトリは、特質エンコーダ51007の特質変換処理部53006にも提供される。
特質エンコーダ51007の色相変換処理部53005は、図4の色相変換部40006又は図12の色相変換処理部12008に対応する。実施例による色相変換処理部53005は、データ入力部51001及び/又は空間分割部51004から提供される特質に含まれた色相値(又はテキスチャー)を変換する色相変換コーディングを行う。例えば、色相変換処理部53005は、色相情報のフォーマットを変換(例えば、RGBからYCbCrへ変換)することができる。実施例による色相変換処理部53005の動作は、特質に含まれた色相値によって選択的に(optional)適用される。他の実施例として、色相変換処理部53005は、再構成されたジオメトリに基づいて色相変換コーディングを行う。ジオメトリ再構成に対する詳細な説明は、図1ないし図9の説明を参照すればよい。
実施例による特質変換処理部53006は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。
特質変換処理部53006は、色相再調整(recoloring)部とも呼ばれる。
実施例によれば、特質変換処理部53006の動作は、重畳ポイント(duplicated points)を併合したか否かによって選択的に(optional)適用される。重畳ポイントを併合したか否かは、ジオメトリエンコーダ51006のボクセル化処理部53001又は八分木生成部53002で行われることを一例とする。
この明細書は、ボクセル化処理部53001又は八分木生成部53002において1つのボクセルに属したポイントが1つのポイントに併合された場合、特質変換処理部53006で特質変換を行うことを一例とする。
特質変換処理部53006は、図4の特質変換部40007又は図12の特質変換処理部12009の動作及び/又は方法と同一又は類似した動作及び/又は方法を行う。
実施例によれば、ジオメトリ情報予測部53003において再構成されたジオメトリ情報と、特質変換処理部53006から出力される特質情報は、特質圧縮のためにLOD構成部53007へ提供される。
実施例によれば、特質変換処理部53006から出力される特質情報は、再構成されたジオメトリ情報に基づいてRAHTコーディング方法、LODに基づく予測変換コーディング方法及びリフト変換コーディング方法のうちのいずれか1つ又は2つ以上の組み合わせによって圧縮することができる。
以下、この明細書は、LODに基づく予測変換コーディング方法及びリフト変換コーディング方法のいずれか1つ又は2つの組み合わせによって特質圧縮を行うことを一実施例とする。よって、RAHTコーディング方法に対する説明は省略する。RAHT変換コーディングに対する説明は、図1ないし図9の説明を参照すればよい。
実施例によるLOD構成部53007は、LOD(Level of Detail)を生成する。
LODはポイントクラウドコンテンツの詳細(detail)を示す程度であって、LOD値が小さいほどポイントクラウドコンテンツの詳細さが低下し、LOD値が大きいほどポイントクラウドコンテンツの詳細さが高いということを示す。再構成されたジオメトリ、即ち、再構成された位置のポイントはLODによって分類することができる。
一実施例として、予測変換コーディング方法及びリフト変換コーディング方法では、LODによってポイントを分けてグループ化する。
これをLOD生成過程といい、互いに異なるLODを有するグループをLODl集合と呼ぶ。ここで、lはLODを示し、0から始まる整数である。LOD0はポイント間の距離が最大のポイントからなる集合であり、lが大きくなるほどLODlに属したポイント間の距離は小さくなる。
実施例による隣接ポイント集合構成部53008は、LOD構成部53007でLODl集合が生成されると、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいてX(>0)個の最隣接ポイント(nearest neighbor、NN)を探し、予測器(predictor)に隣接ポイント集合として登録する。X個は隣接ポイントとして設定可能な最大数であり、ユーザパラメータにより入力されるか、又はシグナリング処理部51005によってシグナリング情報にシグナリングされる(例えば、APSにシグナリングされたlifting_num_pred_nearest_neighboursフィールド)。
例えば、図9においては、LOD1に属するP3の隣接ポイントをLOD0とLOD1から探す。例えば、隣接ポイントとして設定可能な最大数(X)が3であると、P3と最も近い3つの隣接ノードはP2、P4、P6になる。この3つのノードがP3の予測器に隣接ポイント集合として登録される。これらのうち、隣接ノードP4が距離に基づいてP3と最も近く、次にP6、その次にP2であることを一実施例とする。ここで、X=3であることは当業者の理解を助けるための一例であり、X値は変更可能である。
上述したように、ポイントクラウドデータの全てのポイントのそれぞれは予測器を有することができる。
実施例による特質情報予測部53009は、予測器に登録された隣接ポイントから特質値を予測し、予測した特質値に基づいてそのポイントの残余特質値を求め、残余特質情報量子化処理部53010へ出力する。
以下、LOD生成及び隣接ポイント探索(search)について詳述する。
上述のように、特質エンコーダにおいて特質圧縮を行うのために、再構成されたジオメトリのポイントに基づいてLODを生成し、生成したLODに基づいて符号化されるポイントの最隣接ポイント(nearest neighbor points)を探す過程が行われる。実施例によれば、受信装置の特質デコーダにおいてもLODを生成し、生成したLODに基づいて復号されるポイントの最隣接ポイントを探す過程が行われる。
実施例によれば、LOD構成部53007は1つ又はそれ以上のLOD生成方法(又はLOD構成方法)を用いて1つ又はそれ以上のLODを構成する。
実施例によれば、LOD構成部53007において用いられたLOD生成方法は、ユーザパラメータとして入力されるか、又はシグナリング処理部51005によってシグナリング情報にシグナリングされる。例えば、LOD生成方法は、特質パラメータセット(APS)にシグナリングされる。
実施例によれば、LOD生成方法は、八分木に基づくLOD生成方法、距離に基づくLOD生成方法、サンプリングに基づくLOD生成方法に区分できる。
図18は実施例による八分木に基づいてLODを生成する一例を示す。
実施例によれば、八分木に基づいてLODを生成する場合、八分木の各深さ(depth)レベルは、図18のように、各LODにマッチングされる。即ち、八分木に基づくLOD生成方法は、八分木構造において深さレベルが増加するほど(即ち、ルートからリーフへ進行する方法)、ポイントクラウドデータを表現する詳細が徐々に増加する特徴を利用してLODを生成する方法である。実施例によれば、八分木に基づく場合のLOD構成は、ルートノードからリーフノードへ進行してもよく、リーフノードからルートノードへ進行してもよい。
実施例による距離に基づくLOD生成方法は、ポイントをモールトン(morton)コードによって整列し、ポイント間の距離に基づいてLODを生成する方法である。
実施例によるサンプリングに基づくLOD生成方法は、ポイントをモールトン(morton)によって整列し、毎回のk番目のポイントを隣接集合の候補となり得る下位LODに分類する方法である。即ち、サンプリングを行うとき、k個毎に1つのポイントを選択してLOD0~LODl-1に属する下位候補集合に分離し、その残りのポイントはLODl集合に登録する。即ち、選択されたポイントはLODl集合に登録されたポイントの隣接ポイント集合として選択可能な候補群となる。kは各々のポイントクラウドコンテンツにおいて異なってもよい。ここで、ポイントは、キャプチャーされたポイントクラウドのポイントであってもよく、再構成されたジオメトリのポイントであってもよい。
この明細書は、LODl集合に基づいてLOD0~LODl-1に該当する下位候補集合を保持(retained)集合又はLOD保持(retained)集合と呼ぶ。LOD0はポイント間の距離が最大のポイントからなる集合であり、lが大きくなるほどLODlに属したポイント間の距離は小さくなる。
実施例によれば、LODl集合内のポイントもモールトン(Morton)コード順序に基づいて整列されている。また、LOD0~LODl-1集合のそれぞれに含まれたポイントもモールトンコード順序に基づいて整列されている。
図19は実施例によるポイントクラウドのポイントをモートンコード順序に整列する一例を示す。
即ち、ポイントクラウドの各ポイントのx、y、z位置値に基づいて各ポイントのモールトンコードを生成する。この過程を経てポイントクラウドのポイントのモールトンコードが生成されると、モートンコード順序にポイントクラウドのポイントを整列する。実施例によれば、ポイントクラウドのポイントはモールトンコードの昇順に整列する。モールトンコードの昇順に整列されたポイントの順序をモールトン順序(Morton order)とも呼ぶ。
実施例によるLOD構成部53007は、モールトン順序に整列されたポイントに対してサンプリングを行ってLODを生成する。
LOD構成部53007において八分木に基づくLOD生成方法、距離に基づくLOD生成方法、サンプリングに基づくLOD生成方法のうちの少なくとも1つのLOD生成方法を適用してLODl集合が生成されると、隣接ポイント集合構成部53008はLODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいてX(>0)個の最隣接(nearest neighbor、NN)ポイントを探して予測器(predictor)に隣接ポイント集合として登録する。
このとき、隣接ポイント集合を構成するために全てのポイントを探す場合、時間がかかるため、一部のポイントのみを含む隣接ポイント探索範囲(search range)内で隣接ポイントを探すことを一実施例とする。探索範囲はポイントの数を意味し、128又は256でもよく、その他でもよい。実施例によれば、探索範囲に関する情報は、隣接ポイント集合構成部53008で設定されるか、ユーザパラメータとして入力されるか、又はシグナリング処理部51005によってシグナリング情報にシグナリングされる(例えば、APSにシグナリングされたlifting_search_rangeフィールド)。
図20は実施例によるLODに基づく探索範囲において隣接ポイントを探す一例を示す。図面に示された矢印は、実施例によるモールトン順序を示す。
図20において、インデックスリスト(Indexes list)は符号化されるポイントが属するLOD集合(即ち、LODl)を含み、保持リスト(Retained list)はLODl集合を基準として少なくとも1つの下位LOD集合(例えば、LOD0~LODl-1)を含むことを一実施例とする。
実施例によれば、インデックスリスト(Indexes list)のポイントはモールトンコードのサイズに基づいて昇順に整列され、保持リスト(Retained list)のポイントもモールトンコードのサイズに基づいて昇順に整列されている。よって、Indexes listとRetained listにおいてモールトン順序に整列されたポイントの最も前に位置したポイントは最小のモールトンコードを有する。
実施例による隣接ポイント集合構成部53008は、LODl集合に属したポイントPx(即ち、符号化されるポイント又は現在ポイント)の隣接ポイント集合を生成するために、LOD0~LODl-1集合に属したポイント及び/又はLODl集合に属したポイントのうち、モールトン順序においてポイントPxより前に位置したポイント(即ち、モールトンコードがPxのモールトンコードよりも小さいか等しいポイント)のうちポイントPxのモールトンコードと最も近いモールトンコードを有するポイントを探索する。この明細書はこの探索されたポイントをPi又は中心ポイントと呼ぶ。
実施例によれば、中心ポイント(Pi)を探索するとき、ポイントPxより前に位置した全てのポイントのうちポイントPxのモールトンコードと最も近いモールトンコードを有するポイント(Pi)を探索するか、又は探索範囲内のポイントのうちポイントPxのモールトンコードと最も近いモールトンコードを有するポイント(Pi)を探索する。この明細書において探索範囲は隣接イント集合構成部53008で設定するか、又はユーザパラメータとして入力される。また、探索範囲に関する情報はシグナリング処理部51005によってシグナリング情報にシグナリングされる。この明細書は、LODの数が複数であると、Retained listから中心ポイント(Pi)を探索し、LODの数が1個であると、Indexes listから中心ポイント(Pi)を探索することを一実施例とする。例えば、LODの数が1であると、モールトンコードに整列されたリストから現在ポイントの位置を基準として探索範囲を定める。
実施例による隣接ポイント集合構成部53008は、探索された(又は選択された)中心ポイント(Pi)を基準(中心)として前(即ち、図20において中心ポイントの左側)と後ろ(即ち、図20において中心ポイントの右側)で隣接ポイント探索範囲(search range)に属したポイントとポイントPxとの距離値をそれぞれ比較する。また、距離が最も近いX(例えば、3)個のポイントを隣接ポイント集合として登録する。ここで、隣接ポイント探索範囲はポイントの数であることを一実施例とする。実施例による隣接ポイント探索範囲は、モールトン順序において中心ポイント(Pi)の前及び/又は後に位置した1つ又はそれ以上のポイントを含む。また、Xは隣接ポイントとして登録可能な最大数である。
実施例による隣接ポイント探索範囲(search range)に関する情報及び隣接ポイントとして登録可能な最大数(X)に関する情報は、隣接ポイント集合構成部53008で設定されるか、ユーザパラメータとして入力されるか、又はシグナリング処理部51005によってシグナリング情報にシグナリングされる(例えば、APSにシグナリングされたlifting_search_rangeフィールドとlifting_num_pred_nearest_neighboursフィールド)。実施例によれば、実際の探索範囲は、lifting_search_rangeフィールドの値に2を掛けて中心ポイントを足した値(即ち、(lifting_search_rangeフィールドの値*2)+中心ポイント)でもよく、lifting_search_rangeフィールドの値に中心ポイントを足した値(即ち、lifting_search_rangeフィールドの値+中心ポイント)でもよく、又はlifting_search_rangeフィールドの値でもよい。この明細書は、LODの数が複数であると、ポイントPxの隣接ポイントはRetained listから探索し、LODの数が1であると、Pxの隣接ポイントはIndexex listから探索することを一実施例とする。
例えば、LODの数が2以上であり、探索範囲に関する情報(例えば、lifting_search_rangeフィールド)が128である場合、モールトンコードに整列されたretained listにおいて中心ポイント(Pi)を基準として前の128個のポイント、後の128個のポイント、及び中心ポイント(Pi)が実際の探索範囲となる。他の例として、LODの数が1であり、探索範囲に関する情報が128である場合、モールトンコードに整列されたインデックスリストにおいて中心ポイント(Pi)を基準として前の128個のポイント、及び中心ポイント(Pi)が実際の探索範囲となる。また他の例として、LODの数が1であり、探索範囲に関する情報が128である場合、モールトンコードに整列されたインデックスリストにおいて現在ポイントPxを基準として前の128個のポイントが実際の探索範囲となる。
実施例によれば、隣接ポイント集合構成部53008は、実際の探索範囲内のポイントとポイントPxとの距離値をそれぞれ比較して、距離が最も近いX個のポイントをポイントPxの隣接ポイント集合として登録する。
一方、コンテンツがキャプチャーされたオブジェクト、キャプチャー方式、使用装備などによってコンテンツの特質特性は異なる。
図21(a)、図21(b)は実施例によるポイントクラウドコンテンツの一例を示す。
図21(a)は、1つのオブジェクトを3Dスキャナーでキャプチャーした高密度(dense)のポイントクラウドデータの一例であって、オブジェクトの特質間に関連性(correlation)が高い。図21(b)は、LiDAR装備で広い領域をキャプチャーした低密度(sparse)のポイントクラウドデータの一例であって、ポイント間の特質関連性は低い。高密度のポイントクラウドデータの一例として停止映像があり、低密度のポイントクラウドデータの一例としてドローンや自立走行車両などがある。
このように、コンテンツがキャプチャーされたオブジェクト、キャプチャー方式、使用装備などによってコンテンツの特質特性が異なるが、これを考慮せず、特質を符号化するときに隣接ポイントの探索を行って隣接ポイント集合を構成すると、そのポイントと登録された隣接ポイントとの距離がいずれも隣接しないこともある。例えば、中心ポイント(Pi)を基準(中心)として前後に隣接ポイント探索範囲(search range)に属したポイントとポイントPxとの距離値をそれぞれ比較して、距離が最も近いX(例えば、3)個のポイントを隣接ポイント集合として登録したとき、X個の登録された隣接ポイントのうち少なくとも1つはポイントPxから遠く離れていることがある。換言すれば、X個の登録された隣接ポイントのうち少なくとも1つはポイントPxの実際の隣接ポイントではないことがある。
このことは、高密度ポイントクラウドデータよりは低密度ポイントクラウドデータにおいて発生する確率が高い。例えば、図21(a)のように、コンテンツ内に1つのオブジェクトがあり、その1つのオブジェクトが色相の連続性/類似性を有して、高密度にキャプチャーされ、キャプチャーされた領域が小さい領域である場合、隣接ポイントと距離が少し離れていてもポイント特質の関連性の高いコンテンツが存在することもある。逆に、図21(b)のように、LiDAR装備によって非常に広い領域を低密度にキャプチャーした場合、隣接ポイントの距離が特定の範囲内になければ色相の関連性のあるコンテンツも存在しない。よって、図21(b)のような低密度ポイントクラウドデータの特質符号化を行うとき、隣接ポイント探索によって登録された隣接ポイントの一部は、符号化されるポイントの実際の隣接ポイントではないことがある。
また、このことは、LOD生成においてポイントをモールトン順序に整列したときに発生する確率が高い。即ち、モールトン順序は素早く隣接ポイントに整列してくれるが、モールトンコードが有しているジグザグスキャンの特性によってジャンプ区間(即ち、図19の長い線)が発生し、位置が大きく変更されることがあり、その場合、探索範囲内で隣接ポイント探索によって登録された隣接ポイントの一部は、符号化されるポイントの実施の最隣接ポイントではないことがある。
図22(a)及び図22(b)は、実施例による隣接ポイント集合に属した各々のポイントの平均距離、最小距離、最大距離の一例を示す。
図22(a)はFORDというコンテンツの100番目のフレームの一例を示し、図22(b)はQNXというコンテンツの1番目のフレームの一例を示す。
図22(a)及び図22(b)は、当業者の理解を助けるための一実施例であり、図22(a)及び図22(b)は、同一のコンテンツの互いに異なるフレームであってもよく、互いに異なるコンテンツの特定のフレームであってもよい。
説明の便宜のために、図22(a)は第1のフレームといい、図22(b)は第2のフレームという。
図22(a)の第1のフレームは、全体(total)ポイントの数が80265であり、このうち最隣接(NN)ポイントが1個だけ登録されたポイントが4、2個登録されたポイントが60、3個登録されたポイントが80201である一列である。即ち、隣接ポイントとして登録可能なポイントの最大数は3個であるが、フレーム内のポイントの位置によって1又は2ともなる。
図22(b)の第2のフレームは、全体(total)ポイントの数が31279であり、このうち最隣接(NN)ポイントが1個だけ登録されたポイントが3496、2個登録されたポイントが219、3個登録されたポイントが27564である一例である。
図22(a)の第1のフレーム及び図22(b)の第2のフレームにおいて、NN1が最も近い隣接ポイント、NN2が次に近い隣接ポイント、NN3がその次に近い隣接ポイントである。図22(a)の第1のフレームにおいてNN2の最大距離は1407616であり、NN3の最大距離は1892992であるが、図22(b)の第2のフレームにおいて、NN2の最大距離は116007040であり、NN3の最大距離は310887696である。
即ち、コンテンツ又はフレームによって非常に大きい距離差があることが分かる。よって、登録された隣接ポイントの一部は実際の隣接ポイントではないことがある。
このように、符号化されるポイントと登録された隣接ポイントとの距離差が大きい場合、両ポイント間の特質差も大きい可能性が高い。また、この隣接ポイントを含む隣接ポイント集合に基づいて予測を行って残余特質値を求めると、残余特質値が大きくなり、結局にはビットストリームサイズが大きくなる問題が生じる。
換言すれば、コンテンツ又はフレームが有する特徴は、特質予測のために隣接ポイント集合を構成するときに影響を与え、これは特質圧縮の効率に影響を与える。
よって、この明細書は、ポイントクラウドコンテンツの特質符号化のために隣接ポイント集合を構成する場合、コンテンツが有するポイント間の特質関連性を考慮して隣接ポイントを選択することで、意味のないポイントは隣接ポイント集合として選択しないようにする。これにより、残余特質値が小さくなり、ビットストリームサイズも小さくなるため、特質圧縮の効率が良くなる。換言すれば、この明細書は、コンテンツが有するポイント間の特質関連性を考慮し、隣接ポイント集合として選択可能なポイントを制限する方法を用いることで、特質圧縮の効率を高めることができる。
この明細書は、ポイントクラウドコンテンツの特質符号化の過程において隣接ポイント集合を構成するとき、コンテンツが有するポイント間の特質関連性を考慮するために、隣接ポイント最大距離(or maximum nearest neighbor distanceという)を適用することを一実施例とする。
この明細書は、ポイントクラウドコンテンツの特質符号化を行うとき、探索範囲及び/又は隣接ポイント最大距離を適用して隣接ポイント集合を構成することを一実施例とする。
例えば、中心ポイント(Pi)を基準(中心)として前後に隣接ポイント探索範囲に属したポイントとポイントPxとの距離値をそれぞれ比較して、距離が最も近いX(例えば、3)個のポイントのうち隣接ポイント最大距離よりも遠いポイントはポイントPxの隣接ポイント集合に登録しない。換言すれば、中心ポイント(Pi)を基準(中心)として前後に隣接ポイント探索範囲に属したポイントとポイントPxとの距離値をそれぞれ比較して、距離が最も近いX(例えば、3)個のポイントのうち隣接ポイント最大距離内にあるポイントだけをポイントPxの隣接ポイント集合として登録する。例えば、距離が最も近い3個のポイントのうち1個が隣接ポイント最大距離より遠い場合、遠くある1個のポイントは除いて、その他の2個のポイントだけをポイントPxの隣接ポイント集合として登録する。
実施例による隣接ポイント集合構成部53008は、コンテンツの特質特性に関係なく、特質圧縮の効率を最適化するために、コンテンツの特質特性によって隣接ポイント最大距離を適用する。ここで、隣接ポイント最大距離はLOD生成方法(八分木基盤、距離基盤、サンプリング基盤)によって異なる。即ち、隣接ポイント最大距離は、各々のLODにおいて異なるように適用してもよい。
この明細書において、隣接ポイント最大距離は、隣接ポイントの最大距離又は最大隣接ポイント距離と混用することができる。換言すれば、この明細書において、隣接ポイント最大距離、隣接ポイントの最大距離又は最大隣接ポイント距離は同じ意味である。
この明細書において、隣接ポイント最大距離は、以下の数式5のように、隣接ポイント基本距離(base distance又は基準距離という)にNN_rangeを掛けて取得することができる。
数式5においてNN_rangeは隣接ポイントとして選択可能な範囲であり、隣接ポイント最大範囲又は隣接ポイント範囲又は最隣接範囲(nearest neighbor range)とも呼ぶ。
実施例による隣接ポイント集合構成部53008は、コンテンツの特性により、NN_rangeを自動又は手動に設定するか、又はユーザパラメータとして入力されてNN_rangeを設定する。また、NN_rangeに関する情報は、シグナリング処理部51005によってシグナリング情報にシグナリングされる。NN_rangeに関する情報を含むシグナリング情報は、SPS、APS、タイルパラメータセット、特質スライスヘッダのうちの少なくとも1つである。受信装置の特質デコーダでは、シグナリング情報に基づいて隣接ポイント集合を生成し、この場合、特質符号化の特質予測において使用した隣接ポイントをそのまま復元して特質復号に適用する。
実施例によれば、隣接ポイント集合構成部53008は、八分木基盤、距離基盤、サンプリング基盤、各々のLODのモールトンコードの平均差基盤、又は各々のLODの平均距離差基盤のうちの1つ又はそれ以上の組み合わせによって隣接ポイント基本距離を計算/設定する。実施例によれば、隣接ポイント基本距離を計算/設定する方法は、シグナリング処理部51005によってシグナリング情報(例えば、APS)にシグナリングされる。
以下、八分木に基づいてLODを生成する場合、隣接ポイント基本距離及び隣接ポイント最大距離を取得する実施例を説明する。
図18のように、LOD構成部53007において八分木に基づいてLODを生成するとき、八分木の各深さレベルは各LODにマッチングされる。
実施例による隣接ポイント集合構成部53008は、八分木に基づいて生成されたLODによって隣接ポイントの最大距離を求める。
実施例によれば、LOD構成部53007において八分木に基づいてLODを生成する場合、空間拡張性(spatial scalability)を支援することができる。空間拡張性(spatial scalability)は、ソースポイントクラウドの密度が高い場合(dense)、より小さいデコーダ複雑性(less decoder complexity)及び/又はより小さい帯域幅(less bandwidth)のサムネールのように、より低い解像度のポイントクラウドをアクセスすることができる(With the spatial scalability,one can access a lower resolution point cloud as a thumbnail with less decoder complexity and/or with less bandwidth when a source point cloud is dense)。例えば、ジオメトリ符号化/復号のときに八分木の深さレベルを調節して選択された深さレベルまで占有ビットを符号化又は復号する過程により、ジオメトリの空間拡張性(spatial scalability)を提供することができる。また、特質符号化/復号のときにも八分木の選択された深さレベルからLODを生成し、特質符号化/復号するポイントを構成する過程により、特質の空間拡張性(spatial scalability)を提供することができる。
実施例によれば、空間拡張性のためにLOD構成部53007は八分木に基づいてLODを生成し、隣接ポイント集合構成部53008は八分木に基づいて生成したLODにより隣接ポイント探索を行う。
実施例による隣接ポイント集合構成部53008において八分木に基づいて生成された現在LODに属するポイントが以前のLODで隣接ポイントを探索するとき、隣接ポイント最大距離は隣接ポイント基本距離(base distance又は基準距離という)にNN_rangeを掛けて取得することができる(=隣接ポイント基本距離*NN_range)。
実施例によれば、八分木に基づいて生成された特定のLODにおいて一ノード(one node)の最大距離(即ち、対角線距離)を基本距離(又は隣接ポイント基本距離)と定義することができる。
実施例によれば、現在LOD(例えば、indexes listに属したLODl集合)に属するポイントが以前のLOD(例えば、retained listに属したLOD0~LODl-1集合)において隣接ポイントを探索するとき、現在LODの八分木ノードの上位ノード(親ノード)の対角線距離が隣接ポイント最大距離を取得するための基本距離となる。
一実施例による特定のLODにおいて一ノードの対角線距離(即ち、最大距離)である基本距離は、以下の数式6によって求められる。
他の実施例による特定のLODにおいて一ノードの対角線距離(即ち、最大距離)である基本距離は、以下の数式7のようにL2によって求められる。
一般に、2点間の距離を計算するとき、マンハッタン(Manhattan)距離計算法又はユークリッド(Euclidean又はユークリジアンという)距離計算法が使用されるが、マンハッタン距離をL1距離といい、ユークリッド距離をL2距離という。また、ユークリッド距離を使用してユークリッド空間を定義し、この距離に対応するノルム(norm)をユークリッドノルム又はL2ノルムという。ノルムはベクトルの長さ又は大きさを測定する方法(関数)である。
図23(a)は、LOD0の八分木ノードの対角線距離を求める一例である。実施例により、図23(a)を数式6に適用すると、基本距離は√3となり、数式7に適用すると、基本距離は3となる。
図23(b)は、LOD1の八分木ノードの対角線距離を求める一例である。実施例により、図23(b)を数式6に適用すると、基本距離は√12となり、数式7に適用すると、基本距離は12となる。
図24(a)及び図24(b)は、各々のLODにおいて隣接ポイントとして選択可能な範囲(NN_range)の一例を示す。より詳細には、図24(a)はLOD0においてNN_rangeが1であるときの一例であり、図24(b)はLOD0においてNN_rangeが3であるときの一例である。実施例によれば、NN_rangeはコンテンツの特性によって、自動又は手動に設定されるか、又はユーザパラメータとして入力されて設定される。また、NN_rangeに関する情報は、シグナリング情報にシグナリングされる。NN_rangeに関する情報を含むシグナリング情報は、SPS、APS、タイルパラメータセット、特質スライスヘッダのうちの少なくとも1つである。実施例によれば、隣接ポイントとして設定可能な範囲(NN_range)は、八分木ノード範囲とは関係なく任意の値(例えば、基本距離の倍数)で設定されてもよい。
実施例により、図24(a)を数式5及び数式6に適用すると、隣接ポイント最大距離は√3(=√3*1)となり、図24(b)を数式5及び数式6に適用すると、隣接ポイント最大距離は√3*3となる。
実施例により、図24(a)を数式5及び数式7に適用すると、隣接ポイント最大距離は3(=3*1)となり、図24(b)を数式5及び数式7に適用すると、隣接ポイント最大距離は9(=3*3)となる。
以下、距離に基づいてLODを生成する場合、隣接ポイントの基本距離及び隣接ポイント最大距離を取得する実施例を説明する。
実施例によれば、距離に基づいてLODを構成するとき、隣接ポイント基本距離は現在LOD (即ち、LODl)レベルにおいてポイントを構成するために使用された距離と設定することができる。即ち、各々のLODの基本距離はLOD LレベルにおいてLOD生成に適用した距離(dist2L)と設定する。
図25は各々のLODに属した隣接ポイント基本距離の一例を示す。
よって、距離に基づいてLODを構成するとき、隣接ポイント最大距離は距離に基づく隣接ポイント基本距離(dist2L)にNN_rangeを掛けて取得することができる。
実施例によれば、NN_rangeは隣接ポイント集合構成部53008においてコンテンツの特性により、自動又は手動に設定されるか、又はユーザパラメータとして入力されて設定される。また、NN_rangeに関する情報は、シグナリング情報にシグナリングされる。NN_rangeに関する情報を含むシグナリング情報は、SPS、APS、タイルパラメータセット、特質スライスヘッダのうちの少なくとも1つである。実施例によれば、隣接ポイントとして設定可能な範囲(NN_range)は任意の値(例えば、基本距離の倍数)で設定されてもよい。実施例によれば、隣接ポイントとの距離を計算する方法に合わせてNN_Rangeを調整することができる。
以下、サンプリングに基づいてLODを生成する場合、隣接ポイントの基本距離及び隣接ポイント最大距離を取得する実施例を説明する。
実施例によれば、サンプリング(即ち、デシメーション、decimation)に基づいてLODが生成されるとき、基本距離はサンプリング率(sampling rate)によって決定される。実施例によれば、サンプリングに基づくLOD構成方法は、ポイントの位置値を基準としてモールトンコードを作成し、モールトンコードによってポイントを整列した後、整列された順序によりk番目に該当しないポイント(即ち、ノード)を現在LODに登録する。よって、各々のLODが互いに異なるkを有し、kLと表示することができる。
一実施例によれば、モールトンコードに基づいて整列されたポイントにサンプリング方法を適用してLODを生成するとき、各々のLODにおいて連続するkL番目のポイントの平均距離を各々のLODにおいて隣接ポイント基本距離として設定することができる。即ち、モールトンコードに基づいて整列された現在LODにおいて連続するkL番目のポイントの平均距離を現在LODの隣接ポイント基本距離として設定する。他の実施例によれば、モールトンコードに基づいて整列されたポイントにサンプリング方法を適用してLODを生成するとき、現在LODレベルから八分木の深さレベルを推定し、推定した八分木深さレベルのノードの対角線長さを隣接ポイント基本距離として設定する。即ち、上述した数式6又は数式7を適用して隣接ポイント基本距離を取得する。
よって、サンプリングに基づいてLODを構成するとき、隣接ポイント最大距離はサンプリングに基づく隣接ポイント基本距離にNN_rangeを掛けて取得することができる。
実施例によれば、NN_rangeは隣接ポイント集合構成部53008においてコンテンツの特性により、自動又は手動に設定されるか、又はユーザパラメータとして入力されて設定される。また、NN_rangeに関する情報は、シグナリング情報にシグナリングされる。NN_rangeに関する情報を含むシグナリング情報は、SPS、APS、タイルパラメータセット、特質スライスヘッダのうちの少なくとも1つである。実施例によれば、隣接ポイントとして設定可能な範囲(NN_range)は任意の値(例えば、基本距離の倍数)で設定されてもよい。実施例によれば、隣接ポイントとの距離を計算する方法に合わせてNN_Rangeを調整することができる。
この明細書は、上述した隣接ポイント基本距離を取得する方法以外に、他の方法を用いて隣接ポイント基本距離を取得することができる。
例えば、LODを構成するとき、サンプリングされたポイントのモールトンコード平均差を計算して隣接ポイント基本距離として設定する。また、設定された隣接ポイント基本距離にNN_rangeを掛けて隣接ポイント最大距離を取得する。
他の例として、距離基盤かサンプリング基盤かに関係なく、現在構成されたLOD別に平均距離差を計算して隣接ポイント基本距離を設定する。また、設定された隣接ポイント基本距離にNN_rangeを掛けて隣接ポイント最大距離を取得する。
また他の例として、各々のLODにおいて隣接ポイント基本距離をユーザパラメータとして入力されて隣接ポイント最大距離の取得に適用した後、入力された隣接ポイント基本距離に関する情報をシグナリング情報にシグナリングする。
上述のように、隣接ポイント基本距離は、LOD構成方法によって、最善の隣接ポイント基本距離の計算方法を適用して求めることができる。他の実施例として、隣接ポイント基本距離を計算する方法は、所望の方法を任意に選択して適用し、シグナリング情報にシグナリングすることで、受信装置のデコーダでポイントを復元するときにも利用可能である。実施例によれば、ポイントクラウドコンテンツの特質に符合して、圧縮性能が最大化できる隣接ポイント最大距離の計算方法が使用される。
上述したLOD構成方法、隣接ポイント基本距離取得方法、NN_range取得方法、隣接ポイント最大距離取得方法は、受信装置において予測変換又はリフト変換のためのLOD構成及び隣接ポイント集合構成において同一又は類似に適用することができる。
一実施例によれば、隣接ポイント集合構成部53008は、上述のように、LODl集合が生成され、隣接ポイント最大距離が決定されると、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいて探索範囲内にあるポイントのうちX(例えば、3)個の最隣接(nearest neighbor、NN)ポイントを探す。その後、X(例えば、3)個のNNポイントのうち隣接ポイント最大距離内にあるNNポイントのみを隣接ポイント集合として登録する。よって、隣接ポイント集合として登録されるNNポイントの数はXと等しいか小さい。換言すれば、X個のNNポイントのうち隣接ポイント最大距離内に存在しないNNポイントは、隣接ポイント集合として登録されずに除外される。例えば、3個のNNポイントのうち2個のNNポイントが隣接ポイント最大距離内になければ、2個のNNポイントは除外され、残りの1個のNNポイントのみが隣接ポイント集合として登録される。
他の実施例によれば、隣接ポイント集合構成部53008は、上述のようにLODl集合が生成され、隣接ポイント最大距離が決定されると、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいて探索範囲内にあるポイントのうち隣接ポイント最大距離内にあるX(例えば、3)個の最隣接(nearest neighbor、NN)ポイントを探して隣接ポイント集合として登録する。
即ち、隣接ポイント最大距離を適用する時期(又は位置)により、隣接ポイント集合として登録可能なNNポイントの数が異なる。換言すれば、隣接ポイント探索によりX個のNNポイントを探した後に隣接ポイント最大距離を適用するか、又はポイント間の距離を計算する時に隣接ポイント最大距離を適用するかにより、隣接ポイント集合として登録可能なNNポイントの数が異なる。X個は隣接ポイントとして設定可能な最大数であり、ユーザパラメータとして入力されるか、又はシグナリング処理部51005によってシグナリング情報にシグナリングされる(例えば、APSにシグナリングされたlifting_num_pred_nearest_neighboursフィールド)。
図26は実施例による探索範囲及び隣接ポイント最大距離を適用して隣接ポイントを探索する一例を示す。図面に示された矢印は、実施例によるモールトン順序を示す。
図26において、Indexes listは符号化されるポイントが属したLOD集合(即ち、LODl)を含み、Retained listはLODl集合を基準として少なくとも1つの下位LOD集合(例えば、LOD0~LODl-1)を含むことを一実施例とする。
実施例によれば、Indexes listのポイントとRetained listのポイントのそれぞれはモールトンコードのサイズに基づいて昇順に整列されている。よって、Indexes list及びRetained listにおいてモールトン順序に整列されたポイントの最も前に位置したポイントは最小のモールトンコードを有する。
実施例による隣接ポイント集合構成部53008は、LODl集合に属したポイントPx(即ち、符号化されるポイント又は現在ポイント)の隣接ポイント集合を登録するためにLOD0~LODl-1集合に属したポイント及び/又はLODl集合に属したポイントのうちモールトン順序においてポイントPxよりも前に位置したポイント(即ち、モールトンコードがPxのモールトンコードよりも小さいか等しいポイント)のうちポイントPxのモールトンコードと最も近いモールトンコードを有する中心ポイント(Pi)を探索する。
実施例によれば、中心ポイント(Pi)を探索するとき、ポイントPxよりも前に位置した全てのポイントのうちポイントPxのモールトンコードと最も近いモールトンコードを有するポイント(Pi)を探索するか、又は探索範囲内のポイントのうちポイントPxのモールトンコードと最も近いモールトンコードを有するポイント(Pi)を探索する。この明細書において探索範囲は、隣接ポイント集合構成部53008で設定するか、又はユーザパラメータとして入力される。また、探索範囲に関する情報はシグナリング処理部51005によってシグナリング情報にシグナリングされる。この明細書は、LODの数が複数であると、Retained listから中心ポイント(Pi)を探索し、LODの数が1であると、Indexex listから中心ポイント(Pi)を探索することを一実施例とする。例えば、LODの数が1であると、モールトンコードに整列されたリストにおいて現在ポイントの位置を基準として探索範囲を定める。
実施例による隣接ポイント集合構成部53008は、探索された(又は選択された)中心ポイント(Pi)を基準(中心)として前(即ち、図26において左側)と後(即ち、図26において右側)に隣接ポイント探索範囲に属したポイントとポイントPxとの距離値をそれぞれ比較する。また、距離が最も近いX(例えば、3)個のポイントを選択し、選択したX個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントのみをポイントPxの隣接ポイント集合として登録する。ここで、隣接ポイント探索範囲はポイントの数であることを一実施例とする。実施例による隣接ポイント探索範囲は、モールトン順序において中心ポイント(Pi)の前及び/又は後に位置した1つ又はそれ以上のポイントを含むことができる。また、Xは隣接ポイントとして登録可能な最大数である。
実施例による隣接ポイント探索範囲(search range)に関する情報と隣接ポイントとして登録可能な最大数(X)に関する情報は、隣接ポイント集合構成部53008で設定されるか、ユーザパラメータとして入力されるか、又はシグナリング処理部51005によってシグナリング情報にシグナリングされる(例えば、APSにシグナリングされたlifting_search_rangeフィールドとlifting_num_pred_nearest_neighboursフィールド)。実施例によれば、実際の探索範囲は、lifting_search_rangeフィールドの値に2を掛けた後、中心ポイントを足した値(即ち、(lifting_search_rangeフィールドの値*2)+中心ポイント)でもよく、lifting_search_rangeフィールドの値に中心ポイントを足した値(即ち、lifting_search_rangeフィールドの値+中心ポイント)でもよく、又はlifting_search_rangeフィールドの値でもよい。この明細書において、隣接ポイント集合構成部53008は、LODの数が複数であると、ポイントPxの隣接ポイントはRetained listから探索し、LODの数が1であると、Pxの隣接ポイントはIndexex listから探索することを一実施例とする。
例えば、LODの数が2以上であり、探索範囲に関する情報(例えば、lifting_search_rangeフィールド)が128である場合、モールトンコードに整列されたretained listにおいて中心ポイント(Pi)を基準として前の128個のポイント、後ろの128個のポイント、及び中心ポイント(Pi)が実際の探索範囲となる。他の例として、LODの数が1であり、探索範囲に関する情報が128である場合、モールトンコードに整列されたindexes listにおいて中心ポイント(Pi)を基準として前の128個のポイントと中心ポイント(Pi)が実際の探索範囲となる。また他の例として、LODの数が1であり、探索範囲に関する情報が128である場合、モールトンコードに整列されたindexes listにおいて現在ポイントPxを基準として前の128個のポイントが実際の探索範囲となる。
実施例によれば、隣接ポイント集合構成部53008は、実際の探索範囲内のポイントとポイントPxとの距離値をそれぞれ比較して、距離が最も近いX個のポイントを探し、このX個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントのみをポイントPxの隣接ポイント集合として登録する。即ち、ポイントPxの隣接ポイント集合として登録される隣接ポイントは、X個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントに制限される。
このように、この明細書は、ポイントクラウドコンテンツが有するポイント間の特質特性(関連性)を考慮して、隣接ポイント集合として選択可能なポイントを制限することで、特質圧縮の効率を高めることができる。
図27は実施例による探索範囲及び隣接ポイント最大距離を適用して、隣接ポイントを探索する他の例を示す。図面に示された矢印は、実施例によるモールトン順序を示す。
図27は隣接ポイント最大距離を適用する位置を除けば、図26と類似するため、図26と重なるほとんどの説明は省略する。よって、図27で省略しているところは、図26の説明を参照すればよい。
実施例によれば、Indexes listのポイントとRetained listのポイントのそれぞれは、モールトンコードのサイズに基づいて昇順に整列されている。
実施例による隣接ポイント集合構成部53008は、LODl集合に属したポイントPx(即ち、符号化されるポイント又は現在ポイント)の隣接ポイント集合を登録するために、LOD0~LODl-1集合に属したポイント及び/又はLODl集合に属したポイントのうちモールトン順序においてポイントPxよりも前に位置したポイント(即ち、モールトンコードがPxのモールトンコードよりも小さいか等しいポイント)のうちポイントPxのモールトンコードと最も近いモールトンコードを有する中心ポイント(Pi)を探索する。
実施例による隣接ポイント集合構成部53008は、探索された(又は選択された)中心ポイント(Pi)を基準(中心)として前(即ち、図27において左側)と後(即ち、図27において右側)に隣接ポイント探索範囲に属したポイントとポイントPxとの距離値をそれぞれ比較する。また、ポイントPxが属したLODにおける隣接ポイント最大距離内にあり、且つ距離が最も近いX(例えば、3)個のポイントを選択して、ポイントPxの隣接ポイント集合として登録する。
この明細書は、LODの数が複数であると、Retained listの実際の探索範囲からポイントPxの隣接ポイントを探索し、LODの数が1であると、Indexex listの実際の探索範囲からPxの隣接ポイントを探索することを一実施例とする。
例えば、LODの数が2以上であり、探索範囲に関する情報(例えば、lifting_search_rangeフィールド)が128である場合、モールトンコードに整列されたretained listにおいて中心ポイント(Pi)を基準として前の128個のポイント、後ろの128個のポイント、及び中心ポイント(Pi)が実際の探索範囲となる。他の例として、LODの数が1であり、探索範囲に関する情報が128である場合、モールトンコードに整列されたindexes listにおいて中心ポイント(Pi)を基準として前の128個のポイント、及び中心ポイント(Pi)が実際の探索範囲となる。また他の例として、LODの数が1であり、探索範囲に関する情報が128である場合、モールトンコードに整列されたindexes listにおいて現在ポイントPxを基準として前の128個のポイントが実際の探索範囲となる。
実施例による隣接ポイント集合構成部53008は、実際の探索範囲のポイントとポイントPxとの距離値をそれぞれ比較するとき、ポイントPxが属したLODにおける隣接ポイント最大距離内にあり、且つ距離が最も近いX(例えば、3)個のポイントを実際の探索範囲のポイントから選択し、ポイントPxの隣接ポイント集合として登録する。即ち、ポイントPxの隣接ポイント集合として登録される隣接ポイントは、ポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントに制限される。
このように、この明細書は、ポイントクラウドコンテンツが有するポイント間の特質特性(関連性)を考慮して、隣接ポイント集合を選択することで、特質圧縮の効率を高めることができる。
上述した実施例により、隣接ポイント集合構成部53008において符号化されるポイントの各々の予測器に隣接ポイント集合が登録されると、特質情報予測部53009は、予測器に登録された1つ以上の隣接ポイントからそのポイントの特質値を予測する。上述のように、隣接ポイント集合を構成するとき、隣接ポイント最大距離を適用することで、各々の予測器に登録された隣接ポイント集合に含まれる隣接ポイントの数は、X(例えば、3)個と等しいか小さい。実施例によれば、ポイントの予測器は登録された隣接ポイント集合を有して、各々の隣接ポイントとの距離値に基づいて1/2距離=加重値(weight)として登録することができる。例えば、P3ノードの予測器は、隣接ポイント集合として(P2 P4 P6)を有して、各々の隣接ポイントとの距離値に基づいて加重値を計算する。
実施例によれば、隣接ポイント集合構成部53008又は特質情報予測部53009は、予測器に隣接ポイント集合が登録されると、隣接ポイント集合に含まれた隣接ポイントの加重値の総合により各々の隣接ポイントの加重値を正規化(normalize)することができる。
その後、特質情報予測部53009は予測器を介して特質値を予測することができる。
実施例によって、予測器に登録された隣接ポイントの特質(例えば、色相、反射率など)に加重値(又は正規化された加重値)を掛けた値の平均を予測された結果(即ち、予測特質値)として設定するか、又は特定のポイントの特質を予測された結果(即ち、予測特質値)として設定する。実施例によれば、予測特質値は予測特質情報とも呼ばれる。また、残余(residual)の特質値(又は、残余特質情報又は残差という)は、該当ポイントの特質値(即ち、オリジナル特質値)から該当ポイントの予測特質値(これを予測特質値又は予測特質情報という)を引くことにより求めることができる。
実施例によれば、様々な予測モード(又は予測器インデックスという)を適用して圧縮された結果値を予め計算した後、これらのうち、最小のビットストリームを生成する予測モード(即ち、予測器インデックス)を選択することができる。
以下、予測モードを選択する過程について詳しく説明する。
この明細書において、予測モード(prediction mode)は予測器インデックス(predictor index、Preindex)と同じ意味で使用され、広くは予測方法とも呼ばれる。
この明細書において、各ポイントごとに最適な予測モードを探し、この探した予測モードを該当ポイントの予測器に設定する過程は特質情報予測部53009で行うことを一実施例とする。
実施例によれば、加重値平均(即ち、各ポイントの予測器に設定された隣接ポイントの特質に各隣接ポイントまでの距離に基づいて計算された加重値をかけた値の平均値)により予測特質値を計算する予測モードを予測モード0と称する。また、1番目の隣接ポイントの特質を予測特質値とする予測モードを予測モード1、2番目の隣接ポイントの特質を予測特質値とする予測モードを予測モード2、また3番目の隣接ポイントの特質を予測特質値とする予測モードを予測モード3と称する。つまり、予測モード(又は予測器インデックス)の値が0であると加重値平均、1であると1番目の隣接ノード(即ち、隣接ポイント)、2であると2番目の隣接ノード、また3であると3番目の隣接ノードにより特質値を予測したことを表す。
実施例によれば、予測モード0であるときの残余特質値、予測モード1であるときの残余特質値、予測モード2であるときの残余特質値、及び予測モード3であるときの残余特質値を求め、各残余特質値に基づいてそれぞれのスコア(score or double score)を計算することができる。また計算したスコアが一番低い値を有する予測モードを選択して、該当ポイントの予測モードとして設定する。
実施例によれば、複数の予測モードのうち、最適な予測モードを探して該当ポイントの予測モードとして設定する過程は、所定の条件を満たした場合に行われる。即ち、所定の条件を満たしていない場合には、最適な予測モードを探す過程を行わず、予め定義された予測モード、例えば、加重値平均により予測特質値を計算する予測モード0を該当ポイントの予測モードとして設定する。かかる過程は各ポイントごとに行うことを一実施例とする。
実施例によれば、特定のポイントに対して所定の条件を満たす場合は、該当ポイントの予測器に登録された隣接ポイント間の特質要素(例えば、R、G、B)の差の値が所定のしきい値(例えば、lifting_adaptive_prediction_threshold)と等しいか又は大きい場合、又は該当ポイントの予測器に登録された隣接ポイント間の特質要素(例えば、R、G、B)の差の値を求めて、最大の要素値の和が所定のしきい値と等しいか又は大きい場合である。例えば、P3ポイントが該当ポイントであり、P3ポイントの隣接ポイントとしてP2、P4、P6ポイントが登録されたと仮定する。さらに、P2ポイントとP4ポイントの間のR、G、Bのそれぞれの差を求め、P2ポイントとP6ポイントの間のR、G、Bのそれぞれの差を求め、P4ポイントとP6ポイントの間のR、G、Bのそれぞれの差を求めたとき、R差の値はP2ポイントとP4ポイントの間で最も大きく、G差の値はP4ポイントとP6ポイントの間で最も大きく、またB差の値はP2ポイントとP6ポイントの間で最も大きいと仮定する。また最も大きいR差の値(即ち、P2とP4の間)、最も大きいG差の値(即ち、P4とP6の間)、及び最も大きいB差の値(即ち、P2とP6の間)のうち、P2ポイントとP4ポイントの間のR差の値が最も大きいと仮定する。
このような仮定において、P2ポイントとP4ポイントの間のR差の値が所定のしきい値と等しいか又は大きい場合、又はP2ポイントとP4ポイントの間のR差の値、P4ポイントとP6ポイントの間のG差の値、及びP2ポイントとP6ポイントの間のB差の値の和が所定のしきい値と等しいか又は大きい場合には、複数の候補予測モードのうち、最適な予測モードを探す過程を行うことができる。また、P2ポイントとP4ポイントの間のR差の値が所定のしきい値と等しいか又は大きい場合、又はP2ポイントとP4ポイントの間のR差の値、P4ポイントとP6ポイントの間のG差の値、そしてP2ポイントとP6ポイントの間のB差の値の和が所定のしきい値と等しいか又は大きい場合のみに予測モード(例えば、predIndex)をシグナリングすることができる。
特定のポイントに対して予め設定された条件を満たす他の実施例によれば、該当ポイントの予測器に登録された隣接ポイントの特質値(例えば、反射率(reflectance))間の最大差の値が予め設定されたしきい値(例えば、lifting_adaptive_prediction_threshold)と等しいか大きい場合である。例えば、P2ポイントとP4ポイントとの間の反射率の差の値、P2ポイントとP6ポイントとの間の反射率の差の値、P4ポイントとP6ポイントとの間の反射率の差の値を求めたとき、P2ポイントとP4ポイントとの間の反射率の差の値が最も大きいと仮定する。
このような仮定において、P2ポイントとP4ポイントとの間の反射率の差の値が予め設定されたしきい値と等しいか大きい場合、複数の候補予測モードのうち最適な予測モードを探す過程を行う。また、P2ポイントとP4ポイントとの間の反射率の差の値が予め設定されたしきい値と等しいか大きい場合に限って予測モード(例えば、predIndex)をシグナリングすることができる。
実施例によれば、該当ポイントの選択された予測モード(例えば、predIndex)は、特質スライスデータにシグナリングする。この場合、選択された予測モードに基づいて取得された残余特質値が送信され、受信側ではシグナリングされた予測モードに基づいて該当ポイントの予測特質値を求め、受信された残余特質値と併せて該当ポイントの特質値を復元する。
他の実施例として、予測モードがシグナリングされない場合は、送信側ではデフォルトとした予測モード(例えば、予測モード0)に基づいて予測特質値を求め、オリジナル特質値と予測特質値との差により残余特質値を求めて送信し、受信側ではデフォルトとした予測モード(例えば、予測モード0)に基づいて予測特質値を求め、受信された残余特質値と併せて特質値を復元する。
実施例によれば、しきい値は直接入力されるか、又はシグナリング処理部51005によりシグナリング情報にシグナリングされる(例えば、APSにシグナリングされたlifting_adaptive_prediction_thresholdフィールド)。
実施例によれば、上述したように、特定のポイントに対して所定の条件を満たす場合、予測器候補を生成することができる。予測器候補は予測モード又は予測器インデックスと呼ぶ。
実施例によれば、予測器候補に予測モード1ないし予測モード3が含まれる。実施例によれば、予測モード0は予測器候補に含まれてもよく含まれなくてもよい。実施例によれば、さらに上述しなかった少なくとも一つの予測モードが予測器候補に含まれることもできる。
上記過程により、特質情報予測部53009において各ポイントごとに設定された予測モードと設定された予測モードにおける残余特質値は、残余特質情報量子化処理部53010に出力される。
実施例によれば、残余特質情報量子化処理部53010は入力される残余特質値に対してゼロラン-レングス符号化を適用する。
この明細書は残余特質値に対して量子化及びゼロラン-レングスコーディングを行うことを一実施例とする。
実施例による演算コーダ53011は、残余特質情報量子化処理部53010から出力される予測モードと残余特質値に対して演算コーディングを適用して特質ビットストリームに出力する。
ジオメトリエンコーダ51006において圧縮されて出力されるジオメトリビットストリームと特質エンコーダ51007において圧縮されて出力される特質ビットストリームは、送信処理部51008に出力される。
実施例による送信処理部51008は、図12の送信処理部12012の動作及び/又は送信方法と同一又は類似する動作及び/又は送信方法を行い、図1の送受信機10003の動作及び/又は送信方法と同一又は類似する動作及び/又は送信方法を行う。具体的な説明は図1又は図12の説明を参照すればよく、ここでは省略する。
実施例による送信処理部51008は、ジオメトリエンコーダ51006から出力されるジオメトリビットストリーム、特質エンコーダ51007から出力される特質ビットストリーム、及びシグナリング処理部51005から出力されるシグナリングビットストリームのそれぞれを送信するか、又は一つのビットストリームに多重化して送信する。
実施例による送信処理部51008は、ビットストリームをファイル又はセグメント(例えば、ストリーミングセグメント)などにカプセル化した後、放送網及び/又はブロードバンド網などの様々なネットワークにより送信する。
実施例によるシグナリング処理部51005は、シグナリング情報を生成及び/又は処理してビットストリーム形態で送信処理部51008に出力する。シグナリング処理部51005で生成及び/又は処理されたシグナリング情報は、ジオメトリ符号化、特質符号化及び送信処理のためにジオメトリエンコーダ51006、特質エンコーダ51007及び/又は送信処理部51008に提供するか、又はシグナリング処理部51005にジオメトリエンコーダ51006、特質エンコーダ51007及び/又は送信処理部51008で生成されたシグナリング情報を提供する。
この明細書において、シグナリング情報は、パラメータセット(SPS:sequence parameter set、GPS:geometry parameter set、APS:attribute parameter set、TPS:Tile Parameter Setなど)単位でシグナリングされて送信される。またスライス又はタイルのように各映像のコーディングユニット単位でシグナリングされて送信されてもよい。この明細書において、シグナリング情報は、ポイントクラウドデータに関するメタデータ(例えば、設定値など)を含み、ジオメトリ符号化、特質符号化及び送信処理のためにジオメトリエンコーダ51006と特質エンコーダ51007及び/又は送信処理部51008に提供される。アプリケーションによってシグナリング情報は、ファイルフォーマット、DASH(dynamic adaptive streaming over HTTP)、MMT(MPEG media transport)などのシステム端、又はHDMI(High Definition Multimedia Interface:登録商標)、ディスプレイポート(Display Port)、VESA(Video Electronics Standards Association)、CTAなどの有線インターフェース端においても定義される。
実施例による方法/装置が実施例の動作を追加/実行するために、関連情報をシグナリングすることができる。実施例によるシグナリング情報は送信装置及び/又は受信装置で使用される。
この明細書において、特質予測のために使用される予測器の最大数情報(lifting_max_num_direct_predictors)、特質の適応的予測を可能にするためのしきい値情報(lifting_adaptive_prediction_threshold)、隣接ポイント選択関連のオプション情報などは、シーケンスパラメータセット、特質パラメータセット、タイルパラメータセット及び特質スライスヘッダのうちのいずれかにシグナリングされることを一実施例とする。また複数の予測器候補から選択された予測器候補に該当する予測モードを指示する予測器インデックス情報(predIndex)は、特質スライスデータにシグナリングされることを一実施例とする。
実施例によれば、隣接ポイント選択関連のオプション情報は、NN_rangeに関する情報(例えば、nearest_neighbor_max_rangeフィールド)を含む。実施例によれば、隣接ポイント選択関連のオプション情報は、さらに隣接ポイントとして設定可能な最大数に関する情報(例えば、lifting_num_pred_nearest_neighboursフィールド)、探索範囲に関する情報(例えば、lifting_search_rangeフィールド)、LOD構成方法に関する情報及び/又は隣接ポイント基本距離に関する情報のうちの少なくとも1つを含んでもよい。
一方、受信装置のポイントクラウドビデオデコーダにおいても、上記送信装置のポイントクラウドビデオエンコーダのように、LODl集合を生成し、LODl集合に基づいて最隣接(nearest neighbor)ポイントを探して予測器に隣接ポイント集合として登録し、それぞれの隣接ポイントとの距離値に基づいて加重値を計算して正規化する過程を同一又は類似に行う。また、受信された予測モードを復号し、復号された予測モードによって該当ポイントの特質値を予測する。さらに、受信された残余特質値を復号した後、予測された特質値を足して該当ポイントの特質値を復元する。
図28は実施例によるポイントクラウド受信装置のまた他の例を示す図である。
実施例によるポイントクラウド受信装置は、受信処理部61001、シグナリング処理部61002、ジオメトリデコーダ61003、特質デコーダ61004、及び後処理部(post-processor)61005を含む。実施例によれば、ジオメトリデコーダ61003と特質デコーダ61004はポイントクラウドビデオデコーダとも呼ばれる。実施例によれば、ポイントクラウドビデオデコーダはPCCデコーダ、PCC復号部、ポイントクラウドデコーダ、ポイントクラウド復号部などとも呼ばれる。
実施例による受信処理部61001は、一つのビットストリームを受信するか、又はジオメトリビットストリーム、特質ビットストリーム、シグナリングビットストリームのそれぞれを受信する。実施例による受信処理部61001は、ファイル及び/又はセグメントが受信されると、受信されたファイル及び/又はセグメントをデカプセル化してビットストリームに出力する。
実施例による受信処理部61001は、一つのビットストリームが受信(又はデカプセル化)されると、一つのビットストリームからジオメトリビットストリーム、特質ビットストリーム、及び/又はシグナリングビットストリームを逆多重化し、逆多重化されたシグナリングビットストリームはシグナリング処理部61002に、ジオメトリビットストリームはジオメトリデコーダ61003に、及び特質ビットストリームは特質デコーダ61004に出力する。
実施例による受信処理部61001は、ジオメトリビットストリーム、特質ビットストリーム、及び/又はシグナリングビットストリームのそれぞれが受信(又はデカプセル化)されると、シグナリングビットストリームはシグナリング処理部61002に、ジオメトリビットストリームはジオメトリデコーダ61003に、及び特質ビットストリームは特質デコーダ61004に伝達する。
シグナリング処理部61002は、入力されたシグナリングビットストリームからシグナリング情報、例えば、SPS、GPS、APS、TPS、メタデータなどに含まれた情報をパーシング及び処理して、ジオメトリデコーダ61003、特質デコーダ61004、後処理部61005に提供する。他の例として、ジオメトリスライスヘッダ及び/又は特質スライスヘッダに含まれたシグナリング情報も該当スライスデータを復号する前にシグナリング処理部61002で予めパーシングされてもよい。即ち、送信側でポイントクラウドデータが図16のようにタイル及び/又はスライスに分割される場合、TPSはそれぞれのタイル内に含まれたスライスの数を含むため、実施例によるポイントクラウドビデオデコーダはスライスの数を確認することができ、並列的な復号のための情報を迅速にパーシングすることができる。
よって、この明細書によるポイントクラウドビデオデコーダは、データの量が減少したSPSを受信することで、ポイントクラウドデータを含むビットストリームを迅速にパーシング(parsing)することができる。受信装置はタイルを受信し次第、該当タイルの復号を行い、タイルごとにタイル内に含まれたGPSとAPSに基づいてスライスごとに復号を行い、これにより復号の効率を極大化することができる。
即ち、ジオメトリデコーダ61003は圧縮されたジオメトリビットストリームに対してシグナリング情報(例えば、ジオメトリ関連パラメータ)に基づいて、図15のジオメトリエンコーダ51006の逆過程を行い、ジオメトリを復元する。ジオメトリデコーダ61003で復元された(又は再構成された(reconstructed))ジオメトリは、特質デコーダ61004に提供される。特質デコーダ61004は圧縮された特質ビットストリームに対してシグナリング情報(例えば、特質関連パラメータ)と再構成されたジオメトリに基づいて図15の特質エンコーダ51007の逆過程を行い、特質を復元する。実施例によれば、送信側でポイントクラウドデータが図16のようにタイル及び/又はスライス単位に分割される場合、ジオメトリデコーダ61003と特質デコーダ61004においてタイル及び/又はスライス単位でジオメトリ復号と特質復号を行う。
図29は実施例によるジオメトリデコーダ61003及び特質デコーダ61004の他の例を示す詳細ブロック図である。
図29のジオメトリデコーダ61003に含まれた演算デコーダ63001、八分木再構成部63002、ジオメトリ情報予測部63003、逆量子化処理部63004、及び座標系逆変換部63005は、図11の演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び座標系逆変換部11004の動作の一部又は全部を行うか、又は図13の演算デコーダ13002、占有コード基盤の八分木再構成処理部13003、表面モデル処理部13004、及び逆量子化処理部13005の動作の一部又は全部を行う。ジオメトリデコーダ61003で復元された位置は、後処理部(post-process)61005に出力される。
実施例によれば、シーケンスパラメータセット(SPS)、特質パラメータセット(APS)、タイルパラメータセット(TPS)、及び特質スライスヘッダのうちの少なくとも1つに特質予測のために使用される予測器の最大数情報(lifting_max_num_direct_predictors)、特質の適応的予測を可能にするためのしきい値情報(lifting_adaptive_prediction_threshold)、隣接ポイント選択関連のオプション情報などがシグナリングされている場合、シグナリング処理部61002で取得して特質デコーダ61004に提供するか、又は直接特質デコーダ61004で取得することができる。
実施例による特質デコーダ61004は、演算デコーダ63006、LOD構成部63007、隣接ポイント集合構成部63008、特質情報予測部63009、残余特質情報逆量子化処理部63010、及び色相逆変換処理部63011を含む。
実施例による演算デコーダ63006は、入力される特質ビットストリームを演算復号する。演算デコーダ63006は再構成されたジオメトリに基づいて特質ビットストリームの復号を行う。演算デコーダ63006は、図11の演算デコーダ11005又は図13の演算デコーダ13007の動作及び/又は復号と同一又は類似する動作及び/又は復号を行う。
実施例によれば、演算デコーダ63006で出力される特質ビットストリームは、再構成されたジオメトリ情報に基づいてRAHT復号、LODに基づく予測変換復号方法及びリフト変換復号方法のうちのいずれか一つ又は二つ以上を組み合わせて復号される。
この明細書は、送信装置においてLODに基づく予測変換コーディング方法及びリフト変換コーディング方法のうちのいずれか一つ又は二つを組み合わせて特質圧縮を行うことを一実施例として説明したので、受信装置においてもLODに基づく予測変換復号方法及びリフト変換復号方法のうちのいずれか一つ又は二つを組み合わせて特質復号を行うことを一実施例として説明する。よって、受信装置においてもRAHT復号方法については説明を省略する。
一実施例によれば、演算デコーダ63006で演算復号された特質ビットストリームはLOD構成部63007に提供される。実施例によれば、演算デコーダ63006からLOD構成部63007に提供される特質ビットストリームは、予測モードと残余特質値を含む。
実施例によるLOD構成部63007は、送信装置のLOD構成部53007と同一又は類似する方法によってLODを生成し、隣接ポイント集合構成部63008に出力する。
実施例によれば、LOD構成部63007は、1つ又はそれ以上のLOD生成方法(又はLOD構成方法)を用いて1つ又はそれ以上のLODを構成する。実施例によれば、LOD構成部63007で用いられたLOD生成方法は、シグナリング処理部61002によって提供される。例えば、LOD生成方法は、シグナリング情報の特質パラメータセット(APS)にシグナリングされる。実施例によれば、LOD生成方法は、八分木に基づくLOD生成方法、距離に基づくLOD生成方法、サンプリングに基づくLOD生成方法に区分することができる。
実施例によれば、互いに異なるLODを有するグループをLODl集合と称する。ここで、lはLODを示し、0から始める整数である。LOD0はポイント間の距離が最大のポイントからなる集合であり、lが大きくなるほどLODlに属したポイント間の距離が短くなる。
実施例によれば、送信装置で符号化された予測モード及び残余特質値は、LODごとに存在するか、又はリーフノードに対してのみ存在する。
一実施例として、LOD構成部63007でLODl集合が生成されると、隣接ポイント集合構成部63008はLODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいてX(例えば、3)個と等しいか小さい隣接ポイント(neighbor point)を探し、予測器(predictor)に隣接ポイント集合として登録する。
実施例による隣接ポイント集合構成部63008は、シグナリング情報に基づいて探索範囲及び/又は隣接ポイント最大距離を適用して、隣接ポイント集合を構成することを一実施例とする。
実施例による隣接ポイント集合構成部63008は、隣接ポイント基本距離にNN_rangeを掛けて隣接ポイント最大距離を取得する。NN_rangeは隣接ポイントとして選択可能な範囲であり、隣接ポイント最大範囲、隣接ポイント範囲、又は最隣接範囲(nearest neighbor range)と呼ぶ。
実施例による隣接ポイント集合構成部63008は、コンテンツの特性により、NN_rangeを自動又は手動に設定するか、又はシグナリング処理部61002によって提供される。例えば、NN_rangeに関する情報は、シグナリング情報のSPS、APS、タイルパラメータセット、特質スライスヘッダのうちの少なくとも1つにシグナリングされる。
実施例による隣接ポイント集合構成部63008は、八分木基盤、距離基盤、サンプリング基盤、各々のLODのモールトンコード平均差基盤、又は各々のLODの平均距離差基盤のうちの1つ又はそれ以上を組み合わせて隣接ポイント基本距離を計算/設定する。実施例によれば、隣接ポイント集合構成部63008は、シグナリング処理部61002によって隣接ポイント基本距離に関する情報が提供され、隣接ポイント基本距離に関する情報は、シグナリング情報の特質パラメータセット(APS)にシグナリングされる。
実施例による隣接ポイント集合構成部63008において、八分木基盤、距離基盤、サンプリング基盤、各々のLODのモールトンコード平均差基盤、又は各々のLODの平均距離差基盤のうちの1つ又はそれ以上を組み合わせて隣接ポイント基本距離を計算/設定する詳細な内容は、上述した送信装置の特質符号化の過程において詳細に説明したため、ここでは省略する。
一実施例によれば、隣接ポイント集合構成部63008は、上述のように、隣接ポイント最大距離が決定されると、図26のように、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいて探索範囲内にあるポイントのうちX(例えば、3)個の最隣接(nearest neighbor、NN)ポイントを探す。その後、X(例えば、3)個のNNポイントのうち隣接ポイント最大距離内にあるNNポイントのみを隣接ポイント集合として登録する。よって、隣接ポイント集合として登録されるNNポイントの数は、Xと等しいか小さい。換言すれば、X個のNNポイントのうち隣接ポイント最大距離内に存在しないNNポイントは、隣接ポイント集合として登録されずに除外される。例えば、3個のNNポイントのうち2個のNNポイントが隣接ポイント最大距離内になければ、2個のNNポイントは除外され、残りの1個のNNポイントのみが隣接ポイント集合として登録される。
他の実施例によれば、隣接ポイント集合構成部63008は、上述のように、隣接ポイント最大距離が決定されると、図27のように、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいて探索範囲内にあるポイントのうち隣接ポイント最大距離内にあるX(例えば、3)個の最隣接(nearest neighbor、NN)ポイントを探して、隣接ポイント集合として登録する。
即ち、隣接ポイント最大距離を適用する時期(又は位置)により、隣接ポイント集合として登録可能なNNポイントの数が異なる。換言すれば、図26のように、隣接ポイント探索によってX個のNNポイントを探した後に隣接ポイント最大距離を適用するか、又は図27のように、ポイント間の距離を計算する時に隣接ポイント最大距離を適用するかにより、隣接ポイント集合として登録されるNNポイントの数が異なる。
例えば、図26において、隣接ポイント集合構成部63008は、実際の探索範囲内のポイントとポイントPxとの距離値をそれぞれ比較して、距離が最も近いX個のポイントを探し、このX個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントのみをポイントPxの隣接ポイント集合として登録する。即ち、ポイントPxの隣接ポイント集合として登録される隣接ポイントは、X個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントに制限される。
例えば、図27において、隣接ポイント集合構成部63008は、実際の探索範囲のポイントとポイントPxとの距離値をそれぞれ比較するとき、ポイントPxが属したLODにおける隣接ポイント最大距離内にあり、且つ距離が最も近いX(例えば、3)個のポイントを実際の探索範囲のポイントから選択して、ポイントPxの隣接ポイント集合として登録する。即ち、ポイントPxの隣接ポイント集合として登録される隣接ポイントは、ポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントに制限される。
図26及び図27において、実際の探索範囲は、シグナリング情報のAPSにシグナリングされたlifting_search_rangeフィールドの値に2を掛けた後、中心ポイントを足した値(即ち、(lifting_search_rangeフィールドの値*2)+中心ポイント)でもよく、lifting_search_rangeフィールドの値に中心ポイントを足した値(即ち、lifting_search_rangeフィールドの値+中心ポイント)でもよく、又はlifting_search_rangeフィールドの値でもよい。隣接ポイント集合構成部63008は、LODの数が複数であると、ポイントPxの隣接ポイントはRetained listから探索し、LODの数が1であると、Pxの隣接ポイントはIndexex listから探索することを一実施例とする。
例えば、LODの数が2以上であり、探索範囲に関する情報(例えば、lifting_search_rangeフィールド)が128である場合、モールトンコードに整列されたretained listにおいて中心ポイント(Pi)を基準として前の128個のポイント、後ろの128個のポイント、及び中心ポイント(Pi)が実際の探索範囲となる。他の例として、LODの数が1であり、探索範囲に関する情報が128である場合、モールトンコードに整列されたindexes listにおいて中心ポイント(Pi)を基準として前の128個のポイントと中心ポイント(Pi)が実際の探索範囲となる。また他の例として、LODの数が1であり、探索範囲に関する情報が128である場合、モールトンコードに整列されたindexes listにおいて現在ポイントPxを基準として前の128個のポイントが実際の探索範囲となる。
一例として、隣接ポイント集合構成部63008は、LOD1に属するP3ポイント(即ち、ノード)の隣接ポイントとしてP2 P4 P6ポイントを選択して、P3の予測器に隣接ポイント集合として登録したと仮定する(図9を参照)。
実施例によれば、隣接ポイント集合構成部63008で復号されるポイントの各予測器に隣接ポイント集合が登録されると、特質情報予測部63009は、各予測器に登録された1つ以上の隣接ポイントからそのポイントの特質値を予測する。実施例によれば、特質情報予測部63009は、該当ポイントの予測モードに基づいてポイントの特質値を予測する過程を行う。この特質予測過程は、再構成されたジオメトリの全てのポイント又は少なくとも一部のポイントに対して行うことを一実施例とする。
実施例による特定のポイントの予測モードは、予測モード0ないし予測モード3のうちのいずれかである。
実施例によれば、予測モード0は加重値平均により予測特質値を計算するモードであり、予測モード1は1番目の隣接ポイントの特質を予測特質値として定めるモードであり、予測モード2は2番目の隣接ポイントの特質を予測特質値として定めるモードであり、予測モード3は3番目の隣接ポイントの特質を予測特質値として定めるモードである。
実施例によれば、送信側の特質エンコーダでは、該当ポイントの予測器に登録された隣接ポイントの特質値の間の最大差(maximum difference)の値が所定のしきい値より小さいと、予測モード0を該当ポイントの予測モードとして設定し、所定のしきい値と等しいか大きいと、複数の候補予測モードに対してRDO方法を適用して、そのうちのいずれかを該当ポイントの予測モードとして設定する。この過程を各ポイントごとに行うことを一実施例とする。
実施例によれば、RDO方法を適用して選択される該当ポイントの予測モード(predIndex)は、特質スライスデータにシグナリングされる。よって、該当ポイントの予測モードは特質スライスデータから取得される。
実施例によれば、特質情報予測部63009は上述したように設定された各ポイントの予測モードに基づいて各ポイントの特質値を予測することもできる。
例えば、P3ポイントの予測モードが0であると仮定すると、P3の予測器に登録された隣接ポイントであるP2 P4 P6の特質に加重値(又は正規化された加重値)を掛けた値の平均を求め、その平均値をP3ポイントの予測特質値として決定する。
他の例として、P3ポイントの予測モードが1であると仮定すると、P3の予測器に登録された隣接ポイントP4の特質値をP3イントの予測特質値として決定する。
また他の例として、P3ポイントの予測モードが2であると仮定すると、P3の予測器に登録された隣接ポイントP6の特質値をP3ポイントの予測特質値として決定する。
また他の例として、P3ポイントの予測モードが3であると仮定すると、P3の予測器に登録された隣接ポイントP2の特質値をP3ポイントの予測特質値として決定する。
特質情報予測部63009で該当ポイントの予測モードに基づいて該当ポイントの予測特質値が求められると、残余特質情報逆量子化処理部63010は受信された該当ポイントの残余特質値に特質情報予測部63009で予測された該当ポイントの予測特質値を足して該当ポイントの特質値を復元した後、送信装置の量子化過程の逆に逆量子化を行う。
一実施例として、送信側でポイントの残余特質値に対してゼロラン-レングスコーディングを適用した場合は、残余特質情報逆量子化処理部63010はポイントの残余特質値に対してゼロラン-レングス復号を行った後、逆量子化を行う。
残余特質情報逆量子化処理部63010で復元された特質値は色相逆変換処理部63011に出力される。
色相逆変換処理部63011は復元された特質値に含まれた色相値(又はテクスチャー)を逆変換するための逆変換コーディングを行って特質を後処理部61005に出力する。色相逆変換処理部63011は図11の色相逆変換部11010又は図13の色相逆変換処理部13010の動作及び/又は逆変換コーディングと同一又は類似する動作及び/又は逆変換コーディングを行う。
後処理部61005は、ジオメトリデコーダ61003で復元されて出力される位置と特質デコーダ61004で復元されて出力される特質をマッチングして、ポイントクラウドデータを再構成する。また、後処理部61005は、再構成されたポイントクラウドデータがタイル及び/又はスライス単位である場合、シグナリング情報に基づいて送信側の空間分割の逆過程を行う。例えば、図16(a)のような境界ボックスが図16(b)、図16(c)のようにタイル及びスライスに分割される場合、シグナリング情報に基づいてタイル及び/又はスライスを結合して、図16(a)のように境界ボックスを復元する。
図30は実施例による送/受信のためのポイントクラウドデータのビットストリーム構造の一例を示す。
上述した実施例を追加/実行するために、関連情報をシグナリングすることができる。実施例によるシグナリング情報は、送信端のポイントクラウドビデオエンコーダ又は受信端のポイントクラウドビデオデコーダなどで使用される。
実施例によるポイントクラウドビデオエンコーダは、上述のように、ジオメトリ情報及び特質情報を符号化し、図32のようなビットストリームを生成する。また、ポイントクラウドデータに関するシグナリング情報は、ポイントクラウドビデオエンコーダのジオメトリエンコーダ、特質エンコーダ、シグナリング処理部のうちの少なくとも1つにおいて生成及び処理されてビットストリームに含まれる。
実施例によるシグナリング情報は、ポイントクラウドビデオデコーダのジオメトリデコーダ、特質デコーダ、シグナリング処理部のうちの少なくとも1つにおいて受信/取得される。
実施例によるビットストリームは、ジオメトリビットストリーム、特質ビットストリーム、及びシグナリングビットストリームに区分されて送信/受信されるか、又は1つのビットストリームに結合されて送信/受信される。
実施例によるジオメトリビットストリーム、特質ビットストリーム、及びシグナリングビットストリームが1つのビットストリームで構成される場合、ビットストリームは1つ又はそれ以上のサブビットストリームを含む。実施例によるビットストリームは、シーケンスレベルのシグナリングのためのSPS(Sequence Parameter Set)、ジオメトリ情報コーディングのシグナリングのためのGPS(Geometry Parameter Set)、特質情報コーディングのシグナリングのための1つ以上のAPS(Attribute Parameter Set、APS0、APS1)、タイルレベルのシグナリングのためのTPS(Tile Parameter Set)、1つ以上のスライス(slice 0 ~slice n)を含む。即ち、実施例によるポイントクラウドデータのビットストリームは一つ以上のタイルを含み、それぞれのタイルは一つ以上のスライス(slice0~slice n)を含むスライスのグループである。実施例によるTPSは一つ以上のタイルに対して各タイルに関する情報(例えば、境界ボックスの座標値情報及び高さ/サイズ情報など)を含む。各スライスは一つのジオメトリビットストリーム(Geom0)及び一つ以上の特質ビットストリーム(Attr0、Attr1)を含む。例えば、第1スライス(slice 0)は一つのジオメトリビットストリーム(Geom00)及び一つ以上の特質ビットストリーム(Attr00、Attr10)を含む。
各スライス内のジオメトリビットストリーム(又はジオメトリスライスという)は、ジオメトリスライスヘッダ(geom_slice_header)及びジオメトリスライスデータ(geom_slice_data)で構成される。実施例によるジオメトリスライスヘッダ(geom_slice_header)は、ジオメトリパラメータセット(GPS)に含まれたパラメータセットの識別情報(geom_parameter_set_id)、タイル識別子(geom_tile_id)、スライス識別子(geom_slice_id)及びジオメトリスライスデータ(geom_slice_data)に含まれたデータに関する情報(geomBoxOrigin、geom_box_log2_scale、geom_max_node_size_log2、geom_num_points)などを含む。geomBoxOriginは該当ジオメトリスライスデータのボックス原点を示すジオメトリボックスオリジン情報であり、geom_box_log2_scaleは該当ジオメトリスライスデータの対数スケール(Log Scale)を示す情報であり、geom_max_node_size_log2はルートジオメトリ八分木ノードのサイズを示す情報であり、geom_num_pointsは該当ジオメトリスライスデータのポイントの数に関する情報である。実施例によるジオメトリスライスデータ(geom_slice_data)は、該当スライス内のポイントクラウドデータのジオメトリ情報(又はジオメトリデータ)を含む。
各スライス内の各特質ビットストリーム(又は特質スライスという)は、特質スライスヘッダ(attr_slice_header)及び特質スライスデータ(attr_slice_data)で構成される。実施例による特質スライスヘッダ(attr_slice_header)は該当特質スライスデータに関する情報を含み、特質スライスデータは該当スライス内のポイントクラウドデータの特質情報(又は特質データ又は特質値という)を含む。一つのスライス内の特質ビットストリームが複数である場合、それぞれは互いに異なる特質情報を含む。例えば、一つの特質ビットストリームは色相に該当する特質情報を含み、他の一つの特質ストリームは反射率に該当する特質情報を含む。
図31は実施例によるポイントクラウドデータのビットストリーム構造の一例を示す。
図32は実施例によるポイントクラウドデータのビットストリーム内における構成間連結関係を示す。
図31及び図32に示したポイントクラウドデータのビットストリーム構造は、図30に示したポイントクラウドデータのビットストリーム構造を意味する。
実施例によるSPSは、該当SPSを識別するための識別子(seq_parameter_set_id)を含み、GPSは該当GPSを識別するための識別子(geom_parameter_set_id)と該当GPSが属する動的SPS(Active SPS)を示す識別子(seq_parameter_set_id)を含み、APSは該当APSを識別するための識別子(attr_parameter_set_id)と該当APSが属する動的SPS(Active SPS)を示す識別子(seq_parameter_set_id)を含む。
実施例によるジオメトリビットストリーム(又はジオメトリスライスという)はジオメトリスライスヘッダとジオメトリスライスデータを含み、ジオメトリスライスヘッダは該当ジオメトリスライスで参照する動的GPSの識別子(geom_parameter_set_id)を含む。さらに、ジオメトリスライスヘッダは該当ジオメトリスライスを識別するための識別子(geom_slice_id)及び/又は該当タイルを識別するための識別子(geom_tile_id)を含む。ジオメトリスライスデータは該当スライスに属するジオメトリ情報を含む。
実施例による特質ビットストリーム(又は特質スライスという)は特質スライスヘッダと特質スライスデータを含み、特質スライスヘッダは該当特質スライスで参照する動的APSの識別子(attr_parameter_set_id)と該当特質スライスに関連するジオメトリスライスを識別するための識別子(geom_slice_id)を含む。特質スライスデータは該当スライスに属する特質情報を含む。
即ち、ジオメトリスライスはGPSを参照し、GPSはSPSを参照する。また、SPSは利用可能な(available)特質を並べ、それぞれに識別子を割り当て、復号方法を識別する。特質スライスは識別子により出力特質にマッピングされ、特質スライスそのものは先行(復号された)ジオメトリスライスとAPSに対して従属性を有する。APSはSPSを参照する。
実施例によれば、ポイントクラウドデータの符号化に必要なパラメータはポイントクラウドデータのパラメータセット及び/又は該当スライスヘッダに新しく定義される。例えば、特質情報の符号化を行うときには特質パラメータセット(APS)に、タイルに基づいて符号化を行うときにはタイル及び/又はスライスヘッダに追加する。
図30ないし図32に示したように、ポイントクラウドデータのビットストリームはポイントクラウドデータを領域ごとに分けて処理できるように、タイル又はスライスを提供する。実施例によるビットストリームのそれぞれの領域は互いに異なる重要度を有する。従って、ポイントクラウドデータがタイルに分けられる場合、各タイルごとに異なるフィルター(符号化方法)、異なるフィルターユニットを適用することができる。また、ポイントクラウドデータがスライスに分けられる場合は、各スライスごとに異なるフィルター、異なるフィルターユニットを適用することができる。
実施例による送信装置及び受信装置は、ポイントクラウドデータを分割して圧縮するとき、分割された領域内の特質情報の選択的送信のために、高レベルの構文構造でビットストリームを送信及び受信することができる。
実施例による送信装置は、図30ないし図32のようなビットストリームの構造によってポイントクラウドデータを送信することにより、重要度によって異なる符号化動作を適用し、良質の符号化方法を重要な領域に使用する方案を提供することができる。またポイントクラウドデータの特性による効率的な符号化及び送信を支援して、ユーザの要求事項による特質値を提供することができる。
実施例による受信装置は、図30ないし図32のようなビットストリームの構造によってポイントクラウドデータを受信することにより、受信装置の処理能力(capacity)によってポイントクラウドデータの全体に複雑な復号(フィルタリング)方法を使用する代わりに、領域ごとに(タイル又はスライスに分けられた領域)互いに異なるフィルタリング(復号方法)を適用することができる。従って、ユーザに、重要な領域にはより良質の画質を提供し、システム上適切な遅延(latency)を保障することができる。
上述したように、タイル又はスライスはポイントクラウドデータを領域ごとに分けて処理するために提供される。また、ポイントクラウドデータを領域ごとに分けるとき、それぞれの領域ごとに異なる隣接ポイント集合を生成するオプションを設定し、複雑度(complexity)は低いが信頼度が多少落ちるか、又は逆に複雑度は高いが信頼度が高い選択案を提供することができる。
実施例による特質情報の符号化/復号の過程において必要なシーケンスに対する隣接ポイント選択関連オプション情報は、SPS及び/又はAPSにシグナリングされる。
実施例によれば、同じシーケンスにおいて異なる特質特性を有するタイル又はスライスが存在する場合、シーケンスに対する隣接ポイント選択関連オプション情報は、TPS及び/又は各スライスごとの特質スライスヘッダにシグナリングされる。
実施例によれば、ポイントクラウドデータを領域ごとに分けるとき、特定の領域の特質特性がシーケンスの有する特質特性とは異なることがあるため、他の隣接ポイント最大範囲の設定機能によって異なるように設定することができる。
よって、ポイントクラウドデータがタイルに分けられる場合、各タイルごとに異なる隣接ポイント最大範囲を適用することができる。また、ポイントクラウドデータがスライスに分けられる場合、各スライスごとに異なる隣接ポイント最大範囲を適用することができる。
実施例によれば、SPS、APS、TPS、及び各スライスごとの特質スライスヘッダのうちの少なくとも1つは、隣接ポイント選択関連オプション情報を含む。実施例によれば、隣接ポイント選択関連オプション情報は、隣接ポイント最大範囲に関する情報(例えば、nearest_neighbor_max_rangeフィールド)を含む。
実施例によれば、隣接ポイント選択関連オプション情報は、隣接ポイントとして設定可能な最大数に関する情報(例えば、lifting_num_pred_nearest_neighboursフィールド)、探索範囲に関する情報(例えば、lifting_search_rangeフィールド)、LOD構成方法に関する情報及び/又は隣接ポイント基本距離に関する情報のうちの少なくとも1つをさらに含んでもよい。
後述するこの明細書の構文で使用される用語であるフィールドは、パラメータ又はエレメントと同じ意味を有する。
図33はこの明細書によるシーケンスパラメータセット(seq_parameter_set_rbsp())(SPS)の構文構造の一実施例を示す。SPSはポイントクラウドデータビットストリームのシーケンス情報を含み、特に隣接ポイント選択関連のオプション情報を含むことを一例とする。
実施例によるSPSは、profile_idcフィールド、profile_compatibility_flagsフィールド、level_idcフィールド、sps_bounding_box_present_flagフィールド、sps_source_scale_factorフィールド、sps_seq_parameter_set_idフィールド、sps_num_attribute_setsフィールド及びsps_extension_present_flagフィールドを含む。
profile_idcフィールドは、そのビットストリームが従う(conform)プロファイルを示す。
profile_compatibility_flagsフィールドの値が1であると、そのビットストリームがprofile_idcフィールドにより指示されたそのプロファイルに従うことを示す(the bitstream conforms to the profile indicated by profile_idc)。
level_idcフィールドは、そのビットストリームが従うレベルを示す。
sps_bounding_box_present_flagフィールドは、ソース境界ボックス情報がSPSにシグナリングされるか否かを示す。ソース境界ボックス情報はソース境界ボックスオフセットとサイズ情報を含む。例えば、sps_bounding_box_present_flagフィールドの値が1であると、ソース境界ボックス情報がSPSにシグナリングされ、0であると、シグナリングされないことを示す。sps_source_scale_factorフィールドは、ソースポイントクラウドの倍率(scale factor)を示す(indicates the scale factor of the source point cloud)。
sps_seq_parameter_set_idフィールドは、他のシンタックスエレメントにより参照されるSPSに関する識別子を提供する(provides an identifier for the SPS for reference by other syntax elements)。
sps_num_attribute_setsフィールドは、そのビットストリーム内のコーディングされた特質の数を示す(indicates the number of coded attributes in the bitstream)。
sps_extension_present_flagフィールドは、sps_extension_dataシンタックス構造が該当SPSシンタックス構造に存在するか否かを示す。例えば、sps_extension_present_flagフィールドの値が1であると、sps_extension_dataシンタックス構造がこのSPSシンタックス構造に存在し、0であると、存在しないことを示す(equal to 1 specifies that the sps_extension_data syntax structure is present in the SPS syntax structure. The sps_extension_present_flag field equal to 0 specifies that this syntax structure is not present. When not present、the value of the sps_extension_present_flag field is inferred to be equal to 0)。
実施例によるSPSは、sps_bounding_box_present_flagフィールドの値が1であると、さらに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フィールドは、直交座標系(Cartesian coordinates)において、ソース境界ボックスのxオフセットを示す。ソース境界ボックスのxオフセットが存在しないと、sps_bounding_box_offset_xフィールドの値は0である。
sps_bounding_box_offset_yフィールドは、直交座標系においてソース境界ボックスのyオフセットを示す。ソース境界ボックスのyオフセットが存在しないと、sps_bounding_box_offset_yフィールドの値は0である。
sps_bounding_box_offset_zフィールドは、直交座標系においてソース境界ボックスのzオフセットを示す。ソース境界ボックスのzオフセットが存在しないと、sps_bounding_box_offset_zフィールドの値は0である。
sps_bounding_box_scale_factorフィールドは、直交座標系においてソース境界ボックスの倍率を示す。ソース境界ボックスの倍率が存在しないと、sps_bounding_box_scale_factorフィールドの値は1である。
sps_bounding_box_size_widthフィールドは、直交座標系においてソース境界ボックスの幅を示す。ソース境界ボックスの幅が存在しないと、sps_bounding_box_size_widthフィールドの値は1である。
sps_bounding_box_size_heightフィールドは、直交座標系においてソース境界ボックスの高さを示す。ソース境界ボックスの高さが存在しないと、sps_bounding_box_size_heightフィールドの値は1である。
sps_bounding_box_size_depthフィールドは、直交座標系においてソース境界ボックスの深さを示す。ソース境界ボックスの深さが存在しないと、sps_bounding_box_size_depthフィールドの値は1である。
実施例によるSPSは、sps_num_attribute_setsフィールドの値だけ繰り返される繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、i値が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-th attribute)。
attribute_instance_id[i]フィールドは、i番目の特質のインスタンス識別子を示す。
attribute_bitdepth[i]フィールドは、i番目の特質信号のビット深さ(bitdepth)を示す(specifies the bitdepth of the i-th attribute signal(s))。
Attribute_cicp_colour_primaries[i]フィールドは、i番目の特質の色特質ソースプライマリの色度座標(chromaticity coordinates)を示す。
attribute_cicp_transfer_characteristics[i]フィールドは、i番目の特質の0から1の間の公称実数値範囲を有するソース入力線形光強度(input linear optical intensity)であって、参照光電子伝達特性関数(reference opto-electronic transfer characteristic function)を示すか、又は出力線形光強度(output linear optical intensity)の関数であって、参照電子光伝達特性関数(reference opto-electronic transfer characteristic function)の逆(inverse)を示す(either indicates the reference opto-electronic transfer characteristic function of the colour attribute as a function of a source input linear optical intensity 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)。
attribute_cicp_matrix_coeffs[i]フィールドは、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]フィールドは、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]フィールドは、i番目の特質のためにknown_attribute_labelフィールド又はattribute_label_four_bytesフィールドがシグナリングされるか否かを示す。例えば、known_attribute_label_flag[i]フィールドの値が1であると、i番目の特質のためにknown_attribute_labelフィールドがシグナリングされ、known_attribute_label_flag[i]フィールドの値が1であると、i番目の特質のためにattribute_label_four_bytesフィールドがシグナリングされることを示す。
known_attribute_label[i]フィールドは、特質のタイプを示す。例えば、known_attribute_label[i]フィールドの値が0であると、i番目の特質はカラーであることを示し、known_attribute_label[i]フィールドの値が1であると、i番目の特質は反射率(reflectance)であることを示し、known_attribute_label[i]フィールドの値が1であると、i番目の特質はフレームインデックス(frame index)であることを示す。
attribute_label_four_bytesフィールドは、既知の特質タイプを4バイトコードで示す。
一実施例において、attribute_label_four_bytesフィールドの値が0であるとカラーを、1であると反射率を示す。
実施例によるSPSは、SPS_extension_present_flagフィールドの値が1であると、さらにSPS_extension_data_flagフィールドを含むことができる。
sps_extension_data_flagフィールドはいずれの値であってもよい。
実施例によるSPSはさらに隣接ポイント選択関連オプション情報を含む。実施例によれば、隣接ポイント選択関連オプション情報は、NN_rangeに関する情報を含む。
実施例によれば、隣接ポイント選択関連オプション情報は、sps_num_attribute_setsフィールドの値だけ繰り返される繰り返し文に含まれる。
即ち、繰り返し文はさらにnearest_neighbour_max_range[i]フィールドとnearest_neighbour_min_range[i]フィールドを含む。
nearest_neighbour_max_range[i]フィールドは、該当シーケンスのi番目の特質を圧縮するときに適用された隣接ポイント最大範囲を指示する。実施例によれば、nearest_neighbour_max_range[i]フィールドの値は、数式5のNN_range値として用いられる。実施例によれば、nearest_neighbour_max_range[i]フィールドは隣接ポイントとして登録されるポイントの距離を制限するために使用される。例えば、八分木に基づいてLODを生成する場合、nearest_neighbour_max_range[i]フィールドの値は、ポイントの周りの八分木ノードの数である。
nearest_neighbour_min_range[i]フィールドは、該当シーケンスのi番目の特質を圧縮するときに隣接ポイントの最小範囲を指示する。
図34はこの明細書によるジオメトリパラメータセット(geometry_parameter_set())(GPS)の構文構造の一実施例を示す。実施例によるGPSは、1つ又はそれ以上のスライスに含まれたポイントクラウドデータのジオメトリ情報を符号化する方法に関する情報を含む。
実施例によるGPSは、gps_geom_parameter_set_idフィールド、gps_seq_parameter_set_idフィールド、gps_box_present_flagフィールド、unique_geometry_points_flagフィールド、neighbour_context_restriction_flagフィールド、inferred_direct_coding_mode_enabled_flagフィールド、bitwise_occupancy_coding_flagフィールド、adjacent_child_contextualization_enabled_flagフィールド、log2_neighbour_avail_boundaryフィールド、log2_intra_pred_max_node_sizeフィールド、log2_trisoup_node_sizeフィールド、及びgps_extension_present_flagフィールドを含む。
gps_geom_parameter_set_idフィールドは、他のシンタックスエレメントにより参照されるGPSの識別子を提供する(provides an identifier for the GPS for reference by other syntax elements)。
gps_seq_parameter_set_idフィールドは、該当アクティブSPSに対するseq_parameter_set_idフィールドの値を示す(specifies the value of sps_seq_parameter_set_id for the active SPS)。
gps_box_present_flagフィールドは、追加境界ボックスの情報が現在のGPSを参照するジオメトリスライスヘッダから提供されるか否かを示す。例えば、gps_box_present_flagフィールドの値が1であると、追加境界ボックスの情報が現在のGPSを参照するジオメトリヘッダ内に提供されることを示る。よって、gps_box_present_flagフィールドの値が1であると、GPSはさらにgps_gsh_box_log2_scale_present_flagフィールドを含む。
gps_gsh_box_log2_scale_present_flagフィールドは、gps_gsh_box_log2_scale フィールドが現在のGPSを参照する各ジオメトリスライスヘッダにシグナリングされるか否かを示す。例えば、gps_gsh_box_log2_scale_present_flagフィールドの値が1であると、gps_gsh_box_log2_scale フィールドが現在のGPSを参照する各ジオメトリスライスヘッダにシグナリングされることを示す。他の例として、gps_gsh_box_log2_scale_present_flagフィールドの値が0であると、gps_gsh_box_log2_scaleフィールドが現在のGPSを参照する各ジオメトリスライスヘッダにシグナリングされず、全てのスライスのための共通スケール(common scale)が現在のGPSのgps_gsh_box_log2_scale フィールドにシグナリングされることを示す。
gps_gsh_box_log2_scale_present_flagフィールドの値が0であると、GPSはさらにgps_gsh_box_log2_scaleフィールドを含む。
gps_gsh_box_log2_scaleフィールドは、現在のGPSを参照する全てのスライスに対する境界ボックスオリジンの共通倍率(common scale factor)を示す。
unique_geometry_points_flagフィールドは、全ての出力されたポイントが固有の位置を有するか否かを示す。例えば、unique_geometry_points_flagフィールドの値が1であると、全ての出力ポイントが固有の位置を有することを示す。unique_geometry_points_flagフィールドの値が0であると、2個以上の出力ポイントが同じ位置を有することができることを示す(equal to 1 indicates that all output points have unique positions. unique_geometry_points_flag field equal to 0 indicates that the output points may have same positions)。
neighbour_context_restriction_flagフィールドは、八分木占有率コーディングが使用するコンテキストを示す。例えば、neighbour_context_restriction_flagフィールドの値が0であると、八分木占有率コーディングが6つの隣接親ノード(neighboring parent nodes)に基づいて決定されたコンテキストを使用することを示す。neighbour_context_restriction_flagフィールドの値が1であると、八分木占有率コーディングが兄弟ノード(sibling nodes)のみに基づいて決定されたコンテキストを使用することを示す(equal to 0 indicates that octree occupancy coding uses contexts determined from six neighbouring parent nodes. neighbour_context_restriction_flag field equal to 1 indicates that octree occupancy coding uses contexts determined from sibling nodes only)。
inferred_direct_coding_mode_enabled_flagフィールドは、direct_mode_flagフィールドが該当ジオメトリノードシンタックスに存在するか否かを示す。例えば、inferred_direct_coding_mode_enabled_flagフィールドの値が1であると、direct_mode_flagフィールドが該当ジオメトリノードシンタックスに存在することを示す。例えば、inferred_direct_coding_mode_enabled_flagフィールドの値が0であると、direct_mode_flagフィールドが該当ジオメトリノードシンタックスに存在しないことを示す。
bitwise_occupancy_coding_flagフィールドは、ジオメトリノード占有率がそのシンタックスエレメント占有率マップのビット文脈(bitwise contextualization)を使用して符号化されるか否かを示す。例えば、bitwise_occupancy_coding_flagフィールドの値が1であると、ジオメトリノード占有率がそのシンタックスエレメントoccupancy_mapのビット文脈を使用して符号化されることを示す。例えば、bitwise_occupancy_coding_flagフィールドの値が0であると、ジオメトリノード占有率がそのディレクトリ符号化されたシンタックスエレメントoccupancy_byteを使用して符号化されることを示す。
adjacent_child_contextualization_enabled_flagフィールドは、隣接八分木ノード(neighbouring octree nodes)の隣接する子(adjacent children)がビット占有率の文脈化(bitwise occupancy contextualization)のために使用されるか否かを示す。例えば、adjacent_child_contextualization_enabled_flagフィールドの値が1であると、隣接八分木ノード(neighbouring octree nodes)の隣接する子がビット占有率の文脈化のために使用されることを示す。例えば、adjacent_child_contextualization_enabled_flagフィールドの値が0であると、隣接八分木ノード(neighbouring octree nodes)の子(children)がビット占有率の文脈化のために使用されないことを示す。
log2_neighbour_avail_boundaryフィールドは、復号プロセスにおいて以下のように用いられる変数(variable) 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であると、NeighbAvailabilityMaskは1に設定される。例えば、neighbour_context_restriction_flagフィールドの値が0であると、NeighbAvailabilityMaskは1<<log2_neighbour_avail_boundaryに設定される。
log2_intra_pred_max_node_sizeフィールドは、占有率イントラ予測資格のある八分木ノードサイズを示す(specifies the octree nodesize eligible for occupancy intra prediction)。
log2_trisoup_node_sizeフィールドは、以下のように決定される三角形ノードのサイズであって、変数(variable)TrisoupNodeSizeを示す(specifies the variable TrisoupNodeSize as the size of the triangle nodes as follows).
TrisoupNodeSize=1<<log2_trisoup_node_size
gps_extension_present_flagフィールドは、gps_extension_dataシンタックス構造が該当GPSシンタックスに存在するか否かを示す。例えば、gps_extension_present_flagフィールドの値が1であると、gps_extension_dataシンタックス構造が該当GPSシンタックスに存在することを示す。例えば、gps_extension_present_flagフィールドの値が0であると、gps_extension_dataシンタックス構造が該当GPSシンタックスに存在しないことを示す。
実施例によるGPSは、gps_extension_present_flagフィールドの値が1であると、さらにgps_extension_data_flagフィールドを含む。
gps_extension_data_flagフィールドはいずれの値であってもよい。その存在と値はデコーダ規格(decoder conformance to profiles)に影響を与えない。
図35はこの明細書による特質パラメータセット(attribute_parameter_set())(APS)の構文構造の一実施例を示す。実施例によるAPSは、1つ又はそれ以上のスライスに含まれたポイントクラウドデータの特質情報を符号化する方法に関する情報を含み、特に隣接ポイント選択関連オプション情報を含むことを一例とする。
実施例によるAPSは、aps_attr_parameter_set_idフィールド、aps_seq_parameter_set_idフィールド、attr_coding_typeフィールド、aps_attr_initial_qpフィールド、aps_attr_chroma_qp_offsetフィールド、aps_slice_qp_delta_present_flagフィールド、及びaps_extension_present_flagフィールドを含む。
aps_attr_parameter_set_idフィールドは、他の構文要素による参照のためにAPSの識別子を示す。
aps_seq_parameter_set_idフィールドは、動的(active)SPSに対するsps_seq_parameter_set_idの値を示す。
attr_coding_typeフィールドは、特質に対するコーディングタイプを示す。
一実施例として、attr_coding_typeフィールドの値が0であると、コーディングタイプは予測加重値リフト(predicting weight lifting又はLOD with predictiing trnasform)を指示し、1であると、コーディングタイプはRAHTを指示し、2であると、固定加重値リフト(fix weight lifting又はLOD with lifting transform)を指示する。
aps_attr_initial_qpフィールドは、APSを参照する各スライスに対する変数スライス量子化パラメータ(SliceQp)の初期値を示す(pecifies the initial value of the variable SliceQp for each slice referring to the APS)。このSliceQpの初期値は、slice_qp_delta_luma又はslice_qp_delta_lumaの非ゼロ(non-zero)値が復号されるとき、該当特質スライスセグメントレイヤで修正される。
aps_attr_chroma_qp_offsetフィールドは、構文aps_attr_initial_qpによってシグナリングされた初期量子化パラメータに対するオフセットを示す。
aps_slice_qp_delta_present_flagフィールドは、ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma構文要素が該当特質スライスヘッダ(ASH)に存在するか否かを示す。例えば、aps_slice_qp_delta_present_flagフィールドの値が1であると、ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma構文要素が該当特質スライスヘッダ(ASH)に存在することを指示する(equal to 1 specifies that the ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma syntax elements are present in the ASH)。例えば、aps_slice_qp_delta_present_flagフィールドの値が0であると、ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma構文要素が該当特質スライスヘッダ(ASH)に存在しないことを指示する。
実施例によるAPSは、attr_coding_typeフィールドの値が0又は2であると、即ち、コーディングタイプが予測加重値リフト(predicting weight lifting or LOD with predicting transform)であるか、又は固定加重値リフト(fix weight lifting or LOD with lifting transform)であると、さらにlifting_num_pred_nearest_neighboursフィールド、lifting_max_num_direct_predictorsフィールド、lifting_search_rangeフィールド、lifting_lod_regular_sampling_enabled_flagフィールド、lifting_num_detail_levels_minus1フィールドを含む。
lifting_num_pred_nearest_neighboursフィールドは、予測(prediction)のために使用される最隣接(nearest neighbor)ポイントの最大数(即ち、X値)を示す。
lifting_max_num_direct_predictorsフィールドは、ダイレクト予測(direct prediction)のために使用される予測器の最大の数を示す。実施例によるポイントクラウドデータ復号過程で使用される変数(variable)MaxNumPredictorsの値は以下のように表現される。
MaxNumPredictors=lifting_max_num_direct_predictorsフィールド+1
lifting_search_rangeフィールドは、最隣接ポイントを決定するために使用される探索範囲を示す。
lifting_lod_regular_sampling_enabled_flagフィールドは、LOD(levels of detail)が規格サンプリングの戦略により形成されるか否かを示す。例えば、lifting_lod_regular_sampling_enabled_flagフィールドの値が1であると、LODが規格サンプリングの戦略により形成されることを示す。例えば、lifting_lod_regular_sampling_enabled_flagフィールドの値が0であると、代わりに距離基盤のサンプリング戦略(distance_based sampling strategy)が使用されることを示す。
lifting_num_detail_levels_minus1フィールドは、特質コーティングのためのLODの数を示す。
実施例によるAPSは、lifting_num_detail_levels_minus1フィールドの値だけ繰り返される繰り返し文を含む。このとき、インデックス(idx)は0に初期化され、繰り返し文が行われるたびに1ずつ増加し、インデックス(idx)がlifting_num_detail_levels_minus1フィールドの値より大きくなるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文は、lifting_lod_decimation_enabled_flagフィールドの値が真(例えば、1)であると、lifting_sampling_period[idx]フィールドを含み、偽(例えば、0)であると、lifting_sampling_distance_squared[idx]フィールドを含む。
lifting_sampling_period[idx]フィールドは、LOD idxのためのサンプリング周期を示す。
lifting_sampling_distance_squared[idx]フィールドは、LOD idxのためのサンプリング距離の自乗を示す。
実施例によるAPSはattr_coding_typeフィールドの値が0であると、即ち、コーディングタイプが予測加重値リフト(predicting weight lifting or LOD with predictiong transform)であると、さらにlifting_adaptive_prediction_thresholdフィールドとlifting_intra_lod_prediction_num_layersフィールドを含む。
lifting_adaptive_prediction_thresholdフィールドは、適応的予測を可能にするためのしきい値を示す。
lifting_intra_lod_prediction_num_layersフィールドは、同じLODレイヤ内の復号されたポイントがターゲットポイントの予測値を生成するために参照できるLODレイヤの数を示す。例えば、lifting_intra_lod_prediction_num_layersフィールドの値がnum_detail_levels_minus1フィールド+1の値であると、ターゲットポイントは全てのLODレイヤのための同じLODレイヤ内の復号されたポイントを参照できることを示す。例えば、lifting_intra_lod_prediction_num_layersフィールドの値が0であると、ターゲットポイントは任意のLODレイヤのための同じLODレイヤ内の復号されたポイントを参照できないことを示す。
aps_extension_present_flagフィールドは、aps_extension_data構文構造が該当APSシンタックス構造に存在するか否かを示す。例えば、aps_extension_present_flagフィールドの値が1であると、aps_extension_data構文構造が該当APSシンタックス構造に存在することを示す。例えば、aps_extension_present_flagフィールドの値が0であると、aps_extension_data構文構造が該当APSシンタックス構造に存在しないことを示す。
実施例によるAPSは、aps_extension_present_flagフィールドの値が1であると、さらにaps_extension_data_flagフィールドを含む。
aps_extension_data_flagフィールドはいずれの値であってもよい。その存在と値はデコーダ規格(decoder conformance to profiles)に影響を与えない。
実施例によるAPSはさらに隣接ポイント選択関連オプション情報を含む。
実施例によるAPSは、attr_coding_typeフィールドの値が0又は2であると、即ち、コーティングタイプが予測加重値リフト(predicting weight lifting or LOD with predictiong transform)、又は固定加重値リフト(fix weight lifting or LOD with lifting transform)であると、さらにnearest_neighbour_max_rangeフィールド、nearest_neighbour_min_rangeフィールド、及びdifferent_nn_range_in_tile_flagフィールドを含む。
nearest_neighbour_max_rangeフィールドは、隣接ポイント最大範囲を指示する。実施例によれば、nearest_neighbour_max_rangeフィールドは、隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_max_rangeフィールドの値は、数式5のNN_range値として用いられる。例えば、八分木に基づいてLODを生成する場合、nearest_neighbour_max_rangeフィールドの値は、そのポイントの周りの八分木ノードの数である。
nearest_neighbour_min_rangeフィールドは、特質を圧縮するとき、隣接ポイント最小範囲を指示する。
different_nn_range_in_tile_flagフィールドは、該当シーケンスがシーケンスから分割されたタイルに他の隣接ポイントの最大/最小範囲を使用しているか否かを示す。
実施例によれば、隣接ポイントとして設定可能な最大数に関する情報(例えば、lifting_num_pred_nearest_neighboursフィールド)と探索範囲に関する情報(例えば、lifting_search_rangeフィールド)も隣接ポイント選択関連オプション情報に含まれる。
実施例によれば、隣接ポイント選択関連オプション情報は、さらにLOD構成方法に関する情報及び/又は隣接ポイント基本距離に関する情報のうちの少なくとも1つを含む。
図36はこの明細書による特質パラメータセット(attribute_parameter_set())(APS)の構文構造の他の実施例を示す。実施例によるAPSは、1つ又はそれ以上のスライスに含まれたポイントクラウドデータの特質情報を符号化する方法に関する情報を含み、特に隣接ポイント選択関連オプション情報を含むことを一例とする。
図36の特質パラメータセット(attribute_parameter_set())(APS)の構文構造は、隣接ポイント選択関連オプション情報を除いては、図35の特質パラメータセット(attribute_parameter_set())(APS)の構文構造と同一又は類似する。よって図36の説明で省略しているところは、図35を参照すればよい。
aps_attr_parameter_set_idフィールドは、他の構文要素による参照のためにAPSの識別子を示す。
aps_seq_parameter_set_idフィールドは、動的(active)SPSに対するsps_seq_parameter_set_idの値を示す。
attr_coding_typeフィールドは、特質に対するコーディングタイプを示す。
一実施例として、attr_coding_typeフィールドの値が0であると、コーディングタイプは予測加重値リフト(predicting weight lifting or LOD with predictiong transform)を、1であると、コーディングタイプはRAHTを、2であると、固定加重値リフト(fix weight lifting or LOD with lifting transform)を示す。
実施例によるAPSは、attr_coding_typeフィールドの値が0又は2であると、即ち、コーティングタイプが予測加重値リフト(predicting weight lifting or LOD with predictiong transform)であるか又は固定加重値リフト(fix weight lifting or LOD with lifting transform)であると、さらにlifting_num_pred_nearest_neighboursフィールド、lifting_max_num_direct_predictorsフィールド、lifting_search_rangeフィールド、lifting_lod_regular_sampling_enabled_flagフィールド、及びlifting_num_detail_levels_minus1フィールドを含む。
lifting_num_pred_nearest_neighboursフィールドは、予測(prediction)のために使用される最隣接(nearest neighbor)の最大数(即ち、X値)を示す。
lifting_max_num_direct_predictorsフィールドは、ダイレクト予測(direct prediction)のために使用される予測器の最大数を示す。実施例によるポイントクラウドデータ復号過程で使用される変数(variable)MaxNumPredictorsの値は以下のように表現される。
MaxNumPredictors=lifting_max_num_direct_predictorsフィールド+1
lifting_search_rangeフィールドは、最隣接ポイントを決定するために使用される探索範囲を示す。
lifting_lod_regular_sampling_enabled_flagフィールドは、LOD(levels of detail)が規格サンプリングの戦略により形成されるか否かを示す。例えば、lifting_lod_regular_sampling_enabled_flagフィールドの値が1であると、LODが規格サンプリングの戦略により形成されることを示す。例えば、lifting_lod_regular_sampling_enabled_flagフィールドの値が0であると、代わりに距離基盤のサンプリング戦略(distance_based sampling strategy)が使用されることを示す。
lifting_num_detail_levels_minus1フィールドは、特質コーディングのためのLODの数を示す。
実施例によるAPSは、lifting_num_detail_levels_minus1フィールドの値だけ繰り返される繰り返し文を含む。このとき、インデックス(idx)は0に初期化され、繰り返し文が行われるたびに1ずつ増加し、インデックス(idx)がlifting_num_detail_levels_minus1フィールドの値より大きくなるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文は、lifting_lod_decimation_enabled_flagフィールドの値が真(例えば、1)であると、lifting_sampling_period[idx]フィールドを含み、偽(例えば、0)であると、lifting_sampling_distance_squared[idx]フィールドを含む。
lifting_sampling_period[idx]フィールドは、LOD idxのためのサンプリング周期を示す。
lifting_sampling_distance_squared[idx]フィールドは、LOD idxのためのサンプリング距離の自乗を示す。
実施例によるAPSはattr_coding_typeフィールドの値が0であると、即ち、コーディングタイプが予測加重値リフト(predicting weight lifting or LOD with predictiong transform)であると、さらにlifting_adaptive_prediction_thresholdフィールドとlifting_intra_lod_prediction_num_layerSフィールドを含む。
lifting_adaptive_prediction_thresholdフィールドは、適応的予測を可能にするためのしきい値を示す。
lifting_intra_lod_prediction_num_layersフィールドは、同じLODレイヤ内の復号されたポイントがターゲットポイントの予測値を生成するために参照できるLODレイヤの数を示す。
実施例によるAPSはさらに隣接ポイント選択関連オプション情報を含む。
実施例によるAPSは、attr_coding_typeフィールドの値が0又は2であると、即ち、コーディングタイプが予測加重値リフト(predicting weight lifting or LOD with predicting transform)であるか、又は固定加重値リフト(fix weight lifting or LOD with lifting transform)であると、さらにdifferent_nn_range_in_tile_flagフィールドとdifferent_nn_range _per_lod_flagフィールドを含む。
different_nn_range_in_tile_flagフィールドは、該当シーケンスがシーケンスから分割されたタイルに他の隣接ポイントの最大/最小範囲を使用しているか否かを示す。
different_nn_range_per_lod_flagフィールドは、LODごとに異なる隣接ポイント最大/最小範囲を使用するか否かを示す。
例えば、different_nn_range _per_lod_flagフィールドの値が偽であると、APSはさらにnearest_neighbour_max_rangeフィールドとnearest_neighbour_min_rangeフィールドを含む。
nearest_neighbour_max_rangeフィールドは、隣接ポイント最大範囲を指示する。実施例によれば、nearest_neighbour_max_rangeフィールドは、隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_max_rangeフィールドの値は、数式5のNN_range値として用いられる。
nearest_neighbour_min_rangeフィールドは、隣接ポイント最小範囲を指示する。
例えば、different_nn_range_per_lod_flagフィールドの値が真であると、APSはさらにlifting_num_detail_levels_minus1フィールドの値だけ繰り返される繰り返し文を含む。このとき、インデクス(idx)は0に初期化され、繰り返し文が行われるたびに1ずつ増加し、インデックス(idx)がlifting_num_detail_levels_minus1フィールドの値より大きくなるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文は、nearest_neighbour_max_range [idx]フィールドとnearest_neighbour_min_range [idx]フィールドを含む。
nearest_neighbour_max_range[idx]フィールドは、LOD idxのための隣接ポイント最大範囲を指示する。実施例によれば、nearest_neighbour_max_range[idx]フィールドは、LOD idxのために隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_max_range[idx]フィールドの値は、LOD idxのためのNN_range値として用いられる。
nearest_neighbour_min_range[idx]フィールドは、LOD idxのための隣接ポイント最小範囲を指示する。
実施例によれば、隣接ポイントとして設定可能な最大数に関する情報(例えば、lifting_num_pred_nearest_neighboursフィールド)と探索範囲に関する情報(例えば、lifting_search_rangeフィールド)も隣接ポイント選択関連オプション情報に含まれる。
実施例によれば、隣接ポイント選択関連オプション情報は、さらにLOD構成方法に関する情報及び/又は隣接ポイント基本距離に関する情報のうちの少なくとも1つを含む。
図37はこの明細書によるタイルパラメータセット(tile_parameter_set())(TPS)の構文構造の一実施例を示す。実施例によれば、TPS(Tile Parameter Set)は、タイルインベントリ(tile inventory)とも呼ばれる。実施例によるTPSはタイルごとに各タイルに関連する情報を含み、特に隣接ポイント選択関連オプション情報を含むことを一例とする。
実施例によるTPSはnum_tilesフィールドを含む。
num_tilesフィールドは、そのビットストリームのためにシグナリングされたタイルの数を示す。もしタイルが存在しないと、num_tilesフィールドの値は0になる(when not present、num_tilesis inferred to be 0)。
実施例によるTPSは、num_tilesフィールドの値だけ繰り返される繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、i値がnum_tilesフィールドの値となるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文は、tile_bounding_box_offset_x[i]フィールド、tile_bounding_box_offset_y[i]フィールド、tile_bounding_box_offset_z[i]フィールド、tile_bounding_box_size_width[i]フィールド、tile_bounding_box_size_height[i]フィールド、及びtile_bounding_box_size_depth[i]フィールドを含む。
tile_bounding_box_offset_x[i]フィールドは、直交座標系においてi番目のタイルのxオフセットを示す。
tile_bounding_box_offset_y[i]フィールドは、直交座標系においてi番目のタイルのyオフセットを示す。
tile_bounding_box_offset_z[i]フィールドは、直交座標系においてi番目のタイルのzオフセットを示す。
tile_bounding_box_size_width[i]フィールドは、直交座標系においてi番目のタイルの幅(width)を示す。
tile_bounding_box_size_height[i]フィールドは、直交座標系においてi番目のタイルの高さ(height)を示す。
tile_bounding_box_size_depth[i]フィールドは、直交座標系においてi番目のタイルの深さ(depth)を示す。
実施例によるTPSはさらに隣接ポイント選択関連オプション情報を含む。
実施例によれば、隣接ポイント選択関連オプション情報は、num_tilesフィールドの値だけ繰り返される繰り返し文に以下のように含まれる。
一実施例として、different_nn_range_in_tile_flagフィールドの値が真であると、繰り返し文はさらにnearest_neighbour_max_range[i]フィールド、nearest_neighbour_min_range[i]フィールド、及びdifferent_nn_range_in_slice_flag[i]フィールドを含む。different_nn_range_in_tile_flagフィールドはAPSにシグナリングされることを一実施例とする。
nearest_neighbour_max_range[i]フィールドは、i-番目のタイルの隣接ポイント最大範囲を指示する。実施例によれば、nearest_neighbour_max_range[i]フィールドは、i-番目のタイルにおいて隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_max_range[i]フィールドの値は、i-番目のタイルのNN_range値として用いられる。
nearest_neighbour_min_rangeフィールド[i]は、i-番目のタイルの隣接ポイント最小範囲を指示する。
different_nn_range_in_slice_flag[i]フィールドは、該当タイルがタイルから分割されたスライスに他の隣接ポイントの最大/最小範囲を使用しているか否かを示す。
different_nn_range_in_slice_flag [i] フィールドの値が真であると、TPSはさらにnearest_neighbour_offset_range_in_slice_flag[i] フィールドを含む。
nearest_neighbour_offset_range_in_slice_flag[i]フィールドは、スライスに定義された隣接ポイントの最大/最小範囲がタイルに定義された隣接ポイントの最大/最小範囲におけるレンジオフセット(range offset)で表示されているか、又は絶対(absolute)値で表示されているかを指示する。
図38はこの明細書によるジオメトリスライスビットストリーム()の構文構造の一実施例を示す。
実施例によるジオメトリスライスビットストリーム(geometry_slice_bitstream ())は、ジオメトリスライスヘッダ(geometry_slice_header())とジオメトリスライスデータ(geometry_slice_data())を含む。
図39はこの明細書によるジオメトリスライスヘッダ(geometry_slice_header())の構文構造の一実施例を示す。
実施例による送信装置が送信するビットストリーム(又は受信装置が受信するビットストリーム)は、一つ以上のスライスを含む。それぞれのスライスはジオメトリスライス及び特質スライスを含む。ジオメトリスライスはジオメトリスライスヘッダ(GSH、Geometry slice Header)を含む。特質スライスは特質スライスヘッダ(ASH、attribute slice Header)を含む。
実施例によるジオメトリスライスヘッダ(geometry_slice_header())は、gsh_geom_parameter_set_idフィールド、gsh_tile_idフィールド、gsh_slice_idフィールド、gsh_max_node_size_log2フィールド、gsh_num_pointsフィールド及びbyte_alignment()フィールドを含む。
実施例によるジオメトリスライスヘッダ(geometry_slice_header())は、ジオメトリパラメータセット(GPS)に含まれたgps_box_present_flagフィールドの値が真(例えば、1)であり、gps_gsh_box_log2_scale_present_flagフィールドの値が真(例えば、1)であると、さらにgsh_box_log2_scaleフィールド、gsh_box_origin_xフィールド、gsh_box_origin_yフィールド、及びgsh_box_origin_zフィールドを含む。
gsh_geom_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フィールドは、該当ジオメトリスライスヘッダ(GSH)により参照される該当タイルの識別子を示す。
gsh_slice_idは、他のシンタックスエレメントによる参照のための該当スライスの識別子を示す。
gsh_box_log2_scaleフィールドは、該当スライスのための境界ボックスオリジンの倍率を示す。
gsh_box_origin_xフィールドは、gsh_box_log2_scaleフィールドの値によりスケーリングされた境界ボックスオリジンのx値を示す。
gsh_box_origin_yフィールドは、gsh_box_log2_scaleフィールドの値によりスケーリングされた境界ボックスオリジンのy値を示す。
gsh_box_origin_zフィールドは、gsh_box_log2_scaleフィールドの値によりスケーリングされた境界ボックスオリジンのz値を示す。
gsh_max_node_size_log2フィールドは、ルートジオメトリ八分木ノードのサイズを示す。
gsh_points_numberフィールドは、該当スライス内のコーディングされたポイントの数を示す。
図40はこの明細書によるジオメトリスライスデータ(geometry_slice_data())のシンタックス構造の一例を示す図である。実施例によるジオメトリスライスデータ(geometry_slice_data())は該当スライスに属するジオメトリビットストリームを送信する。
実施例によるジオメトリスライスデータ(geometry_slice_data())は、MaxGeometryOctreeDepthの値だけ繰り返される第1繰り返し文を含む。このとき、depthは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、depthがMaxGeometryOctreeDepthの値になるまで第1繰り返し文が繰り返されることを一実施例とする。第1繰り返し文は、NumNodesAtDepthの値だけ繰り返される第2繰り返し文を含む。このとき、nodeIdxは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、nodeIdxがNumNodesAtDepthの値になるまで第2繰り返し文が繰り返されることを一実施例とする。第2繰り返し文は、xN=NodeX[depth][nodeIdx]、yN=NodeY[depth][nodeIdx]、zN=NodeZ[depth][nodeIdx]、geometry_node(depth、nodeIdx、xN、yN、zN)を含む。MaxGeometryOctreeDepthはジオメトリ八分木深さの最大値を示し、NumNodesAtDepthは該当深さで復号されるノードの数を示す。変数NodeX[depth][nodeIdx]、NodeY[depth][nodeIdx]、NodeZ[depth][nodeIdx]は所定の深さで復号順にnodeIdx番目のノードのx、y、z座標を示す。geometry_node(depth、nodeIdx、xN、yN、zN)により該当深さの該当ノードのジオメトリビットストリームを送信する。
実施例によるジオメトリスライスデータ(geometry_slice_data()は、log2_trisoup_node_sizeフィールドの値が0より大きいと、さらにgeometry_trisoup_data()を含む。即ち、三角形ノードのサイズが0より大きいと、geometry_trisoup_data()によりtrisoupジオメトリ符号化されたジオメトリビットストリームを送信する。
図41はこの明細書による特質スライスビットストリーム()の構文構造の一実施例を示す。
実施例による特質スライスビットストリーム(attribute_slice_bitstream())は、特質スライスヘッダ(attribute_slice_header())と特質スライスデータ(attribute_slice_data())を含む。
図42はこの明細書による特質スライスヘッダ(attribute_slice_header())の構文構造の一実施例を示す。実施例による特質スライスヘッダは、該当特質スライスのためのシグナリング情報を含み、特に隣接ポイント選択関連オプション情報を含むことを一例とする。
実施例による特質スライスヘッダ(attribute_slice_header())は、ash_attr_parameter_set_idフィールド、ash_attr_sps_attr_idxフィールド及びash_attr_geom_slice_idフィールドを含む。
実施例による特質スライスヘッダ(attribute_slice_header())は、特質パラメータセット(APS)のaps_slice_qp_delta_present_flagフィールドの値が真(例えば、1)であると、さらにash_qp_delta_lumaフィールドとash_qp_delta_chromaフィールドを含む。
ash_attr_parameter_set_idフィールドは、現在の動的APSのaps_attr_parameter_set_idフィールド(例えば、図35又は図36で説明したAPSに含まれたaps_attr_parameter_set_idフィールド)の値を示す。
ash_attr_sps_attr_idxフィールドは、現在の動的SPS内の特質セットを識別する。ash_attr_sps_attr_idxフィールドの値は0から現在の動的SPSに含まれたsps_num_attribute_setsフィールドの範囲内にある。
ash_attr_geom_slice_idフィールドは、現在のジオメトリスライスヘッダのgsh_slice_idフィールドの値を示す。
ash_qp_delta_lumaフィールドは、動的特質パラメータセット内の初期スライスqpから導き出されたルマデルタ量子化パラメータ(qp)を示す。
ash_qp_delta_chromaフィールドは、動的特質パラメータセット内の初期スライスqpから導き出されたクロマデルタ量子化パラメータ(qp)を示す。
実施例による特質スライスヘッダ(attribute_slice_header())は、以下のように、さらに隣接ポイント選択関連オプション情報を含む。
一実施例として、different_nn_range_in_slice_flagフィールドの値が真であり、nearest_neighbour_offset_range_in_slice_flag フィールドの値が偽であると、特質スライスヘッダは、さらにnearest_neighbour_absolute_max_rangeフィールドとnearest_neighbour_ absolute_min_rangeフィールドを含む。
nearest_neighbour_absolute_max_rangeフィールドは、該当スライスの特質圧縮を行うとき、隣接ポイント最大範囲を指示する。実施例によれば、nearest_neighbour_absolute_max_rangeフィールドは、該当スライスにおいて隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_absolute_max_rangeフィールドの値は、該当スライスのNN_range値として用いられる。
nearest_neighbour_absolute_min_rangeフィールドは、該当スライスの特質圧縮を行うとき、隣接ポイント最小範囲を指示する。
different_nn_range_in_slice_flagフィールドとnearest_neighbour_offset_range_in_slice_flagフィールドは、TPSにシグナリングされることを一例とする。
一実施例として、different_nn_range_in_slice_flagフィールドの値が真であり、nearest_neighbour_offset_range_in_slice_flagフィールドの値が真であると、特質スライスヘッダは、さらにnearest_neighbour_max_range_offsetフィールドとnearest_neighbour_min_range_offsetフィールドを含む。
nearest_neighbour_max_range_offsetフィールドは、該当スライスの特質圧縮を行うとき、隣接ポイント最大範囲オフセットを指示する。隣接ポイント最大範囲オフセットの基準は、該当スライスが属したタイルの隣接ポイント最大範囲であることを一実施例とする。実施例によれば、nearest_neighbour_max_range_offsetフィールドは、該当スライスにおいて隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_max_range_offsetフィールドの値は、該当スライスのNN_range値のオフセットとして用いられる。
nearest_neighbour_min_range_offsetフィールドは、該当スライスの特質圧縮を行うとき、隣接ポイント最小範囲オフセットを指示する。隣接ポイント最小範囲オフセットの基準は、該当スライスが属したタイルの隣接ポイント最小範囲であることを一実施例とする。
図43はこの明細書による特質スライスヘッダ(attribute_slice_header())の構文構造の他の実施例を示す。実施例による特質スライスヘッダは、該当特質スライスのためのシグナリング情報を含み、特に隣接ポイント選択関連オプション情報を含むことを一例とする。
図43の特質スライスヘッダの構文構造は、隣接ポイント選択関連オプション情報を除いては、図42の特質スライスヘッダの構文構造と同一又は類似する。よって、図43の説明で省略しているところは、図42を参照すればよい。
ash_attr_parameter_set_idフィールドは、現在の動的APSのaps_attr_parameter_set_idフィールド(例えば、図35又は図36で説明したAPSに含まれたaps_attr_parameter_set_idフィールド)の値を示す。
ash_attr_sps_attr_idxフィールドは、現在の動的SPS内の特質セットを識別する。ash_attr_sps_attr_idxフィールドの値は、0から現在の動的SPSに含まれたsps_num_attribute_setsフィールドまでの範囲内にある。
ash_attr_geom_slice_idフィールドは、現在のジオメトリスライスヘッダのgsh_slice_idフィールドの値を示す。
実施例による特質スライスヘッダ(attribute_slice_header())は、以下のように、さらに隣接ポイント選択関連オプション情報を含む。
一実施例として、different_nn_range_in_slice_flagフィールドの値が真であると、特質スライスヘッダはさらにdifferent_nn_range_per_lod_flagフィールドを含む。
different_nn_range_per_lod_flagフィールドは、LODごとに異なる隣接ポイントの最大/最小範囲を使用するか否かを示す。
例えば、different_nn_range_per_lod_flagフィールドの値が偽であり、nearest_neighbour_offset_range_in_slice_flagフィールドの値が偽であると、特質スライスヘッダはさらにnearest_neighbour_absolute_max_rangeフィールドとnearest_neighbour_ absolute_min_rangeフィールドを含む。
nearest_neighbour_absolute_max_rangeフィールドは、該当スライスの特質圧縮を行うとき、隣接ポイント最大範囲を指示する。実施例によれば、nearest_neighbour_absolute_max_rangeフィールドは、該当スライスにおいて隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_absolute_max_rangeフィールドの値は、該当スライスのNN_range値として用いられる。
nearest_neighbour_absolute_min_rangeフィールドは、該当スライスの特質圧縮を行うとき、隣接ポイント最小範囲を指示する。
例えば、different_nn_range_per_lod_flagフィールドの値が偽であり、nearest_neighbour_offset_range_in_slice_flagフィールドの値が真であると、特質スライスヘッダはさらにnearest_neighbour_max_range_offsetフィールドとnearest_neighbour_min_range_offsetフィールドを含む。
nearest_neighbour_max_range_offsetフィールドは、該当スライスの特質圧縮を行うとき、隣接ポイント最大範囲オフセットを指示する。隣接ポイント最大範囲オフセットの基準は、該当スライスが属したタイルの隣接ポイント最大範囲であることを一実施例とする。実施例によれば、nearest_neighbour_absolute_max_rangeフィールドは、該当スライスにおいて隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_absolute_max_rangeフィールドの値は、該当スライスのNN_range値のオフセットとして用いられる。
nearest_neighbour_min_range_offsetフィールドは、該当スライスの特質圧縮を行うとき、隣接ポイント最小範囲オフセットを指示する。隣接ポイント最小範囲オフセットの基準は、該当スライスが属したタイルの隣接ポイント最小範囲であることを一実施例とする。
例えば、different_nn_range_per_lod_flagフィールドの値が真であり、nearest_neighbour_offset_range_in_slice_flagフィールドの値が偽であると、特質スライスヘッダはさらにlifting_num_detail_levels_minus1フィールドの値だけ繰り返される繰り返し文を含む。このとき、インデックス(idx)は0に初期化され、繰り返し文が行われるたびに1ずつ増加し、インデックス(idx)がlifting_num_detail_levels_minus1フィールドの値より大きくなるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はさらにnearest_neighbour_absolute_max_range[idx]フィールドとnearest_neighbour_absolute_min_range[idx]フィールドを含む。
lifting_num_detail_levels_minus1フィールドは、特質コーディングのためのLODの数を示し、APSにシグナリングされることを一実施例とする。
nearest_neighbour_absolute_max_range[idx]フィールドは、該当スライスの特質圧縮を行うとき、LOD idxのための隣接ポイント最大範囲を指示する。実施例によれば、nearest_neighbour_absolute_max_range[idx]フィールドは、該当スライスにおいてLOD idxのために隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_absolute_max_range[idx]フィールドの値は、該当スライスのLOD idxのためのNN_range値として用いられる。
nearest_neighbour_absolute_min_range[idx]フィールドは、該当スライスの特質圧縮を行うとき、LOD idxのための隣接ポイント最小範囲を指示する。
例えば、different_nn_range_per_lod_flagフィールドの値が真であり、nearest_neighbour_offset_range_in_slice_flagフィールドの値が真であると、特質スライスヘッダはさらにlifting_num_detail_levels_minus1フィールドの値だけ繰り返される繰り返し文を含む。このとき、インデックス(idx)は0に初期化され、繰り返し文が行われるたびに1ずつ増加し、インデックス(idx)がlifting_num_detail_levels_minus1フィールドの値より大きくなるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文は、nearest_neighbour_max_range_offset[idx]フィールドとnearest_neighbour_max_range_offset[idx]フィールドを含む。
lifting_num_detail_levels_minus1フィールドは、特質コーディングのためのLODの数を示し、APSにシグナリングされることを一実施例とする。
nearest_neighbour_max_range_offset[idx]フィールドは、該当スライスの特質圧縮を行うとき、LOD idxのための隣接ポイント最大範囲オフセットを指示する。隣接ポイント最大範囲オフセットの基準は、該当スライスが属したタイルの隣接ポイント最大範囲であることを一実施例とする。実施例によれば、nearest_neighbour_max_range_offset[idx]フィールドは、該当スライスにおいてLOD idxのために隣接ポイントとして登録されるポイントの距離を制限するために使用される。実施例によれば、nearest_neighbour_max_range_offset[idx]フィールドの値は、該当スライスのLOD idxのためのNN_range値のオフセットとして用いられる。
nearest_neighbour_min_range_offset[idx]フィールドは、該当スライスの特質圧縮を行うとき、LOD idxのための隣接ポイント最小範囲オフセットを指示する。隣接ポイント最小範囲オフセットの基準は、該当スライスが属したタイルの隣接ポイント最小範囲であることを一実施例とする。
図44はこの明細書による特質スライスデータ(attribute_slice_data())の構文構造の一実施例を示す。実施例による特質スライスデータ(attribute_slice_data())は、該当スライスに属した特質ビットストリームを送信する。
図44の特質スライスデータ(attribute_slice_data())において、dimension=attribute_dimension[ash_attr_sps_attr_idx] は、該当特質スライスヘッダ内のash_attr_sps_attr_idxフィールドにより識別される特質セットの特質次元(attribute_dimension)を示す。特質次元(attribute_dimension)は特質を構成するコンポーネントの数を意味する。実施例による特質は反射率、色相などを示す。よって、特質が有するコンポーネントの数は異なる。例えば、色相に対応する特質は3つの色相コンポーネント(例えば、RGB)を有する。よって、反射率に対応する特質はモノ次元特質(mono-dimensional attribute)となり、色相に対応する特質は3次元特質(three-dimensional attribute)となる。
実施例による特質は次元(demension)単位で特質符号化される。
例えば、反射率に対応する特質と色相に対応する特質はそれぞれ特質符号化される。また実施例による特質は次元に関係なく一緒に特質符号化される。例えば、反射率に対応する特質及び色相に対応する特質は一緒に特質符号化される。
図44において、zerorunは残余特質値(residual)の前の0の数を示す(zerorun specifies the number of 0 prior to residual)。
また図44において、iはその特質のi番目のポイント値を意味し、attr_coding_typeフィールドとlifting_adaptive_prediction_thresholdフィールドはAPSにシグナリングされることを一実施例とする。
また、図44において、変数MaxNumPredictorsはポイントクラウドデータ復号の過程で使用される変数であり、APSにシグナリングされたlifting_adaptive_prediction_thresholdフィールド値に基づいて以下のように取得される。
MaxNumPredictors=lifting_max_num_direct_predictorsフィールド+1
ここで、lifting_max_num_direct_predictorsフィールドは、ダイレクト予測のために使用される予測器の最大数を示す。
実施例によるpredIindex[i]は、その特質のi番目のポイント値を復号するための予測器インデックス(predictor index又はprediction modeという)を示す(specifies the predictor index(or prediction mode) to decode the i-th point value of the attribute)。predIndex[i]の値は0からlifting_max_num_direct_predictorsフィールド値までの範囲内にある。
実施例による変数(variable)MaxPredDiff「i]は以下のように計算される。
minValue=maxValue=a0
for(j=0;j<k;j++){
minValue=Min(minValue、aj)
maxValue=Max(maxValue、aj)
}
minValue;
lifting_num_pred_nearest_neighboursフィールドはAPSにシグナリングされ、予測(prediction)のために使用される最隣接(nearest neighbor)ポイントの最大数を示す。
図45は実施例によるポイントクラウドデータ送信方法のフローチャートである。
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータに含まれたジオメトリを符号化するステップ71001、入力された及び/又は再構成されたジオメトリに基づいてポイントクラウドデータに含まれた特質を符号化するステップ71002、及び符号化されたジオメトリ、符号化された特質及びシグナリング情報を含むビットストリームを送信するステップ71003を含む。
ポイントクラウドデータに含まれたジオメトリと特質を符号化する段階71001、71002は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化20001、図4のポイントクラウドビデオエンコーダ、図12のポイントクラウドビデオエンコーダ、図14のポイントクラウド符号化、図15のポイントクラウドビデオエンコーダ、図17のジオメトリエンコーダと特質エンコーダの動作の一部又は全体を行う。
一実施例として、特質を符号化するステップ71002は、八分木に基づくLOD生成方法、距離に基づくLOD生成方法、サンプリングに基づくLOD生成方法のうちの少なくとも1つのLOD生成方法を適用してLODl集合を生成した後、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいてX(>0)個の最隣接(nearest neighbor、NN)ポイントを探し、予測器(predictor)に隣接ポイント集合として登録する。
実施例によれば、特質を符号化するステップ71002は、探索範囲及び/又は隣接ポイント最大距離を適用して、隣接ポイント集合を構成する。
実施例によれば、特質を符号化するステップ71002は、隣接ポイント基本距離にNN_rangeを掛けて隣接ポイント最大距離を取得する。NN_rangeは、隣接ポイントとして選択可能な範囲であり、隣接ポイント最大範囲、隣接ポイント範囲、又は最も近い隣接範囲と呼ぶ。
探索範囲、隣接ポイント基本距離及びNN_rangeに対する具体的な説明は、図15ないし図27で説明した通りであるので、ここでは省略する。
一実施例によれば、特質を符号化するステップ71002は、図26のように、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいて、探索範囲内にあるポイントのうち、X(例えば、3)個の最隣接(nearest neighbor、NN)ポイントを探す。その後、X(例えば、3)個のNNポイントのうち隣接ポイント最大距離内にあるNNポイントのみを隣接ポイント集合として登録する。例えば、図26において、特質を符号化するステップ71002は、実際の探索範囲内のポイントとポイントPxとの距離値をそれぞれ比較して、距離が最も近いX個のポイントを探し、このX個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントのみをポイントPxの隣接ポイント集合として登録する。即ち、ポイントPxの隣接ポイント集合として登録される隣接ポイントは、X個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントに制限される。
他の実施例によれば、特質を符号化するステップ71002は、図27のように、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいて探索範囲内にあるポイントのうち隣接ポイント最大距離内にあるX(例えば、3)個の最隣接(nearest neighbor、NN)ポイントを探し、隣接ポイント集合として登録する。例えば、図27において、特質を符号化するステップ71002は、実際の探索範囲のポイントとポイントPxとの距離値をそれぞれ比較するとき、ポイントPxが属したLODにおける隣接ポイント最大距離内にあり、且つ距離が最も近いX(例えば、3)個のポイントを実際の探索範囲のポイントから選択して、ポイントPxの隣接ポイント集合として登録する。即ち、ポイントPxの隣接ポイント集合として登録される隣接ポイントは、ポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントに制限される。
実施例によれば、特質を符号化するステップ71002は、各々のポイントの予測器に1つ以上の隣接ポイントが登録されると、予測モード0ないし予測モード3のうちのいずれかを適用して各々のポイントの予測特質値を取得し、各々のポイントのオリジナル特質値と予測特質値に基づいてポイントの残余特質値を取得する。
実施例によれば、予測モード0は加重値平均によって予測特質値を計算するモードであり、予測モード1は1番目の隣接ポイントの特質を予測特質値として定めるモードであり、予測モード2は2番目の隣接ポイントの特質を予測特質値として定めるモードであり、予測モード3は3番目の隣接ポイントの特質を予測特質値として定めるモードである。
実施例によれば、特質を符号化するステップ71002は、該当ポイントの予測器に登録された隣接ポイントの特質値の間の最大差(maximum difference)値が所定のしきい値より小さいと、予測モード0を該当ポイントの予測モードとして設定し、所定のしきい値と等しいか大きいと、複数の候補予測モードに対してRDO方法を適用して、そのうちの1つを該当ポイントの予測モードとして設定する。この過程は、各々のポイントごとに行うことを一実施例とする。
実施例によれば、各々のポイントに適用された予測モードは、特質スライスデータに含まれて送信される。
実施例によれば、特質を符号化するステップ71002は、残余特質値に対して量子化及びゼロラン-レングスコーディングを行う。
実施例によるジオメトリ及び特質を符号化するステップ71001、71002は、スライス(slice)又は1つ又はそれ以上のスライスを含むタイル(tile)単位で符号化を行う。
符号化されたジオメトリ、符号化された特質、及びシグナリング情報を含むビットストリームを送信するステップ71003は、図1の送信機10003、図2の送信ステップ20002、図12の送信処理部12012又は図15の送信処理部51008で行われてもよい。
図46は実施例によるポイントクラウドデータ受信方法のフローチャートである。
実施例によるポイントクラウドデータ受信方法は、符号化されたジオメトリ、符号化された特質、及びシグナリング情報を含むビットストリームを受信するステップ81001、シグナリング情報に基づいてジオメトリを復号するステップ81002、復号/再構成されたジオメトリとシグナリング情報に基づいて特質を復号するステップ81003、及び復号されたジオメトリと復号された特質に基づいて復元されたポイントクラウドデータをレンダリングするステップ81004を含む。
実施例による符号化されたジオメトリ、符号化された特質、及びシグナリング情報を含むビットストリームを受信するステップ81001は、図1の受信機10005、図2の送信20002又は復号20003、図13の受信部13000又は受信処理部13001、又は図20の受信処理部61001で行われてもよい。
実施例によるジオメトリと特質を復号するステップ81002、81003は、スライス又は一つ又はそれ以上のスライスを含むタイル単位で復号を行う。
実施例によるジオメトリを復号するステップ81002は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11のポイントクラウドビデオデコーダ、図13のポイントクラウドビデオデコーダ、図20のジオメトリデコーダ、図21のジオメトリデコーダの動作の一部又は全体を行う。
実施例による特質を復号するステップ81003は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11のポイントクラウドビデオデコーダ、図13のポイントクラウドビデオデコーダ、図28の特質デコーダ、図29の特質デコーダの動作の一部又は全体を行う。
実施例によれば、シグナリング情報、例えば、シーケンスパラメータセット、特質パラメータセット、タイルパラメータセット、特質スライスヘッダのうちの少なくとも1つは、隣接ポイント選択関連オプション情報を含む。実施例によれば、隣接ポイント選択関連オプション情報は、NN_rangeに関する情報(例えば、nearest_neighbor_max_rangeフィールド)を含む。実施例によれば、隣接ポイント選択関連オプション情報はさらに、隣接ポイントとして設定可能な最大数に関する情報(例えば、lifting_num_pred_nearest_neighboursフィールド)、探索範囲に関する情報(例えば、lifting_search_rangeフィールド)、LOD構成方法に関する情報及び/又は隣接ポイント基本距離に関する情報のうちの少なくとも1つを含む。
一実施例として、特質を復号するステップ81003は、八分木に基づくLOD生成方法、距離に基づくLOD生成方法、サンプリングに基づくLOD生成方法のうちの少なくとも1つのLOD生成方法を適用してLODl集合を生成した後、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいてX(>0)個の最隣接(nearest neighbor、NN)ポイントを探し、予測器(predictor)に隣接ポイント集合として登録する。LOD生成方法は、シグナリング情報(例えば、APS)にシグナリングされることを一実施例とする。
実施例によれば、特質を復号するステップ81003は、探索範囲及び/又は隣接ポイント最大距離を適用して隣接ポイント集合を構成する。
実施例によれば、特質を復号するステップ81003は、隣接ポイント基本距離にNN_rangeを掛けて隣接ポイント最大距離を取得する。NN_rangeは隣接ポイントとして選択可能な範囲であり、隣接ポイント最大範囲、隣接ポイント範囲又は最も近い隣接範囲と呼ぶ。
探索範囲、隣接ポイント基本距離及びNN_rangeに対する具体的な説明は、図15ないし図29で説明した通りであるので、ここでは省略する。
一実施例によれば、特質を復号するステップ81003は、図26のように、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいて探索範囲内にあるポイントのうち、X(例えば、3)個の最隣接(nearest neighbor、NN)ポイントを探す。その後、X(例えば、3)個のNNポイントのうち隣接ポイント最大距離内にあるNNポイントのみを隣接ポイント集合として登録する。例えば、図26において、特質を復号するステップ81003は、実際の探索範囲内のポイントとポイントPxとの距離値をそれぞれ比較して、距離が最も近いX個のポイントを探し、このX個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントのみをポイントPxの隣接ポイント集合として登録する。即ち、ポイントPxの隣接ポイント集合として登録される隣接ポイントは、X個のポイントのうちポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントに制限される。
他の実施例によれば、特質を復号するステップ81003は、図27のように、LODl集合に基づいてLODが等しいか小さい(即ち、ノード間の距離が大きい)グループにおいて探索範囲内にあるポイントのうち隣接ポイント最大距離内にあるX(例えば、3)個の最隣接(nearest neighbor、NN)ポイントを探し、隣接ポイント集合として登録する。例えば、図27において、特質を復号するステップ81003は、実際の探索範囲のポイントとポイントPxとの距離値をそれぞれ比較するとき、ポイントPxが属したLODにおける隣接ポイント最大距離内にあり、且つ距離が最も近いX(例えば、3)個のポイントを実際の探索範囲のポイントから選択して、ポイントPxの隣接ポイント集合として登録する。即ち、ポイントPxの隣接ポイント集合として登録される隣接ポイントは、ポイントPxが属したLODにおける隣接ポイント最大距離内にあるポイントに制限される。
実施例によれば、特質を復号するステップ81003は、特定のポイントの予測器に1つ以上の隣接ポイントが登録されると、予測モード0ないし予測モード3のうちのいずれかを適用して、該当ポイントの予測特質値を取得する。
実施例によれば、予測モード0は加重値平均によって予測特質値を計算するモードであり、予測モード1は1番目の隣接ポイントの特質を予測特質値として定めるモードであり、予測モード2は2番目の隣接ポイントの特質を予測特質値として定めるモードであり、予測モード3は3番目の隣接ポイントの特質を予測特質値として定めるモードである。
実施例によれば、特定のポイントの予測モードはデフォルトとして設定されるか、又は特質スライスデータに予測モードを指示する予測器インデックス情報(predIndex)がシグナリングされる。
実施例によれば、特質を復号するステップ81003は、特定のポイントの特質を復号するとき、該当特質スライスデータに該当ポイントの予測器インデックス情報がシグナリングされていない場合、予測モード0に基づいて該当ポイントの特質値を予測する。
実施例によれば、特質を復号するステップ81003は、特定のポイントを特質復号を行うとき、該当特質スライスデータに該当ポイントの予測器インデックス情報がシグナリングされていると、シグナリングされた予測モードに基づいて該当ポイントの特質値を予測する。
実施例によれば、特質を復号するステップ81003は、特定のポイントを特質復号を行うとき、予測された特質値に受信された該当ポイントの残余特質値を足して該当ポイントの特質値を復元する。特質を復号するステップ81003では、この過程を各ポイントごとに行って各ポイントの特質値を復元する。
実施例によれば、特質を復号するステップ81003は、残余特質値に対してゼロラン-レングス符号化されていると、特質値の復元前に、送信側の逆過程であるゼロラン-レングス復号を行う。
実施例による復号されたジオメトリと復号された特質に基づいて復元されたポイントクラウドデータをレンダリングするステップ81004は、復元されたポイントクラウドデータを様々なレンダリング方式でレンダリングすることができる。例えば、ポイントクラウドコンテンツのポイントは、一定の厚さを有する頂点、該当頂点の位置を中央とする特定の最小サイズを有する立方体、又は頂点の位置を中央とする円などにレンダリングされる。レンダリングされたポイントクラウドコンテンツの全部又は一部の領域は、ディスプレイ(例えば、VR/ARディスプレイ、一般ディスプレイなど)によりユーザに提供される。
実施例によるポイントクラウドデータをレンダリングする段階81004は、図1のレンダラー10007又は図2のレンダリング20004又は図13のレンダラー13011で行われる。
上述のように、この明細書は、ポイントクラウドコンテンツの特質符号化を行うとき、コンテンツが有しているポイント間の特質関連性を考慮することで、隣接ポイント集合を構成するとき、無意味な隣接ポイントの選択を排除し、有意味な隣接ポイントが選択できるようにする。これにより、残余特質値が小さくなり、これによりビットストリームサイズも小さくなるため、特質圧縮の効率が良くなる。換言すれば、この明細書は、コンテンツが有しているポイント間の特質関連性を考慮して、隣接ポイント集合として選択可能なポイントを制限することで、特質情報の圧縮の効率を高めることができる。
上述したそれぞれのパート、モジュール又はユニットはメモリ(又は貯蔵ユニット)に貯蔵された連続する実行過程を行うソフトウェア、プロセッサ、ハードウェアパートである。上記実施例に記載された各段階は、プロセッサ、ソフトウェア、ハードウェアパートにより行われる。上記実施例に記載のそれぞれのモジュール/ブロック/ユニットは、プロセッサ、ソフトウェア、ハードウェアとして動作する。また実施例が提示する方法はコードとして実行される。このコードはプロセッサが読み取り可能な格納媒体に書き込まれ、よって装置が提供するプロセッサにより読み取られる。
また全明細書において、ある部分がある構成要素を“含む”とするとき、これは特に記載しない限り、他の構成要素を除くことではなく、他の構成要素をさらに含むことを意味する。また明細書に記載の“…部”などの用語は、少なくとも一つの機能や動作を処理する単位を意味し、これはハードウェアやソフトウェア又はハードウェアとソフトウェアの組み合わせにより具現される。
説明の便宜のために、各図を区分して説明したが、各図に述べられている実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。
実施例による装置及び方法は、上述したように、説明された実施例の構成と方法が限定して適用されることではなく、実施例は様々に変形可能に各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。
実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれ個々のチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のうちのいずれか一つ又はそれ以上の動作/方法を行わせるか、実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではない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つのチップで実行される。実施例において、実施例は選択的に個々のチップで実行される。実施例において、実施例の要素のうちの少なくとも1つは実施例による動作を行うための指示を含む1つ又はそれ以上のプロセッサにより実行される。
第1、第2などの用語は実施例の様々な構成要素を説明するために使用される。しかし、実施例による様々な構成要素は上記用語により解釈が制限されてはいけない。かかる用語は一つの構成要素を他の構成要素と区別するために使用されることに過ぎない。例えば、第1ユーザ入力信号は第2ユーザ入力信号と称することができる。同様に、第2ユーザ入力信号は第1ユーザ入力信号と称することができる。かかる用語の使用は様々な実施例の範囲から離脱していない。第1ユーザ入力信号及び第2ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限されるものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味しない。実施例を説明するために使用される、「~である場合」、「~の時」などの条件表現は選択的な場合にのみ制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。また、この明細書で説明する実施例による動作は、実施例によってメモリ及び/又はプロセッサを含む送受信装置により行われる。メモリは実施例による動作を処理/制御するためのプログラムを格納し、プロセッサはこの明細書で説明した様々な動作を制御する。プロセッサはコントローラとも称される。実施例において、動作はファームウェア、ソフトウェア及び/又はそれらの組み合わせにより行われ、ファームウェア、ソフトウェア及び/又はそれらの組み合わせはプロセッサに格納されるか又はメモリに格納される。
以上、実施例を実施するための最善の形態について説明した。
上述したように、実施例はポイントクラウドデータの送受信装置及びシステムに全体的又は部分的に適用することができる。当業者は実施例の範囲内で実施例を様々に変更又は変形することができる。
〔産業上の利用可能性〕
実施例は変更/変形を含み、変更/変形は請求の範囲及びそれらの範囲内のものである。