添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというより、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に関する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。
実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものもあり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。
図1は実施例によるポイントクラウドコンテンツ提供システムの一例を示す図である。
図1に示したポイントクラウドコンテンツ提供システムは、送信装置(transmission device)10000及び受信装置(reception device)10004を含む。送信装置10000及び受信装置10004はポイントクラウドデータを送受信するために有無線通信が可能である。
実施例による送信装置10000は、ポイントクラウドビデオ(又はポイントクラウドコンテンツ)を確保し処理して送信する。実施例において、送信装置10000は固定局(fixed station)、BTS(base transceiver system)、ネットワーク、AI(Ariticial Intelligence)機器及び/又はシステム、ロボット、AR/VR/XR機器及び/又はサーバーなどを含む。また実施例において、送信装置10000は無線接続技術(例、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による送信装置10000は、ポイントクラウドビデオ獲得部(Point Cloud Video Acquisition)10001、ポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002及び/又は送信機(Transmitter(又は通信モジュール)10003を含む。
実施例によるポイントクラウドビデオ獲得部10001は、キャプチャー、合成又は生成などの処理過程によりポイントクラウドビデオを獲得する。ポイントクラウドビデオは、3次元空間に位置するポイントの集合であるポイントクラウドで表現されるポイントクラウドコンテンツであって、ポイントクラウドビデオデータなどと呼ばれる。実施例によるポイントクラウドビデオは、一つ又はそれ以上のフレームを含む。一つのフレームは停止映像/ピクチャを示す。よって、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャを含み、ポイントクラウド映像、フレーム及びピクチャのうちのいずれかに呼ばれる。
実施例によるポイントクラウドビデオエンコーダ10002は、確保したポイントクラウドビデオデータを符号化する。ポイントクラウドビデオエンコーダ10002はポイントクラウド圧縮(Point Cloud Compression)コーディングに基づいてポイントクラウドビデオデータを符号化する。実施例によるポイントクラウド圧縮コーディングは、G-PCC(Geometry-based Point Cloud Compression)コーディング及び/又はV-PCC(Video based Point Cloud Compression)コーディング又は次世代コーディングを含む。なお、実施例によるポイントクラウド圧縮コーディングは、上述した実施例に限られない。ポイントクラウドビデオエンコーダ10002は、符号化されたポイントクラウドビデオデータを含むビットストリームを出力することができる。ビットストリームは符号化されたポイントクラウドビデオデータだけではなく、ポイントクラウドビデオデータの符号化に関連するシグナリング情報を含む。
実施例による送信機10003は、符号化されたポイントクラウドビデオデータを含むビットストリームを送信する。実施例によるビットストリームはファイル又はセグメント(例えば、ストリーミングセグメント)などにカプセル化されて、放送網及び/又はブロードバンド網などの様々なネットワークにより送信される。図示していないが、送信装置10000はカプセル化動作を行うカプセル化部(又はカプセル化モジュール)を含む。また実施例において、カプセル化部は送信機10003に含まれる。実施例において、ファイル又はセグメントはネットワークにより受信装置10004に送信されるか、又はデジタル格納媒体(例えば、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど)に格納される。実施例による送信機10003は受信装置10004(又は受信機(Receiver)10005)と4G、5G、6Gなどのネットワークにより有無線通信が可能である。また送信機10003はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)によって必要なデータ処理動作を行うことができる。また送信装置10000はオン・デマンド(On Demand)方式によってカプセル化されたデータを送信することもできる。
実施例による受信装置10004は、受信機(Receiver)10005、ポイントクラウドビデオデコーダ(Point Cloud Decoder)10006及び/又はレンダラー(Renderer)10007を含む。実施例において、受信装置10004は無線接続技術(例、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による受信機10005は、ポイントクラウドビデオデータを含むビットストリーム又はビットストリームがカプセル化されたファイル/セグメントなどをネットワーク又は格納媒体から受信する。受信機10005はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)により必要なデータ処理動作を行う。実施例による受信機10005は、受信したファイル/セグメントをデカプセル化してビットストリームを出力する。また実施例において、受信機10005はデカプセル化の動作を行うためのデカプセル化部(又はデカプセル化モジュール)を含む。またデカプセル化部は受信機10005とは別個のエレメント(又はコンポーネント)で具現される。
ポイントクラウドビデオデコーダ10006は、ポイントクラウドビデオデータを含むビットストリームを復号する。ポイントクラウドビデオデコーダ10006はポイントクラウドビデオデータが符号化された方式により復号することができる(例えば、ポイントクラウドビデオエンコーダ10002の動作の逆の過程)。従って、ポイントクラウドビデオデコーダ10006はポイントクラウド圧縮の逆過程であるポイントクラウド復元コーディングを行って、ポイントクラウドビデオデータを復号することができる。ポイントクラウド復元コーディングはG-PCCコーディングを含む。
レンダラー10007は復号されたポイントクラウドビデオデータをレンダリングする。レンダラー10007はポイントクラウドビデオデータだけではなく、オディオデータもレンダリングしてポイントクラウドコンテンツを出力する。実施例において、レンダラー10007はポイントクラウドコンテンツをディスプレイするためのディスプレイを含む。実施例において、ディスプレイはレンダラー10007に含まれず、別のデバイス又はコンポーネントで具現される。
図面において、点線で示した矢印は、受信装置10004で得たフィードバック情報(feedback information)の送信経路を示す。フィードバック情報はポイントクラウドコンテンツを消費するユーザとの相互作用を反映するための情報であって、ユーザの情報を含む(例えば、ヘッドオリエンテーション情報)、ビューポート情報など)。特に、ポイントクラウドコンテンツがユーザとの相互作用が必要なサービス(例えば、自律走行サービスなど)のためのものである場合には、フィードバック情報はコンテンツ送信側(例えば、送信装置10000)及び/又はサービス供給者に伝達されることができる。実施例において、フィードバック情報は送信装置10000だけではなく受信装置10004でも使用されることができ、提供されないこともできる。
実施例によるヘッドオリエンテーション情報はユーザの頭の位置、方向、角度、動きなどに関する情報である。実施例による受信装置10004はヘッドオリエンテーション情報に基づいてビューポート情報を計算する。ビューポート情報はユーザが見ているポイントクラウドビデオの領域に関する情報である。視点(viewpoint)はユーザがポイントクラウドビデオを見ている点であり、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とする領域であり、領域のサイズ、形態などはFOV(Field Of View)により決定される。従って、受信装置10004はヘッドオリエンテーション情報以外に、装置が支援する垂直(vertical)或いは水平(horizontal)FOVなどに基づいてビューポート情報を抽出することができる。また受信装置10004はゲイズ分析(Gaze Analysis)などを行って、ユーザのポイントクラウド消費方式、ユーザが凝視するポイントクラウドビデオ領域、凝視時間などを確認する。実施例において、受信装置10004はゲイズ分析の結果を含むフィードバック情報を送信装置10000に送信することができる。実施例によるフィードバック情報はレンダリング及び/又はディスプレイ過程で得られる。実施例によるフィードバック情報は受信装置10004に含まれた一つ又はそれ以上のセンサにより確保される。また実施例において、フィードバック情報はレンダラー10007又は別の外部エレメント(又はデバイス、コンポーネントなど)により確保される。図1に示された点線はレンダラー10007で確保したフィードバック情報の伝達過程を示す。ポイントクラウドコンテンツ提供システムはフィードバック情報に基づいてポイントクラウドデータを処理(符号化/復号)する。従って、ポイントクラウドビデオデータデコーダ10006はフィードバック情報に基づいて復号の動作を行うことができる。また受信装置10004はフィードバック情報を送信装置10000に送信することができる。送信装置10000(又はポイントクラウドビデオデータエンコーダ10002)はフィードバック情報に基づいて符号化の動作を行うことができる。従って、ポイントクラウドコンテンツ提供システムは全てのポイントクラウドデータを処理(符号化/復号)せず、フィードバック情報に基づいて必要なデータ(例えば、ユーザのヘッド位置に対応するポイントクラウドデータ)を効率的に処理して、ユーザにポイントクラウドコンテンツを提供することができる。
実施例において、送信装置10000はエンコーダ、送信デバイス、送信機などに呼ばれ、受信装置10004はデコーダ、受信デバイス、受信機などに呼ばれる。
実施例による図1のポイントクラウドコンテンツ提供システムで処理される(獲得/符号化/送信/復号/レンダリングの一連の過程で処理される)ポイントクラウドデータは、ポイントクラウドコンテンツデータ又はポイントクラウドビデオデータとも呼ばれる。実施例において、ポイントクラウドコンテンツデータはポイントクラウドデータに関連するメタデータ或いはシグナリング情報を含む概念として使用することができる。
図1に示したポイントクラウドコンテンツ提供システムのエレメントは、ハードウェア、ソフトウェア、プロセッサ及び/又はこれらの組み合わせなどで具現される。
図2は実施例によるポイントクラウドコンテンツ提供の動作を示すブロック図である。
図2は図1で説明したポイントクラウドコンテンツ提供システムの動作を示すブロック図である。上述したように、ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディング(例えば、G-PCC)に基づいてポイントクラウドデータを処理する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)では、ポイントクラウドビデオを獲得する(20000)。ポイントクラウドビデオは3次元空間を表現する座標系に属するポイントクラウドで表現される。実施例によるポイントクラウドビデオはPly(Polygon File format or the Stanford Triangle format)ファイルを含む。ポイントクラウドビデオが一つ又はそれ以上のフレームを有する場合、獲得したポイントクラウドビデオは一つ又はそれ以上のPlyファイルを含む。Plyファイルはポイントのジオメトリ(Geometry)及び/又は特質(Attribute)のようなポイントクラウドデータを含む。ジオメトリはポイントの位置を含む。それぞれのポイントの位置は3次元座標系(例えば、XYZ軸からなる座標系など)を示すパラメータ(例えば、X軸、Y軸、Z軸それぞれの値)で表現される。特質はポイントの特質(例えば、それぞれのポイントのテクスチャ情報、色相(YCbCr又はRGB)、反射率(r)、透明度など)を含む。一つのポイントは一つ又はそれ以上の特質(又は属性)を有する。例えば、一つのポイントは、色相の一つの特質を有するか、或いは色相及び反射率の二つの特質を有することができる。実施例において、ジオメトリは位置、ジオメトリ情報、ジオメトリデータなどとも呼ばれ、特質は特質、特質情報、特質データなどとも呼ばれる。またポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)は、ポイントクラウドビデオの獲得過程に関連する情報(例えば、深さ情報、色相情報など)からポイントクラウドデータを確保することができる。
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又はポイントクラウドビデオエンコーダ10002)は、ポイントクラウドデータを符号化する(20001)。ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディングに基づいてポイントクラウドデータを符号化する。上述したように、ポイントクラウドデータはポイントのジオメトリ及び特質を含む。よって、ポイントクラウドコンテンツ提供システムは、ジオメトリを符号化するジオメトリ符号化を行ってジオメトリビットストリームを出力することができる。ポイントクラウドコンテンツ提供システムは、特質を符号化する特質符号化を行って特質ビットストリームを出力することができる。実施例において、ポイントクラウドコンテンツ提供システムはジオメトリ符号化に基づいて特質符号化を行うことができる。実施例によるジオメトリビットストリーム及び特質ビットストリームは多重化されて一つのビットストリームで出力される。実施例によるビットストリームはジオメトリ符号化及び特質符号化に関連するシグナリング情報をさらに含む。
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又は送信機10003)は、符号化されたポイントクラウドデータを送信する(20002)。図1で説明したように、符号化されたポイントクラウドデータはジオメトリビットストリーム、特質ビットストリームで表現される。また符号化されたポイントクラウドデータはポイントクラウドデータの符号化に関連するシグナリング情報(例えば、ジオメトリ符号化及び特質符号化に関連するシグナリング情報)と共に、ビットストリームの形態で送信される。またポイントクラウドコンテンツ提供システムは符号化されたポイントクラウドデータを送信するビットストリームをカプセル化してファイル又はセグメントの形態で送信する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、符号化されたポイントクラウドデータを含むビットストリームを受信する。またポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、ビットストリームを逆多重化することができる。
ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームで送信される符号化されたポイントクラウドデータ(例えば、ジオメトリビットストリーム、特質ビットストリーム)を復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームに含まれたポイントクラウドビデオデータの符号化に関連するシグナリング情報に基づいてポイントクラウドビデオデータを復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ジオメトリビットストリームを復号してポイントの位置(ジオメトリ)を復元する。ポイントクラウドコンテンツ提供システムは、復元したジオメトリに基づいて特質ビットストリームを復号してポイントの特質を復元する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、復元されたジオメトリによる位置及び復号された特質に基づいてポイントクラウドビデオを復元する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号されたポイントクラウドデータをレンダリングする(20004)。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号過程で復号されたジオメトリ及び特質を様々なレンダリング方式によってレンダリングする。ポイントクラウドコンテンツのポイントは、一定の厚さを有する定点、該当定点の位置を中央とする所定の最小サイズを有する立方体、又は定点の位置を中央とする円などにレンダリングされる。レンダリングされたポイントクラウドコンテンツの全部又は一部の領域はディスプレイ(例えば、VR/ARディスプレイ、一般ディスプレイなど)によりユーザに提供される。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004)は、フィードバック情報を確保することができる(20005)。ポイントクラウドコンテンツ提供システムは、フィードバック情報に基づいてポイントクラウドデータを符号化及び/又は復号する。実施例によるフィードバック情報及びポイントクラウドコンテンツ提供システムの動作は、図1で説明したフィードバック情報及び動作と同一であるので、具体的な説明は省略する。
図3は実施例によるポイントクラウドビデオキャプチャー過程の一例を示す図である。
図3は図1及び図2で説明したポイントクラウドコンテンツ提供システムのポイントクラウドビデオキャプチャー過程の一例を示す。
ポイントクラウドコンテンツは、様々な3次元空間(例えば、現実環境を示す3次元空間、仮想環境を示す3次元空間など)に位置するオブジェクト(object)及び/又は環境を示すポイントクラウドビデオ(イメージ及び/又は映像)を含む。従って、実施例によるポイントクラウドコンテンツ提供システムは、ポイントクラウドコンテンツを生成するために一つ又はそれ以上のカメラ(例えば、深さ情報を確保できる赤外線カメラ、深さ情報に対応する色相情報を抽出できるRGBカメラなど)、プロジェクト(例えば、深さ情報を確保するための赤外線パターンプロジェクターなど)、LiDARなどを使用してポイントクラウドビデオをキャプチャーする。実施例によるポイントクラウドコンテンツ提供システムは、深さ情報から3次元空間上のポイントで構成されたジオメトリの形態を抽出し、色相情報からそれぞれのポイントの特質を抽出してポイントクラウドデータを確保する。実施例によるイメージ及び/又は映像は内向き(inward-facing)方式及び外向き(outward-facing)方式のうちのいずれかに基づいてキャプチャーされる。
図3の左側には内向き方式が示されている。内向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトをキャプチャーする方式である。内向き方式は核心核心客体に対する360°イメージをユーザに提供するポイントクラウドコンテンツ(例えば、ユーザに客体(例:キャラクター、選手、品物、俳優などの核心となる客体)の360°イメージを提供するVR/ARコンテンツ)を生成するために使用される。
図3の右側には外向き方式が示されている。外向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトではない中心オブジェクトの環境をキャプチャーする方式である。外向き方式はユーザの視点からの周辺環境を提供するためのポイントクラウドコンテンツ(例えば、自律走行車両のユーザに提供される外部環境を示すコンテンツ)を生成するために使用される。
図示したように、ポイントクラウドコンテンツは一つ又はそれ以上のカメラのキャプチャー動作に基づいて生成される。この場合、それぞれのカメラの座標系が異なるので、ポイントクラウドコンテンツ提供システムはキャプチャー動作前にグローバル空間座標系(global coordinate system)を設定するために、一つ又はそれ以上のカメラの較正(calibration)を行う。またポイントクラウドコンテンツ提供システムは、上述したキャプチャー方式でキャプチャーされたイメージ及び/又は映像と任意のイメージ及び/又は映像を合成してポイントクラウドコンテンツを生成する。またポイントクラウドコンテンツ提供システムは、仮想空間を示すポイントクラウドコンテンツを生成する場合、図3で説明したキャプチャー動作を行わない。実施例によるポイントクラウドコンテンツ提供システムは、キャプチャーしたイメージ及び/又は映像に対して後処理を行うこともできる。即ち、ポイントクラウドコンテンツ提供システムは、望まない領域(例えば、背景)を除去したり、キャプチャーしたイメージ及び/又は映像が連結された空間を認識して空間(spatial hole)がある場合、それを埋める動作を行うことができる。
またポイントクラウドコンテンツ提供システムは、それぞれのカメラから確保したポイントクラウドビデオのポイントに対して座標系変換を行って、一つのポイントクラウドコンテンツを生成することができる。ポイントクラウドコンテンツ提供システムは、それぞれのカメラの位置座標を基準としてポイントの座標系変換を行う。これにより、ポイントクラウドコンテンツ提供システムは、一つの広い範囲を示すコンテンツを生成するか、或いはポイントの密度が高いポイントクラウドコンテンツを生成することができる。
図4は実施例によるポイントクラウドエンコーダ(Point Cloud Encoder)の一例を示す図である。
図4は図1のポイントクラウドビデオエンコーダ10002の一例を示す。ポイントクラウドエンコーダは、ネットワーク状況或いはアプリケーションなどによってポイントクラウドコンテンツの質(例えば、無損失-lossless、損失-lossy、損失に近い-near-lossless)を調節するために、ポイントクラウドデータ(例えば、ポイントの位置及び/又は特質)を再構成して符号化動作を行う。ポイントクラウドコンテンツの全体サイズが大きい場合(例えば、30fpsの場合、60Gbpsであるポイントクラウドコンテンツ)、ポイントクラウドコンテンツ提供システムは該当コンテンツをリアルタイムストリーミングすることができない。従って、ポイントクラウドコンテンツ提供システムは、ネットワーク環境などに合わせて提供するために、最大ターゲットビットレートに基づいてポイントクラウドコンテンツを再構成することができる。
図1及び図2に示したように、ポイントクラウドエンコーダはジオメトリ符号化及び特質符号化を行うことができる。ジオメトリ符号化は特質符号化よりも先に行われる。
実施例によるポイントクラウドエンコーダは、座標系変換部(Transformation Coordinates)40000、量子化部(Quantize and Remove Points(Voxelize))40001、八分木分析部(Analyze Octree)40002、表面近似分析部(Analyze Surface Approximation)40003、演算エンコーダ(Arithmetic Encode)40004、ジオメトリ再構成部(Reconstruct Geometry)40005、色変換部(Transform Colors)40006、特質変換部(Transfer Attributes)40007、RAHT変換部40008、LOD生成部(Generated LOD)40009、リフト変換部(Lifting)40010、係数量子化部(Quantize Coefficients)40011及び/又は演算エンコーダ(Arithmetic Encode)40012を含む。
座標系変換部40000、量子化部40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004及びジオメトリ再構成部40005は、ジオメトリ符号化を行うことができる。実施例によるジオメトリ符号化は、八分木ジオメトリコーディング、ダイレクトコーディング(direct coding)、trisoupジオメトリ符号化(trisoup geometry encoding)及びエントロピー符号化を含む。ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に或いは組み合わせて適用される。なお、ジオメトリ符号化は上記の例示に限られない。
図示したように、実施例による座標系変換部40000は、位置を受信して座標系(coordinate)に変換する。例えば、位置は3次元空間(例えば、XYZ座標系で表現される3次元空間など)の位置情報に変換される。実施例による3次元空間の位置情報はジオメトリ情報とも称される。
実施例による量子化部40001はジオメトリを量子化する。例えば、量子化部40001は全体ポイントの最小位置値(例えば、X軸、Y軸、Z軸に対して各軸上の最小値)に基づいてポイントを量子化する。量子化部40001は最小の位置値とそれぞれのポイントの位置値との差に所定の量子スケール(quatization scale)値を掛けた後、切り下げ又は切り上げをして最も近い整数値を探す量子化動作を行う。従って、一つ又はそれ以上のポイントは同一の量子化された位置(又は位置値)を有することができる。実施例による量子化部40001は量子化されたポイントを再構成するために、量子化された位置に基づいてボクセル化(voxelization)を行う。2次元イメージ/ビデオ情報を含む最小単位はピクセル(pixel)のように、実施例によるポイントクラウドコンテンツ(又は3次元ポイントクラウドビデオ)のポイントは一つ又はそれ以上のボクセル(voxel)に含まれる。ボクセルはボリューム(Volume)とピクセル(Pixel)を組み合わせた言葉であり、3次元空間を表現する軸(例えば、X軸、Y軸、Z軸)に基づいて3次元空間をユニット(unit=1.0)単位で分けたときに発生する3次元キュービック空間を意味する。量子化部40001は3次元空間のポイントのグループをボクセルでマッチングすることができる。実施例において、一つのボクセルは一つのポイントのみを含むことができる。実施例において、一つのボクセルは一つ又はそれ以上のポイントを含む。また一つのボクセルを一つのポイントで表現するために、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて、該当ボクセルの中央点(ceter)の位置を設定することができる。この場合、一つのボクセルに含まれた全ての位置の特質が統合されて(combined)、該当ボクセルに割り当てられる。
実施例による八分木分析部40002は、ボクセルを八分木構造で表すための八分木ジオメトリコーディング(又は八分木コーディング)を行う。八分木構造は八分割構造に基づいてボクセルにマッチングされたポイントを表現する。
実施例による表面近似分析部40003は、八分木を分析して近似化する。実施例による八分木分析及び近似化は、八分木及びボクセル化を効率的に提供するために、多数のポイントを含む領域をボクセル化するために分析を行う過程である。
実施例による演算エンコーダ40004は、八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。符号化の結果としてジオメトリビットストリームが生成される。
色変換部40006、特質変換部40007、RAHT変換部40008、LOD生成部40009、リフト変換部40010、係数量子化部40011及び/又は演算エンコーダ40012は、特質符号化を行う。上述したように、一つのポイントは一つ又はそれ以上の特質を有する。実施例による特質符号化は、一つのポイントが有する特質に対して等しく適用される。但し、一つの特質(例えば、色相)が一つ又はそれ以上の要素を含む場合は、(各)要素ごとに独立した特質符号化が適用される。実施例による特質符号化は、色変換コーディング、特質変換コーディング、RAHT(Region Adaptive Hierarchial Transform)コーディング、予測変換(Interpolaration-based hierarchical nearest-neighbour prediction-Prediction Transform)コーディング及びリフト変換(interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step(Lifting Transform))コーディングを含む。ポイントクラウドコンテンツによって、上述したRAHTコーディング、予測変換コーディング及びリフト変換コーディングが選択的に使用されるか、又は一つ又はそれ以上のコーディングの組み合わせが使用される。また実施例による特質符号化は上述した例示に限られない。
実施例による色変換部40006は、特質に含まれた色値(又はテクスチャ)を変換する色変換コーディングを行う。例えば、色変換部40006は色相情報のフォーマットを変換(例えば、RGBからYCbCrに変換)する。実施例による色変換部40006の動作は、特質に含まれた色値によって任意に(optional)適用される。
実施例によるジオメトリ再構成部40005は、八分木及び/又は近似化した八分木を再構成(復元)する。ジオメトリ再構成部40005はポイントの分布を分析した結果に基づいて八分木/ボクセルを再構成する。再構成された八分木/ボクセルは再構成されたジオメトリ(又は復元されたジオメトリ)とも呼ばれる。
実施例による特質変換部40007は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。上述したように、特質はジオメトリに従属するので、特質変換部40007は再構成されたジオメトリ情報に基づいて特質を変換することができる。例えば、特質変換部40007は、ボクセルに含まれたポイントの位置値に基づいてその位置のポイントが有する特質を変換することができる。上述したように、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて該当ボクセルの中央点の位置が設定される場合、特質変換部40007は一つ又はそれ以上のポイントの特質を変換する。trisoupジオメトリ符号化が行われた場合、特質変換部40007はtrisoupジオメトリ符号化に基づいて特質を変換することができる。
特質変換部40007は、各ボクセルの中央点の位置(又は位置値)から特定の位置/半径内に隣接しているポイントの特質又は特質値(例えば、各ポイントの色相、又は反射率など)の平均値を計算して特質変換を行う。特質変換部40007は平均値の計算時、中央点から各ポイントまでの距離による加重値を適用する。従って、各ボクセルは位置及び計算された特質(又は特質値)を有する。
特質変換部40007はK-Dツリー又はモールトンコード(moulton code)に基づいて各ボクセルの中央点の位置から特定の位置/半径内に存在する隣接ポイントを探索する。K-Dツリーは二分探索木(binary search tree)で迅速に最短隣接点探索(Nearest Neighbor Search-NNS)をできるように、ポイントを位置基盤に管理する資料構造を支援する。モールトンコードは全てのポイントの3次元位置を示す座標値(例えば、(x,y,z))をビット値で示し、ビットを混ぜて生成される。例えば、ポイントの位置を示す座標値が(5,9,1)であると、座標値のビット値は(0101、1001、0001)である。ビット値をz、y、xの順にビットインデックスに合わせて混ぜると、010001000111である。この値を10進数で示すと1095になる。即ち、座標値が(5,9,1)であるポイントのモールトンコード値は1095である。特質変換部40007はモールトンコード値を基準としてポイントを整列し、depth-first traversal過程により最短隣接点探索(NNS)を行う。特質変換動作後、特質コーディングのための他の変換過程でも最短隣接点探索(NNS)が必要であれば、K-Dツリー又はモールトンコードが活用される。
図示したように、変換された特質はRAHT変換部40008及び/又はLOD生成部40009に入力される。
実施例によるRAHT変換部40008は、再構成されたジオメトリ情報に基づいて特質情報を予測するRAHTコーディングを行う。例えば、RAHT変換部40008は、八分木の下位レベルにあるノードに連関する特質情報に基づいて、八分木の上位レベルにあるノードの特質情報を予測することができる。
実施例によるLOD生成部40009は予測変換コーディングを行うために、LOD(Level of Detail)を生成する。実施例によるLODはポイントクラウドコンテンツの詳細を示す程度であり、LOD値が小さいほどポイントクラウドコンテンツの詳細が下がり、LOD値が大きいほどポイントクラウドコンテンツの詳細が高いことが示されている。ポイントをLODによって分類できる。
実施例によるリフト変換部40010は、ポイントクラウドの特質を加重値に基づいて変換するリフト変換コーディングを行う。上述したように、リフト変換コーディングは選択的に適用される。
実施例による係数量子化部40011は、特質コーディングされた特質を係数に基づいて量子化する。
実施例による演算エンコーダ40012は、量子化された特質を演算コーディングに基づいて符号化する。
図4のポイントクラウドエンコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図4のポイントクラウドエンコーダのエレメントの動作及び/又は機能のうち、いずれか一つを行うことができる。また、一つ又はそれ以上のプロセッサは、図4のポイントクラウドエンコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行することができる。実施例による一つ又はそれ以上のメモリは高速ランダムアクセスメモリを含むか、又は非揮発性メモリ(例えば、一つ又はそれ以上のマグネチックディスク格納デバイス、フラッシュメモリデバイス、又は他の非揮発性固体のメモリデバイス(Solid-state memory devices)など)を含む。
図5は実施例によるボクセルの一例を示す図である。
図5はX軸、Y軸、Z軸の3つの軸で構成された座標系で表現される3次元空間上に位置するボクセルを示す。図4に示すように、ポイントクラウドエンコーダ(例えば、量子化部40001など)はボクセル化を行う。ボクセルは3次元空間を表現する軸(例えば、X軸、Y軸、Z軸)に基づいて3次元空間をユニット(unit=1.0)単位で分けたときに発生する3次元キュービック空間を意味する。図5は2つの極点(0,0,0)及び(2d、2d、2d)により定義される境界ボックス(cubical axis-aligned bounding box)を再帰的に分割(reculsive subdividing)する八分木構造により生成されたボクセルの一例を示す。一つのボクセルは少なくとも一つ以上のポイントを含む。ボクセルはボクセル群(voxel group)との位置関係から空間座標を推定することができる。上述したように、ボクセルは2次元イメージ/映像のピクセルと同様に、特質(色相又は反射率など)を有する。ボクセルに対する具体的な説明は図4で説明した通りであるので、省略する。
図6は実施例による八分木及び占有コード(occupancy code)の一例を示す図である。
図1ないし図4に示したように、ポイントクラウドコンテンツ提供システム(ポイントクラウドビデオエンコーダ10002)又はポイントクラウドエンコーダ(例えば、八分木分析部40002)は、ボクセルの領域及び/又は位置を効率的に管理するために、八分木構造基盤の八分木ジオメトリコーディング(又は八分木コーディング)を行う。
図6の上側は八分木構造を示している。実施例によるポイントクラウドコンテンツの3次元空間は座標系の軸(例えば、X軸、Y軸、Z軸)で表現される。八分木構造は2つの極点(0,0,0)及び(2d、2d、2d)により定義される境界ボックス(cubical axis-aligned bounding box)を再帰的に分割(reculsive subdividing)して生される。2dはポイントクラウドコンテンツ(又はポイントクラウドビデオ)の全体ポイントを取り囲む最小の境界ボックスを構成する値で設定される。dは八分木の深さを示す。d値は以下の式により決定される。以下の式において、(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)は占有コードに基づいて八分木を再構成する。
実施例によるポイントクラウドエンコーダ(例えば、図4のポイントクラウドエンコーダ、又は八分木分析部40002)は、ポイントの位置を格納するためにボクセル化及び八分木コーディングを行う。しかし、3次元空間内のポイントがいつも均一に分布していることではないので、ポイントが多く存在しない特定の領域が存在し得る。従って、3次元空間の全体に対してボクセル化を行うことは非効率的である。例えば、特定の領域にポイントがほぼ存在しないと、該当領域までボクセル化を行う必要はない。
従って、実施例によるポイントクラウドエンコーダは、上述した特定の領域(又は八分木のリーフノードを除いたノード)についてはボクセル化を行わず、特定の領域に含まれたポイントの位置を直接コーディングするダイレクトコーディング(Direct coding)を行う。実施例によるダイレクトコーディングポイントの座標は、ダイレクトコーディングモード(Direct Coding Mode、DCM)と呼ばれる。また実施例によるポイントクラウドエンコーダは、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化(Trisoup geometry encoding)を行うことができる。trisoupジオメトリ符号化はオブジェクトの表現を三角形メッシュ(triangle mesh)のシリーズで表現するジオメトリ符号化である。従って、ポイントクラウドデコーダはメッシュ表面からポイントクラウドを生成することができる。実施例によるダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に行われる。また実施例によるダイレクトコーディング及びtrisoupジオメトリ符号化は八分木ジオメトリコーディング(又は八分木コーディング)と結合して行うことができる。
ダイレクトコーディング(Direct coding)を行うためには、ダイレクトコーディングを適用するための直接モード(direct mode)の使用オプションが活性化されている必要があり、ダイレクトコーディングを適用するノードはリーフノードではなく、特定のノード内に閾値(threshold)以下のポイントが存在する必要がある。またダイレクトコーディングの対象となる全体ポイントの個数は所定の閾値を超えてはいけない。上記条件を満たすと、実施例によるポイントクラウドエンコーダ(又は演算エンコーダ40004)はポイントの位置(又は位置値)をエントロピーコーディングすることができる。
実施例によるポイントクラウドエンコーダ(例えば、表面近似分析部40003)は、八分木の特定のレベルを定め(レベルは八分木の深さdよりは小さい場合)、そのレベルからは表面モデルを使用してノード領域内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化を行うことができる(trisoupモード)。実施例によるポイントクラウドエンコーダは、trisoupジオメトリ符号化を適用するレベルを指定できる。例えば、指定されたレベルが八分木の深さと同一であると、ポイントクラウドエンコーダはtrisoupモードで動作しない。即ち、実施例によるポイントクラウドエンコーダは指定されたレベルが八分木の深さ値よりも小さい場合にのみtrisoupモードで動作することができる。実施例による指定されたレベルのノードの3次元立方体領域をブロック(block)と呼ぶ。一つのブロックは一つ又はそれ以上のボクセルを含む。ブロック又はボクセルはブリック(brick)に対応することもできる。それぞれのブロック内においてジオメトリは表面(surface)と表現される。実施例による表面は最大1回、ブロックの各エッジ(edge)と交差することができる。
一つのブロックは12つのエッジを有するので、一つのブロック内に少なくとも12つの交差点が存在する。それぞれの交差点はバーテックス(vertex、頂点又は頂上)と呼ばれる。エッジに沿って存在するバーテックスは該当エッジを共有する全てのブロックのうち、そのエッジに隣接する少なくとも一つの占有ボクセル(occupied voxel)がある場合に検知される。実施例による占有ボクセルはポイントを含むボクセルを意味する。エッジに沿って検出されたバーテックスの位置は、該当エッジを共有する全てのブロックのうち、該当エッジに隣接する全てのボクセルのエッジによる平均位置である(the average position along the edge of all voxels)。
バーテックスが検出されると、実施例によるポイントクラウドエンコーダは、エッジの開始点(x、y、z)、エッジの方向ベクトル(Δx、Δy、Δz)、バーテックス位置値(エッジ内の相対的位置値)をエントロピーコーディングすることができる。trisoupジオメトリ符号化が適用された場合、実施例によるポイントクラウドエンコーダ(例えば、ジオメトリ再構成部40005)は三角形再構成(triangle reconstruction)、アップ-サンプリング(up-sampling)、ボクセル化過程を行って復元されたジオメトリ(再構成されたジオメトリ)を生成することができる。
加えられた値の最小値を求め、最小値がある軸に沿って投影(Projection)過程を行う。例えば、x要素(element)が最小である場合、各バーテックスをブロックの中心を基準としてx軸に投影し、(y,z)平面に投影させる。(y,z)平面に投影させて得た値が(ai,bi)であれば、atan2(bi、ai)によりθ値を求め、θ値を基準としてバーテックスを整列する。以下の表はバーテックスの個数によって三角形を生成するためのバーテックスの組み合わせを示している。バーテックスは1からnまで順に整列される。以下の表は4つのバーテックスに対して、バーテックスの組み合わせによって2つの三角形が構成されることを示している。1番目の三角形は整列されたバーテックスのうち、1、2、3番目のバーテックスで構成され、2番目の三角形は整列されたバーテックスのうち、3,4,1番目のバーテックスで構成される。
表.Triangles formed from vertices ordered 1
アップサンプリング過程は三角形のエッジに沿って中間に点を追加してボクセル化するために行われる。アップサンプリング係数(upsampling factor)とブロックの幅を基準として追加点を生成する。追加点はリファインドバーテックス(refined vertice)と呼ばれる。実施例によるポイントクラウドエンコーダはリファインドバーテックスをボクセル化することができる。またポイントクラウドエンコーダはボクセル化された位置(又は位置値)に基づいて特質符号化を行うことができる。
図7は実施例による隣接ノードパターンの一例を示す図である。
ポイントクラウドビデオの圧縮効率を増加させるために、実施例によるポイントクラウドエンコーダはコンテキスト適応演算(context adaptive arithmetic)コーディングに基づいてエントロピーコーディングを行う。
図1ないし図6で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダ(例えば、ポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ又は演算エンコーダ40004)は、占有コードをすぐエントロピーコーディングすることができる。またポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダは、現在ノードの占有コードと隣接ノードの占有率に基づいてエントロピー符号化(イントラ符号化)を行うか、又は以前フレームの占有コードに基づいてエントロピー符号化(インター符号化)を行うことができる。実施例によるフレームは、同時間に生成されたポイントクラウドビデオの集合を意味する。実施例によるイントラ符号化/インター符号化の圧縮効率は、参照する隣接ノードの個数によって異なる。ビットが大きくなると複雑になるが、一側に傾くようにして圧縮効率を高めることができる。例えば、3-bit contextを有すると、2の3乗である8つの方法でコーディングする。分けてコーディングする部分は具現の複雑度に影響を及ぼす。従って、圧縮効率と複雑度の適正水準を合わせる必要がある。
図7は隣接ノードの占有率に基づいて占有パターンを求める過程を示す。実施例によるポイントクラウドエンコーダは、八分木の各ノードの隣接ノードの占有率(occupancy)を判断して隣接ノードパターン(neighbor pattern)値を得る。隣接ノードパターンは該当ノードの占有パターンを推論するために使用される。図7の左側はノードに対応するキューブ(真ん中に位置するキューブ)及び該当キューブと少なくとも一面を共有する6つのキューブ(隣接ノード)を示している。図示したノードは同じ深さのノードである。図示した数字は6つのノードとそれぞれ連関する加重値(1、2、4、8、16、32、など)を示す。各加重値は隣接ノードの位置によって順に付与される。
図7の右側は隣接ノードパターン値を示す。隣接ノードパターン値は占有された隣接ノード(ポイントを有する隣接ノード)の加重値が掛けられた値の合計である。従って、隣接ノードパターン値は0から63までの値を有する。隣接ノードパターン値が0であることは、該当ノードの隣接ノードのうち、ポイントを有するノード(占有ノード)がないことを意味する。隣接ノードパターン値が63であることは、隣接ノードが全て占有ノードであることを意味する。図示したように、加重値1、2、4、8が付与された隣接ノードは占有ノードであるので、隣接ノードパターン値は1、2、4、8を併せた値である15である。ポイントクラウドエンコーダは隣接ノードパターン値によってコーディングを行うことができる(例えば、隣接ノードパターン値が63である場合、64つのコーディングを行う)。実施例においてポイントクラウドエンコーダは隣接ノードパターン値を変更して(例えば、64を10又は6に変更するテーブルに基づく)、コーディングの複雑度を減らすことができる。
図8は実施例によるLODごとのポイント構成の一例を示す図である。
図1ないし図7で説明したように、特質符号化が行われる前、符号化されたジオメトリは再構成(復元)される。ダイレクトコーディングが適用された場合、ジオメトリ再構成の動作はダイレクトコーディングされたポイントの配置を変更することを含む(例えば、ダイレクトコーディングされたポイントをポイントクラウドデータの前方に配置)。trisoupジオメトリ符号化が適用された場合、ジオメトリ再構成の過程は三角形再構成、アップサンプリング、ボクセル化の過程を特質はジオメトリに従属するので、特質符号化は再構成されたジオメトリに基づいて行われる。
ポイントクラウドエンコーダ(例えば、LOD生成部40009)はポイントをLODごとに分類する(reorganization)。図面はLODに対応するポイントクラウドコンテンツを示す。図において左側はオリジナルポイントクラウドコンテンツを示す。図において左側から2番目は最低LODのポイントの分布を示し、最右側は最高LODのポイントの分布を示す。即ち、最低LODのポイントは粗い(sparse)分布であり、最高LODのポイントは細かい分布である。即ち、図面の下側に示された矢印方向に沿ってLODが増加するほどポイント間の間隔(又は距離)は短くなる。
図9は実施例によるLODごとのポイント構成の一例を示す図である。
図1ないし図8で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダ(例えば、ポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ又はLOD生成部40009)はLODを生成する。LODはポイントを設定されたLOD距離値(又はユークリッド距離(Euclidean Distance)のセット)によって改良レベル(refinement levels)のセットで再整列して生成される。LOD生成過程はポイントクラウドエンコーダだけではなく、ポイントクラウドデコーダでも行われる。
図9の上側は3次元空間に分布されたポイントクラウドコンテンツのポイントの一例(P0~P9)を示す。図9のオリジナルオーダー(Original order)はLOD生成前のポイントP0~P9の順を示す。図9のLoD基盤のオーダー(LOD based order)はLOD生成によるポイントの順を示す。ポイントはLODごとに再整列される。また高いLODは低いLODに属するポイントを含む。図9に示すように、LOD0はP0、P5、P4及びP2を含む。LOD1はLOD0のポイントとP1、P6及びP3を含む。LOD2はLOD0のポイント、LOD1のポイント及びP9、P8及びP7を含む。
図4で説明したように、実施例によるポイントクラウドエンコーダは予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングを選択的に又は組み合わせて行うことができる。
実施例によるポイントクラウドエンコーダは、ポイントに対する予測機(predictor)を生成して各ポイントの予測特質(又は予測特質値)を設定するための予測変換コーディングを行う。即ち、N個のポイントに対してN個の予測機が生成される。実施例による予測機は各ポイントのLOD値とLODごとに設定された距離内に存在する隣接ポイントに対するインデックス情報及び隣接ポイントまでの距離値に基づいて加重値(=1/距離)を計算することができる。
実施例による予測特質(又は特質値)は、各ポイントの予測機に設定された隣接ポイントの特質(又は特質値、例えば、色相、反射率など)に各隣接ポイントまでの距離に基づいて計算された加重(又は加重値)を掛けた値の平均値で設定される。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は、各ポイントの特質(特質値)から予測特質(特質値)を引いた残余値(residuals、残余特質、残余特質値、特質予測残余値などとも呼ばれる)を量子化(quatization)及び逆量子化(inverse quantization)することができる。量子化過程は以下の表の通りである。
Attribute prediction residuals quantization pseudo code
Attribute prediction residuals inverse quantization pseudo Code
実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがあれば、上述したように、量子化及び逆量子化された残余値をエントロピーコーディングする。実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがないと、上述した過程を行わず、該当ポイントの特質をエントロピーコーディングする。
実施例によるポイントクラウドエンコーダ(例えば、リフト変換部40010)は、各ポイントの予測機を生成し、予測機に計算されたLODを設定及び隣接ポイントを登録し、隣接ポイントまでの距離による加重値を設定してリフト変換コーディングを行う。実施例によるリフト変換コーディングは、上述した測変換コーディングと類似するが、特質値に加重値を累積適用するという点で差がある。実施例による特質値に加重値を累積適用する過程は以下の通りである。
1)各ポイントの加重値を貯蔵する配列QW(QuantizationWieght)を生成する。QWの全ての要素の初期値は1.0である。予測機に登録された隣接ノードの予測機インデックスのQW値に現在ポイントの予測機の加重値を掛けた値を加える。
2)リフト予測過程:予測された特質値を計算するために、ポイントの特質値に加重値を掛けた値を既存の特質値から引く。
3)アップデートウェイト(updateweight)及びアップデートという臨時配列を生成し、臨時配列を0に初期化する。
4)全ての予測機に対して計算された加重値に予測機インデックスに該当するQWに貯蔵された加重値をさらに掛けて算出された加重値をアップデートウェイト配列に隣接ノードのインデックスとして累積して合算する。アップデート配列には隣接ノードのインデックスの特質値に算出された加重値を掛けた値を累積して合算する。
5)リフトアップデート過程:全ての予測機に対して、アップデート配列の特質値を予測機インデックスのアップデートウェイト配列の加重値で割り、割った値に再び既存の特質値を加える。
6)全ての予測機に対して、リフトアップデート過程でアップデートされた特質値にリフト予測過程でアップデートされた(QWに貯蔵された)加重値をさらに掛けて予測特質値を算出する。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は予測特質値を量子化する。またポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は量子化された特質値をエントロピーコーディングする。
実施例によるポイントクラウドエンコーダ(例えば、RAHT変換部40008)は、八分木の下位レベルのノードに連関する特質を使用して上位レベルのノードの特質を予測するRAHT変換コーディングを行う。RAHT変換コーディングは八分木バックワードスキャンによる特質イントラコーディングの一例である。実施例によるポイントクラウドエンコーダは、ボクセルから全体領域にスキャンし、各ステップもぽてボクセルをもっと大きいブロックに合わせながらルートノード(root node)までの併合過程を繰り返して行う。実施例による併合過程は、占有ノードのみについて行われる。空ノード(empty node)については併合過程が行われず、空ノードの直上位ノードについて併合過程が行われる。
以下の式はRAHT変換行列を示す。
はレベルlでのボクセル(voxel)の平均特質値を示す。
は
と
から計算される。
と
の加重値は
と
である。
はローパス(low-pass)値であって、次の上位レベルでの併合過程で使用される。
はハイパス係数(high-pass coefficients)であって、各ステップでのハイパス係数は量子化されてエントロピーコーディングされる(例えば、計算エンコーダ400012の符号化)。加重値は
により計算される。ルートノードは最後の
と
により以下のように生成される。
gDC値もハイパス係数のように量子化されてエントロピーコーディングされる。
図10は実施例によるポイントクラウドデコーダ(Point Cloud Decoder)の一例を示す図である。
図10に示したポイントクラウドデコーダは、図1に示したポイントクラウドビデオデコーダ10006の一例であり、図1で説明したイントクラウドビデオデコーダ10006の動作などと同一又は類似する動作を行う。図示したように、ポイントクラウドデコーダは一つ又はそれ以上のビットストリーム(bitstream)に含まれたジオメトリビットストリーム(geometry bitstream)及び特質ビットストリーム(Attribute bitstream)を受信する。ポイントクラウドデコーダはジオメトリデコーダ(geometry decoder)及び特質デコーダ(Attribute decoder)を含む。ジオメトリデコーダはジオメトリビットストリームに対してジオメトリ復号を行って復号されたジオメトリ(decoded geometry)を出力する。特質デコーダは復号されたジオメトリ及び特質ビットストリームに基づいて特質復号を行って復号された特質(decoded Attributes)を出力する。復号されたジオメトリ及び復号された特質はポイントクラウドコンテンツを復元(decoded point cloud)するために使用される。
図11は実施例によるポイントクラウドデコーダ(Point Cloud Decoder)の一例を示す図である。
図11に示したポイントクラウドデコーダは図10で説明したポイントクラウドデコーダの一例であり、図1ないし図9で説明したポイントクラウドエンコーダの符号化動作の逆過程である復号動作を行う。
図1及び図10で説明したように、ポイントクラウドデコーダはジオメトリ復号及び特質復号を行う。ジオメトリ復号は特質復号よりも先に行われる。
実施例によるポイントクラウドデコーダは、演算デコーダ(arithmetic decode)11000、八分木合成部(synthesize octree)11001、表面近似合成部(synthesize surface approximation)11002、ジオメトリ再構成部(reconstruct geometry)11003、座標系逆変換部(inverse transform coordinates)11004、演算デコーダ(arithmetic decode)11005、逆量子化部(inverse quantize)11006、RAHT変換部11007、LOD生成部(generate LOD)11008、逆リフト部(Inverse lifting)11009及び/又は色逆変換部(inverse transform colors)11010を含む。
演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び座標系逆変換部11004はジオメトリ復号を行う。実施例によるジオメトリ復号はダイレクトコーディング(direct coding)及びtrisoupジオメトリ復号(trisoup geometry decoding)を含む。ダイレクトコーディング及びtrisoupジオメトリ復号は選択的に適用される。またジオメトリ復号は上記の例示に限られず、図1ないし図9で説明したジオメトリ符号化の逆過程で行われる。
実施例による演算デコーダ11000は、受信したジオメトリビットストリームを演算コーディングに基づいて復号する。演算デコーダ11000の動作は演算エンコーダ40004の逆過程に対応する。
実施例による八分木合成部11001は、復号されたジオメトリビットストリームから(又は復号結果、確保されたジオメトリに関する情報)から占有コードを獲得して八分木を生成する。占有コードに関する具体的な説明は図1ないし図9に説明した通りである。
実施例による表面近似合成部11002は、trisoupジオメトリ符号化が適用された場合、復号されたジオメトリ及び/又は生成された八分木に基づいて表面を合成する。
実施例によるジオメトリ再構成部11003は、表面及び/又は復号されたジオメトリに基づいてジオメトリを再生成する。図1ないし図9で説明したように、ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に適用される。従って、ジオメトリ再構成部11003はダイレクトコーディングが適用されたポイントの位置情報を直接持ってきて追加する。また、trisoupジオメトリ符号化が適用される場合、ジオメトリ再構成部11003はジオメトリ再構成部40005の再構成動作、例えば、三角形再構成、アップサンプリング、ボクセル化動作を行ってジオメトリを復元する。具体的な内容は図6で説明した通りであるので省略する。復元されたジオメトリは特質を含まないポイントクラウドピクチャ又はフレームを含む。
実施例による座標系逆変換部11004は復元されたジオメトリに基づいて座標系を変換してポイントの位置を得る。
演算デコーダ11005、逆量子化部11006、RAHT変換部11007、LOD生成部11008、逆リフト部11009及び/又は色逆変換部11010は、図10で説明した特質復号を行う。実施例による特質復号は、RAHT(Region Adaptive Hierarchial Transform)復号、予測変換(Interpolaration-based hierarchical nearest-neighbour prediction-Prediction Transform)復号、及びリフト変換(interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step (Lifting Transform))復号を含む。上記3つの復号は選択的に使用されるか、又は一つ又はそれ以上の復号の組み合わせが使用される。また実施例による特質復号は上述した例示に限られない。
実施例による演算デコーダ11005は、特質ビットストリームを演算コーディングに復号する。
実施例による逆量子化部11006は、復号された特質ビットストリーム又は復号結果確保した特質に関する情報を逆量子化(inverse quantization)して、逆量子化された特質(又は特質値)を出力する。逆量子化はポイントクラウドエンコーダの特質符号化に基づいて選択的に適用される。
実施例においてRAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009は、再構成されたジオメトリ及び逆量子化された特質を処理する。上述したように、RAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009は、ポイントクラウドエンコーダの符号化によってそれに対応する復号動作を選択的に行う。
実施例による色逆変換部11010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色逆変換部11010の動作はポイントクラウドエンコーダの色変換部40006の動作に基づいて選択的に行われる。
図11のポイントクラウドデコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図11のポイントクラウドデコーダのエレメント動作及び/又は機能のうちのいずれかを行う。また、一つ又はそれ以上のプロセッサは、図11のポイントクラウドデコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行する。
図12は実施例による送信装置の一例を示す。
図12に示した送信装置は、図1の送信装置10000(又は図4のポイントクラウドエンコーダ)の一例である。図12に示した送信装置は、図1ないし図9で説明したポイントクラウドエンコーダの動作及び符号化方法と同一又は類似する動作及び方法のうちのいずれかを行う。実施例による送信装置は、データ入力部12000、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005、演算コーダー12006、メタデータ処理部12007、色相変換処理部12008、特質変換処理部(又は属性変換処理部)12009、予測/リフト/RAHT変換処理部12010、演算コーダー12011及び/又は送信処理部12012を含む。
実施例によるデータ入力部12000はポイントクラウドデータを受信又は獲得する。データ入力部12000はポイントクラウドビデオ獲得部10001の動作及び/又は獲得方法(又は図2に示した獲得過程20000)と同一又は類似する動作及び/又は獲得方法を行う。
データ入力部12000、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005及び演算コーダー12006はジオメトリ符号化を行う。実施例によるジオメトリ符号化は、図1ないし図9で説明したジオメトリ符号化と同一又は類似するので、具体的な説明は省略する。
実施例による量子化処理部12001は、ジオメトリ(例えば、ポイントの位置値、又はポジション値)を量子化する。量子化処理部12001の動作及び/又は量子化は、図4に示した量子化部40001の動作及び/又は量子化と同一又は類似する。具体的な説明は図1ないし図9に説明した通りである。
実施例によるボクセル化処理部12002は、量子化されたポイントの位置値をボクセル化する。ボクセル化処理部120002は図4に示した量子化部40001の動作及び/又はボクセル化過程と同一又は類似する動作及び/又は過程を行う。具体的な説明は図1ないし図9に説明した通りである。
実施例による八分木占有コード生成部12003は、ボクセル化されたポイントの位置を八分木構造に基づいて八分木コーディングを行う。八分木占有コード生成部12003は占有コードを生成する。八分木占有コード生成部12003は図4及び図6で説明したポイントクラウドエンコーダ(又は八分木分析部40002)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1ないし図9に説明した通りである。
実施例による表面モデル処理部12004は、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセル基盤に再構成するtrisoupジオメトリ符号化を行う。表面モデル処理部12004は図4に示したポイントクラウドエンコーダ(例えば、表面近似分析部40003)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1ないし図9に説明した通りである。
実施例によるイントラ/インターコーディング処理部12005は、ポイントクラウドデータをイントラ/インターコーディングする。イントラ/インターコーディング処理部12005は、図7で説明したイントラ/インターコーディングと同一又は類似するコーディングを行う。具体的な説明は図7に説明した通りである。実施例においてイントラ/インターコーディング処理部12005は演算コーダー12006に含まれる。
実施例による演算コーダー12006は、ポイントクラウドデータの八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。演算コーダー12006は演算エンコーダ40004の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
実施例によるメタデータ処理部12007は、ポイントクラウドデータに関するメタデータ、例えば、設定値などを処理してジオメトリ符号化及び/又は特質符号化などの必要な処理過程に提供する。また実施例によるメタデータ処理部12007は、ジオメトリ符号化及び/又は特質符号化に関連するシグナリング情報を生成及び/又は処理する。実施例によるシグナリング情報はジオメトリ符号化及び/又は特質符号化とは別途に符号化処理される。また実施例によるシグナリング情報はインターリービングされることもある。
色相変換処理部12008、特質変換処理部12009、予測/リフト/RAHT変換処理部12010及び演算コーダー12011は特質符号化を行う。実施例による特質符号化は、図1ないし図9で説明した特質符号化と同一又は類似するので具体的な説明は省略する。
実施例による色相変換処理部12008は、特質に含まれた色相値を変換する色相変換コーディングを行う。色相変換処理部12008は再構成されたジオメトリに基づいて色相変換コーディングを行う。再構成されたジオメトリに関する説明は、図1ないし図9に説明した通りである。また図4で説明した色変換部40006の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は省略する。
実施例による特質変換処理部12009は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。特質変換処理部12009は図4に説明した特質変換部40007の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は省略する。実施例による予測/リフト/RAHT変換処理部12010は変換された特質をRAHTコーディング、予測変換コーディング及びリフト変換コーディングのうちのいずれか一つ又は組み合わせてコーディングする。予測/リフト/RAHT変換処理部12010は図4に説明したRAHT変換部40008、LOD生成部40009及びリフト変換部40010の動作と同一又は類似する動作のうちのいずれかを行う。また、予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングに関する説明は図1ないし図9に説明した通りであるので、具体的な説明は省略する。
実施例による演算コーダー12011は、コーディングされた特質を演算コーディングに基づいて符号化する。演算コーダー12011は演算エンコーダ400012の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
実施例による送信処理部12012は、符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報を含む各ビットストリームを送信するか、又は符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報を一つのビットストリームで構成して送信する。実施例による符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報が一つのビットストリームで構成された場合、ビットストリームは一つ又はそれ以上のサブビットストリームを含む。実施例によるビットストリームはシーケンスレベルのシグナリングのためのSPS(Sequence Parameter Set)、ジオメトリ情報コーディングのシグナリングのためのGPS(Geometry Parameter Set)、特質情報コーディングのシグナリングのためのAPS(Attribute Parameter Set)、タイルレベルのシグナリングのためのTPS(Tile Parameter Set)を含むシグナリング情報及びスライスデータを含む。スライスデータは一つ又はそれ以上のスライスに関する情報を含む。実施例による一つのスライスは一つのジオメトリビットストリーム(Geom00)及び一つ又はそれ以上の特質ビットストリーム(Attr00、Attr10)を含む。実施例によるTPSは一つ又はそれ以上のタイルに対してそれぞれのタイルに関する情報(例えば、bounding boxの座標値情報及び高さ/サイズ情報など)を含む。ジオメトリビットストリームはヘッダとペイロードを含む。実施例によるジオメトリビットストリームのヘッダはGPSに含まれたパラメータセットの識別情報(geom_parameter_set_id)、タイル識別子(geom_tile_id)、スライス識別子(geom_slice_id)及びペイロードに含まれたデータに関する情報などを含む。上述したように、実施例によるメタデータ処理部12007はシグナリング情報を生成及び/又は処理して送信処理部12012に送信することができる。実施例において、ジオメトリ符号化を行うエレメント及び特質符号化を行うエレメントは、点線処理したように、相互データ/情報を共有することができる。実施例による送信処理部12012は送信機10003の動作及び/又は送信方法と同一又は類似する動作及び/又は送信方法を行う。具体的な説明は図1及び図2に説明した通りであるので、省略する。
図13は実施例による受信装置の一例を示す。
図13に示した受信装置は、図1の受信装置10004(又は図10及び図11のポイントクラウドデコーダ)の一例である。図13に示した受信装置は、図1ないし図11で説明したポイントクラウドデコーダの動作及び復号方法と同一又は類似する動作及び方法のうちのいずれかを行う。
実施例による受信装置は、受信部13000、受信処理部13001、演算(arithmetic)デコーダ13002、占有コード(Occupancy code)基盤の八分木再構成処理部13003、表面モデル処理部(三角形再構成、アップサンプリング、ボクセル化)13004、逆(inverse)量子化処理部13005、メタデータ分析13006、演算(arithmetic)デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009、色相逆変換処理部13010及び/又はレンダラー13011を含む。実施例による復号の各構成要素は実施例による符号化の構成要素の逆過程を行う。
実施例による受信部13000は、ポイントクラウドデータを受信する。受信部13000は図1の受信機10005の動作及び/又は受信方法と同一又は類似する動作及び/又は受信方法を行う。具体的な説明は省略する。
実施例による受信処理部13001は受信したデータからジオメトリビットストリーム及び/又は特質ビットストリームを得る。受信処理部13001は受信部13000に含まれる。
演算デコーダ13002、占有コード基盤の八分木再構成処理部13003、表面モデル処理部13004及び逆量子化処理部13005はジオメトリ復号を行う。実施例によるジオメトリ復号は図1ないし図10で説明したジオメトリ復号と同一又は類似するので、具体的な説明は省略する。
実施例による演算デコーダ13002はジオメトリビットストリームを演算コーディングに基づいて復号する。演算デコーダ13002は演算デコーダ11000の動作及び/又はコーディングと同一又は類似する動作及び/又はコーディングを行う。
実施例による占有コード基盤の八分木再構成処理部13003は、復号されたジオメトリビットストリームから(又は復号結果、確保されたジオメトリに関する情報)から占有コードを獲得して八分木を再構成する。占有コード基盤の八分木再構成処理部13003は、八分木合成部11001の動作及び/又は八分木生成方法と同一又は類似する動作及び/又は方法を行う。実施例による表面モデル処理部13004はtrisoupジオメトリ符号化が適用された場合、表面モデル方式に基づいてtrisoupジオメトリ復号及びそれに関連するジオメトリ再構成(例えば、三角形再構成、アップサンプリング、ボクセル化)を行う。表面モデル処理部13004は表面近似合成部11002及び/又はジオメトリ再構成部11003の動作と同一又は類似する動作を行う。
実施例による逆量子化処理部13005は復号されたジオメトリを逆量子化する。
実施例によるメタデータ分析13006は受信したポイントクラウドデータに含まれたメタデータ、例えば、設定値などを分析する。メタデータ分析13006はメタデータをジオメトリ復号及び/又は特質復号に伝達する。メタデータに関する具体的な説明は図12で説明した通りであるので省略する。
演算デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009及び色相逆変換処理部13010は特質復号を行う。特質復号は図1なしい図10で説明した特質復号と同一又は類似するので、具体的な説明は省略する。
実施例による演算デコーダ13007は、特質ビットストリームを演算コーディングに復号する。演算デコーダ13007は再構成されたジオメトリに基づいて特質ビットストリームの復号を行う。演算デコーダ13007は演算デコーダ11005の動作及び/又はコーディングと同一又は類似する動作及び/又はコーディングを行う。
実施例による逆量子化処理部13008は、復号された特質ビットストリームを逆量子化する。逆量子化処理部13008は逆量子化部11006の動作及び/又は逆量子化方法と同一又は類似する動作及び/又は方法を行う。
実施例による予測/リフト/RAHT逆変換処理部13009は、再構成されたジオメトリ及び逆量子化された特質を処理する。予測/リフト/RAHT逆変換処理部13009は、RAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009の動作及び/又は復号と同一又は類似する動作及び/又は復号のうちのいずれかを行う。実施例による色相逆変換処理部13010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色相逆変換処理部13010は色逆変換部11010の動作及び/又は逆変換コーディングと同一又は類似する動作及び/又は逆変換コーディングを行う。実施例によるレンダラー13011はポイントクラウドデータをレンダリングする。
図14は実施例によるG-PCC基盤のポイントクラウドコンテンツストリーミングためのアーキテクチャを示す図である。
図14の上側は図1ないし図13で説明した送信装置(例えば、送信装置10000、図12の送信装置など)がポイントクラウドコンテンツを処理及び送信する過程を示す。
図1ないし図13で説明したように、送信装置はポイントクラウドコンテンツのオディオ(Ba)を得(Audio Acquisition)、得られたオディオを符号化(Audio encoding)してオディオビットストリーム(Ea)を出力する。また送信装置はポイントクラウドコンテンツのポイントクラウド(Bv)(又はポイントクラウドビデオ)を確保し(Point Acqusition)、確保したポイントクラウドについてポイントクラウド符号化(Point cloud encoding)を行ってポイントクラウドビデオビットストリーム(Ebを出力する。送信装置のポイントクラウド符号化は、図1ないし図13で説明したポイントクラウド符号化(例えば、図4のポイントクラウドエンコーダの符号化など)と同一又は類似するので具体的な説明は省略する。
送信装置は生成されたオディオビットストリーム及びビデオビットストリームをファイル及び/又はセグメントにカプセル化(File/segment encapsulation)する。カプセル化されたファイル及び/又はセグメント(Fs、File)は、ISOBMFFなどのファイルフォーマットのファイル又はDASHセグメントを含む。実施例によるポイントクラウド関連メタ データ(metadata)は、カプセル化されたファイルフォーマット及び/又はセグメントに含まれる。メタデータはISOBMFFファイルフォーマット上の様々なレベルのボックスに含まれるか、又はファイル内で別のトラックに含まれる。実施例において、送信装置はメタデータ自体を別のファイルにカプセル化することができる。実施例による送信装置は、カプセル化されたファイルフォーマット及び/又はセグメントをネットワークにより送信する。送信装置のカプセル化及び送信処理方法は図1ないし図13で説明した通りであるので(例えば、送信機10003、図2の送信段階20002など)、具体的な説明は省略する。
図14の下側は図1ないし図13で説明した受信装置(例えば、受信装置10004、図13の受信装置など)がポイントクラウドコンテンツを処理及び出力する過程を示している。
実施例において、受信装置は最終オディオデータ及び最終ビデオデータを出力するデバイス(例えば、スピーカー(Loudspeakers)、ヘッドホン(headphones)、ディスプレイ(Display)及びポイントクラウドコンテンツを処理するポイントクラウドプレーヤー(Point Cloud Player)を含む。最終データ出力デバイス及びポイントクラウドプレーヤーは別の物理的なデバイスで構成される。実施例によるポイントクラウドプレーヤーは、G-PCC(Geometry-based Point Cloud Compression)コーディング及び/又はV-PCC(Video based Point Cloud Compression)コーディング及び/又は次世代コーディングを行う。
実施例による受信装置は受信したデータ(例えば、放送信号、ネットワークにより送信される信号など)に含まれたファイル及び/又はセグメント(F',Fs')を確保し、デカプセル化(File/segment decapsulation)する。受信装置の受信及びデカプセル化方法は図1ないし図13で説明した通りであるので(例えば、受信機10005、受信部13000、受信処理部13001など)、具体的な説明は省略する。
実施例による受信装置は、ファイル及び/又はセグメントに含まれたオディオビットストリーム(E'a)及びビデオビットストリーム(E'v)を確保する。図示したように、受信装置はオディオビットストリームに対してオディオ復号(audio decoding)を行って復号されたオディオデータ(B'a)を出力し、復号されたオディオデータをレンダリングして(audio rendering)最終オディオデータ(A'a)をスピーカー又はヘッドホンなどで出力する。
また受信装置は、ビデオビットストリーム(E'v)に対してポイントクラウド復号(point cloud decoding)を行って復号されたビデオデータ(B'v)を出力する。実施例によるポイントクラウド復号は、図1ないし図13で説明したポイントクラウド復号と同一又は類似するので(例えば、図11のポイントクラウドデコーダの復号など)、具体的な説明は省略する。受信装置は復号されたビデオデータをレンダリングして(rendering)最終ビデオデータをディスプレイに出力する。
実施例による受信装置は、共に送信されたメタデータに基づいてデカプセル化、オディオ復号、オディオレンダリング、ポイントクラウド復号及びレンダリング動作のうちのいずれかを行う。メタデータに関する説明は図12及び図13で説明した通りであるので省略する。
図示した点線のように、実施例による受信装置(例えば、ポイントクラウドプレーヤー又はポイントクラウドプレーヤー内のセンシング/トラッキング部(sensing/tracking)は、フィードバック情報(orientation、viewport)を生成する。実施例によるフィードバック情報は受信装置のデカプセル化、ポイントクラウド復号過程及び/又はレンダリング過程で使用され、送信装置に伝達されることもできる。フィードバック情報に関する説明は図1ないし図13で説明した通りであるので省略する。
図15は実施例による送信装置の一例を示す図である。
図15の送信装置はポイントクラウドコンテンツを送信する装置であり、図1ないし図14で説明した送信装置(例えば、図1の送信装置10000、図4のポイントクラウドエンコーダ、図12の送信装置、図14の送信装置など)の例示に該当する。従って、図15の送信装置は図1ないし図14で説明した送信装置の動作と同一又は類似する動作を行う。
実施例による送信装置は、ポイントクラウド獲得(point cloud acquisition)、ポイントクラウド符号化(point cloud encoding)、ファイル/セグメントカプセル化(file/segement encapsulation)及び送信(delivery)のうちのいずれか又はそれ以上を行うことができる。
図示したポイントクラウド獲得及び送信動作は図1ないし図14で説明した通りであるので具体的な説明は省略する。
図1ないし図14で説明したように、実施例による送信装置はジオメトリ符号化及び特質符号化を行う。実施例によるジオメトリ符号化はジオメトリ圧縮(geometry compression)とも呼ばれ、特質符号化は特質圧縮(Attribute compression)とも呼ばれる。上述したように、一つのポイントは一つのジオメトリと一つ又はそれ以上の特質を有する。従って、送信装置はそれぞれの特質に対して特質符号化を行う。図面では送信装置が一つ又はそれ以上の特質圧縮(Attribute #1 compression、… Attribute #N compression)を行った例示を示している。また実施例による送信装置は追加圧縮(auxiliary compression)を行うことができる。追加圧縮はメタデータ(metadata)に対して行われる。メタデータに関する説明は図1ないし図14に説明した通りであるので省略する。また送信装置はメッシュデータ圧縮(Mesh data compression)を行うことができる。実施例によるメッシュデータ圧縮は図1ないし図14で説明したtrisoupジオメトリ符号化を含む。
実施例による送信装置はポイントクラウド符号化により出力されたビットストリーム(例えば、ポイントクラウドストリーム)をファイル及び/又はセグメントにカプセル化する。実施例において、送信装置はメタデータ以外のデータ(例えば、メディアデータ)を運ぶメディアトラックカプセル化(media track encapsulation)を行い、メタデータを運ぶメタデータトラックカプセル化(metadata tracak encapsulation)を行う。実施例においてメタデータはメディアトラックにカプセル化される。
図1ないし図14に説明したように、送信装置は受信装置からフィードバック情報(オリエンテーション/ビューポートメタデータ)を受信し、受信したフィードバック情報に基づいてポイントクラウド符号化、ファイル/セグメントカプセル化及び送信動作のうちのいずれかを行う。具体的な説明は図1ないし図14に説明した通りであるので省略する。
図16は実施例による受信装置の一例を示す図である。
図16の受信装置はポイントクラウドコンテンツを受信する装置であり、図1ないし図14で説明した受信装置(例えば、図1の受信装置10004、図11のポイントクラウドデコーダ、図13の受信装置、図14の受信装置など)の例示に該当する。従って、図16の受信装置は図1ないし図14で説明した受信装置の動作と同一又は類似する動作を行う。また図16の受信装置は図15の送信装置で送信した信号などを受け、図15の送信装置の動作の逆過程を行うことができる。
実施例による受信装置は受信(delivery)、ファイル/セグメントデカプセル化(file/segement decapsulation)、ポイントクラウド復号(point cloud decoding)及びポイントクラウドレンダリング(point cloud rendering)のうちのいずれか又はそれ以上を行う。
図示されたポイントクラウド受信及びポイントクラウドレンダリング動作は図1ないし図14に説明した通りであるので具体的な説明は省略する。
図1ないし図14に説明したように、実施例による受信装置はネットワーク又は格納装置から得たファイル及び/又はセグメントに対してデカプセル化を行う。実施例において、受信装置はメタデータ以外のデータ(例えば、メディアデータ)を運ぶメディアトラックデカプセル化(media track decapsulation)を行い、メタデータを運ぶメタデータトラックデカプセル化(metadata tracak decapsulation)を行うことができる。実施例において、メタデータがメディアトラックにカプセル化された場合、メタデータトラックデカプセル化は省略される。
図1ないし図14に説明したように、受信装置はデカプセル化により確保したビットストリーム(例えば、ポイントクラウドストリーム)に対してジオメトリ復号及び特質復号を行う。実施例によるジオメトリ復号はジオメトリ復元(geometry decompression)とも呼ばれ、特質復号は特質復元(Attribute decompression)とも呼ばれる。上述したように、一つのポイントは一つのジオメトリと一つ又はそれ以上の特質を有し、それぞれ符号化される。従って、受信装置は各特質に対して特質復号を行う。図面では受信装置が一つ又はそれ以上の特質復元(Attribute #1 decompression、…ute #N decompression)を行った例示を示している。また実施例による受信装置は追加復元(auxiliary decompression)を行うことができる。追加復元はメタデータに対して行われる。メタデータに関する説明は図1ないし図14に説明した通りであるので省略する。また受信装置はメッシュデータ復元(Mesh data decompression)を行う。実施例によるメッシュデータ復元は図1ないし図14で説明したtrisoupジオメトリ復号を含む。実施例による受信装置はポイントクラウド復号によって出力されたポイントクラウドデータをレンダリングする。
図1ないし図14に説明したように、受信装置は別のセンシング/トラッキングエレメントなどを用いてオリエンテーション/ビューポートメタデータを確保し、それを含むフィードバック情報を送信装置(例えば、図15の送信装置)に送信することができる。また受信装置はフィードバック情報に基づいて受信動作、ファイル/セグメントデカプセル化及びポイントクラウド復号のうちのいずれかを行うことができる。具体的な説明は図1ないし図14に説明した通りであるので省略する。
図17は実施例によるポイントクラウドデータの送受信方法/装置に連動可能な構造の一例を示す図である。
図17の構造はサーバー1760、ロボット1710、自律走行車両1720、XR装置1730、スマートフォン1740、家電1750及び/又はHMD1770のうちのいずれかがクラウドネットワーク1710に連結された構成を示している。ロボット1710、自律走行車両1720、XR装置1730、スマートフォン1740又は家電1750などは装置とも呼ばれる。またXR装置1730は実施例によるポイントクラウドデータ(PCC)装置に対応するか又はPCC装置に連動する。
クラウドネットワーク1700はクラウドコンピューティングインフラの一部を構成するか、又はクラウドコンピューティングインフラ内に存在するネットワークを意味する。ここで、クラウドネットワーク1700は3Gネットワーク、4G又はLTEネットワーク又は5Gネットワークなどを用いて構成される。
サーバー1760はロボット1710、自律走行車両1720、XR装置1730、スマートフォン1740、家電1750及び/又はHMD1770のいずれかにクラウドネットワーク1700により連結され、連結された装置1710~1770のプロセシングの少なくとも一部を助けることができる。
HMD(Head-Mount Display)1770は実施例によるXRデバイス及び/又はPCCデバイスが具現されるタイプのうちのいずれかを示す。実施例によるHMDタイプのデバイスは、コミュニケーションズユニット、コントロールユニット、メモリユニット、I/Oユニット、センサユニット及びパーワ供給ユニットなどを含む。
以下、上記技術が適用される装置1710~1750の様々な実施例について説明する。ここで、図17に示した装置1710~1750は上述した実施例によるポイントクラウドデータ送受信装置に連動/結合することができる。
<PCC+XR>
XR/PCC装置1730はPCC及び/又はXR(AR+VR)技術が適用されて、HMD(Head-Mount Display)、車両に備えられたHUD(Head-Up Display)、TV、携帯電話、スマートフォン、コンピューター、ウェアラブルデバイス、家電機器、デジタル看板、車両、固定型ロボットや移動型ロボットなどに具現されることもできる。
XR/PCC装置1730は、様々なセンサにより又は外部装置から獲得した3次元ポイントクラウドデータ又はイメージデータを分析して3次元ポイントに対する位置データ及び特質データを生成することにより周辺空間又は現実オブジェクトに関する情報を得て、出力するXR客体をレンダリングして出力することができる。例えば、XR/PCC装置1730は認識された物体に関する追加情報を含むXR客体を該当認識された物体に対応して出力することができる。
<PCC+自立走行+XR>
自律走行車両1720はPCC技術及びXR技術が適用されて、移動型ロボット、車両、無人飛行体などで具現される。
XR/PCC技術が適用された自律走行車両1720は、XR映像を提供する手段を備えた自律走行車両やXR映像内での制御/相互作用の対象となる自律走行車両などを意味する。特に、XR映像内での制御/相互作用の対象となる自律走行車両1720はXR装置1730とは区分されて互いに連動されることができる。
XR/PCC映像を提供する手段を備えた自律走行車両1720は、カメラを含むセンサからセンサ情報を得、得たセンサ情報に基づいて生成されたXR/PCC映像を出力する。例えば、自律走行車両1720は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サービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信する。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含む。
図18は実施例によるポイントクラウドデータエンコーダを示す図である。
実施例によるポイントクラウドエンコーダ18000は、ポイントクラウドデータ(PCCデータ、18000a)を受信して、これらを符号化する。実施例によるポイントクラウドエンコーダは幾何情報ビットストリーム18000b及び属性情報ビットストリーム18000cを出力する。実施例によるポイントクラウドエンコーダ18000は空間分割部18001、幾何情報符号化部18002及び/又は属性情報符号化部18003を含む。
空間分割部18001は、ポイントクラウドエンコーダはポイントクラウドデータ(PCCデータ、18000a)を受信し、ポイントクラウドデータを一つ又はそれ以上の3次元空間に分割する。空間分割部18001はポイントクラウドデータを受信し、ポイントクラウドデータを3次元ブロックに空間分割する。ポイントクラウドデータはポイント(又は複数のポイント)の幾何情報及び/又は属性情報を含む。空間分割部18001は境界ボックス(bounding box)及び/又は副境界ボックスなどにに基づいてポイントクラウドデータ(PCCデータ)を空間分割する。実施例による方法/装置は分割された単位(ボックス)に基づいて符号化/復号を行う。
空間分割部18001は図1のクラウド獲得(Point Cloud Acquisition)10001、図2の獲得20000の動作、図3ないし図5による動作、図12のデータ入力部12000動作の一部/全部を行うことができる。
幾何情報符号化部18002は、実施例によるポイントクラウドデータ(PCCデータ)のジオメトリ情報を受信してそれを符号化する。ジオメトリ情報はポイントクラウドデータに含まれたポイントの位置情報を意味する。幾何情報符号化部18002はジオメトリ情報を符号化して幾何情報ビットストリームを出力する。幾何情報符号化部18002はポイントの位置情報を再構成して復元された幾何情報18002aを出力することができる。幾何情報符号化部18002は復元さえた幾何情報を属性情報符号化部18002に伝達する。
幾何情報符号化部18002は、図1のポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002、図2の符号化20001、図4の座標系変換部40000、量子化40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004、ジオメトリ再構成部40005、図12の量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005及び/又は演算コーダー12006の動作の一部/全部を行う。
属性情報符号化部18003は実施例によるポイントクラウドデータの属性情報を受信し、幾何情報符号化部18003から受信した復元された幾何情報を用いて属性情報を符号化する。属性情報符号化部18003は属性情報を符号化して属性情報ビットストリーム18000cを出力する。属性情報符号化部18003は例えば、実施例による予測変換(prediction transform)、リフト変換(lifting transform)及び/又はRAHT(Region Adaptive Hierarchical Transform)変換を行う。属性情報符号化部18003は、例えば、予測リフト(prediction lifting、又は予測リフト)変換を行う。予測リフト変換は実施例による予測変換及び/又はリフト変換の各々の詳しい動作の一部又は全部を組み合わせたことを意味する。
実施例によるポイントクラウドエンコーダは、実施例による予測変換(prediction transform)、リフト変換(lifting transform)及び/又はRAHT(Region Adaptive Hierarchical Transform)変換の一部、全部及び/又はそれぞれの組み合わせにより符号化を行う。
属性情報符号化部18003は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化20001、図4の色変換部40006、属性変換部40007、RATH変換部40008、LOD生成部40009、リフト変換部40010、係数量子化部40011及び/又は演算符号化部40012の動作、図12の色相変換処理部12008、属性変換処理部12009、予測/リフト/RAHT変換処理部12010、演算コーダー12011の動作の全部/一部を行う。
ここで、復元された幾何情報18002cは、図4で説明したジオメトリ再構成部(Reconstruct Geometry)40005により再構成された八分木及び/又は近似化された八分木を意味する。復元された幾何情報は図6で説明した占有コードを意味するか又は八分木構造を意味する。復元された幾何情報は図12で説明した八分木占有コード生成部12003により生成された八分木占有コードを意味することもできる。
属性情報符号化部18003は、実施例によるポイントクラウドデータの属性情報を符号化する。ここで、実施例による符号化部18003は実施例による復元された幾何情報(又は復元されたジオメトリ情報)を用いて属性情報を符号化する。属性情報符号化部18003は受信されたデータを符号化して特質情報(又は属性情報)を含むビットストリームを生成することができる。
実施例による属性情報符号化部18003は、図4の色相変換部40006、属性送信部40007、RAHT変換部40008、LOD生成部40009、リフト部40010、量子化部40011及び/又は演算符号化部400012を含む。
実施例によるポイントクラウドデータは、データの特性によってカテゴリー1とカテゴリー3に分類される。カテゴリー1のデータは静的データであって、1枚のフレーム(frame)で構成されたデータである。カテゴリー3のデータは動的データであって、N枚のフレームで構成されたデータである。ポイントクラウドデータのファイルフォーマットであるplyファイルは、データの獲得方法によって複数のポイントで構成される。
実施例によるポイントは、該当ポイントの位置情報(ジオメトリ情報)及び色相情報、反射度情報、時間情報、法線ベクトル(Normal vector)情報などを含む属性情報(特質情報)を含む。実施例によるポイントは表現しようとする条件によって様々な情報を含む。ポイントからなるカテゴリー1とカテゴリー3のデータは大容量の点を含むフレームを含む。しかし、実施例によるポイントクラウドデータ送信装置は、かかるポイントを含むフレームを受信して符号化する場合、遅延時間と不要なリソースが多く使われるという問題がある。
従って、実施例によるポイントクラウドデータ送信装置では、ポイントクラウドデータの送信動作、符号化動作、受信装置の復号化動作、及び受信装置のレンダリング処理動作がリアルタイムで行われると共に、低遅延で処理するために、ポイントクラウドデータを複数の領域に分割する。実施例によるポイントクラウドデータ送信装置では、ポイントクラウドデータのフレームをタイル(tile)、スライス(slice)及び/又はブリック(brick)単位に分割する。
従って、実施例によるポイントクラウドデータ送信装置では、3次元ポイントクラウド(Point Cloud)データの並列処理能力の向上及び拡張性(scalability)を向上させるための独立的なデータ分割方法によってポイントクラウドデータを分割することができる。独立的なデータ分割を行うとき、空間上近い点同士に再分割が行われる方法を支援することで空間適応的分割方法を含むことができる。
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化する段階、及びポイントクラウドデータ及びポイントクラウドデータに関するシグナリング情報を含むビットストリームを送信する段階を含む。実施例によるポイントクラウドデータ送信方法は、獲得したポイントクラウドデータを一つ又はそれ以上のブリックに分割する段階、一つ又はそれ以上のブリックに基づいてポイントクラウドデータのジオメトリ情報を符号化する段階、及び/又は一つ又はそれ以上のブリック及び復元されたジオメトリ情報に基づいてポイントクラウドデータの特質情報を符号化する段階を含む。
実施例によるポイントクラウドデータ送信装置はポイントクラウドデータを分割して、それらをそれぞれ独立的に符号化することにより、ポイントクラウドデータが占有する3次元空間上の任意接続(random access)と並列符号化を可能にするという効果を提供する。
図19は実施例によるポイントクラウドエンコーダを示す。
実施例によるポイントクラウドエンコーダは、データ特性調査部19000、ブリックタイリング部19001、分割されたデータ入力部19002、座標変換部19003、量子化/ボクセル化処理部19004、八分木占有コード生成部19005、表面モデル処理部19006、第1演算コーダー19007、ジオメトリ再構成部19008、色相変換処理部19009、属性変換処理部19010、予測/リフト/RAHT変換処理部19011、係数量子化処理部19012、第2演算コーダー19013及び/又はビットストリーム結合部19014を含む。
実施例によるポイントクラウドデータエンコーダは、図18の実施例によるポイントクラウドデータエンコーダ18000の一例を示す。実施例によるエンコーダ、符号化器は符号化器に、デコーダ、復号化器は復号化器と呼ばれる。
データ特性調査部19000は、実施例によるポイントクラウドデータを受信し、受信したポイントクラウドデータの特性を調査する。例えば、データ特性調査部19000は、ポイントクラウドデータのポイントが特定の領域には密に分布して特定の領域には疎らに(sparse)分布するか否かを調査する。データ特性調査部19000は、ポイントクラウドデータがLiDARデータや自立走行のためのデータのように複数のフレームを含むポイントクラウドシーケンスで構成されているか否かを調査する。データ特性調査部19000は、一つのフレーム内のポイントクラウドデータが特定の領域に集まっているか否か(例えば、左側、右側、上側、下側、前側又は後側に連続する属性情報値が集まっている場合)を調査する。データ特性調査部19000は、ポイントクラウドデータが表現するオブジェクトが互いに疎らに存在するか否かを調査する。データ特性調査部19000は、ポイントクラウドデータが占有する3次元空間が一方向に延びているかどうか(例えば、特定の軸の長さが他の軸の長さより長すぎる場合)を調査する。
タイリング部19001は実施例によるポイントクラウドデータを受信し、受信したポイントクラウドデータで一つ又はそれ以上のタイル、一つ又はそれ以上のスライス、又は一つ又はそれ以上のブリックを生成する。即ち、ブリックタイリング部19001ではポイントクラウドデータをタイル、スライス又はブリック単位に分割する。ブリックタイリング部19001はタイル、スライス又はブリック単位に分割されたポイントクラウドデータを出力する。
タイル(tile)とは、実施例によるポイントクラウドデータが占有する3次元空間の一部領域を意味する。実施例によるタイルは一つ又はそれ以上のスライスを含む。実施例によるタイルは一つ又はそれ以上のスライスに分割されることにより、ポイントクラウドデータエンコーダはポイントクラウドデータを並列的に符号化することができる。実施例によるタイルは一つ又はそれ以上のスライスごとにポイントクラウドデータエンコーダがデータの特性によって異なる量子化及び/又は変換を行う。
スライス(slice)とは、実施例によるポイントクラウドデータ送信装置及び受信装置が符号化及び復号化を行うデータの単位を意味する。スライスはポイントクラウドデータが占有する3次元空間上のデータの集合を意味するか、又はポイントクラウドデータのうち、一部のデータの集合を意味する。スライスは実施例によるタイル内に含まれたポイントの領域又はポイントの集合を意味する。実施例によるタイルは一つのタイル内に含まれたポイントの個数に基づいて一つ又はそれ以上のスライスに分割される。例えば、一つのタイルはポイントの個数ごとに分割されたポイントの集合を意味する。実施例によるタイルはポイントの個数に基づいてスライスを分割され、分割過程において一部のデータが分離(split)又は併合(merge)される。
ブロック(block)とは、スライス内に含まれたポイントクラウドデータをポイントごとに分割する単位を意味する。例えば、ブロックとは、一つのスライス内のクラウドデータが占有する3次元空間の一部領域を意味し、実施例によるポイントクラウドデータ送信装置及び受信装置が符号化及び復号化を行う細部単位を意味する。
ブリック(brick)とは、実施例によるブロック又はスライスを意味する。即ち、ブリックはスライス又はポイントクラウドデータを分割するポイントの集合又は領域を意味することもできる。実施例においては、ブリックを領域とも呼ぶ。
実施例によるブリックタイリング部19001では、点密度基盤のブリックタイリング、円形セクターブリックタイリング、レイヤブリックタイリング、球形/楕円形領域タイリング、属性基盤のブリックタイリング及び軸基盤の適応型分割方法のように、データの特性によって分ける方法の色々変形した方法に基づいて分割を行う。分割を行う方法は、以下の図21ないし図26で後述する。
例えば、データ特性調査部19000によりポイントクラウドデータのポイントが特定の領域に密に分布し、特定の領域に疎らに(sparse)分布していることが確認された場合、それに基づいてブリックタイリング部19001は点密度基盤のブリックタイリング方法で分割を行う。
例えば、ブリックタイリング部19001は、データ特性調査部19000によりポイントクラウドデータがLiDARデータや自立走行のためのデータのように複数のフレームを含むポイントクラウドシーケンスで構成されていることが確認された場合は、円形のセクターブリックタイリング方法で分割を行う。ブリックタイリング部19001は、データ特性調査部19000により一つのフレーム内のポイントクラウドデータが特定の領域に集まっていることが確認された場合は、レイヤブリックタイリング方法で分割を行う。ブリックタイリング部19001は、データ特性調査部19000によりポイントクラウドデータが表現するオブジェクトが互いに疎らに存在することが確認された場合は、球形/楕円形領域タイリングに基づいて分割を行う。データ特性調査部19000は、ポイントクラウドデータが占有する3次元空間が一方向に延びている場合は、軸基盤の適応型分割方法で分割を行う。
実施例によれば、ポイントクラウドデータは複数のスライスに分割することができる。ポイントクラウドデータを複数のスライスに分割する方法は色々ある。実施例によるスライス内に含まれたポイントクラウドデータは独立的に符号化が行われる。実施例によるポイントクラウドデータ送信装置及び受信装置は、スライス単位で独立的に符号化及び復号化を行うことにより、符号化及び復号化の過程で反復されるエラーを防止することができる。
スライスは、ポイントクラウドデータ内のポイントクラウドフレームを符号化のために分割する単位を意味する。ポイントクラウドデータはスライス分配構成(slice partitioning scheme)によって複数のスライスに分割される。
ポイントクラウドデータを複数のスライスに分割する方法の実施例によれば、色連続性(color continuity)を保障するために、色情報の分散(variance)情報に基づいて分割する方法がある。例えば、特定のポイントクラウド又はポイントクラウドデータの領域内の色情報の分散情報が第1閾値より大きければ、該当データ又は領域を非平滑(non-smooth)ブロックと見なし、全体ポイントクラウドデータにおいて非平滑ブロックの比重が第2閾値より大きければ、非平滑ブロックに該当するブロック(又は非平滑ブロック内に含まれた一部のポイント)を抽出して第1スライスとして分離し、残りの分離されていないクラウドデータは第2スライスとして分離する。実施例によれば、第1スライスと第2スライスを分離するために色情報の分散情報を計算し、色情報の分散情報はkd-treeを用いることができる。
実施例によるk-d tree(kdツリー)は、二分木(binary tree)の一種であって、k次元の空間の分割のための階層を示す。Kd-treeスキームはポイントクラウドデータのスライスへの分割をジオメトリ-適応的に行う方法を意味する。
実施例によれば、スライスはブリック、ブロック、マクロブロック(macroblock)及び/又はタイルなどの色々な用語に呼ばれる。
分割されたデータ入力部19002はブリックタイリング部19001により出力された分割されたポイントクラウドデータを受信する。分割されたデータ入力部19002は、それぞれのブリック(又はスライス又はタイル)内のポイントの位置情報(ジオメトリ情報)及びポイントの属性情報(特質情報)を出力する。分割されたデータ入力部19002はブリック単位に(又はスライス又はタイル単位に)ポイントの位置情報を座標変換部19003に伝達し、ポイントの属性情報を色相変換処理部19009に伝達する。
実施例によるデータ特性調査部19000、ブリックタイリング部19001及び/又は分割されたデータ入力部19002は、図18の空間分割部18001内に含まれる。
座標系変換部19003は実施例によるポイントの位置情報(ジオメトリ情報)を受信し、それらの座標情報を変換する。座標系変換部19003は変換された座標情報を量子化/ボクセル化処理部19004に伝達する。座標系変換部19003は図4の座標系変換部40000の動作を行う。
量子化/ボクセル化処理部19004は座標変換部19003によりポイントの位置情報に対して量子化及び/又はボクセル化を行う。量子化/ボクセル化処理部19004は量子化及び/又はボクセル化が行われたポイントの位置情報(ジオメトリ情報)を八分木占有コード生成部19005に送信する。量子化/ボクセル化処理部19004は図4の量子化及びボクセル化処理部40001、図12のボクセル化処理部12002の動作を行う。
八分木占有コード生成部19005は量子化及び/又はボクセル化されたジオメトリ情報を受信し、それらに基づいて八分木占有コード(Octree occupancy code)を生成する。八分木占有コードは実施例によるポイントの位置情報を表現するデータ構造を含む。八分木占有コード生成部19005は八分木占有コードを第1演算コーダー19007、表面モデル処理部19006及び/又はジオメトリ再構成部19008に伝達する。八分木占有コード生成部19005は図4の八分木分析部40002、図12の八分木占有コード生成部12003の動作を行う。
表面モデル処理部19006は実施例による八分木占有コードを受信して表面モデルを処理する。表面モデル処理部19006は表面モデル処理されたジオメトリ情報を出力して、第1演算コーダー19007に送信する。表面モデル処理部19006は、図4の表面近似分析部40003、図12の表面モデル処理部12004の動作を行う。
第1演算コーダー19007は実施例による八分木占有コード及び/又は表面モデル処理が行われた八分木占有コードを受信して、それらを符号化する。第1演算コーダー19007はジオメトリビットストリームを出力する。第1演算コーダー19007はジオメトリビットストリームをビットストリーム結合部に送信する。第1演算コーダー19007は図4の演算符号化40004、図12の演算コーダー12006の動作を行う。
第1演算コーダー19007は分割されたデータ入力部19002に該当ブリック(又はスライス又はタイル)に関するジオメトリ情報の符号化実行有無に関連する情報を送信する。
ジオメトリ再構成部19008は実施例による八分木占有コード及び/又は表面モデル処理が行われた八分木占有コードを受信し、それらに基づいてジオメトリ情報を再構成する。ジオメトリ再構成部19008は実施例によるモールトンコードを生成し、それらに基づいてジオメトリ情報を再構成する。ジオメトリ再構成部19008は図4のジオメトリ再構成部40005の動作を行う。
色相変換処理部19009は実施例によるポイントの属性情報を受信し、属性情報の色相情報の変換を行う。色相変換処理部は変換処理された属性情報を出力し、これらを属性変換処理部19010に送信する。色相変換処理部19009は図4の色相変換部40006、図12の色相変換処理部12008の動作を行う。
属性変換処理部19010は実施例によるポイントの位置情報、実施例による色相変換処理部19009により色相変換が処理された属性情報及び/又はジオメトリ再構成部19008により再構成されたジオメトリ情報をマッピングして属性変換処理を行う。属性変換処理部19010は、図4の属性伝達部40007、12の属性変換処理部12009の動作を行う。
予測/リフト/RAHT変換処理部19011は属性変換処理部19010により変換処理された属性情報を予測(Prediction)、リフト(lifting)及び/又はRAHT方法によって変換を行う。予測/リフト/RAHT変換処理部19011は予測、リフト及び/又はRAHT方法によって変換された属性情報を出力し、それらを係数量子化処理部19012に送信する。予測/リフト/RAHT変換処理部19011は図4のRAHT40008、LOD生成部40009及び/又はリフト40010、図12の予測/リフト/RAHT変換処理部12010の動作を行う。
係数量子化処理部19012は予測/リフト/RAHT変換処理部19011により変換された属性情報を受信して、それらを量子化する。係数量子化処理部19012は量子化された属性情報を第2演算コーダー19013に送信する。係数量子化処理部19012は図4の係数量子化部40011の動作を行う。
第2演算コーダー19013は係数量子化処理部19012により量子化された属性情報を受信し、それらを符号化する。第2演算コーダー19013は符号化された属性情報を含む属性ビットストリームを出力する。第2演算コーダー19013は属性ビットストリームを出力し、それらをビットストリーム結合部19014に送信する。
第2演算コーダー19013は分割されたデータ入力部19002に該当ブリック(又はスライス又はタイル)に関する特質情報の符号化実行有無に関連する情報を送信する。第2演算コーダー19013は図4の演算符号化部40012、図12の演算コーダー12011の動作を行う。
ビットストリーム結合部19014は実施例によるジオメトリビットストリーム及び/又は属性情報ビットストリームを結合する。ビットストリーム結合部19014は実施例によるブリック(又はスライス又はタイル)単位にジオメトリビットストリーム及び属性ビットストリームを結合する。
実施例によるポイントクラウドデータ送信装置は、データ特性調査部19000、ブリックタイリング部19001、分割されたデータ入力部19002、及びビットストリーム結合部19014を含む。実施例によるポイントクラウドデータ送信装置は、例えば、brick_tiling_filter情報に対応して、ブリックタイリング部でポイントクラウドデータを一つ又はそれ以上のブリックに分割する。実施例によるポイントクラウドデータはブリックタイリング部19001によりN個の領域に分割されて、分割されたデータ入力部19002に入力される。分割されたN個のブリックのそれぞれに対して、それぞれのブリック内のポイントクラウドデータがポイントの位置情報及びポイントの属性情報に分かれて符号化される。N個のブリックのそれぞれに対して符号化過程が行われると、実施例によるビットストリーム結合部19014において符号化されたポイントの位置情報及びポイントの属性情報が一つのビットストリームに結合される。
実施例によるポイントクラウドデータ送信装置は、ブリックタイリング部19001を用いてポイントクラウドデータを一つ又はそれ以上のブリック単位に分割し、分割されたブリック単位で符号化を行うことにより、領域ごとに符号化を行うことができ、この場合、実施例によるポイントクラウドデータ受信装置に必要な領域のデータとより重要ではない領域を区分して効率的に符号化を行うことができる。かかる構成によりポイントクラウドデータ送信装置は符号化効率を高めることができる。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータを一つ又はそれ以上のタイル、スライス、ブロック及び/又はブリックに分割し、分割されたそれぞれの単位に対して互いに異なる量子化(quantization)を設定することができる。かかる方法によりポイントクラウドデータを分割することにより、ポイントクラウドデータエンコーダは重要度が異なるポイントを差等して符号化することができる。また、ポイントクラウドデータ受信装置は差等して符号化されたデータを効率的に復号化してユーザに重要な情報を迅速に提供することができる。
ポイントクラウドデータ送信装置は、ポイントクラウドデータを一つ又はそれ以上のブリック単位に分割し、分割されたブリック単位で符号化を行うことにより、データの特性に最適化した符号化方法を提供する。例えば、特定の領域に密に分布するポイントを含むポイントクラウドデータである場合、ポイントが密に分布する領域を細かく分割して符号化することにより、符号化の時に発生し得るエラーを抑えることができる。例えば、LiDARデータや自立走行のような複数のフレームで構成されたデータのシーケンスでは、後述する円形セクターブリックタイリング方法でポイントクラウドデータを分割して符号化することにより、フレームごとの符号化エラーを軽減することができる。
実施例によるポイントクラウドデータ送信装置及び受信装置は、スライス単位で独立的に符号化及び復号化を行うことにより、符号化及び復号化の過程で繰り返されるエラーを防止することができる。
実施例によるポイントクラウドデータの送信装置では、ポイントクラウドデータの送信、符号化/復号化、レンダリングなどの様々な処理状況で発生し得る要求事項ごとに適応的に行われる分割方法に基づく分割動作を行うことにより、リアルタイム処理、低遅延及び並列処理が可能なポイントクラウドコンテンツを提供する。
図20は実施例によるポイントクラウドデータエンコーダがポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す。
実施例によるポイントクラウドデータはポイントクラウドデータを受信し、ポイントクラウドデータを一つ又はそれ以上のブリックに分割する。例えば、図18の空間分割部18001、図19のブリックタイリング部19001は、ポイントクラウドデータを一つ又はそれ以上のブリック又は領域に分割することができる。
図20の左側イメージ20000は実施例によるポイントクラウドデータを示す。ポイントクラウドデータは複数のタイプのポイントクラウドデータ(例えば、LiDARデータなど)に区分される。ポイントクラウドデータのタイプはポイントクラウドデータのポイントが密に分布するか或いは疎らに分布するかによって分類される。
図20の右側イメージ20001は図20の左側イメージ20000のポイントクラウドデータを3つのブリックに分割する動作を示す。実施例によるポイントクラウドデータを3つのブリックに分割する動作は、図18の空間分割部18001、図19のブリックタイリング部19001により行われる。
図20の右側イメージ20001を参照すると、実施例によるブリックタイリング部19001は図20の左側イメージ20000のポイントクラウドデータを第1ブリック20001a、第2ブリック20001b及び第3ブリック20001cに分割する。実施例によるブリックタイリング部19001はポイントクラウドデータのタイプに基づいてポイントクラウドデータを分割する。実施例によるブリックは同等な意味の範囲内で他の名称に呼ばれることもできる。
実施例による分割を行う方法は、ポイントクラウドデータ内のポイントの密度に基づいて分割する第1方法、中心点情報及び半径情報に基づいて決定される一つ又はそれ以上のセクターに分割する第2方法、一つ又はそれ以上のレイヤに分割する第3方法、一つ又はそれ以上の球形領域に分割する第4方法、ポイントクラウドデータ内のポイントの特質情報に基づいて分割する第5方法、及びポイントクラウドデータを含む3次元空間の軸の長さに基づいて分割する第6方法を含む。
実施例によるポイントクラウドデータ送信装置は、図18及び図19で説明したように、ポイントクラウドデータをタイル、スライス及び/又はブリック単位に分割することにより、ポイントクラウドデータが占有する3次元空間上の任意接続(random access)と並列符号化を可能にする効果を提供する。
図21は実施例によるポイントクラウドデータエンコーダがポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す。
図21(a)はポイントクラウドデータが占有する3次元空間21A00を示す。実施例によるポイントクラウドデータエンコーダは実施例によるポイントクラウドデータを符号化する。実施例によるポイントクラウドデータエンコーダは、実施例によるポイント21A01又は3次元空間21A00を一つ又はそれ以上の分割された領域21A02に分割し、分割された領域に含まれたポイントに対して独立的に実施例による符号化を行う。
ポイントクラウドデータが占有する3次元空間21A00は実施例によるポイントクラウドデータを含む。3次元空間21A00はポイントクラウドデータを示す複数のポイント21A01を含む。
複数のポイント21A01は実施例によるポイントクラウドデータを構成する単位である。実施例によるポイントクラウドデータエンコーダはそれぞれの複数のポイント21A01の位置情報及び属性情報を符号化する。
分割された領域21A02は実施例によるポイントクラウドデータのポイント21A01の一部を含む。実施例によるポイントクラウドデータエンコーダはポイントクラウドデータの特性に基づいてポイントクラウドデータを一つ又はそれ以上の分割された領域21A02に分割する。実施例による分割された領域21A02はタイルに対応するか、スライスに対応するか、ブリックに対応するか、又はブロックに対応する。
ポイントクラウドデータの特性はポイント21A01の密度に関連する特性である。例えば、実施例によるポイントクラウドデータは矢印21A03の方向にポイントが密に分布したデータである。従って、実施例によるポイントクラウドデータエンコーダはポイントの密度に基づいてポイントクラウドデータを一つ又はそれ以上の分割された領域21A02に分割することができる。
例えば、実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータを第1ブリック21A02-1及び第2ブリック21A02-2を含む分割された領域21A02に分割することができる。第1ブリック21A02-1は複数のポイントのうち、相対的に疎らに分布したポイントを含む領域である。第2ブリック21A02-2は複数のポイントが相対的に密に分布するポイントを含む領域である。実施例によれば、ポイントが密に分布する第2ブリック21A02-2は、ポイントが疎らに分布する第1ブリック21A02-1よりもブリックのサイズが大きい。
図21(b)はポイントクラウドデータが占有する3次元空間21A00を一つ又はそれ以上の領域に分割する方法及び各ブリックに対して符号化を行う過程を示す。具体的には、図21(b)はポイントクラウドデータのポイントの密度に基づいてポイントクラウドデータを一つ又はそれ以上のブリックに分割することを示す。かかるポイントクラウドデータの分割方法を点密度基盤のブリックタイリングと呼ぶ。
実施例による点密度基盤のブリックタイリングは、実施例によるポイントの密度又はポイントの距離によって、実施例によるポイントクラウドデータを一つ又はそれ以上のブリックに分割することを意味する。実施例によれば、分割されたブリックは一つの3次元ブロック或いは2つ以上のブロックの束で構成される。
図21(b)の動作は図18の空間分割部18001、図19のブリックタイリング部19001により行われる。図21(b)に示す過程は、ポイントクラウドデータを受信する段階(21B00)、ブリック分割実行有無を判断する段階(21B01)、ブリック個数を決定する段階(21B02)、ポイントの密度を計算する段階(21B03)、各ブリックに対してポイントの密度による量子化係数を決定する段階(21B04)、(各)ブリックごとに符号化を行う段階(21B05)及び/又はブリックごとにビットストリームを出力する段階(21B06)を含む。
ポイントクラウドデータを受信する段階(21B00)では実施例によるポイントクラウドデータを受信する。
ブリック分割実行有無を判断する段階(21B01)は受信ポイントクラウドデータを一つ又はそれ以上のブリック(又はスライス又はタイル)に分割するか否かを決定する段階である。
ブリック分割実行有無を判断する段階(21B01)は受信ポイントクラウドデータ内のポイントのx座標値、y座標値及び/又はz座標値に基づいてブリック分割実行有無を判断する段階である。
ブリック分割実行有無を判断する段階(21B01)では、受信ポイントクラウドデータのタイプに基づいてブリック分割を行うか否かを決定する。ブリック分割実行有無を判断する段階(21B01)はブリック分割実行有無を示すbrick_tiling_filter情報を生成する段階である。
ブリック個数を決定する段階(21B02)では、ブリック分割実行有無を判断する段階でブリック分割を決定した場合、ポイントクラウドデータをいくつのブリックに分割するかを決定する。ブリック個数を決定する段階(21B02)において、分割するブリックの個数は受信ポイントクラウドデータのタイプに基づいて決定される。
ポイントの密度を計算する段階(21B03)は、実施例によるポイントの密度を計算し、計算した密度に基づいてポイントクラウドデータを一つ又はそれ以上のブリックに分割する段階である。実施例によれば、ポイントの密度はポイントが占有する体積ごとのポイントの個数、又はポイント間の距離の平均などに基づいて定義される。実施例によれば、(各)ブリックごとのポイントの密度は可変的に決定される。
各ブリックに対してポイントの密度による量子化係数を決定する段階(21B04)では、実施例によるポイントクラウドデータエンコーダがポイントの密度によって可変的に復号化を行うために密度による量子化係数を決定する。
(各)ブリックごとに符号化を行う段階(21B05)は、実施例によるポイントクラウドデータエンコーダが(各)ブリックごとにポイントクラウドデータを符号化する動作を意味する。実施例によれば、分割されたそれぞれのブリックはポイントクラウドデータエンコーダの設定によって流動的に変更される。ポイントクラウドデータエンコーダは分割情報を知らせるための情報(例えば、brick_unit_information、brick_density_quantization_step)などの情報を生成する。
ブリックごとのビットストリームを出力する段階(21B06)は、ポイントクラウドデータエンコーダが、ポイントクラウドデータが各ブリック単位で符号化が行われて出力されたビットストリームを出力する動作を意味する。
実施例によるポイントクラウドデータ送信装置は、実施例による点密度基盤のタイリングを行うことにより、一つのフレーム内の領域ごとにポイントの密度が異なるように分布するシーケンスを効果的に符号化することができる。
実施例によるポイントクラウドデータ送信装置は、実施例による点密度基盤のタイリングを行うことにより、ポイントの密度によって低密度のブリックに対して倍率(Scaling Factor)を下げることができ、ジオメトリ情報の圧縮率を上げることができる。また、高密度のポイントを含むブリックは倍率を上げて、位置情報を精密に表現する効果を提供することができる。
図22は実施例によるポイントクラウドデータエンコーダがポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す。
図22はポイントクラウドデータエンコーダが、ポイントクラウドデータが占有する3次元空間又はポイントクラウドデータ22A00を一つ又はそれ以上の円形セクター22A02に分割することを示す。実施例によるポイントクラウドデータエンコーダは、実施例によるポイントクラウドデータを分割された円形セクター22A02ごとに符号化する。図22に示すポイントクラウドデータを分割する動作は、図18の空間分割部18001、図19のブリックタイリング部19001により行われる。
実施例によるセクター22A02は、実施例によるタイルに対応するか、スライスに対応するか、ブリックに対応するか、又はブロックに対応する。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータ22A00を、基準軸22A01を基準として一つ又はそれ以上の円形セクター22A02に分割する。ポイントクラウドデータを一つ又はそれ以上の円形セクター形態のブリックに分割する動作を円形セクターブリックタイリングとも呼ぶ。
ポイントクラウドデータ22A00はポイントクラウドデータ送信装置が獲得したポイントクラウドデータを意味する。ポイントクラウドデータ22A00は複数のポイントを含む。
基準軸22A01はポイントクラウドデータを一つ又はそれ以上の円形セクター22A02に分割するために基準となる軸を意味する。基準軸22A01はポイントクラウドデータが占有する3次元空間(例えば、境界ボックス)の中心を示す。例えば、基準軸は3次元空間のx軸及びy軸の中心であり、x-y平面において鉛直方向である軸である。例えば、基準軸は3次元空間のy軸及びz軸の中心であり、y-z平面において鉛直方向である軸である。例えば、基準軸は3次元空間のx軸及びz軸の中心であり、x-z平面において鉛直方向である軸である。
実施例によれば、ポイントクラウドデータは円形セクターの原点を含む基準軸22A01を基準としてポイントクラウドデータを一つ又はそれ以上の円形セクターに分割する。実施例によれば、一つ又はそれ以上の円形セクターが決定されると、(各)単位ごとに位置情報或いは属性情報を含むポイントを含むことができる。
実施例による基準軸22A01は中心点情報を示す情報に基づいて決定される。実施例による中心点情報は、例えば、central_node_xyzである。実施例による基準軸22A01は中心点情報を経、3次元空間のx軸、y軸及びz軸のうち、軸の長さが最も短い軸方向に決定される。
円形セクター22A02は実施例によるポイントクラウドデータを分割するブリックを意味する。円形セクター22A02はポイントを含む。円形セクター22A00は基準軸と中心として中心角22A02-1だけ放射する形態で弧状に構成された領域を意味する。
実施例によれば、分割されたそれぞれの円形セクター22A02は互いに同一又は異なる半径22A02-1を有する。円形セクター22A02の半径22A02-1はポイントクラウドデータの密度に基づいて決定される。実施例による半径22A02-1はbounding_box_radiusで示される。
実施例によるポイントクラウドデータエンコーダは様々な中心角22A02-2を有する円形セクター22A02に分割される。実施例によるポイントクラウドデータエンコーダは各円形セクターの中心角を決定する。円形セクターの中心角はポイントクラウドデータの密度に基づいて決定される。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータが複数のフレームで構成される場合、ポイントクラウドデータに含まれた客体の移動方向22A03に基づいて分割領域の模様を決定する。ポイントクラウドのデータが複数のフレームで構成される場合、ポイントクラウドデータに含まれた客体の移動方向(例えば、青色矢印の方向)を定義することができる。実施例による客体の移動方向はmoving_direction_vectorで示される。
実施例による境界ボックス(ポイントクラウドデータが占有する3次元空間)の情報は1フレームごとに定義され、各フレームの座標情報(例えば、x、y、z情報)により決定される。実施例によれば、全フレームに同じ境界ボックスの情報を適用する時、境界ボックス情報フラグ(use_identical_bounding_box_information_flag)が送信される。
実施例によれば、ポイントクラウドデータエンコーダは、それぞれのフレームに対して量子化係数、ジオメトリ圧縮方法、属性圧縮方法、単一の属性/多重の属性を異なるようにして符号化を行う。
実施例によるポイントクラウドデータエンコーダは、円形セクターブリックタイリングを行うことにより、LiDARデータや自立走行のためのデータのような複数のフレームを含むデータシーケンスで効果的に符号化を行うことができる。
実施例によるポイントクラウドデータエンコーダは、円形セクターブリックタイリングを行うことにより、ブリックの半径情報と角度のみでブリックをシグナリングすることができるので、受信装置の複雑度を減少できる。また、円形セクターブリックタイリングを行うことにより、同じ円形セクター内の点の分布が同一であるとき、位置情報予測による符号化を向上させることができる。
図23は実施例によるポイントクラウドデータエンコーダがポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す。
図23はポイントクラウドデータエンコーダが、ポイントクラウドデータが占有する3次元空間又はポイントクラウドデータ23A00を一つ又はそれ以上のレイヤ23A01又は23A02に分割することを示す。実施例によるポイントクラウドデータエンコーダは、実施例によるポイントクラウドデータを分割されたレイヤ23A02ごとに符号化する。図23に示したポイントクラウドデータを分割する動作は、図18の空間分割部18001、図19のブリックタイリング部19001により行われる。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータ23A00を一つ又はそれ以上のレイヤ23A01に分割する。実施例によるポイントクラウドデータを一つ又はそれ以上のレイヤ23A01に分割する方法はレイヤブリックタイリングとも呼ばれる。
実施例によるレイヤ23A01は、実施例によるタイルに対応するか、スライスに対応するか、ブリックに対応するか、又はブロックに対応する。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータを一つ又はそれ以上のレイヤに分割する前、ポイントクラウドデータを整列する。ポイントクラウドデータエンコーダは、ポイントクラウドデータを昇順、降順又はモールトンコードの順に整列する。実施例によるポイントクラウドデータ整列動作は、図18の空間分割部18001、図19のブリックタイリング部19001又はデータ特性調査部19000で行われる。実施例によるポイントクラウドデータエンコーダは、実施例によるポイントクラウドデータの整列方法を示す情報(例えば、enable_sorting_flag)を生成し、それをビットストリーム形態で送信する。
レイヤ23A01、23A02はポイントクラウドデータが占有する3次元空間のx軸、y軸又はz軸の一定の範囲に含まれたポイントクラウドデータの集合を意味する。即ち、レイヤ23A01、23A02は点の集合で構成される。
図23の左側イメージに示したレイヤ23A01は、図23の左側イメージのように、一定の範囲のy座標情報を有する全てのポイントクラウドデータのポイントの集合を意味する。従って、実施例によれば、ポイントクラウドデータはポイントのy座標情報の範囲において複数のレイヤで構成される。かかる図23の左側イメージに示したレイヤはx-zレイヤ(又はy方向レイヤ)とも呼ばれる。
図23の右側イメージに示したレイヤ23A02は、図23の右側イメージのように、一定の範囲のx座標情報を有する全てのポイントクラウドデータのポイントの集合を意味する。従って、実施例によれば、ポイントクラウドデータはポイントのx座標情報の範囲において複数のレイヤで構成される。かかる図23の右側イメージに示したレイヤはy-zレイヤ(又はx方向レイヤ)とも呼ばれる。
同様にポイントクラウドデータはポイントのz座標情報の範囲において複数のレイヤで構成される。かかる図23の左側イメージに示したレイヤはx-yレイヤ(又はz方向レイヤ)とも呼ばれる。実施例によれば、ポイントクラウドデータは一つ又はそれ以上のx方向レイヤ、y方向レイヤ又はz方向レイヤに分割される。
実施例によるポイントクラウドデータはポイントの時間順の移動側に基づいて形成された複数のレイヤで構成されることもできる。
実施例によるポイントクラウドデータエンコーダは、一つ又はそれ以上のレイヤに対して漸進的コーディングを行うことができる。実施例による漸進的コーディングは、整列されたレイヤ単位で漸進的に符号化を行うことを意味する。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを一つ又はそれ以上のレイヤに分割することにより、1フレーム内のポイントクラウドデータが特定の領域に集まっている場合(例えば、左側、右側、上側、下側、前側又は後側に連続する属性情報値が集まっている場合)のデータ特性において圧縮が効果的に適用される。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを一つ又はそれ以上のレイヤに分割することにより、ブリック内の位置情報の連関度を向上させて符号化効率を高めることができる。
図24は実施例によるポイントクラウドデータエンコーダがポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す。
図24はポイントクラウドデータエンコーダが、ポイントクラウドデータが占有する3次元空間又はポイントクラウドデータ24A00を一つ又はそれ以上の球形/楕円形領域24001aないし24001fに分割すことを示す。実施例によるポイントクラウドデータエンコーダは、実施例によるポイントクラウドデータを一つ又はそれ以上の球形/楕円形領域24001aないし24001fごとに符号化する。図24に示したポイントクラウドデータを分割する動作は、図18の空間分割部18001、図19のブリックタイリング部19001により行われる。
実施例において球形/楕円形領域24001a-24001fは、実施例によるタイルに対応するか、スライスに対応するか、ブリックに対応するか、又はブロックに対応する。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータ24000内において重要な領域に位置するポイントを正確に符号化し、重要ではない部分の符号化は適切に行う。例えば、ポイントクラウドデータ24000が、図24に示したように、特定の都市を示すデータ24000である場合、ポイントクラウドデータエンコーダの符号化過程において正確な符号化が必要な部分があり得る。例えば、図24の円形又は楕円形で表示された領域24001aないし24001fは符号化過程において正確な符号化が必要な部分である可能性がある。特に、ポイントクラウドデータは膨大な反面、正確な符号化が必要な領域が特定の領域に特定されている場合、全てのポイントクラウドデータに対して符号化を行うと、送受信過程で遅延が発生し得る。
従って、実施例によるポイントクラウドデータエンコーダでは、ポイントクラウドデータの効率的な符号化のために、ポイントクラウドデータ2400を一つ又はそれ以上の球形領域(又は楕円形領域)24001aないし24001fに分割し、分割された球形領域24001aないし24001fに対して符号化を行う。
ポイントクラウドデータ24000は一つ又はそれ以上のポイントを含むデータである。ポイントクラウドデータ24000は特定の方法の符号化が必要な領域(又は符号化において正確な符号化が必要な領域など)を一つ又はそれ以上含む。特定の方法の符号化が必要な領域は、図24の24001a及び24001bで示したように円形(又は球形)に形成されるか、又は図24の24001cないし24001fで示したように楕円形(又は潰れた球形)に形成される。前者のように円形(又は球形)に形成された領域は球形領域(又は円形ブリック)とも呼ばれる。後者のように楕円形(又は潰れた球形)に形成された領域は楕円形領域(又は長球形領域)とも呼ばれる。
ポイントクラウドデータが一つ又はそれ以上の球形領域又は楕円形領域に分割される方法は球形/楕円形領域タイリングとも呼ばれる。
実施例によれば、ポイントクラウドデータが球面座標系又は地理座標系に基づいて表現される場合、ポイントクラウドデータは球形領域に分割できる。実施例によれば、ブリックの形態によって様々な座標系(円筒座標系など)が使用される。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータを一つ又はそれ以上の球形領域24001a、24001b又は楕円形領域24001cないし24001fに分割することができる。実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータのブリックが球形領域又は楕円形領域であるか否かを示す球形/楕円形領域の利用フラグ(sphere_or_oval_flag)を生成し、それをビットストリーム内に含めて送信する。
実施例によるポイントクラウドデータエンコーダは、球形領域及び/又は楕円形領域のそれぞれに関する情報を生成してそれをビットストリーム内に含めて送信する。例えば、ポイントクラウドデータは球形領域又は楕円形領域のそれぞれの模様に関連する情報を含む。
球形領域24001a、24001bは球形状(Sphere)に構成されたブリックを意味する。球形領域24001a、24001bは境界ボックス内の円形又は球形領域内のポイントクラウドデータのポイントの集合を意味する。ポイントクラウドデータエンコーダは、球形領域24001a、24001bのそれぞれに関する中心点情報(例えば、center_point_xyz)、半径情報(radius_distance)を生成し、それらをブリックのそれぞれに対してビットストリーム形態で送信する。
楕円形領域24001cないし24001fは楕円形又は長球形(Prolate)に構成されたブリックを意味する。楕円形領域24001cないし24001fは境界ボックス内の円形又は球形領域内のポイントクラウドデータのポイントの集合を意味する。ポイントクラウドデータエンコーダは、楕円形領域24001cないし24001fのそれぞれに関する中心点情報(例えば、center_point_xyz)、半径情報(radius_distance)、方位角情報(azimuth_angle)を生成し、それらをブリックのそれぞれに対してビットストリーム形態で送信する。
実施例によるポイントクラウドデータ送信装置は、球形/楕円形領域タイリングを用いることにより、LiDARデータの中でも事物が疎らに存在し、空間上においてデータに客体が存在する部分と存在しない部分が明らかなシーケンスで効果的に符号化を行うことができる。
実施例によるポイントクラウドデータ送信装置は、球形/楕円形領域タイリングを用いることにより、VP-treeなどのように位置情報が円形に分散されているデータに対して高い圧縮率を提供することができる。
図25は実施例によるポイントクラウドデータエンコーダがポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す。
図25はポイントクラウドデータエンコーダが、ポイントクラウドデータが占有する3次元空間又はポイントクラウドデータ25000を属性基盤の領域25001ないし25003に分割することを示す。実施例によるポイントクラウドデータエンコーダは、実施例によるポイントクラウドデータを一つ又はそれ以上の属性基盤の領域25001ないし25003ごとに符号化することができる。図25に示したポイントクラウドデータを分割する動作は、図18の空間分割部18001、図19のブリックタイリング部19001により行われる。
実施例によるポイントクラウドデータエンコーダは、ポイントクラウドデータ25000内のポイントの属性情報に基づいて分割する。例えば、ポイントクラウドデータエンコーダは、ポイントクラウドデータを構成する属性(色相、反射度、透明度、時間情報、客体インデックスなど)によって一つ又はそれ以上の領域を構成する。実施例による属性情報に基づく領域の分割方法は、属性基盤の領域タイリング(例えば、属性基盤のブリックタイリング)とも呼ばれる。
図25の左側イメージは境界ボックス内の複数のポイント25000aないし25000cを示す。複数のポイントは、例えば、赤色系の色相を有するポイント(P0、P2、P4、P5)、青色系の色相を有するポイント(P7、P8、P9)及び緑色系の色相を有するポイント(P1、P3、P6)を含む。実施例によるポイントクラウドデータエンコーダは、例えば、ポイントの色相によって一つ又はそれ以上の領域(例えば、ブリック)に分割することができる。
図25の右側イメージは複数のポイント25000aないし25000cが3つのブリック25001、25002、25003に分割されたことを示す。例えば、赤色系の色相を有するポイント(P0、P2、P4、P5)は第1ブリック25001に、青色系の色相を有するポイント(P7、P8、P9)は第2ブリック25002に、及び緑色系の色相を有するポイント(P1、P3、P6)は第3ブリック25003に分割される。
実施例によるポイントクラウドデータは、複数のポイントを属性情報に基づいて一つ又はそれ以上の領域に分割する前に、複数のポイントの属性情報を調査する。複数のポイントの属性情報を調査する動作は、図19のデータ特性調査部19000により行われる。例えば、実施例によるポイントクラウドデータは、ポイントのうち、赤色系のポイントを調査することができる。例えば、赤色系のポイントを調査する動作はポイントのRGB情報の値に基づいて行われる。
実施例によるポイントクラウドデータ送信装置(エンコーダ)は、ポイントクラウドデータに対して実施例による属性基盤の領域タイリングを行ったか否かを示す情報をビットストリーム形態で送信することができる。また実施例によるポイントクラウドデータ送信装置(エンコーダ)は、属性基盤の領域タイリングが行われた場合、分割する基準となる属性タイプ(referenced_attribute_type)をビットストリーム形態で送信することができる。実施例による分割の基準は複数の属性タイプを含み、この基準は属性情報値の範囲(referenced_attribute_type_range)或いは属性情報値(referenced_attribute_type_value)である。
実施例によるポイントクラウドデータ送信装置は、実施例による属性基盤の領域タイリングを用いることにより、属性情報値が一つであるか又は類似する値に対応する複数のジオメトリ情報が多く含まれたシーケンスで効果的な符号化を行うことができる。
図26は実施例によるポイントクラウドデータエンコーダがポイントクラウドデータを一つ又はそれ以上の領域に分割する方法を示す。
図26はポイントクラウドデータエンコーダが、ポイントクラウドデータが占有する3次元空間又はポイントクラウドデータ26000を境界ボックスの軸の長さに基づいて分割された領域26001、26002に分割することを示す。実施例によるポイントクラウドデータエンコーダは、実施例によるポイントクラウドデータを一つ又はそれ以上の境界ボックスの軸の長さに基づいて分割された領域26001、26002ごとに符号化することができる。図26に示したポイントクラウドデータを分割する動作は、図18の空間分割部18001、図19のブリックタイリング部19001により行われる。実施例によれば、境界ボックスの軸の長さに基づいて分割された領域26001、26002(例えば、ブリック)に分割する動作は、適応的軸長さ基盤の領域タイリング(又は適応的軸長さ基盤のブリックタイリング)とも呼ばれる。
ポイントクラウドデータ26000は一つ又はそれ以上のポイントを含む。ポイントクラウドデータは3次元空間(例えば、境界ボックス)内に含まれる。実施例による3次元空間(例えば、境界ボックスはx軸、y軸及びz軸で表現される。
ポイントクラウドデータ26000は、例えば、x軸、y軸及びz軸のうちのいずれかの長さが残りの2つの長さより短いか又は顕著に短い。例えば、1つの軸を除いた2つの軸に広く分散されている形態の地形を表現するポイントクラウドデータが存在する。ポイントクラウドデータの送信装置が軸の長さとは関係なく境界ボックス内のポイントに対して符号化を行う場合、符号化の効率が落ちる。従って、ポイントクラウドデータ送信装置は、3次元空間の軸の長さに適応して一つ又はそれ以上の領域に分割する必要がある。従って、実施例によるポイントクラウドデータ送信装置は、x軸、y軸及びz軸の互いの相対的な長さを計算し、計算した相対的な長さに基づいてポイントクラウドデータを一つ又はそれ以上の領域に分割することができる。
実施例によるポイントクラウドデータ送信装置(例えば、図18のタイル分割部18000、又は図19のタイリング部19001)は、3次元空間のx軸の長さ26000x、y軸の長さ26000y及びz軸の長さ26000zのうち、最長長さの軸(例、X軸)の長さを最短長さの軸(例えば、Z軸)の長さ単位に分割して一つ又はそれ以上のスライス(又は第1ブリック、26001)を構成することができる。1つ又はそれ以上のスライス(又は第1ブリック)に分かれたデータは並列的に符号化及び復号可能な単位である。
実施例によるポイントクラウドデータ送信装置(例えば、図18のタイル分割部18000、又は図19のタイリング部19001)は、第1ブリックのうちの一部のブリック26001に対して再分割を行うことができる。実施例による再分割では、第1ブリックのうちの一部のブリックに対して、最長長さの軸(即ち、図26の26001ブリックではy軸、26000y)を最短長さの軸(例えば、x軸又はz軸)の長さ単位に分割して一つ又はそれ以上の細部スライス(又は第2ブリック、26002)を構成する。一つ又はそれ以上の細部スライス(又は第2ブリック)に分かれたデータは並列的に符号化及び復号可能な単位である。
実施例によるポイントクラウドデータ送信装置は、第1ブリック内のポイントの最大個数と最小個数(maxPointNum、minPointNum)により、空間上のデータ分布によらず、点のmin/max情報に基づいて分割を行うこともできる。
実施例によるポイントクラウドデータ送信装置は、第1ブリック又は第2ブリックを領域内のポイントの個数、領域のそれぞれが割り当てる空間のサイズ、領域内に含まれたポイントの密度に基づいて、再び再分割を行うか否かを決定する。実施例によれば、空間上に再分割を行う場合、空間適応的に行うことができ、単純に特定の軸で分ける方法以外にも中間軸を基準として再分割するなどの方法でスライスを分割することができる。
従って、実施例によるポイントクラウドデータ送信方法は、3次元空間の第1軸を3次元空間の第2軸の長さ単位に第1分割する段階、及び/又は3次元空間の第3軸を第2軸の長さ単位に第2分割する段階に基づいて、ポイントクラウドデータの分割を行うことができる。
実施例によるポイントクラウドデータ送信装置は、実施例による適応的軸長さ基盤の領域タイリングを用いることにより、大きい地形地物を含むポイントクラウドデータの一つのフレーム内で空間単位に連関関係があるシーケンスで効果的に符号化を行うことができる。実施例によるポイントクラウドデータ受信装置は、大きい地形地物を含むポイントクラウドデータに対して効果的に復号化を行うことができる。
図27は実施例によるポイントクラウドデータ送信装置のビットストリーム結合部を示す。
ビットストリーム結合部27000を示す。ビットストリーム結合部27000はジオメトリビットストリーム27000a及び/又は特質ビットストリーム27000bを受信する。ビットストリーム結合部27000は受信したジオメトリビットストリーム27000a及び特質ビットストリーム27000bを結合してビットストリーム27000cを出力する。
ビットストリーム結合部27000は領域単位で符号化が行われたジオメトリビットストリーム27000a及び領域単位で符号化が行われた特質ビットストリーム27000bを受信してこれらを結合する。ビットストリーム結合部27000は領域単位のビットストリーム27000cを出力する。実施例によれば、ビットストリーム結合部27000は、図19ないし図26により分割された一つ又はそれ以上の領域に該当するポイントクラウドデータが符号化されたビットストリーム27000a、27000bを受信してこれらを結合する。従って、ビットストリーム結合部27000は図19ないし図26による領域単位にビットストリーム27000cを出力することができる。
ビットストリーム結合部27000は図19のビットストリーム結合部19014を意味する。ジオメトリビットストリーム27000aと特質ビットストリーム27000bは図19のジオメトリビットストリーム及び属性ビットストリームを意味する。ジオメトリビットストリーム27000aと特質ビットストリーム27000bは図18のジオメトリビットストリーム1800b及び属性情報ビットストリーム18000cを意味する。
ビットストリーム結合部27000は実施例によるジオメトリビットストリーム27000a及び特質ビットストリーム27000bを結合する結合実行部27001を含む。結合実行部27001は上述したジオメトリビットストリーム27000a及び特質ビットストリーム27000bを受信してこれらを領域別に結合してビットストリーム27000cを出力する。
ビットストリーム結合部27000はジオメトリビットストリーム27000aと特質ビットストリーム27000bをどのような順に結合するか、どのように結合を行うかを決定する。結合を行う方法は、多重化(Multiplexing)、MVCビット列結合、順次結合、重要度基盤の結合などの方法がある。実施例による結合を行う方法は、受信したジオメトリビットストリーム27000a及び/又は特質ビットストリーム27000bの特定(例えば、色々な属性のビットストリーム、属性ビットストリームの存在有無、ジオメトリと特質ビットストリームの量子化程度、ビットストリームの長さ、タイリングの有無など)によって決定又は選択される。ポイントクラウドデータエンコーダは、結合されたジオメトリビットストリームと特質ビットストリームを送信するために符号化器でどの結合方法を使用したかに関する情報(combining_filter_index)を生成し、これらをビットストリーム形態で送信する。実施例によれば、ビットストリームの送信特性によって特定の結合方法が固定的に使用されることができる。
よって、実施例によるポイントクラウドデータ送信方法は、一つ又はそれ以上の領域のそれぞれに対する符号化されたジオメトリ情報及び符号化された特質情報を結合する段階をさらに含む。
実施例によるポイントクラウドデータ送信装置は、ビットストリーム結合部27000を構成することにより、図19ないし図26により分割された領域が符号化されて生成されたビットストリームを領域ごとに送信することができる。従って、実施例によるポイントクラウドデータ受信装置は、領域ごとに受信したポイントクラウドデータをシグナリング情報と共に効率的に復号を行うことができる。
図28は実施例によるポイントクラウドデコーダを示す。
実施例によるポイントクラウドデコーダ28000は幾何情報復号化部28001及び/又は属性情報復号化部28002を含む。実施例によれば、ポイントクラウドデコーダはPCC復号化器、PCC復号化部、ポイントクラウド復号化器、ポイントクラウド復号化部、PCCデコーダなどとも呼ばれる。
幾何情報復号化部28001はポイントクラウドデータの幾何情報ビットストリーム28000aを受信する。幾何情報復号化部28001はポイントクラウドデータの幾何情報ビットストリーム28000aを復号化(復号)して復元されたポイントクラウドデータ28000cの特質情報を出力する。幾何情報復号化部28001は幾何情報ビットストリームをジオメトリ情報で再構成して復元された幾何情報28001を出力する。幾何情報ビットストリーム28000aは図18ないし図26の幾何情報ビットストリーム、ジオメトリビットストリームを意味する。属性情報ビットストリーム28000bは図18ないし図26の属性情報ビットストリーム、特質ビットストリームを意味する。
幾何情報復号化部28001は入力された幾何情報ビットストリームを復号化して幾何情報を復元する。復元された幾何情報は属性情報復号化部に入力される。属性情報復号化部28002は入力された属性情報ビットストリームと幾何情報復号化部から入力された復元された幾何情報が入力された属性情報を復元する。復元された幾何情報は図11で説明したジオメトリ再構成部(reconstruct geometry)11003により再構成されたジオメトリを意味する。復元された幾何情報は図13で説明した占有コード基盤の八分木再構成処理部13003により再構成された八分木占有コードを意味することもできる。
幾何情報復号化部28001は実施例による受信装置が受信した幾何情報ビットストリームを受信する。幾何情報復号化部28001は幾何情報ビットストリームを復号化することができる。
幾何情報復号化部28001は図1のポイントクラウドビデオデコーダの動作、図2の復号20003、図10のジオメトリデコーダの動作、図11で説明した演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び/又は座標系逆変換部11004の動作の全部/一部を行う。
属性情報復号化部28002はポイントクラウドデータの属性情報ビットストリーム28000bを受信する。属性情報復号化部28002はポイントクラウドデータの属性情報ビットストリーム28000bを復号化(復号)して復元されたポイントクラウドデータ28000cの特質情報を出力する。属性情報復号化部28002は幾何情報復号化部28001により生成された復元された幾何情報28001aに基づいて属性情報ビットストリームを復号化(復号)する。
属性情報復号化部28002は実施例による受信装置が受信した属性情報ビットストリームを受信する。属性情報復号化部は復元された幾何情報に基づいて属性情報ビットストリームの属性情報を復号化する。ポイントクラウドデータに含まれた幾何情報及び/又は属性情報は復号化されて復元されたPCCデータであり得る。
属性情報復号化部28002は図1のポイントクラウドビデオデコーダ、図2の復号20003の動作、図10で説明した特質デコーダ(attribute decoder)の動作、図11の逆量子化部11006、RAHT11007、LOD生成部11008、逆リフト部11009及び/又は色相逆変換部11010の動作、図13で説明した演算デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009、色相逆変換処理部13010及び/又はレンダラー13011の動作の一部又は全部を行う。
よって、実施例によるポイントクラウドデータ受信方法は、ポイントクラウドデータ及びシグナリング情報を含むビットストリームを受信する段階、ポイントクラウドデータを復号する段階及び/又はポイントクラウドデータをレンダリングする段階を含む。受信したポイントクラウドデータはジオメトリビットストリーム及び特質ビットストリームを含む。実施例によるポイントクラウドデータを復号する段階は、ポイントクラウドデータのジオメトリビットストリームをジオメトリ復号する段階及び/又はポイントクラウドデータの特質ビットストリームを復元されたジオメトリ情報に基づいて特質復号する段階を含む。受信したポイントクラウドデータが一つ又はそれ以上の領域の単位に分割されている場合、復号する段階は領域を独立的に復号することができる。
図29は実施例によるポイントクラウドデコーダを示す。
図29の実施例によるポイントクラウドデコーダは図28の実施例によるポイントクラウドデータデコーダ28000を意味する。実施例によるポイントクラウドデコーダは受信部29000、分割されたデータ入力部29001、第1演算デコーダ29002、占有コード基盤の八分木再構成処理部29003、表面モデル処理部29004、ジオメトリ再構成部29005、座標逆変換部29006、第2演算デコーダ29007、逆量子化処理部29008、予測/リフト/RAHT逆変換処理部29009、属性再構成部29010、色相逆変換部29011及び/又はポイント結合部29012を含む。
図29に示した実施例によるポイントクラウドデータデコーダの構成要素はブリック単位で行われ、ブリック単位で独立的に行われることもできる。
受信部29000は実施例によるポイントクラウドデータを含むビットストリームを受信する。受信部29000は受信したビットストリームを分割されたデータ入力部29001に送信する。受信部29000は図1の受信10007、図2の送信20002、図13の受信部13000の動作を行う。
分割されたデータ入力部29001は実施例によるポイントクラウドデータを含むビットストリームをブリック単位で受信し、ブリック単位で復号を行うために、ブリック単位でポイントクラウドデータのジオメトリビットストリームと属性ビットストリームを出力する。分割されたデータ入力部29001はブリック単位のジオメトリビットストリームを第1演算デコーダ29002に送信し、ブリック単位の属性 ビットストリームを第2演算デコーダ29002に送信する。
分割されたデータ入力部29001は、受信部29000により受信したビットストリームに含まれた、ブリック単位に符号化されたことを示すシグナリング情報(例えば、bistream_brick_decoding_flag)が存在する場合(又はブリック単位に符号化されたことを指示する場合)、実施例によるポイントクラウドデータ受信装置は受信ビットストリームに対してN回の復号動作が行われる。分割されたデータ入力部29001は図1の受信10007、図2の送信20002、図13の受信処理部13001の動作を行う。
第1演算デコーダ29002はブリック単位にジオメトリビットストリームを受信する。第1演算デコーダ29002はジオメトリビットストリームを復号化する。第1演算デコーダ29002は復号化されたジオメトリ情報を出力する。
第1演算デコーダ29002は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の演算復号部11000、図13の演算デコーダ13002の動作を行う。
占有コード基盤の八分木再構成処理部29003は復号化されたジオメトリ情報を受信する。占有コード基盤の八分木再構成処理部29003はブリック単位のジオメトリビットストリームに基づいて占有(occupancy)基盤の八分木(octree)を再構成する。占有コード基盤の八分木再構成処理部29003は再構成された八分木を表面モデル処理部29004に送信する。
占有コード基盤の八分木再構成処理部29003は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の八分木分析部11001、図13の占有コード基盤の八分木再構成処理部13003の動作を行う。
表面モデル処理部29004は第1演算デコーダ29002により復号されたジオメトリ情報及び/又は占有コード基盤の八分木再構成処理部29003により再構成された八分木に基づいてジオメトリ情報の表面モデル処理を行う。ジオメトリ情報の表面モデル処理は、例えば、三角形再構成動作、アップ-サンプリング動作、ボクセル化動作を含む。
表面モデル処理部29004は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の表面近似分析部11002、図13の表面モデル処理部13004の動作を行う。
ジオメトリ再構成部29005は、表面モデル処理部29004により表面モデル処理されたジオメトリ情報を受信する。ジオメトリ再構成部は表面モデル処理されたジオメトリ情報を再構成する。ジオメトリ再構成部29005は再構成されたジオメトリ情報を予測/リフト/RAHT逆変換処理部29009及び/又は座標逆変換部29006に送信する。
ジオメトリ再構成部29005は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11のジオメトリ再構成部11003の動作を行う。
座標逆変換部29006はジオメトリ再構成部29005により生成されたジオメトリ情報の座標情報を逆変換する。座標逆変換部29006はジオメトリ情報を逆変換してポイントクラウドデータのポイントの位置情報を出力する。座標逆変換部29006はポイントの位置情報をポイント結合部29012に送信する。
座標逆変換部29006は該当ポイントに対応するブリックに対してジオメトリ復号が行われたことを示す情報を分割されたデータ入力部29001に送信する。
座標逆変換部29006は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の座標逆変換部11004の動作を行う。
第2演算デコーダ29007はブリック単位にジオメトリビットストリームを受信する。第2演算デコーダ29007は属性ビットストリーム(特質ビットストリーム)を復号化する。第2演算デコーダ29007は復号化された特質情報を出力する。
第2演算デコーダ29007は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の演算復号11005、図13の演算デコーダ13007の動作を行う。
逆量子化処理部29008は第2演算デコーダ29007により生成された復号化された特質情報を受信する。逆量子化処理部29008は受信した復号化された特質情報を逆量子化する。逆量子化処理部29008は逆量子化された特質情報を出力し、逆量子化された特質情報を予測/リフト/RAHT逆変換処理部29009に送信する。
逆量子化処理部29008は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の逆量子化部11006、図13の演算デコーダ13007の動作を行う。
予測/リフト/RAHT逆変換処理部29009は、逆量子化処理部29008により逆量子化されたジオメトリ情報を受信して、それらを逆変換する。予測/リフト/RAHT逆変換処理部29009は逆量子化された特質情報を予測方法(Prediction)、リフト方法(lifting)、RAHT方法のうちのいずれかに基づいて逆変換する。予測/リフト/RAHT逆変換処理部29009はジオメトリ再構成部29005により再構成されたジオメトリ情報(又は復元されたジオメトリ情報)に基づいて特質情報を逆変換する。
予測/リフト/RAHT逆変換処理部29009は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11のRAHT11007、LOD生成部11008、逆リフト部11009の動作を行う。
属性再構成部29010は予測/リフト/RAHT逆変換処理部29009により逆変換された特質情報に基づいて属性情報を再構成する。属性再構成部は再構成された属性情報を出力し、それを色相逆変換処理部29011に送信する。
属性再構成部29010は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の色相逆変換部11010、図13の色相逆変換処理部13010の動作を行う。
色相逆変換部29011は属性再構成部29010により再構成されたジオメトリ情報を受信する。色相逆変換部29011は再構成されたジオメトリ情報を色相逆変換する。色相逆変換部29011はポイントクラウドデータのポイントの属性情報を出力する。
色相逆変換部29006は該当ポイントに対応するブリックに対して特質復号が行われたことを示す情報を分割されたデータ入力部29001に送信する。属性再構成部29010は図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の色相逆変換部11010、図13の色相逆変換処理部13010の動作を行う。
ポイント結合部29012は実施例によるポイントクラウドデータのポイントのジオメトリ情報(位置情報)及び/又はポイントの特質情報(属性情報)を受信する。ポイント結合部29012はブリック単位のポイントクラウドデータのポイントのジオメトリ情報(位置情報)及び/又はポイントの特質情報(属性情報)を受信し、これらをブリック単位に結合する。ポイント結合部29012はポイントの位置情報と属性情報を含むブリック単位のポイントクラウドデータを出力する。
実施例によるポイントクラウドデータ受信方法は、受信したポイントクラウドデータが一つ又はそれ以上のブリックの単位に分割されている場合、復号する段階では、独立的に復号されたブリック内のポイントのジオメトリ情報及びポイントの情報を結合する段階をさらに含む。
図30は実施例によるポイントクラウドデコーダのポイント結合部を示す。
ポイント結合部3000を示す。ポイント結合部30000はポイントのジオメトリ情報30000a及び/又はポイントの特質情報30000bを受信する。ポイント結合部30000は受信したポイントのジオメトリ情報30000a及びポイントの特質情報30000bを結合してポイントクラウドデータ30000cを出力する。ポイント結合部30000は結合実行部30001を含む。
結合実行部30001はブリック又はタイルごとにポイントのジオメトリ情報及びポイントの特質情報を受信する。ポイント結合部30000はブリック又はタイルごとにポイントのジオメトリ情報及びポイントの特質情報を受信して、それらを結合方法に基づいて結合する。
実施例による結合方法は、多重化、MVCビット列結合、順次結合、重要度基盤の結合などの方法のうちのいずれかの逆過程に基づく動作を意味する。実施例によるポイントクラウドデコーダはポイントの位置値(ジオメトリ情報)とポイントの属性値(特質情報)がそれぞれ復号化されると、どの結合方法を使用して位置値と属性値の結合を行うかを決定する。
実施例による結合実行部30001は、一つの位置値(ジオメトリ情報)に一つの属性値(特質情報)を1:1マッピングすることができる。実施例による結合実行部30001は、一つの位置値(ジオメトリ情報)に一つの属性値(特質情報)を1:1マッピングできない場合は、損失結合方法を使用する。例えば、特定の位置値(ジオメトリ情報)に存在した属性値(特質情報)は存在せず、一つの位置値に複数の属性値が存在することができる。実施例による損失結合方法は、複数の特質情報がマッピングされる場合には、重複属性値表示(duplicated_attribute_index)によりポイントの情報を構成することができる。
実施例によるポイントクラウドデコーダ(例えば、ポイント結合部30000、結合実行部30001)は、ポイントクラウドデータ受信装置が受信するビットストリーム内に含まれた、結合方法を示す情報(例えば、combining_filter_index)に基づいてポイントのジオメトリ情報とポイントの特質情報を結合することができる。
ポイントのジオメトリ情報30000aは実施例によるポイントクラウドデコーダが復号化したジオメトリビットストリームを意味する。ポイントジオメトリ情報30000aは図29の座標逆変換部29006で出力されるポイントのジオメトリ情報、図28の幾何情報復号化部28001で出力された復号化されたジオメトリ情報を意味する。
ポイントの特質情報30000bは実施例によるポイントクラウドデコーダが復号化した特質ビットストリームを意味する。ポイント特質情報30000bは図29の色相逆変換処理部29011で出力されるポイントの特質情報、図28の属性情報復号化部28001で出力された復号化された特質情報を意味する。
図31は実施例によるポイントクラウドデータのビットストリーム構造の一例を示す。
実施例によるポイントクラウドデータ送信装置は、図31に示すようなビットストリーム構造を有するビットストリーム31000を送信する。ポイントクラウドデータのビットストリーム31000は、SPS(Sequential Parameter Set)31001、GPS(Geometry Parameter Set)31002、APS(Attribute Parameter Set)31003、TPS(Tile Parameter Set)31004及び一つ又はそれ以上のスライス(slice 0、slice 1 …slice n)31004を含む。ポイントクラウドデータのビットストリーム31000は一つ又はそれ以上のタイルを含む。実施例によるタイルは一つ又はそれ以上のスライスを含むスライスのグループである。実施例によるビットストリーム31000はポイントクラウドデータを領域ごとに分けて処理できるようにタイル又はスライスを提供する。実施例によるビットストリーム31000のそれぞれの領域は互いに異なる重要度を有する。従って、ポイントクラウドデータはタイルに分かれる場合、(各)タイルごとに異なるフィルタ(符号化方法)、異なるフィルタユニットを適用することができる。ポイントクラウドはスライスに分かれる場合、(各)スライスごとに異なるフィルタ、異なるフィルタユニットを適用することができる。
実施例によるポイントクラウドデータ送信装置は、図31のようなビットストリーム31000の構造によってポイントクラウドデータを送信することにより、重要度によって異なる符号化動作を適用し、高品質の符号化方法を重要な領域に使用する方案を提供することができる。
実施例によるポイントクラウドデータ受信装置は、受信装置の処理能力(capacity)によってポイントクラウドデータの全体に複雑な復号化(フィルタリング)方法を使用する代わりに、領域ごとに(タイルに分かれたか又はスライスに分かれた領域)互いに異なるフィルタリング(復号化方法)を適用することにより、ユーザに重要な領域により良質の画質とシステム上適切な遅延(latency)を保障することができる。
SPS(Sequence Parameter Set)31001は、それぞれのスライスセグメントヘッダ(slice segment header)内のシンタックスエレメント(syntax element)により参照されるPPS内のシンタックスエレメントのコンテンツにより決定される0個又はそれ以上の全体CVSに適用されるシンタックスエレメントを含むシンタックス構造である(A syntax structure containing syntax elements that apply to zero or more entire CVSs as determined by the content of a syntax element found in the PPS referred to by a syntax element found in each slice segment header)。SPSは実施例によるポイントクラウドデータビットストリームのシーケンス情報を含む。
GPS(Geometry Parameter Set)31002は、0個又はそれ以上の全体ジオメトリ(又は符号化されたジオメトリ)が適用されるシンタックスエレメント(syntax elements)を含むシンタックス構造(syntax structure)を意味する。実施例によるGPS31002は、一つ又はそれ以上のスライス31004に含まれたポイントクラウドデータの特質(属性)情報を符号化する方法に関する情報を含む。GPS31002は実施例によるどのSPS31001に関連するジオメトリパラメータを含むかを示すSPS識別子情報、該当GPSを識別するGPS識別子情報を含む。
APS(Attribute Parameter Set)31003は、0個又はそれ以上の全体特質(又は符号化された特質)が適用されるシンタックスエレメントを含むシンタックス構造を意味する。実施例によるAPS31003は、一つ又はそれ以上のスライス31004に含まれたポイントクラウドデータの特質(属性)情報を符号化する方法に関する情報を含む。APS31003は実施例によるどのSPS31001に関連するジオメトリパラメータを含むかを示すSPS識別子情報、該当APSを識別するGPS識別子情報を含む。
TPS(Tile Parameter Set)31004は、0個又はそれ以上の全体タイル(又は符号化されたタイル)が適用されるシンタックスエレメントを含むシンタックス構造を意味する。タイルインベントリーは実施例によるポイントクラウドデータビットストリームに含まれた0個又はそれ以上のタイルに関する情報を含む。タイルインベントリーは実施例によってTPS(Tile Parameter Set)とも呼ばれる。
TPS(Tile Parameter Set)31004は、一つ又はそれ以上のタイルを識別する識別子情報及び一つ又はそれ以上のタイルの範囲(即ち、タイルの境界ボックス)を示す情報を含む。一つ又はそれ以上のタイルの範囲(即ち、タイルの境界ボックス)を示す情報は、該当タイルが示す境界ボックスの基準となる点の座標情報(例えば、Tile(n).tile_bounding_box_xyz0)及び該当境界ボックスの幅、高さ及び深さに関する情報(例えば、Tile(n).tile_boudning_box_whd)を含む。複数のタイルが存在する場合、タイルインベントリー(Tile Inventory)33004はタイルのそれぞれに対する境界ボックスを示す情報を含む。例えば、各タイルがタイルの識別子情報によって0ないしnで表現される場合、各タイルの境界ボックスを示す情報は、Tile(0).tile_bounding_box_xyz0、Tile(0).tile_bounding_box_whd、Tile(1).tile_bounding_box_xyz0、Tile(1).tile_bounding_box_whd…などのように表現される。
スライス31004は実施例によるポイントクラウドデータの送信装置がポイントクラウドデータを符号化するための単位を意味する。実施例によるスライス31004は一つのジオメトリビットストリーム(Geom00)31004a及び一つ又はそれ以上の特質ビットストリーム(Attr00、Attr10)31004b、31004bを含む単位を意味する。
スライス31004は該当スライス内に含まれたポイントクラウドデータのジオメトリ情報を示すジオメトリスライス(Geometry slice、Geom)31004a及び該当スライス内に含まれたポイントクラウドデータの特質情報を示す一つ又はそれ以上の特質スライス(Attribute slice、Attr)31004b、31004cを含む。
ジオメトリスライス(Geometry slice、Geom)31004aはポイントクラウドデータのジオメトリ情報を含むジオメトリスライスデータ(Geometry slice Data、Geom_slice_data)31004a-2及びジオメトリスライスデータに関する情報を含むジオメトリスライスヘッダ(Geometry slice Header、Geom_slice_header、GSH)31004a-1を含む。
ジオメトリスライスヘッダ31004a-1は該当スライス内のジオメトリスライスデータ31004a-2に関する情報を含む。例えば、ジオメトリスライスヘッダ31004a-1はどのGPS31002が該当スライスのジオメトリ情報を示すかを識別するためのジオメトリパラメータセット識別子(geom_geom_parameter_set_id)、該当ジオメトリスライスを識別するためのジオメトリスライス識別子(geom_slice_id)、該当ジオメトリスライスデータのボックス原点を示すジオメトリボックスオリジン情報(geomBoxOrigin)、ジオメトリスライスのログスケールを示す情報(geom_box_log2_scale)、及び該当ジオメトリスライスのポイントの個数に関連する情報(geom_num_points)などを含む。
実施例によるポイントクラウドデータビットストリームが一つ又はそれ以上のタイルを含む場合、実施例によるジオメトリビットストリームのヘッダは該当ジオメトリビットストリームを含むタイルを識別するための情報(geom_tile_id)をさらに含む。
特質スライス(Attribute slice、Attr)31004b、31004cはポイントクラウドデータの特質情報を含む特質スライスデータ(Attribute slice Data、Attr_slice_data)及び特質スライスデータに関する情報を含む特質スライスヘッダ(Attribute slice Header、Attr_slice_header、ASH)33005cを含む。
実施例によれば、ポイントクラウド符号化に必要なパラメータは、ポイントクラウドのパラメータセット及びヘッダ情報として新しく定義される。例えば、属性情報符号化を行う時は、attribute parameter set RBSP syntaxに、タイル基盤の符号化を行う時には、tile_header syntaxなどに追加することができる。
実施例によるポイントクラウドデータ送受信方法では、かかるビットストリーム構造を提供することにより、受信機をしてポイントクラウドデータの属性情報の復号化性能を上げることができる。
図32は実施例によるビットストリームのSPS(Sequence Parameter Set)を示す。
図32に示すパラメータは図31で説明したSPS(Sequence Parameter Set)内に含まれる。実施例によるSPSは図18ないし図30で説明したブリックの分割、ブリックタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
profile_idcは、H.264標準文書のAnnex Aを満たすビットストリームのプロファイルを示す情報を意味する。profile_idcの他の値はISO/IECにより追って使用できる(indicates a profile to which the bitstream conforms as specified in Annex A. Bitstreams shall not contain values of profile_idc other than those specified in Annex A. Other values of profile_idc are reserved for future use by ISO/IEC.)。
profile_compatibility_flagsが1であると、該当ビットストリームが、profile_idcがAnnex Aによってjであるプロファイルを満たすことを示す。profile_compatibility_flag[j]の値はAnnex Aによって定義された値ではなくjを有する場合、0である(equal to 1、indicates that the bitstream conforms to the profile indicated by profile_idc equal to j as specified in Annex A. The value of profile_compatibility_flag[j] shall be equal to 0 for any value of j that is not specified as an allowed value of profile_idc in Annex A.)。
level_idcは、H.264標準文書のAnnex Aを満たすビットストリームのレベルを示す。ビットストリームはH.264標準文書のAnnex Aに定義された情報とは異なる情報であって、level_idcの値を有さない。Level_idcの他の値はISO/IECにより今後のために残す(indicates a level to which the bitstream conforms as specified in Annex A. Bitstreams may not contain values of level_idc other than those specified in Annex A. Other values of level_idc are reserved for future use by ISO/IEC.)。
sps_bounding_box_present_flagは、境界ボックスオフセットとサイズ情報がシグナリングされる場合、1である(equal to 1 specifies the bounding box offset and size information is signalled. sps_bounding_box_present_flag equal to 0 specifies)。
sps_bounding_box_offset_xは、直交座標系の原本境界ボックスのxオフセットを示す。該当情報が存在しない場合、このパラメータの値は0である(indicates the x offset of the source bounding box in the cartesian coordinates. When not present、the value of sps_bounding_box_offset_x is inferred to be 0.)。
sps_bounding_box_offset_yは、直交座標系の原本境界ボックスのyオフセットを示す。該当情報が存在しない場合、このパラメータの値は0である(indicates indicates the y offset of the source bounding box in the cartesian coordinates. When not present、the value of sps_bounding_box_offset_y is inferred to be 0.)。
sps_bounding_box_offset_zは、直交座標系の原本境界ボックスのzオフセットを示す。該当情報が存在しない場合、このパラメータの値は0である(indicates indicates the z offset of the source bounding box in the Cartesian coordinates. When not present、the value of sps_bounding_box_offset_x is inferred to be 0.)。
sps_bounding_box_scale_factorは、直交座標系内の原本境界ボックスの倍率を示す。該当情報が存在しない場合、このパラメータの値は1又は0である(indicates the scale factor the source bounding box in the Cartesian coordinates. When not present、the value of sps_bounding_box_scale_factor is inferred to be 1. Indicates. When not present、the value of sps_bounding_box_scale_factor is inferred to be 0.)。
sps_bounding_box_size_widthは、直交座標系内の原本境界ボックスの幅を示す。該当情報が存在しない場合、sps_bounding_box_size_widthの値は10などの特定の値である(indicates the width of the source bounding box in the Cartesian coordinates. … When not present、the value of sps_bounding_box_size_width is inferred to be a specific value (such as 10).)。
sps_bounding_box_size_heightは、直交座標系内の原本境界ボックスの高さを示す。該当情報が存在しない場合、sps_bounding_box_size_heightの値は1又は0である(indicates the height of the source bounding box in the Cartesian coordinates. When not present、the value of sps_bounding_box_size_height is inferred to be 1. When not present、the value of sps_bounding_box_size_hieght is inferred to be 0.)。
sps_bounding_box_size_depthは、直交座標系内の原本境界ボックスの深さを示す。該当情報が存在しない場合、sps_bounding_box_size_heightの値は1又は0である(indicates the depth of the source bounding box in the Cartesian coordinates. When not present、the value of sps_bounding_box_size_depth is inferred to be 1. When not present、the value of sps_bounding_box_size_depth is inferred to be 0.)。
sps_source_scale_factorは、原本ポイントクラウドの倍率を示す(indicates the scale factor of the source point cloud.)。
sps_seq_parameter_set_idは、他のシンタックスエレメントにより参照されるSPSに関するid情報を示す。sps_seq_parameter_set_idは該当バージョンの明細書内の条件を満たす範囲内で0から15の値に定められる。0ではない他の情報であってsps_seq_parameter_set_idはISO/IECにより追って使用できる(Provides an identifier for the SPS for reference by other syntax elements. In The value of SPS_seq_parameter_set_id may be in the range of 0 to 15、inclusive in bitstreams conforming to this version of this Specification. The value other than 0 for sps_seq_parameter_set_id is reserved for future use by ISO/IEC.)。
sps_num_attribute_setsは、ビットストリーム内のコーディングされた属性の数を示す。sps_seq_parameter_set_idは0から64の範囲を有する(indicates the number of coded attributes in the bitstream. The value of sps_num_attribute_sets may be in the range of 0 to 64.)。
attribute_dimension[i]は、i番目の属性のコンポーネントの数を示す(specifies the number of components of the i-thattribute.)。
attribute_instance_id[i]は、属性インスタンスidを示す(specifies attribute instance id.)。
attribute_bitdepth[i]は、i番目の属性信号のビット深さ(bitdepth)情報を示す(specifies the bitdepth of the i-th attribute signal(s).)。
attribute_cicp_colour_primaries[i]は、色相属性ソースプライマリの色度を示す(indicates the chromaticity coordinates of the colour attribute source primaries.)。
attribute_cicp_transfer_characteristics[i]は、原本入力線形視覚的強度(input linear optical intensity)であるLcと0から1の間の名目実際値とで構成された、色属性の参照光電子的伝達特性関数を示す。又はこのパラメータは出力線形視覚的強度(output linear optical intensity)であるLoと0から1の範囲を有する名目実際値とで構成された、参照光電子的伝達特性関数の逆を示す(either indicates the reference opto-electronic transfer characteristic function of the colour attribute as a function of a source input linear optical intensity Lc with a nominal real-valued range of 0 to 1 or indicates the inverse of the reference electro-optical transfer characteristic function as a function of an output linear optical intensity Lo with a nominal real-valued range of 0 to 1)。
attribute_cicp_matrix_coeffs[i]は、緑色、青色及び赤色(又はY、Z、Xの三原色)のルマ(luma)と彩度(chroma)信号の行列係数を示す(describes the matrix coefficients used in deriving luma and chroma signals from the green、blue、and red、or Y、Z、and X primaries.)。
attribute_cicp_video_full_range_flag[i]は、E’Y、E’PB及びE’PR又はE’R、E’G及びE’B実際値コンポーネント信号から導き出されるブラックレベルとルマ及び彩度信号の範囲を示す(specifies indicates the black level and range of the luma and chroma signals as derived from E’Y、E’PB、and E’PR or E’R、E’G、and E’B real-valued component signals.)。
known_attribute_label_flag[i]が1である場合、i番目の属性に対してknow_attribute_labelがシグナリングされることをを示す。該当パラメータが0である場合は、attribute_label_four_bytesがi番目の属性に対してシグナリングされることを示す(equal to 1 specifies know_attribute_label is signalled for the i-th attribute. known_attribute_label_flag[i] equal to 0 specifies attribute_label_four_bytes is signalled for the i-th attribute.)。
known_attribute_label[i]が0である場合、属性が色であることを示す。該当パラメータが1である場合、属性は反射率であることを示す。該当パラメータが2である場合は、属性はフレームインデックスであることを示す(equal to 0 specifies the attribute is colour. known_attribute_label[i] equal to 1 specifies the attribute is reflectance. known_attribute_label[i] equal to 2 specifies the attribute is farme index.)。
実施例によるSPSは、partitioning_enabling_flag、split_recursive_enabling_flag、Partitioning_unit_size、Partition_current_unit、Multiple_brick_partitioning_flag、Partitioning_type_index、combining_filter_index、duplicated_attribute_indexをさらに含む。
partitioning_enabling_flagは、実施例によるポイントクラウドエンコーダがポイントクラウドデータをブリック単位に分割を行うか否かを示す情報(又はフラグ)を示す。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001)は、partitioning_enabling_flagに基づいて、受信したビットストリームのポイントクラウドデータがブリック単位に分割されているか否かを判断し、partitioning_enabling_flagに基づいてビットストリーム内のポイントクラウドデータをブリック単位で受信する。
split_recursive_enabling_flagは、実施例によるポイントクラウドエンコーダが分割されたブリックを再分割したか否かを示す情報(又はフラグ)を示す。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001)は、split_recursive_enabling_flagに基づいて、受信したビットストリームのポイントクラウドデータのブリックが細部分割単位に分割されているか否かを判断する。
partitioning_unit_sizeは、実施例によるポイントクラウドエンコーダが分割したブリックの分割単位を示す情報である。例えば、partitioning_unit_sizeは実施例によるブリックの単位サイズを示す。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001)は、partitioning_unit_sizeに基づいて、受信したビットストリームのポイントクラウドデータのブリックの分割単位を判断し、分割単位に該当するビットストリームだけ復号化を行うことができる。
partition_current_unitは、実施例によるポイントクラウドエンコーダがブリックに対して再分割を行う場合、再分割されたブリックの分割単位を示す情報である。例えば、partition_current_unitは実施例による再分割されたブリックの単位サイズを示す。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001)は、split_recursive_enabling_flagに対応して受信したビットストリームのポイントクラウドデータのブリックが細部分割単位に分割されていることを確認した場合、partition_current_unitに基づいて再分割されたブリックの分割単位を判断することができる。
multiple_brick_partitioning_flagは、実施例によるポイントクラウドデータを複数のブリック分割方法に基づいて分割を行うか否かを示す情報(又はフラグ)である。即ち、このパラメータはブリック分割に使用するpartitioning typeを色々な分割方法を使用するかどうかについて知らせる情報である。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001)は、multiple_brick_partitioning_flagに基づいてポイントクラウドデータを一つ又はそれ以上のブリック分割方法に基づいて分割されているか否かを判断する。
partitioning_type_indexは、実施例によるポイントクラウドデータをブリック単位に分割する方法を示す。実施例によるブリック単位に分割する方法は、実施例による点密度基盤のブリックタイリング、実施例による円形セクターブリックタイリング、実施例によるレイヤブリックタイリング、実施例による球形/楕円形領域タイリング、実施例による属性基盤のブリックタイリング、実施例による適応的軸長さ基盤のブリックタイリングを含む。partitioning_type_indexは、例えば、以下のように決定される。
partitioning_type_index=1は点密度基盤のブリックタイリングを行ったことを示す。点密度基盤のブリックタイリングは図21に示した方法によるブリックの分割を意味する。
partitioning_type_index=2は円形セクターブリックタイリングを行ったことを示す。円形セクターブリックタイリングは図22に示した方法によるブリックの分割を意味する。
partitioning_type_index=3はレイヤブリックタイリングを行ったことを示す。レイヤブリックタイリングは図23に示した方法によるブリックの分割を意味する。
partitioning_type_index=4は球形/楕円形領域タイリングを行ったことを示す。球形/楕円形領域タイリングは図24に示した方法によるブリックの分割を意味する。
partitioning_type_index=5は属性基盤のブリックタイリングを行ったことを示す。属性基盤のブリックタイリングは図25に示した方法によるブリックの分割を意味する。
partitioning_type_index=6は適応的軸長さ基盤のブリックタイリングを行ったことを示す。適応的軸長さ基盤のブリックタイリングは図26に示した方法によるブリックの分割を意味する。
partitioning_type_index=7は上述した方法以外のユーザ定義のブリックタイリング方法を行ったことを示す。実施例によれば、境界ボックスの座標軸の短い軸を基準として長い軸を分割した後、分割されたブリックを再度分割することができる。この時、短い軸を基準として中間軸を再分割する過程を行うことができる。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001)は、partitioning_type_indexに基づいてポイントクラウドデータをブリック単位で復号化することができる。
combining_filter_indexは、結合されたジオメトリビットストリームと属性ビットストリームを送信するために符号化器でどの結合方法を使用したかに関する情報を示す。実施例によれば、ビットストリームの送信環境及び特性によって結合方法がシグナリングされて圧縮率が向上することができる。
combining_filter_index=0である場合、多重化方法に基づく結合方法が使用されたことを示す。実施例によれば、多重化方法は個別ビットストリームをビット又はバイトグループにシーケンスすることができる。
combining_filter_index=1である場合、順次的結合方法に基づく結合方法が使用されたことを示す。実施例によれば、順次的結合方法は幾何ビットストリームと属性ビットストリームを順に結合する。
combining_filter_index=2である場合、重要度基盤の結合に基づく結合方法が使用されたことを示す。実施例によれば、重要度基盤の結合は重要度の高いビットストリームに対して優先して結合することができる。
実施例によるポイントクラウドデータ受信装置(例えば、図29のポイント結合部29012、図30のポイント結合部30000)は、combining_filter_indexに基づいて受信ビットストリーム内のジオメトリビットストリームと特質ビットストリームを抽出することができる。例えば、combining_filter_indexが0である場合、実施例によるポイントクラウドデータ受信装置は多重化方法の逆過程に基づいて受信ビットストリーム内のジオメトリビットストリームと特質ビットストリームを抽出する。例えば、combining_filter_indexが1である場合は、順次的結合方法の逆過程に基づいて受信ビットストリーム内のジオメトリビットストリームと特質ビットストリームを抽出する。例えば、combining_filter_indexが2である場合は、重要度基盤結合の逆過程に基づいて受信ビットストリーム内のジオメトリビットストリームと特質ビットストリームを抽出する。
duplicated_attribute_indexは、複数の特質情報が一つのジオメトリ情報にマッピングされる場合、該当ジオメトリが重複する属性情報を含むことを示す。重複するポイントの属性情報は重複属性を適用することができる。
duplicated_attribute_index=0である場合、色相重複を意味する。一つの幾何情報に複数の色相値が重複してマッピングされる時、重複属性を使用することができる。
duplicated_attribute_index=1である場合、反射度重複を意味する。一つの幾何情報に複数の反射度値が重複してマッピングされる時、重複属性を使用することができる。
実施例によるポイントクラウドデータ受信装置は、duplicated_attribute_indexに基づいてジオメトリが重複する属性情報を決定することができる。
sps_extension_present_flagが1である場合、sps_extension_dataがSPS RBSPシンタックス構造内に存在することを示す。該当パラメータが0である場合、該当シンタックス構造が存在しないことを示す。存在しない場合、sps_extension_present_flagの値が0である(equal to 1 specifies that the sps_extension_data syntax structure is present in the SPS RBSP syntax structure. sps_extension_present_flag equal to 0 specifies that this syntax structure is not present. When not present、the value of sps_extension_present_flag is inferred to be equal to 0)。
sps_extension_data_flagはどの値であってもよい。該当パラメータの存在はデコーダの該当標準文書のAnnex Aに提示されたプロファイルの動作に影響を及ぼさない(may have any value. Its presence and value do not affect decoder conformance to profiles specified in Annex A Decoders conforming to a profile specified in Annex A.)。
図33は実施例によるビットストリームのTPS(Tile Parameter Set)を示す。
図33に示したパラメータは、図31で説明したTPS(Tile Parameter Set)内に含まれる。実施例によるTPSは、図18ないし図30で説明したブリックの分割、ブリックタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
num_tilesは該当ビットストリーム内に存在するタイルの個数を示す(Represents the number of tiles signalled for the bitstream)。もし該当ビットストリーム内に存在するタイルがなければ、num_tilesは0にシグナリングされる(When not present、num_tiles is inferred to be 0)。
tile_bounding_box_offset_x[i]は、直交座標系内のi-番目のタイルのxオフセットを示す(indicates the x offset of the i-th tile in the cartesian coordinates)。もし該当xオフセットが存在しないと、tile_bounding_box_offset_x[0]の値がsps_bounding_box_offset_xである(When not present、the value of tile_bounding_box_offset_x[0] is inferred to be sps_bounding_box_offset_x.)。
tile_bounding_box_offset_y[i]は、直交座標系内のi-番目のタイルのyオフセットを示す(indicates the y offset of the i-th tile in the cartesian coordinates)。もし該当yオフセットが存在しないと、tile_bounding_box_offset_y[0]の値がsps_bounding_box_offset_yである(When not present、the value of tile_bounding_box_offset_y[0] is inferred to be sps_bounding_box_offset_y.)。
tile_bounding_box_offset_z[i]は、直交座標系内のi-番目のタイルのzオフセットを示す(indicates indicates the z offset of the i-th tile in the Cartesian coordinates.)。もし該当zオフセットが存在しないと、tile_bounding_box_offset_z[0]の値がsps_bounding_box_offset_zである(When not present、the value of tile_bounding_box_offset_z[0] is inferred to be sps_bounding_box_offset_z.)。
tile_bounding_box_scale_factor[i]は、直交座標系内のi-番目のタイルに関連する倍率を示す(indicates the scale factor the i-th tile in the Cartesian coordinates.)。もし該当倍率が存在しないと、tile_bounding_box_scale_factor[0]がsps_bounding_box_scale_factorである(When not present、the value of tile_bounding_box_scale_factor[0] is inferred to be sps_bounding_box_scale_factor.)。
tile_bounding_box_size_width[i]は、直交座標系内のi-番目のタイルの幅を示す(indicates the width of the i-th tile in the Cartesian coordinates.)。もし幅値が存在しない場合、tile_bounding_box_size_width[0]はsps_bounding_box_size_widthである(When not present、the value of tile_bounding_box_size_width[0] is inferred to be sps_bounding_box_size_width.)。
tile_bounding_box_size_height[i]は、直交座標系内のi-番目のタイルの高さを示す(indicates the height of the i-th tile in the Cartesian coordinates.)。もし高さ値が存在しない場合、tile_bounding_box_size_height[0]はsps_bounding_box_size_heightである(When not present、the value of tile_bounding_box_size_height[0] is inferred to be sps_bounding_box_size_height.)。
tile_bounding_box_size_depth[i]は、直交座標系内のi-番目のタイルの深さを示す(indicates the depth of the i-th tile in the Cartesian coordinates.)。もし深さ値が存在しない場合、tile_bounding_box_size_depth[0]はsps_bounding_box_size_depthである(When not present、the value of tile_bounding_box_size_depth[0] is inferred to be sps_bounding_box_size_depth.)。
実施例によるTPSは、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、Sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、combining_filter_index、duplicated_attribute_index、divide_mid_length_axisをさらに含む。
brick_unit_informationは一つのブリックに関するユニット情報及び/又は分割方法に関する情報を示す。
brick_density_quantization_stepは分割されるブリックに対して、該当ブリックで使用する量子化係数を指定してサンプリング可能な程度を示す。
bounding_box_radiusはポイントクラウドデータ送信装置が実施例による円形セクターブリックタイリングを行った場合、該当ブリックの半径を示す情報である。このパラメータは図22のbounding_box_radiusパラメータを意味する。該当パラメータは各ブリックに存在する。
central_node_xyzはポイントクラウドデータ送信装置が実施例による円形セクターブリックタイリングを行った場合、該当ブリックの中心点情報のx座標、y座標及びz座標を示す情報である。このパラメータは図22のcentral_node_xyzパラメータを意味する。
moving_direction_vectorはポイントクラウドデータ送信装置が実施例による円形セクターブリックタイリングを行った場合、ポイントクラウドデータが表現する客体の移動方向を示す。moving_direction_vectorはベクトル形態で表現される。図22のmoving_direction_vectorパラメータを意味する。
use_identical_bounding_box_information_flagは、ポイントクラウドデータ送信装置が実施例による円形セクターブリックタイリングを行った場合、全フレームに同一の境界ボックスを定義するか否かを示す情報(又はフラグ)である。実施例によれば、境界ボックスの情報は1つのフレームごとに定義され、各フレームのx、y、z値により決定される。図22のuse_identical_bounding_box_information_flagパラメータを意味する。
enable_sorting_flagは、ポイントクラウドデータ送信装置が実施例によるレイヤブリックタイリングを行った場合、ポイントクラウドデータを整列(例えば、昇順、降順、モールトンなど)したか否か示す情報(又はフラグ)である。図23のenable_sorting_flagパラメータを意味する。該当パラメータは各ブリックに存在し得る。
sphere_or_oval_flagは、ポイントクラウドデータ送信装置が実施例による球形/楕円形領域タイリングを行った場合、ポイントクラウドデータを球形或いは楕円形領域に分割するか否かを示す。図24のsphere_or_oval_flagパラメータを意味する。 該当パラメータは各ブリックに存在し得る。
center_point_xyzは、ポイントクラウドデータ送信装置が実施例による球形/楕円形領域タイリングを行った場合、実施例による球形/楕円形領域の中心点情報の座標情報(例えば、(x、y、z)情報)を含む。図24のcenter_point_xyzパラメータを意味する。該当パラメータは各ブリックに存在し得る。
radius_distanceは、ポイントクラウドデータ送信装置が実施例による球形/楕円形領域タイリングを行った場合、実施例による球形/楕円形のブリックの半径情報(又は距離情報)を示す。図24のradius_distanceパラメータを意味する。該当パラメータは各ブリックに存在し得る。
azimuth_angleは、ポイントクラウドデータ送信装置が実施例による球形/楕円形領域タイリングを行った場合、球面座標系での角度であり、原点からの距離を基準ベクトルとなす角度を意味する。該当パラメータは各ブリックに存在し得る。図24のazimuth_angleパラメータを意味する。
referenced_attribute_typeは、ポイントクラウドデータ送信装置が実施例による属性基盤のブリックタイリングを行った場合、ブリック分割の基準となる属性情報を示す。図25のreferenced_attribute_typeパラメータを意味する。
referenced_attribute_type_rangeは、ポイントクラウドデータ送信装置が実施例による属性基盤のブリックタイリングを行った場合、属性情報の属性値の範囲でブリックを構成するか否かを示す。図25のreferenced_attribute_typeパラメータを意味する。
referenced_attribute_type_valueは、属性情報の属性値それ自体でブリックを構成するか否かを示す情報である。図25のreferenced_attribute_type_valueパラメータを意味する。
combining_filter_indexは、結合されたジオメトリビットストリームと属性ビットストリームを送信するために符号化器でどの結合方法を使用したかに関する情報を示す。実施例によれば、ビットストリームの送信環境及び特性によって結合方法がシグナリングされ、圧縮率が向上することができる。combining_filter_indexは図32のcombining_filter_indexを意味する。
duplicated_attribute_indexは、複数の特質情報が一つのジオメトリ情報にマッピングされる場合、該当ジオメトリが重複する属性情報を含むことを示す。重複するポイントの属性情報は重複属性を適用することができる。duplicated_attribute_indexは図32のduplicated_attribute_indexを意味する。
divide_mid_length_axisは、ポイントクラウドデータ送信装置が実施例による図26の適応的軸長さ基盤のタイリングを行う場合、中間軸に関する情報を示す。例えば、0であると、X軸が中間軸、1であると、Y軸が中間軸、2であると、Z軸が中間軸を示す。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001、図29のポイント結合部29012、図30のポイント結合部30000)は、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、Sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、combining_filter_index、duplicated_attribute_index、divide_mid_length_axisパラメータなどを用いて実施例によるブリックの形態を判断することができ、上述したパラメータに基づいて復号化を行うポイントクラウドデータを確認することができる。
図34は実施例によるビットストリームのGPS(Geometry Parameter Set)を示す。
図34に示したパラメータは図31で説明したGPS(Geometry Parameter Set)内に含まれる。実施例によるGPSは、図18ないし図30で説明したブリックの分割、ブリックタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
gps_geom_parameter_set_idは、他のシンタックスエレメントにより参照されるGPSの識別子を示す。このパラメータの値は0ないし15である(Provides an identifier for the GPS for reference by other syntax elements. The value of gps_seq_parameter_set_id may be in the range of 0 to 15、inclusive.)。
gps_seq_parameter_set_idは、該当アクティブSPSに対するSps_seq_parameter_set_idの値を示す。該当値は0ないし15である(specifies the value of sps_seq_parameter_set_id for the active SPS. The value of gps_seq_parameter_set_id shall be in the range of 0 to 15、inclusive.)。
geometry_coding_typeは、ジオメトリ情報に対するコーディングタイプを意味する。該当パラメータの値は0ないし1であり、他の値はISO/IECにより追って使用できる。デコーダは該当パラメータが他の値を有する場合、無視できる。該当パラメータは、例えば、0であると、八分木を、1であると、trisoup(triangle soup)を示す(indicates that the coding type for the geometry in Table 7 1Table 7 1 for the given value of geometry_coding_type. The value of geometry_coding_type shall be equal to 0 or 1 in bitstreams conforming to this version of this Specification. Other values of geometry_coding_type are reserved for future use by ISO/IEC。Decoders conforming to this version of this Specification may ignore reserved values of geometry_coding_type。0=Octree、1=Triangle Soup(Trisoup))。
gps_box_present_flagは、追加境界ボックス情報が該当GPS内でジオメトリヘッダ(geometry header)内に提供される場合、1である。該当パラメータは追加境界ボックス情報がジオメトリヘッダ内に提供されない場合は、0を示す(equal to 1 specifies an additional bounding box information is provided in a geometry header that references the current GPS. gps_bounding_box_present_flag equal to 0 specifies that additional bounding box information is not signalled in the geometry header.)。
unique_geometry_points_flagは、全ての出力されたポイントが固有の位置を有する場合、1である。該当パラメータは出力ポイントが同じ位置に存在する場合、0である(equal to 1 indicates that all output points have unique positionS.unique_geometry_points_flag equal to 0 indicates that the output points may have same positions.)。
neighbour_context_restriction_flagが0である場合、八分木占有コーディングが6つの隣接ノードに基づいて決定されたコンテンツを使用することを示す。1である場合、八分木占有コーディングが兄弟ノードのみに基づいて決定されたコンテキストを使用することを示す(equal to 0 indicates that octree occupancy coding uses contexts determined from six neighbouring parent nodes. neighbour_context_restriction_flag equal to 1 indicates that octree coding uses contexts determined from sibling nodes only.)。
inferred_direct_coding_mode_enabled_flagが0である場合、八分木コーディングがinferred_direct_coding_modeを使用したことを示す。1である場合、兄弟隣接ノードから決定された複数のコンテキストを使用して八分木コーディングを行ったことを示す(equal to 0 indicates the octree coding uses inferred_direct_coding_mode. inferred_direct_coding_mode_enabled_flag equal to 1 indicates the octree coding uses multiple context determined from sibling neighbouring nodes.)。
log2_neighbour_avail_boundaryは復号プロセスが以下のように利用されるNeighbAvailBoundaryの値を示す(specifies the value of the variable NeighbAvailBoundary that is used in the decoding process as follows:)。
NeighbAvailBoundary=2log2_neighbour_avail_boundary
neighbour_context_restriction_flagが1である場合、neighbour_context_restriction_flagは13である(When neighbour_context_restriction_flag is equal to 1、NeighbAvailabilityMask is set equal to 13.)。neighbour_context_restriction_flagが0である場合は、NeighbAvailabilityMaskは以下のように決定される(Otherwise、 neighbour_context_restriction_flag equal to 0、 NeighbAvailabilityMask is set equal to)。
(1<<log2_neighbour_avail_boundary)
log2_trisoup_node_sizeは以下のように決定される三角形ノードのサイズであってTrisoupNodeSizeを示す(specifies the variable TrisoupNodeSize as the size of the triangle nodes as follows.)。
TrisoupNodeSize=2log2_trisoup_node_size
log2_trisoup_node_sizeの値は0より大きい。log2_trisoup_node_sizeのサイズが0である場合、ジオメトリビットストリームはひたすら八分木コーディングシンタックスのみを含むことを示す(The value of log2_trisoup_node_size may be equal to or greater than 0. When log2_trisoup_node_size is equal to 0、the geometry bitstream includes only the octree coding syntax.)。
trisoup_depthはポイント座標のそれぞれのコンポーネントを示すために使用されるビット数を示す。trisoup_depthは2から21の値を有する(specifies the number of bits used to represent each component of a point coordinate. The value of trisoup_depth may be In the range of 2 to 21. [Ed(df):21 should perhaps be a level limit].)。
trisoup_triangle_levelは八分木が切り取られたレベルを示す。trisoup_triangle_levelは1からtrisoup_depth-1の値を有する(specifies the level at which the octree is pruned. The value of trisoup_triangle_level may be in the range of 1 to trisoup_depth-1.)。
gps_extension_present_flagが1であると、gps_extension_dataシンタックス構造がGPS RBSPシンタックス構造内に存在することを示す。0である場合、該当シンタックス構造が存在しないことを示す(equal to 1 specifies that the gps_extension_data syntax structure is present in the GPS RBSP syntax structure. gps_extension_present_flag equal to 0 specifies that this syntax structure is not present. When not present、the value of gps_ extension_present_flag is inferred to be equal to 0.)。
gps_extension_data_flagはどの値であってもよい。該当値が存在する場合、値はデコーダに影響を及ぼさない(may have any value. Its presence and value do not affect decoder conformance to profiles specified in Annex A. Decoders conforming to a profile specified in Annex A.)。
実施例によるGPSは、図31ないし図33で上述した、multiple_brick_partitioning_flag、Partitioning_unit_size、Partitioning_type_index、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、Sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、divide_mid_length_axis、combining_filter_index、duplicated_attribute_index、brick_unit_informationをさらに含む。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001、図29のポイント結合部29012、図30のポイント結合部30000)は、GPS内の上述したパラメータなどを用いて実施例によるブリックの形態を判断し、上述したパラメータに基づいて復号化を行うポイントクラウドデータを確認することができる。
図35は実施例によるビットストリームのジオメトリスライスヘッダ(GSH、Geometry slice Header)を示す。
図35に示したパラメータは図31で説明したジオメトリスライスヘッダ(GSH、Geometry slice Header)内に含まれる。実施例によるGSHは図18ないし図30で説明したブリックの分割、ブリックタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
gsh_geometry_parameter_set_idは、アクティブGPSのgps_geom_parameter_set_idの値を示す(specifies the value of the gps_geom_parameter_set_id of the active GPS.)。
gsh_tile_idはタイルのidを示す(specifies id of tile.)。
gsh_slice_idはスライスのidを示す(specifies id of slice.)。
gsh_box_log2_scaleはスケール値を示す(specifies scale value.)。
gsh_box_origin_xは直交座標系内のソース境界ボックスのx座標情報を示す。(specifies the x of the source bounding box in the cartesian coordinates.)。
gsh_box_origin_yは直交座標系内のソース境界ボックスのy座標情報を示す。(specifies the y of the source bounding box in the cartesian coordinates.)。
gsh_box_origin_zは直交座標系内のソース境界ボックスのz座標情報を示す。(specifies the z of the source bounding box in the cartesian coordinates.)。
gsh_log2_max_nodesizeは復号プロセスが以下のように行われるMaxNodeSizeの値を示す(specifies the value of the variable MaxNodeSize that is used in the decoding process as follows:)。
MaxNodeSize=2(gbh_log2_max_nodesize)
gbh_points_numberはスライス内のコーディングされたポイントの個数を示す。(specifies the number of coded points in the slice.)。
実施例によるGSHは、図31ないし図34で上述したmultiple_brick_partitioning_flag、Partitioning_unit_size、Partitioning_type_index、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、Sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、divide_mid_length_axis、combining_filter_index、duplicated_attribute_index、brick_unit_informationをさらに含む。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001、図29のポイント結合部29012、図30のポイント結合部30000)は、GSH内の上述したパラメータなどを用いて実施例によるブリックの形態を判断し、上述したパラメータに基づいて復号化を行うポイントクラウドデータを確認することができる。
図36は実施例によるビットストリームの特質スライスヘッダ(ASH、Attribute slice Header)を示す。
図36に示したパラメータは図31で説明した特質スライスヘッダ(ASH、Attribute slice Header)内に含まれる。実施例によるASHは図18ないし図30で説明したブリックの分割、ブリックタイリング方法に関連するシグナリング情報及び/又は関連シグナリング情報を含む。
abh_attr_parameter_set_idは、現在アクティブAPSのaps_attr_parameter_set_idの値を示す(specifies the value of the aps_attr_parameter_set_id of the active APS.)。
abh_attr_sps_attr_idxは、現在アクティブSPS内の特質セットを示す。abh_attr_sps_attr_idxの値は0ないし現在アクティブSPSのsps_num_attribute_setsdの値の範囲内である(specifies the attribute set in the active SPS. The value of abh_attr_sps_attr_idx may be in the range of 0 to sps_num_attribute_sets in the active SPS.)。
abh_attr_geom_slice_idは、ジオメトリスライスidの値を示す(specifies the value of geom slice id.)。
実施例によるASHは、図31ないし図34で上述したmultiple_brick_partitioning_flag、Partitioning_unit_size、Partitioning_type_index、brick_unit_information、brick_density_quantization_step、bounding_box_radius、central_node_xyz、moving_direction_vector、use_identical_bounding_box_information_flag、enable_sorting_flag、Sphere_or_oval_flag、center_point_xyz、radius_distance、azimuth_angle、referenced_attribute_type、referenced_attribute_type_range、referenced_attribute_type_value、divide_mid_length_axis、combining_filter_index、duplicated_attribute_index、brick_unit_informationをさらに含む。
実施例によるポイントクラウドデータ受信装置(例えば、図29の受信部29000、分割されたデータ入力部29001、図29のポイント結合部29012、図30のポイント結合部30000)は、ASH内の上述したパラメータなどを用いて実施例によるブリックの形態を判断し、上述したパラメータに基づいて復号化を行うポイントクラウドデータを確認することができる。
従って、実施例によるポイントクラウドデータが送信するビットストリームはシグナリング情報を含む。実施例によるシグナリング情報は、ブリック単位に分割する段階の実行有無を示す情報、及びブリック単位に分割する段階を行う場合、シグナリング情報は分割を行う方法を示す情報を含む。シグナリング情報は一つ又はそれ以上のブリックのそれぞれに対する符号化されたジオメトリ情報及び符号化された特質情報を結合する方法に関する情報をさらに含む。シグナリング情報は第1分割するブリックの単位を示す情報、第2分割する段階が行われたか否かを示す情報及び第2分割する段階が行われる場合、第2分割するブリックの単位を示す情報をさらに含む。
図37は実施例によるポイントクラウドデータ送信方法を示すフローチャートである。
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを獲得する段階(37000)、獲得したポイントクラウドデータを符号化する段階(37001)及び/又は符号化されたポイントクラウドデータ及びシグナリング情報を含むビットストリームを送信する段階(37002)を含む。
ポイントクラウドデータを獲得する段階(37000)では、実施例によるポイントクラウドデータを得ることができる。ポイントクラウドデータを獲得する段階(37000)は、図1のポイントクラウドビデオ獲得部10001、図2の獲得20000、図3の動作によって獲得されたデータである。
獲得したポイントクラウドデータを符号化する段階(37001)では、ポイントクラウドデータを獲得する段階(37000)で獲得したポイントクラウドデータを一つ又はそれ以上のブリックに分割する。獲得したポイントクラウドデータを符号化する段階(37001)は、一つ又はそれ以上のブリックに基づいてポイントクラウドデータのジオメトリ情報を符号化する。獲得したポイントクラウドデータを符号化する段階(37001)は、一つ又はそれ以上のブリック及び復元されたジオメトリ情報に基づいてポイントクラウドデータの特質情報を符号化する。
一つ又はそれ以上のブリックに分割する動作は、図18の空間分割部18001、図19のブリックタイリング部19001で行われる。一つ又はそれ以上のブリックに分割する動作は、例えば、図26で説明した動作により行われる。
ポイントクラウドデータのジオメトリ情報及び特質情報を符号化する動作は、図18の幾何情報符号化部18002及び/又は属性情報符号化部18003で行われる。ポイントクラウドデータのジオメトリ情報を符号化する動作は、図19に示したように行われる。
実施例による分割を行う方法は、第1方法ないし第6方法のうちのいずれかである。第1方法はポイントクラウドデータ内のポイントの密度に基づいて分割する方法である(例えば、図21に示した点密度基盤のブリックタイリング)で。第2方法は中心点情報及び半径情報に基づいて決定される一つ又はそれ以上のセクターに分割する方法である(例えば、図22に示した円形セクターブリックタイリング)。第3方法は一つ又はそれ以上のレイヤに分割する方法である(例えば、図23のレイヤブリックタイリング)。第4方法は一つ又はそれ以上の球形領域に分割する方法である(例えば、図24の球形/楕円形領域タイリング)。第5方法はポイントクラウドデータ内のポイントの特質情報に基づいて分割する方法である(例えば、図25の属性基盤のブリックタイリング)。第6方法はポイントクラウドデータを含む3次元空間の軸の長さに基づいて分割する方法である(例えば、図26の適応型軸長さ基盤のブリックタイリング)。
実施例によれば、第6方法は3次元空間の第1軸を3次元空間の第2軸の長さ単位に第1分割する段階、及び/又は3次元空間の第3軸を第2軸の長さ単位に第2分割する段階に基づいて行われる。
獲得したポイントクラウドデータを符号化する段階(37001)は、一つ又はそれ以上のブリックのそれぞれに対する符号化されたジオメトリ情報及び符号化された特質情報を結合する。実施例による符号化されたジオメトリ情報及び符号化された特質情報を結合する動作は、図19のビットストリーム結合部19014、図27のビットストリーム結合部27000又は結合実行部27001で行われる。
符号化されたポイントクラウドデータ及びシグナリング情報を含むビットストリームを送信する段階(37002)では、符号化されたポイントクラウドデータをビットストリーム形態で送信する。符号化されたポイントクラウドデータ及びシグナリング情報を含むビットストリームを送信する段階(37002)は、図18ないし図36で説明したシグナリング情報をビットストリームに含めて、ビットストリームを実施例によるポイントクラウドデータ受信装置に送信する。
実施例によるシグナリング情報は、ブリック単位に分割する段階の実行有無を示す情報を含む(例えば、図32ないし図36のpartitioning_enabling_flag)。実施例によるポイントクラウドデータ送信方法がブリック単位に分割する段階を行う場合、実施例によるシグナリング情報は分割を行う方法を示す情報をさらに含む(例えば、図32ないし図36のpartitioning_type_index)。
実施例によるシグナリング情報は一つ又はそれ以上のブリックのそれぞれに対する符号化されたジオメトリ情報及び符号化された特質情報を結合する方法に関する情報をさらに含む(例えば、図32ないし図36のcombining_filter_index)。
実施例によるシグナリング情報は、第6方法に基づく分割方法の実行に関連して、第6方法による分割の第1分割するブリックの単位を示す情報(例えば、図32ないし図36のpartitioning_unit_size)、第2分割(再分割)する段階が行われるか否かを示す情報(例えば、図32ないし図36のpartition_current_unit)、ブリック分割に使用するpartitioning typeを色々な分割方法を使用するか否かを示す情報(例えば、図32ないし図36のmultiple_brick_partitioning_flag)及び/又は第1分割されたブリックに対して第2分割(再分割)を行うか否かを示す情報(例えば、図32ないし図36のsplit_recursive_enabling_flag)をさらに含む。
図38は実施例によるポイントクラウドデータ受信方法を示すフローチャートである。
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータ及びシグナリング情報を含むビットストリームを受信する段階(38000)、ポイントクラウドデータを復号する段階(38001)及び/又は復号されたポイントクラウドデータをレンダリングする段階(38002)を含む。
ポイントクラウドデータ及びシグナリング情報を含むビットストリームを受信する段階(38000)で受信したポイントクラウドデータはジオメトリビットストリーム及び特質ビットストリームを含む。
実施例によるシグナリング情報は受信したポイントクラウドデータが一つ又はそれ以上のブリックの単位に分割されているか否かを示す情報を含む(例えば、図32ないし図36のpartitioning_enabling_flag)。実施例によるシグナリング情報は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを分割したブリック分割方法を示す情報をさらに含む(例えば、図32ないし図36によるpartitioning_type_index)。
実施例によるシグナリング情報は一つ又はそれ以上のブリックの分割タイプを示す情報、一つ又はそれ以上のブリックのサイズに関連する情報などをさらに含む(例えば、図32ないし図36によるcombining_filter_index、split_recursive_enabling_flag、Partitioning_unit_size、Partition_current_unit及び/又はmultiple_brick_partitioning_flag)。
ポイントクラウドデータを復号する段階(38001)では、ポイントクラウドデータのジオメトリビットストリームを受信し、それをジオメトリ復号してジオメトリ情報を出力する。ポイントクラウドデータを復号する段階(38001)では、ポイントクラウドデータの特質ビットストリームを復元されたジオメトリ情報に基づいて特質復号する。ポイントクラウドデータを復号する段階(38001)は特質情報を出力する。
実施例によれば、ポイントクラウドデータが一つ又はそれ以上のブリックの単位に分割されている場合、ポイントクラウドデータを復号する段階(38001)はブリックを独立的に復号することができる。
また、この場合、ポイントクラウドデータを復号する段階(38001)では、独立的に復号されたブリック内のポイントのジオメトリ情報及びポイントの特質情報を結合することができる。ポイントのジオメトリ情報及びポイントの特質情報を結合する動作は、図29のポイント結合部29012、図30のポイント結合部30000又は結合実行部30001により行われる。
復号されたポイントクラウドデータをレンダリングする段階(38002)では、復号されたポイントクラウドデータをディスプレイにレンダリングする。
説明の便宜のために、各図を区分して説明したが、各図に述べられている実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。実施例による装置及び方法は、上述したように、説明された実施例の構成と方法が限定して適用されることではなく、実施例は様々に変形可能に各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれ個々のチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のうちのいずれか一つ又はそれ以上の動作/方法を行わせるか、実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではないCRM又は他のコンピュータープログラム製品に格納されるか、又は一つ又はそれ以上のプロセッサにより実行されるために構成された一時的なCRM又は他のコンピュータープログラム製品に格納されることができる。また実施例によるメモリは、揮発性メモリ(例えば、RAMなど)だけではなく、非揮発性メモリ、フラッシュメモリ、PROMなどを全部含む概念として使用される。また、インターネットによる送信などのような搬送波の形態で具現されることも含む。またプロセッサが読み取られる記録媒体は、ネットワークで連結されたコンピューターシステムに分散されて、分散方式によりプロセッサが読み取られるコードが格納されて実行されることができる。
この明細書において、“/”と“,”は“及び/又は”に解釈される。例えば、“A/B”は“A及び/又はB”に解釈され、“A、B”は“A及び/又はB”に解釈される。さらに、“A/B/C”は“A、B及び/又はCのうちのいずれか”を意味する。また、“A、B、C”も“A、B及び/又はCのうちのいずれか”を意味する。さらに、この文書において、“又は”は“及び/又は”に解釈される。例えば、“A又はB”は、1)“A”のみを意味するか、2)“B”のみを意味するか、又は3)“A及びB”を意味する。言い換えれば、この明細書において“又は”は“さらに(additionally)又は代わりに(alternatively)”を意味する。
第1、第2などの用語は実施例の様々な構成要素を説明するために使用される。しかし、実施例による様々な構成要素は上記用語により解釈が制限されてはいけない。かかる用語は一つの構成要素を他の構成要素と区別するために使用されることに過ぎない。例えば、第1ユーザ入力信号は第2ユーザ入力信号と称することができる。同様に、第2ユーザ入力信号は第1ユーザ入力信号と称することができる。かかる用語の使用は様々な実施例の範囲から離脱していない。第1ユーザ入力信号及び第2ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限されるものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味しない。実施例を説明するために使用される、「~である場合」、「~の時」などの条件表現は選択的な場合にのみ制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。
発明の実施のための最善の形態で具体的に説明する。