添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというより、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に関する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。
実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものもあり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。
図1は実施例によるポイントクラウドコンテンツ提供システムの一例を示す図である。
図1に示したポイントクラウドコンテンツ提供システムは、送信装置(transmission device)10000及び受信装置(reception device)10004を含む。送信装置10000及び受信装置10004はポイントクラウドデータを送受信するために有無線通信が可能である。
実施例による送信装置10000は、ポイントクラウドビデオ(又はポイントクラウドコンテンツ)を確保し処理して送信する。実施例において、送信装置10000は固定局(fixed station)、BTS(base transceiver system)、ネットワーク、AI(Ariticial Intelligence)機器及び/又はシステム、ロボット、AR/VR/XR機器及び/又はサーバーなどを含む。また実施例において、送信装置10000は無線接続技術(例、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による送信装置10000は、ポイントクラウドビデオ獲得部(Point Cloud Video Acquisition)10001、ポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002及び/又は送信機(Transmitter(又は通信モジュール)10003を含む。
実施例によるポイントクラウドビデオ獲得部10001は、キャプチャー、合成又は生成などの処理過程によりポイントクラウドビデオを獲得する。ポイントクラウドビデオは、3次元空間に位置するポイントの集合であるポイントクラウドで表現されるポイントクラウドコンテンツであって、ポイントクラウドビデオデータなどと呼ばれる。実施例によるポイントクラウドビデオは、一つ又はそれ以上のフレームを含む。一つのフレームは停止映像/ピクチャを示す。よって、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャを含み、ポイントクラウド映像、フレーム及びピクチャのうちのいずれかに呼ばれる。
実施例によるポイントクラウドビデオエンコーダ10002は、確保したポイントクラウドビデオデータを符号化する。ポイントクラウドビデオエンコーダ10002はポイントクラウド圧縮(Point Cloud Compression)コーディングに基づいてポイントクラウドビデオデータを符号化する。実施例によるポイントクラウド圧縮コーディングは、G-PCC(Geometry-based Point Cloud Compression)コーディング及び/又はV-PCC(Video based Point Cloud Compression)コーディング又は次世代コーディングを含む。なお、実施例によるポイントクラウド圧縮コーディングは、上述した実施例に限られない。ポイントクラウドビデオエンコーダ10002は、符号化されたポイントクラウドビデオデータを含むビットストリームを出力することができる。ビットストリームは符号化されたポイントクラウドビデオデータだけではなく、ポイントクラウドビデオデータの符号化に関連するシグナリング情報を含む。
実施例による送信機10003は、符号化されたポイントクラウドビデオデータを含むビットストリームを送信する。実施例によるビットストリームはファイル又はセグメント(例えば、ストリーミングセグメント)などにカプセル化されて、放送網及び/又はブロードバンド網などの様々なネットワークにより送信される。図示していないが、送信装置10000はカプセル化動作を行うカプセル化部(又はカプセル化モジュール)を含む。また実施例において、カプセル化部は送信機10003に含まれる。実施例において、ファイル又はセグメントはネットワークにより受信装置10004に送信されるか、又はデジタル格納媒体(例えば、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど)に格納される。実施例による送信機10003は受信装置10004(又は受信機(Receiver)10005)と4G、5G、6Gなどのネットワークにより有無線通信が可能である。また送信機10003はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)によって必要なデータ処理動作を行うことができる。また送信装置10000はオン・デマンド(On Demand)方式によってカプセル化されたデータを送信することもできる。
実施例による受信装置10004は、受信機(Receiver)10005、ポイントクラウドビデオデコーダ(Point Cloud Decoder)10006及び/又はレンダラー(Renderer)10007を含む。実施例において、受信装置10004は無線接続技術(例、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による受信機10005は、ポイントクラウドビデオデータを含むビットストリーム又はビットストリームがカプセル化されたファイル/セグメントなどをネットワーク又は格納媒体から受信する。受信機10005はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)により必要なデータ処理動作を行う。実施例による受信機10005は、受信したファイル/セグメントをデカプセル化してビットストリームを出力する。また実施例において、受信機10005はデカプセル化の動作を行うためのデカプセル化部(又はデカプセル化モジュール)を含む。またデカプセル化部は受信機10005とは別個のエレメント(又はコンポーネント)で具現される。
ポイントクラウドビデオデコーダ10006は、ポイントクラウドビデオデータを含むビットストリームを復号する。ポイントクラウドビデオデコーダ10006はポイントクラウドビデオデータが符号化された方式により復号することができる(例えば、ポイントクラウドビデオエンコーダ10002の動作の逆の過程)。従って、ポイントクラウドビデオデコーダ10006はポイントクラウド圧縮の逆過程であるポイントクラウド復元コーディングを行って、ポイントクラウドビデオデータを復号することができる。ポイントクラウド復元コーディングはG-PCCコーディングを含む。
レンダラー10007は復号されたポイントクラウドビデオデータをレンダリングする。レンダラー10007はポイントクラウドビデオデータだけではなく、オディオデータもレンダリングしてポイントクラウドコンテンツを出力する。実施例において、レンダラー10007はポイントクラウドコンテンツをディスプレイするためのディスプレイを含む。実施例において、ディスプレイはレンダラー10007に含まれず、別のデバイス又はコンポーネントで具現される。
図面において、点線で示した矢印は、受信装置10004で得たフィードバック情報(feedback information)の送信経路を示す。フィードバック情報はポイントクラウドコンテンツを消費するユーザとの相互作用を反映するための情報であって、ユーザの情報を含む(例えば、ヘッドオリエンテーション情報)、ビューポート情報など)。特に、ポイントクラウドコンテンツがユーザとの相互作用が必要なサービス(例えば、自律走行サービスなど)のためのものである場合には、フィードバック情報はコンテンツ送信側(例えば、送信装置10000)及び/又はサービス供給者に伝達されることができる。実施例において、フィードバック情報は送信装置10000だけではなく受信装置10004でも使用されることができ、提供されないこともできる。
実施例によるヘッドオリエンテーション情報はユーザの頭の位置、方向、角度、動きなどに関する情報である。実施例による受信装置10004はヘッドオリエンテーション情報に基づいてビューポート情報を計算する。ビューポート情報はユーザが見ているポイントクラウドビデオの領域に関する情報である。視点(viewpoint)はユーザがポイントクラウドビデオを見ている点であり、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とする領域であり、領域のサイズ、形態などはFOV(Field Of View)により決定される。従って、受信装置10004はヘッドオリエンテーション情報以外に、装置が支援する垂直(vertical)或いは水平(horizontal)FOVなどに基づいてビューポート情報を抽出することができる。また受信装置10004はゲイズ分析(Gaze Analysis)などを行って、ユーザのポイントクラウド消費方式、ユーザが凝視するポイントクラウドビデオ領域、凝視時間などを確認する。実施例において、受信装置10004はゲイズ分析の結果を含むフィードバック情報を送信装置10000に送信することができる。実施例によるフィードバック情報はレンダリング及び/又はディスプレイ過程で得られる。実施例によるフィードバック情報は受信装置10004に含まれた一つ又はそれ以上のセンサにより確保される。また実施例において、フィードバック情報はレンダラー10007又は別の外部エレメント(又はデバイス、コンポーネントなど)により確保される。図1に示された点線はレンダラー10007で確保したフィードバック情報の伝達過程を示す。ポイントクラウドコンテンツ提供システムはフィードバック情報に基づいてポイントクラウドデータを処理(符号化/復号)する。従って、ポイントクラウドビデオデータデコーダ10006はフィードバック情報に基づいて復号の動作を行うことができる。また受信装置10004はフィードバック情報を送信装置10000に送信することができる。送信装置10000(又はポイントクラウドビデオデータエンコーダ10002)はフィードバック情報に基づいて符号化の動作を行うことができる。従って、ポイントクラウドコンテンツ提供システムは全てのポイントクラウドデータを処理(符号化/復号)せず、フィードバック情報に基づいて必要なデータ(例えば、ユーザのヘッド位置に対応するポイントクラウドデータ)を効率的に処理して、ユーザにポイントクラウドコンテンツを提供することができる。
実施例において、送信装置10000はエンコーダ、送信デバイス、送信機などに呼ばれ、受信装置10004はデコーダ、受信デバイス、受信機などに呼ばれる。
実施例による図1のポイントクラウドコンテンツ提供システムで処理される(獲得/符号化/送信/復号/レンダリングの一連の過程で処理される)ポイントクラウドデータは、ポイントクラウドコンテンツデータ又はポイントクラウドビデオデータとも呼ばれる。実施例において、ポイントクラウドコンテンツデータはポイントクラウドデータに関連するメタデータ或いはシグナリング情報を含む概念として使用することができる。
図1に示したポイントクラウドコンテンツ提供システムのエレメントは、ハードウェア、ソフトウェア、プロセッサ及び/又はこれらの組み合わせなどで具現される。
図2は実施例によるポイントクラウドコンテンツ提供の動作を示すブロック図である。
図2は図1で説明したポイントクラウドコンテンツ提供システムの動作を示すブロック図である。上述したように、ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディング(例えば、G-PCC)に基づいてポイントクラウドデータを処理する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)では、ポイントクラウドビデオを獲得する(20000)。ポイントクラウドビデオは3次元空間を表現する座標系に属するポイントクラウドで表現される。実施例によるポイントクラウドビデオはPly(Polygon File format or the Stanford Triangle format)ファイルを含む。ポイントクラウドビデオが一つ又はそれ以上のフレームを有する場合、獲得したポイントクラウドビデオは一つ又はそれ以上のPlyファイルを含む。Plyファイルはポイントのジオメトリ(Geometry)及び/又は特質(Attribute)のようなポイントクラウドデータを含む。ジオメトリはポイントの位置を含む。それぞれのポイントの位置は3次元座標系(例えば、XYZ軸からなる座標系など)を示すパラメータ(例えば、X軸、Y軸、Z軸それぞれの値)で表現される。特質はポイントの特質(例えば、それぞれのポイントのテクスチャ情報、色相(YCbCr又はRGB)、反射率(r)、透明度など)を含む。一つのポイントは一つ又はそれ以上の特質(又は属性)を有する。例えば、一つのポイントは、色相の一つの特質を有するか、或いは色相及び反射率の二つの特質を有することができる。実施例において、ジオメトリは位置、ジオメトリ情報、ジオメトリデータなどとも呼ばれ、特質は特質、特質情報、特質データなどとも呼ばれる。またポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)は、ポイントクラウドビデオの獲得過程に関連する情報(例えば、深さ情報、色相情報など)からポイントクラウドデータを確保することができる。
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又はポイントクラウドビデオエンコーダ10002)は、ポイントクラウドデータを符号化する(20001)。ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディングに基づいてポイントクラウドデータを符号化する。上述したように、ポイントクラウドデータはポイントのジオメトリ及び特質を含む。よって、ポイントクラウドコンテンツ提供システムは、ジオメトリを符号化するジオメトリ符号化を行ってジオメトリビットストリームを出力することができる。ポイントクラウドコンテンツ提供システムは、特質を符号化する特質符号化を行って特質ビットストリームを出力することができる。実施例において、ポイントクラウドコンテンツ提供システムはジオメトリ符号化に基づいて特質符号化を行うことができる。実施例によるジオメトリビットストリーム及び特質ビットストリームは多重化されて一つのビットストリームで出力される。実施例によるビットストリームはジオメトリ符号化及び特質符号化に関連するシグナリング情報をさらに含む。
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又は送信機10003)は、符号化されたポイントクラウドデータを送信する(20002)。図1で説明したように、符号化されたポイントクラウドデータはジオメトリビットストリーム、特質ビットストリームで表現される。また符号化されたポイントクラウドデータはポイントクラウドデータの符号化に関連するシグナリング情報(例えば、ジオメトリ符号化及び特質符号化に関連するシグナリング情報)と共に、ビットストリームの形態で送信される。またポイントクラウドコンテンツ提供システムは符号化されたポイントクラウドデータを送信するビットストリームをカプセル化してファイル又はセグメントの形態で送信する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、符号化されたポイントクラウドデータを含むビットストリームを受信する。またポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、ビットストリームを逆多重化することができる。
ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームで送信される符号化されたポイントクラウドデータ(例えば、ジオメトリビットストリーム、特質ビットストリーム)を復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームに含まれたポイントクラウドビデオデータの符号化に関連するシグナリング情報に基づいてポイントクラウドビデオデータを復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ジオメトリビットストリームを復号してポイントの位置(ジオメトリ)を復元する。ポイントクラウドコンテンツ提供システムは、復元したジオメトリに基づいて特質ビットストリームを復号してポイントの特質を復元する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、復元されたジオメトリによる位置及び復号された特質に基づいてポイントクラウドビデオを復元する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号されたポイントクラウドデータをレンダリングする(20004)。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号過程で復号されたジオメトリ及び特質を様々なレンダリング方式によってレンダリングする。ポイントクラウドコンテンツのポイントは、一定の厚さを有する定点、該当定点の位置を中央とする所定の最小サイズを有する立方体、又は定点の位置を中央とする円などにレンダリングされる。レンダリングされたポイントクラウドコンテンツの全部又は一部の領域はディスプレイ(例えば、VR/ARディスプレイ、一般ディスプレイなど)によりユーザに提供される。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004)は、フィードバック情報を確保することができる(20005)。ポイントクラウドコンテンツ提供システムは、フィードバック情報に基づいてポイントクラウドデータを符号化及び/又は復号する。実施例によるフィードバック情報及びポイントクラウドコンテンツ提供システムの動作は、図1で説明したフィードバック情報及び動作と同一であるので、具体的な説明は省略する。
図3は実施例によるポイントクラウドビデオキャプチャー過程の一例を示す図である。
図3は図1及び図2で説明したポイントクラウドコンテンツ提供システムのポイントクラウドビデオキャプチャー過程の一例を示す。
ポイントクラウドコンテンツは、様々な3次元空間(例えば、現実環境を示す3次元空間、仮想環境を示す3次元空間など)に位置するオブジェクト(object)及び/又は環境を示すポイントクラウドビデオ(イメージ及び/又は映像)を含む。従って、実施例によるポイントクラウドコンテンツ提供システムは、ポイントクラウドコンテンツを生成するために一つ又はそれ以上のカメラ(例えば、深さ情報を確保できる赤外線カメラ、深さ情報に対応する色相情報を抽出できるRGBカメラなど)、プロジェクト(例えば、深さ情報を確保するための赤外線パターンプロジェクターなど)、LiDARなどを使用してポイントクラウドビデオをキャプチャーする。実施例によるポイントクラウドコンテンツ提供システムは、深さ情報から3次元空間上のポイントで構成されたジオメトリの形態を抽出し、色相情報からそれぞれのポイントの特質を抽出してポイントクラウドデータを確保する。実施例によるイメージ及び/又は映像は内向き(inward-facing)方式及び外向き(outward-facing)方式のうちのいずれかに基づいてキャプチャーされる。
図3の左側には内向き方式が示されている。内向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトをキャプチャーする方式である。内向き方式は核心客体に対する360°イメージをユーザに提供するポイントクラウドコンテンツ(例えば、ユーザに客体(例:キャラクター、選手、品物、俳優などの核心となる客体)の360°イメージを提供するVR/ARコンテンツ)を生成するために使用される。
図3の右側には外向き方式が示されている。外向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトではない中心オブジェクトの環境をキャプチャーする方式である。外向き方式はユーザの視点からの周辺環境を提供するためのポイントクラウドコンテンツ(例えば、自律走行車両のユーザに提供される外部環境を示すコンテンツ)を生成するために使用される。
図示したように、ポイントクラウドコンテンツは一つ又はそれ以上のカメラのキャプチャー動作に基づいて生成される。この場合、それぞれのカメラの座標系が異なるので、ポイントクラウドコンテンツ提供システムはキャプチャー動作前にグローバル空間座標系(global coordinate system)を設定するために、一つ又はそれ以上のカメラの較正(calibration)を行う。またポイントクラウドコンテンツ提供システムは、上述したキャプチャー方式でキャプチャーされたイメージ及び/又は映像と任意のイメージ及び/又は映像を合成してポイントクラウドコンテンツを生成する。またポイントクラウドコンテンツ提供システムは、仮想空間を示すポイントクラウドコンテンツを生成する場合、図3で説明したキャプチャー動作を行わない。実施例によるポイントクラウドコンテンツ提供システムは、キャプチャーしたイメージ及び/又は映像に対して後処理を行うこともできる。即ち、ポイントクラウドコンテンツ提供システムは、望まない領域(例えば、背景)を除去したり、キャプチャーしたイメージ及び/又は映像が連結された空間を認識して空間(spatial hole)がある場合、それを埋める動作を行うことができる。
またポイントクラウドコンテンツ提供システムは、それぞれのカメラから確保したポイントクラウドビデオのポイントに対して座標系変換を行って、一つのポイントクラウドコンテンツを生成することができる。ポイントクラウドコンテンツ提供システムは、それぞれのカメラの位置座標を基準としてポイントの座標系変換を行う。これにより、ポイントクラウドコンテンツ提供システムは、一つの広い範囲を示すコンテンツを生成するか、或いはポイントの密度が高いポイントクラウドコンテンツを生成することができる。
図4は実施例によるポイントクラウドエンコーダ(Point Cloud Encoder)の一例を示す図である。
図4は図1のポイントクラウドビデオエンコーダ10002の一例を示す。ポイントクラウドエンコーダは、ネットワーク状況或いはアプリケーションなどによってポイントクラウドコンテンツの質(例えば、無損失-lossless、損失-lossy、損失に近い-near-lossless)を調節するために、ポイントクラウドデータ(例えば、ポイントの位置及び/又は特質)を再構成して符号化動作を行う。ポイントクラウドコンテンツの全体サイズが大きい場合(例えば、30fpsの場合、60Gbpsであるポイントクラウドコンテンツ)、ポイントクラウドコンテンツ提供システムは該当コンテンツをリアルタイムストリーミングすることができない。従って、ポイントクラウドコンテンツ提供システムは、ネットワーク環境などに合わせて提供するために、最大ターゲットビットレートに基づいてポイントクラウドコンテンツを再構成することができる。
図1及び図2に示したように、ポイントクラウドエンコーダはジオメトリ符号化及び特質符号化を行うことができる。ジオメトリ符号化は特質符号化よりも先に行われる。
実施例によるポイントクラウドエンコーダは、座標系変換部(Transformation Coordinates)40000、量子化部(Quantize and Remove Points(Voxelize))40001、八分木分析部(Analyze Octree)40002、表面近似分析部(Analyze Surface Approximation)40003、演算エンコーダ(Arithmetic Encode)40004、ジオメトリ再構成部(Reconstruct Geometry)40005、色変換部(Transform Colors)40006、特質変換部(Transfer Attributes)40007、RAHT変換部40008、LOD生成部(Generated LOD)40009、リフト変換部(Lifting)40010、係数量子化部(Quantize Coefficients)40011及び/又は演算エンコーダ(Arithmetic Encode)40012を含む。
座標系変換部40000、量子化部40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004及びジオメトリ再構成部40005は、ジオメトリ符号化を行うことができる。実施例によるジオメトリ符号化は、八分木ジオメトリコーディング、ダイレクトコーディング(direct coding)、trisoupジオメトリ符号化(trisoup geometry encoding)及びエントロピー符号化を含む。ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に或いは組み合わせて適用される。なお、ジオメトリ符号化は上記の例示に限られない。
図示したように、実施例による座標系変換部40000は、位置を受信して座標系(coordinate)に変換する。例えば、位置は3次元空間(例えば、XYZ座標系で表現される3次元空間など)の位置情報に変換される。実施例による3次元空間の位置情報はジオメトリ情報とも称される。
実施例による量子化部40001はジオメトリを量子化する。例えば、量子化部40001は全体ポイントの最小位置値(例えば、X軸、Y軸、Z軸に対して各軸上の最小値)に基づいてポイントを量子化する。量子化部40001は最小の位置値とそれぞれのポイントの位置値との差に所定の量子スケール(quatization scale)値を掛けた後、切り下げ又は切り上げをして最も近い整数値を探す量子化動作を行う。従って、一つ又はそれ以上のポイントは同一の量子化された位置(又は位置値)を有することができる。実施例による量子化部40001は量子化されたポイントを再構成するために、量子化された位置に基づいてボクセル化(voxelization)を行う。2次元イメージ/ビデオ情報を含む最小単位はピクセル(pixel)のように、実施例によるポイントクラウドコンテンツ(又は3次元ポイントクラウドビデオ)のポイントは一つ又はそれ以上のボクセル(voxel)に含まれる。ボクセルはボリューム(Volume)とピクセル(Pixel)を組み合わせた言葉であり、3次元空間を表現する軸(例えば、X軸、Y軸、Z軸)に基づいて3次元空間をユニット(unit=1.0)単位で分けたときに発生する3次元キュービック空間を意味する。量子化部40001は3次元空間のポイントのグループをボクセルでマッチングすることができる。実施例において、一つのボクセルは一つのポイントのみを含むことができる。実施例において、一つのボクセルは一つ又はそれ以上のポイントを含む。また一つのボクセルを一つのポイントで表現するために、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて、該当ボクセルの中央点(ceter)の位置を設定することができる。この場合、一つのボクセルに含まれた全ての位置の特質が統合されて(combined)、該当ボクセルに割り当てられる。
実施例による八分木分析部40002は、ボクセルを八分木構造で表すための八分木ジオメトリコーディング(又は八分木コーディング)を行う。八分木構造は八分割構造に基づいてボクセルにマッチングされたポイントを表現する。
実施例による表面近似分析部40003は、八分木を分析して近似化する。実施例による八分木分析及び近似化は、八分木及びボクセル化を効率的に提供するために、多数のポイントを含む領域をボクセル化するために分析を行う過程である。
実施例による演算エンコーダ40004は、八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。符号化の結果としてジオメトリビットストリームが生成される。
色変換部40006、特質変換部40007、RAHT変換部40008、LOD生成部40009、リフト変換部40010、係数量子化部40011及び/又は演算エンコーダ40012は、特質符号化を行う。上述したように、一つのポイントは一つ又はそれ以上の特質を有する。実施例による特質符号化は、一つのポイントが有する特質に対して等しく適用される。但し、一つの特質(例えば、色相)が一つ又はそれ以上の要素を含む場合は、(各)要素ごとに独立した特質符号化が適用される。実施例による特質符号化は、色変換コーディング、特質変換コーディング、RAHT(Region Adaptive Hierarchial Transform)コーディング、予測変換(Interpolaration-based hierarchical nearest-neighbour prediction-Prediction Transform)コーディング及びリフト変換(interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step(Lifting Transform))コーディングを含む。ポイントクラウドコンテンツによって、上述したRAHTコーディング、予測変換コーディング及びリフト変換コーディングが選択的に使用されるか、又は一つ又はそれ以上のコーディングの組み合わせが使用される。また実施例による特質符号化は上述した例示に限られない。
実施例による色変換部40006は、特質に含まれた色値(又はテクスチャ)を変換する色変換コーディングを行う。例えば、色変換部40006は色相情報のフォーマットを変換(例えば、RGBからYCbCrに変換)する。実施例による色変換部40006の動作は、特質に含まれた色値によって任意に(optional)適用される。
実施例によるジオメトリ再構成部40005は、八分木及び/又は近似化した八分木を再構成(復元)する。ジオメトリ再構成部40005はポイントの分布を分析した結果に基づいて八分木/ボクセルを再構成する。再構成された八分木/ボクセルは再構成されたジオメトリ(又は復元されたジオメトリ)とも呼ばれる。
実施例による特質変換部40007は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。上述したように、特質はジオメトリに従属するので、特質変換部40007は再構成されたジオメトリ情報に基づいて特質を変換することができる。例えば、特質変換部40007は、ボクセルに含まれたポイントの位置値に基づいてその位置のポイントが有する特質を変換することができる。上述したように、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて該当ボクセルの中央点の位置が設定される場合、特質変換部40007は一つ又はそれ以上のポイントの特質を変換する。trisoupジオメトリ符号化が行われた場合、特質変換部40007はtrisoupジオメトリ符号化に基づいて特質を変換することができる。
特質変換部40007は、各ボクセルの中央点の位置(又は位置値)から特定の位置/半径内に隣接しているポイントの特質又は特質値(例えば、各ポイントの色相、又は反射率など)の平均値を計算して特質変換を行う。特質変換部40007は平均値の計算時、中央点から各ポイントまでの距離による加重値を適用する。従って、各ボクセルは位置及び計算された特質(又は特質値)を有する。
特質変換部40007はK-Dツリー又はモールトンコード(moulton code)に基づいて各ボクセルの中央点の位置から特定の位置/半径内に存在する隣接ポイントを探索する。K-Dツリーは二分探索木(binary search tree)で迅速に最短隣接点探索(Nearest Neighbor Search-NNS)をできるように、ポイントを位置基盤に管理する資料構造を支援する。モールトンコードは全てのポイントの3次元位置を示す座標値(例えば、(x,y,z))をビット値で示し、ビットを混ぜて生成される。例えば、ポイントの位置を示す座標値が(5,9,1)であると、座標値のビット値は(0101、1001、0001)である。ビット値をz、y、xの順にビットインデックスに合わせて混ぜると、010001000111である。この値を10進数で示すと1095になる。即ち、座標値が(5,9,1)であるポイントのモールトンコード値は1095である。特質変換部40007はモールトンコード値を基準としてポイントを整列し、depth-first traversal過程により最短隣接点探索(NNS)を行う。特質変換動作後、特質コーディングのための他の変換過程でも最短隣接点探索(NNS)が必要であれば、K-Dツリー又はモールトンコードが活用される。
図示したように、変換された特質はRAHT変換部40008及び/又はLOD生成部40009に入力される。
実施例によるRAHT変換部40008は、再構成されたジオメトリ情報に基づいて特質情報を予測するRAHTコーディングを行う。例えば、RAHT変換部40008は、八分木の下位レベルにあるノードに連関する特質情報に基づいて、八分木の上位レベルにあるノードの特質情報を予測することができる。
実施例によるLOD生成部40009は予測変換コーディングを行うために、LOD(Level of Detail)を生成する。実施例によるLODはポイントクラウドコンテンツの詳細を示す程度であり、LOD値が小さいほどポイントクラウドコンテンツの詳細が下がり、LOD値が大きいほどポイントクラウドコンテンツの詳細が高いことが示されている。ポイントをLODによって分類できる。
実施例によるリフト変換部40010は、ポイントクラウドの特質を加重値に基づいて変換するリフト変換コーディングを行う。上述したように、リフト変換コーディングは選択的に適用される。
実施例による係数量子化部40011は、特質コーディングされた特質を係数に基づいて量子化する。
実施例による演算エンコーダ40012は、量子化された特質を演算コーディングに基づいて符号化する。
図4のポイントクラウドエンコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図4のポイントクラウドエンコーダのエレメントの動作及び/又は機能のうち、いずれか一つを行うことができる。また、一つ又はそれ以上のプロセッサは、図4のポイントクラウドエンコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行することができる。実施例による一つ又はそれ以上のメモリは高速ランダムアクセスメモリを含むか、又は非揮発性メモリ(例えば、一つ又はそれ以上のマグネチックディスク格納デバイス、フラッシュメモリデバイス、又は他の非揮発性固体のメモリデバイス(Solid-state memory devices)など)を含む。
図5は実施例によるボクセルの一例を示す図である。
図5はX軸、Y軸、Z軸の3つの軸で構成された座標系で表現される3次元空間上に位置するボクセルを示す。図4に示すように、ポイントクラウドエンコーダ(例えば、量子化部40001など)はボクセル化を行う。ボクセルは3次元空間を表現する軸(例えば、X軸、Y軸、Z軸)に基づいて3次元空間をユニット(unit=1.0)単位で分けたときに発生する3次元キュービック空間を意味する。図5は2つの極点(0,0,0)及び(2d、2d、2d)により定義される境界ボックス(cubical axis-aligned bounding box)を再帰的に分割(reculsive subdividing)する八分木構造により生成されたボクセルの一例を示す。一つのボクセルは少なくとも一つ以上のポイントを含む。ボクセルはボクセル群(voxel group)との位置関係から空間座標を推定することができる。上述したように、ボクセルは2次元イメージ/映像のピクセルと同様に、特質(色相又は反射率など)を有する。ボクセルに対する具体的な説明は図4で説明した通りであるので、省略する。
図6は実施例による八分木及び占有コード(occupancy code)の一例を示す図である。
図1ないし図4に示したように、ポイントクラウドコンテンツ提供システム(ポイントクラウドビデオエンコーダ10002)又はポイントクラウドエンコーダ(例えば、八分木分析部40002)は、ボクセルの領域及び/又は位置を効率的に管理するために、八分木構造基盤の八分木ジオメトリコーディング(又は八分木コーディング)を行う。
図6の上側は八分木構造を示している。実施例によるポイントクラウドコンテンツの3次元空間は座標系の軸(例えば、X軸、Y軸、Z軸)で表現される。八分木構造は2つの極点(0,0,0)及び(2d、2d、2d)により定義される境界ボックス(cubical axis-aligned bounding box)を再帰的に分割(reculsive subdividing)して生される。2dはポイントクラウドコンテンツ(又はポイントクラウドビデオ)の全体ポイントを取り囲む最小の境界ボックスを構成する値で設定される。dは八分木の深さを示す。d値は以下の式により決定される。以下の式において、(xint
n、yint
n、zint
n)は量子化されたポイントの位置(又は位置値)を示す。
図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サービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信する。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含む。
実施例によるスケーラブル復号は、受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)の復号性能によって受信装置が選択的にジオメトリ及び/又は特質の一部又は全部に対して行う復号である。実施例によるジオメトリ及び特質の一部は部分ジオメトリ(partial geometry)及び部分特質(partial attribute)と呼ばれる。実施例によるジオメトリに適用されるスケーラブル復号はスケーラブルジオメトリ復号又はジオメトリスケーラブル復号と呼ばれる。実施例による特質に適用されるスケーラブル復号はスケーラブル特質復号又は特質スケーラブル復号と呼ばれる。図1ないし図17で説明したように、ポイントクラウドコンテンツのポイントは3次元空間に分布しており、分布されたポイントは八分木構造で表現される。八分木構造はオクトツリー(Octree)を構造であって、上位ノードから下位ノードの方向に深さが増加する。実施例による深さはレベル及び/又はレイヤと呼ばれる。従って、受信装置は低い解像度(resolution)のポイントクラウドコンテンツを提供するために、八分木構造の上位ノードから下位ノードの方向に特定の深さ又はレベルまで対応する部分ジオメトリに対するジオメトリ復号(又はジオメトリスケーラブル復号)及び/又は部分特質に対する特質復号(又は特質スケーラブル復号)を行うことができる。また受信装置は高い解像度のポイントクラウドコンテンツを提供するために、八分木構造の全体に対応するジオメトリ及び特質復号を行うことができる。実施例による受信装置はスケーラブル復号を行って、ポイントクラウドの全体だけではなく、一部に対する表現のためのスケーラブルポイントクラウド表現(scalable point cloud representation)又はスケーラブル表現を提供する。実施例によるスケーラブル表現のレベルは八分木構造の深さに対応する。実施例によるレベル値が増加するほど解像度又は詳細(detail)が増加する。
スケーラブル復号は様々な性能の受信装置を支援し、可変ビットレート(Adaptive bitrate)の環境でも受信装置がポイントクラウドサービスを提供可能にする。しかし、特質復号はジオメトリ復号に基づいて行われるので、正確な特質復号を行うためにはジオメトリ情報が必要である。例えば、RAHTコーディングのための変換係数(Transform coefficient)はジオメトリ分布情報(又はジオメトリ構造情報、例えば、八分木構造など)に基づいて決定される。また予測変換コーディング及びリフト変換コーディングはそれぞれのLODに属するポイントを求めるために、全体ジオメトリ分布情報(又はジオメトリ構造情報、例えば、八分木構造など)が必要である。
従って、受信装置は安定した特質復号を行うために、全てのジオメトリを受信して処理することができる。しかし、受信装置の性能によって実際ディスプレイされないジオメトリ情報を送信及び受信することはビットレートの側面では非効率的である。また受信装置が全てのジオメトリを復号すると、ポイントクラウドコンテンツサービスの提供において遅延が発生し得る。さらに受信装置のデコーダ性能が低い場合は、全てのジオメトリを復号できないこともある。
図18は実施例によるポイントクラウドデータの送信及び受信の構成を示す。
図18はスケーラブル復号及びスケーラブル表現のためのポイントクラウドデータの送信及び受信の構成を示す。
図18の上側に示した例示1800は、部分PCCビットストリーム(Partial PCC bitstream)を送信及び受信する構成の一例である。実施例による送信装置(例えば、図1で説明した送信装置10000又は図12で説明した送信装置)は、ソースジオメトリ(Source geometry)及びソース特質(Source attribute)に対してスケーラブル符号化(Scalable encoding)を行わず、全体符号化を行った後に格納する。即ち、送信装置はジオメトリ及び特質の一部に対して符号化できず、選択的に受信装置が必要な一部のデータを送信することができない。従って、実施例による送信装置は、格納された符号化済みのジオメトリ及び特質を復号し、復号されたジオメトリ及び特質の一部又は全部に対して再度部分符号化のためのトランスコーディングを行って、部分ジオメトリ(Partial geometry)及び部分特質(Partial attribute)を含むビットストリーム(例えば、部分PCCビットストリーム(Partial PCC bitstream))を生成する1801。実施例による受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)は、ビットストリームを受信し復号して部分ジオメトリ及び部分特質を出力する1802。この例示1800に示した構成は、送信装置での更なるデータ処理(例えば、復号及びトランスコーディング)を要求するので、データ処理過程において遅延が発生し得る。
図18の下側に示した例示1810は、全体PCCビットストリーム(Complete PCC bitstream)を送信及び受信する構成の一例である。実施例による送信装置(例えば、図1で説明した送信装置10000又は図12で説明した送信装置)は、スケーラブル符号化(Scalable encoding)を行わず、全体符号化を行って符号化されたジオメトリ及び特質を格納する。実施例による送信装置は、格納されたジオメトリ及び特質の一部に対して低質のポイントクラウドコンテンツのためのトランスコーディングを行って、全体ジオメトリ及び特質を含むビットストリーム(例えば、全体PCCビットストリーム)を生成する1811。実施例によるビットストリームは受信装置のスケーラブル復号のためのシグナリング情報を含む。実施例による受信装置は、ビットストリームを受信しスケーラブル復号を行ってソースジオメトリ及びソース特質を出力するか、又は復号された一部のデータを選択して部分ジオメトリ及び部分特質を出力する1812。この例示1810に示した構成は、不要なデータ(例えば、選択されないジオメトリ及び特質の一部)を送信する必要があるので、帯域幅(bandwidth)の効率が落ちる。また固定帯域幅を使用する場合、送信装置は符号化されたポイントクラウドデータの質を下げて送信することもできる。
図19は実施例によるポイントクラウドデータの八分木構造及びビットストリームを示す。
実施例によるポイントクラウドコンテンツのポイントは3次元空間に分布しており、分布したポイントは八分木で表現される。図6で説明したように、八分木は境界ボックスを再帰的に分割(recursive subdividing)して生成される。八分木は再帰的に分割された領域に対応するノードを含む占有コードを有する。実施例によるノードは再帰的な分割によって生成される空間又は領域に対応する。従って、実施例によるノードは対応する領域内に一つ以上のポイントの存在有無によって0又は1の値を有する。例えば、ノードに対応する領域内に一つ以上のポイントが存在すると、該当ノードの値は1であり、一つ以上のポイントが存在しないと、該当ノードの値は0である。
図19に示した例示1900は八分木構造を示す。実施例による八分木の最上位ノードはルートノード(Root node)と呼ばれ、最下位ノードはリーフノード(Leaf node)と呼ばれる。上述した再帰的分割によって上位ノードから下位ノードの方向にデータ量又はデータの密度が増加するので、実施例による八分木構造は三角形の形態で表現される。実施例によるルートノードは最初の深さ又は最下位レベル(例えば、レベル0)に対応する。実施例によるリーフノードは最終の深さ又は最上位レベル(例えば、レベルn)に対応する。図示した八分木は最上位レベル7を有する。
図8で説明したように、実施例によるポイントクラウドエンコーダ(例えば、図1のポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ、図12、図14及び図15で説明したポイントクラウドエンコーダなど)は、ポイントクラウドのポイントを一つ又はそれ以上のLOD(Level of Detail)に分類する。実施例によるLODは特質符号化のために使用される。実施例によるLODは八分木構造のレベルに対応する。一つのLODは八分木構造の一つのレベルに対応するか、又は一つのLODは八分木構造の一つ又はそれ以上のレベルに対応する。例示1900に示したように、LOD0は八分木構造のレベル0からレベル3(又は深さ0から深さ3)に対応し、LOD1はレベル0からレベル5(又は深さ0から深さ5)に対応し、LOD2はレベル0から最上位レベル7(又は深さ0から深さ7)に対応する。LODと八分木のレベル(又は深さ)の関係は上記の例示に限られない。
図19の下側に示した例示1910は、ジオメトリビットストリーム及び特質ビットストリームを示す。実施例による送信装置(例えば、図1で説明した送信装置10000又は図12で説明した送信装置)は、ジオメトリビットストリーム及び特質ビットストリームを含むビットストリーム(例えば、図10で説明したビットストリーム)を生成して送信する。また、送信装置は八分木構造又はLODに関係なく、ジオメトリビットストリーム及び特質ビットストリームをそれぞれスライスで構成して送信する。従って、例示1910に示したように、ジオメトリビットストリームはLOD0からLOD N(最上位レベルN、例えば、7)に対応するジオメトリを含む。特質ビットストリームはLOD0からLOD Nに対応する特質を含む。即ち、実施例による送信装置が図18の例示1800のように部分ビットストリームを送信するためには、ジオメトリビットストリーム及び特質ビットストリームをそれぞれ復号し、送信に必要な部分ジオメトリ及び部分特質を選択して再び符号化を行う必要がある。
また受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)は、図18の例示1810で説明したように、例示1910に示したビットストリームを受信すると、全てのビットストリームを復号して、必要な一部データのみを選択して部分ジオメトリ及び部分特質を出力する(例えば、図18で説明した受信装置の動作1812)。
従って、実施例による送信装置(又はポイントクラウドエンコーダ)は、不要なデータ送信を減らし、データ処理時間を短縮するために、ジオメトリビットストリーム及び/又は特質ビットストリームをレイヤ(Layer)単位に分けて送信する。実施例によるポイントクラウドデータはSNR(Signal to Noise Ratio)、空間解像度(spatial resolution)、色相(color)、時間周波数(temporal frequency)、ビット深さ(Bit depth)などの様々なパラメータ、変数に基づくレイヤ構造を有する。また実施例によるポイントクラウドデータのレイヤ構造は、上述した八分木構造の深さ(レベル)及び/又はLODのレベルに基づく。例えば、ポイントクラウドデータのレイヤは八分木構造の各深さ又は一つ又はそれ以上の深さに対応する。ポイントクラウドデータのレイヤはLODの各レベル又は一つ又はそれ以上のレベルに対応する。実施例によるジオメトリビットストリームのレイヤは特質ビットストリームのレイヤと同一であるか又は異なる。例えば、ジオメトリビットストリームのレイヤが3である場合、特質ビットストリームのレイヤは3である。またジオメトリビットストリームのレイヤが3である場合は、特質ビットストリームのレイヤは2又は4である。
図20は実施例によるポイントクラウドデータ処理装置の一例を示す。
図20に示す実施例によるポイントクラウドデータ処理装置2000は、図1で説明した送信装置10000又は図12で説明した送信装置の一例である。ポイントクラウドデータ処理装置2000は、図1ないし図17で説明した送信装置の動作と同一又は類似する動作を行う。ポイントクラウドデータ処理装置2000は、図20には示していないが、図1ないし図17で説明した符号化動作を行うための一つ又はそれ以上のエレメントをさらに含む。
ポイントクラウドデータ処理装置2000は、ジオメトリエンコーダ(Geometry encoder)2010、特質エンコーダ(Attribute encoder)2020、サブビットストリーム生成器(Sub-bitstream generator)2030、メタデータ生成器(Metadata generator)2040、多重化器(Mux)2050及び送信機(Transmitter)2060を含む。
実施例によるポイントクラウドデータ(又はポイントクラウド圧縮(Point Cloud Compression、PCC)データ)は、ポイントクラウドエンコーダ1800の入力データとしてジオメトリ及び/又は特質を含む。実施例によるジオメトリはポイントの位置(例えば、ポジション)を示す情報であって、直交座標系、円筒座標系、球面座標系などの座標系のパラメータで表現される。実施例による特質はポイントの特質(例えば、色相、透明度、反射度、グレースケールなど)を示す。ジオメトリはジオメトリ情報(又はジオメトリデータ)とも呼ばれ、特質は特質情報(又は特質データ)とも呼ばれる。
ジオメトリエンコーダ2010は、図1ないし図17で説明したジオメトリコーディング(又はジオメトリ符号化)を行ってジオメトリビットストリームを出力する。ジオメトリエンコーダ2010の動作は、図4で説明した座標系変換部40000、量子化40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004及びジオメトリ再構成部(Reconstruct Geometry)40005の動作と同一又は類似する。また、ジオメトリエンコーダ2010の動作は、図12で説明したデータ入力部12100、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005、演算コーダ12006及びメタデータ処理部12007の動作と同一又は類似する。
特質エンコーダ2020は、図1ないし図17で説明した特質コーディング(又は特質符号化)を行って特質ビットストリームを出力する。特質エンコーダ2020の動作は、
図4で説明したジオメトリ再構成部40005、色相変換部40006、特質変換部40007、RAHT変換部40008、LOD生成部40009、リフト変換部40010、係数量子化部40011及び/又は演算エンコーダ40012の動作と同一又は類似する。また、特質エンコーダ2020の動作は、図12で説明した色相変換処理部12008、特質変換処理部12009、予測/リフト/RAHT変換処理部12110及び演算(Arithmetic)コーダ12011の動作と同一又は類似する。
実施例によるサブビットストリーム生成器2030は、ジオメトリビットストリーム及び特質ビットストリームを受信し、ジオメトリビットストリーム及び特質ビットストリームをそれぞれレイヤ単位にレイヤリング(Layering)して、一つ又はそれ以上のサブビットストリーム(Sub-bitstream)を生成する。実施例によるサブビットストリームはジオメトリサブビットストリーム及び特質サブビットストリームを含む。図19で説明したように、実施例によるレイヤ構造は八分木構造及び/又はLODに基づく。サブビットストリーム生成器2030は、各レイヤに対応するサブビットストリームの整列順序に変更して整列されたレイヤごとの一つ又はそれ以上のサブビットストリーム(例えば、同じレイヤに該当するジオメトリサブビットストリーム及び特質サブビットストリーム)を出力する。実施例によるジオメトリビットストリーム及び特質ビットストリームのレイヤ分割又はレイヤに対するレイヤリング構造情報(layering structure information)はメタデータ生成器2040に伝達される。
メタデータ生成器2040はジオメトリエンコーダ2010のジオメトリコーディング、特質エンコーダ2020の特質コーディング及びサブビットストリーム生成器2030のレイヤ構造に関連するシグナリング情報を生成及び/又は処理する。メタデータ生成器2020の動作は図12で説明したメタデータ処理部12007の動作と同一又は類似する。
多重化器2050は一つ又はそれ以上のサブビットストリーム及びメタデータ生成器2040で出力されたパラメータを多重化して出力する。実施例による送信機2060は多重化器2050で出力されたデータを受信装置に送信する。送信機2060は図1で説明した送信機10003の一例であり、送信機10003の動作と同一又は類似する動作を行う。
図21はジオメトリビットストリーム及び特質ビットストリームのレイヤの一例である。
図18ないし図20で説明したように、実施例によるポイントクラウドデータ処理装置(例えば、図20のポイントクラウドデータ処理装置2000又はサブビットストリーム生成器2040)は、ジオメトリビットストリーム及び特質ビットストリームをレイヤに基づいてレイヤリングして一つ又はそれ以上のサブビットストリームを生成する。図21の例示2100はLOD基盤のジオメトリビットストリーム及び特質ビットストリームのレイヤ構造を示す。
図9で説明したように、低いレベルのLODに含まれたポイントは高いレベルのLODに含まれる。図19で説明したように、ジオメトリビットストリーム2110は全体LODに対応する。従って、ポイントクラウドデータ処理装置は、最も高いLODにのみ含まれるジオメトリ情報を基準としてジオメトリビットストリームをレイヤリングして一つ又はそれ以上のサブビットストリームを生成する。ポイントクラウドデータ処理装置は、ジオメトリビットストリーム2110をレイヤリングしてLOD0、LOD1及びLOD2に対応する第1ジオメトリを含む第1ジオメトリサブビットストリーム2111、LOD1及びLOD2に対応する第2ジオメトリR1を含む第2ジオメトリサブビットストリーム2112、及びLOD2のみに対応する第3ジオメトリR2を含む第3ジオメトリサブビットストリーム2113を生成する。各々のジオメトリサブビットストリームはヘッダ(図においてグレー処理したボックス)とペイロードを含む。
図19で説明したように、特質ビットストリーム2120は全体LODに対応する。従って、ポイントクラウドデータ処理装置は、最も高いLODにのみ含まれる特質情報を基準として特質ビットストリームをレイヤリングして一つ又はそれ以上のサブビットストリームを生成する。ポイントクラウドデータ処理装置は、特質ビットストリーム2120をレイヤリングしてLOD0、LOD1及びLOD2に対応する第1特質を含む第1特質サブビットストリーム2121、LOD1及びLOD2に対応する第2特質R1を含む第2特質サブビットストリーム2122及びLOD2のみに対応する第3特質R2を含む第3特質サブビットストリーム2123を生成する。各々の特質サブビットストリームはヘッダ(図においてグレー処理したボックス)とペイロードを含む
実施例によるポイントクラウドデータ処理装置は一つ又はそれ以上のサブビットストリームの整列順を変更できる。
図22は実施例によるサブビットストリームの整列方法の一例である。
図22の例示2200は直列的に整列されたジオメトリサブビットストリーム及び特質サブビットストリームを示す。
実施例によるポイントクラウドデータ処理装置(例えば、図1で説明した送信装置10000又は図12で説明した送信装置)は、一つ又はそれ以上のジオメトリサブビットストリーム2201(例えば、図21で説明したLOD0、LOD1及びLOD2に対応する第1ジオメトリを含む第1ジオメトリサブビットストリーム2111、LOD1及びLOD2に対応する第2ジオメトリR1を含む第2ジオメトリサブビットストリーム2112、及びLOD2のみに対応する第3ジオメトリR2を含む第3ジオメトリサブビットストリーム2113)を先に整列する。その後、ポイントクラウドデータ処理装置は、一つ又はそれ以上の特質サブビットストリーム(例えば、図21で説明したLOD0、LOD1及びLOD2に対応する第1特質を含む第1特質サブビットストリーム2121、LOD1及びLOD2に対応する第2特質R1を含む第2特質サブビットストリーム2122、及びLOD2のみに対応する第3特質R2を含む第3特質サブビットストリーム2123)を整列して送信する。実施例による受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)は、ジオメトリサブビットストリームを先に復元し、復元されたジオメトリ(又はジオメトリ情報)に基づいて特質サブビットストリームを復元する。
図22の例示2210は並列的に整列されたジオメトリサブビットストリーム及び特質サブビットストリームを示す。実施例によるポイントクラウドデータ処理装置は、同じレイヤに対応するサブビットストリームを共に整列して送信する。ポイントクラウドデータ処理装置は、LOD0、LOD1及びLOD2に対応する第1ジオメトリを含む第1ジオメトリサブビットストリーム(例えば、図21の第1ジオメトリサブビットストリーム2111)及びLOD0、LOD1及びLOD2に対応する第1特質を含む第1特質サブビットストリーム(例えば、図21の第1特質サブビットストリーム2121)を先に整列する2211。ポイントクラウドデータ処理装置は、LOD1及びLOD2に対応する第2ジオメトリR1を含む第2ジオメトリサブビットストリーム(例えば、図21の第2ジオメトリサブビットストリーム2112)及びLOD1及びLOD2に対応する第2特質R1を含む第2特質サブビットストリーム(図21の第2特質サブビットストリーム2122)を整列する2212。ポイントクラウドデータ処理装置は、LOD2のみに対応する第3ジオメトリR2を含む第3ジオメトリサブビットストリーム(例えば、図21の第3ジオメトリサブビットストリーム2113)及びLOD2のみに対応する第3特質R2を含む第3特質サブビットストリーム(例えば、図21の第3特質サブビットストリーム2123)を整列する2213。従って、受信装置はジオメトリ復号及び特質復号を並列的に行って復号実行時間を短縮することができる。また特質復号はジオメトリ復号に基づいて行われるので、受信装置は小さいレイヤ(LOD0)に対応するジオメトリを処理し、同じレイヤの特質を処理することができる。
ポイントクラウドデータ処理装置(例えば、図20で説明したポイントクラウドデータ処理装置2000)は図21及び図22で説明したジオメトリサブビットストリーム及び特質サブビットストリームを多重化してビットストリームの形態で送信する。
ポイントクラウドデータ送信装置は送信チャネルのエラーを考慮してポイントクラウドデータの映像を一つ又はそれ以上のパケットに分けてネットワークにより送信する。実施例によるビットストリームは一つ又はそれ以上のパケット(例えば、NAL(Network Abstraction Layer)ユニット)を含む。従って、劣悪なネットワーク環境において一部のパケットが損失されても、ポイントクラウドデータ受信装置は残りのパケットを用いて該当映像を復元することができる。ポイントクラウドデータを一つ又はそれ以上のスイス又は一つ又はそれ以上のタイルに分割して処理することができる。実施例によるタイル及びスライスはポイントクラウドデータのピクチャを分割(partitioning)してポイントクラウド圧縮コーディング処理するための領域である。ポイントクラウドデータ送信装置はポイントクラウドデータの分かれた領域ごとの重要度によって、それぞれの領域に対応するデータを処理して高品質のポイントクラウドコンテンツを提供する。即ち、実施例によるポイントクラウドデータ送信装置は、ユーザに重要な領域に対応するデータに対しては、さらに良い圧縮効率と適切な遅延を有するポイントクラウド圧縮コーディング処理を行うことができる。
実施例によるポイントクラウドコンテンツの映像(又はピクチャ(picture))はポイントクラウド圧縮コーディングのための基本プロセシングユニット単位に分割される。実施例によるポイントクラウド圧縮コーディングのための基本プロセシングユニットはCTU(Coding Tree unit)、ブリック(brick)などを含むが、上記例示に限られない。
実施例によるスライスは一つ又はそれ以上の整数個のポイントクラウド圧縮コーディングのための基本プロセシングユニットを含む領域であり、矩形状ではない。実施例によるスライスはパケットにより送信されるデータを含む。実施例によるタイルは映像内に矩形状に分割された領域であって一つ又はそれ以上のポイントクラウド圧縮コーディングのための基本プロセシングユニットを含む。実施例による一つのスライスは一つ又はそれ以上のタイルに含まれる。また実施例による一つのタイルは一つ又はそれ以上のスライスに含まれる。
実施例によるビットストリームはシーケンスレベルのシグナリングのためのSPS(Sequence Parameter Set)、ジオメトリ情報コーディングのシグナリングのためのGPS(Geometry Parameter Set)、特質情報コーディングのシグナリングのためのAPS(Attribute Parameter Set)、及びタイルレベルのシグナリングのためのTPS(Tile Parameter Set)を含むシグナリング情報及び一つ又はそれ以上のスライスを含む。
実施例によるSPSはプロファイル、レベルなどのシーケンス全体に対する符号化情報として、ピクチャ解像度、ビデオフォーマットなどのファイル全体に対する包括的な情報を含む。
実施例による一つのスライスはスライスヘッダ及びスライスデータを含む。スライスデータは一つのジオメトリビットストリーム(Geom00)及び一つ又はそれ以上の特質ビットストリーム(Attr00、Attr10)を含む。ジオメトリビットストリームはヘッダ(例えば、ジオメトリスライスヘッダ)及びペイロード(例えば、ジオメトリスライスデータ)を含む。実施例によるジオメトリビットストリームのヘッダはGPSに含まれたパラメータセットの識別情報(geom_geom_parameter_set_id)、タイル識別子(geom_tile id)、スライス識別子(geom_slice_id)及びペイロードに含まれたデータに関する情報などを含む。特質ビットストリームはヘッダ(例えば、特質スライスヘッダ又は特質ブリックヘッダ)及びペイロード(例えば、特質スライスデータ又は特質ブリックデータ)を含む。
図18ないし図22で説明したように、実施例によるポイントクラウドデータ処理装置(例えば、図1で説明した送信装置10000又は図12で説明した送信装置)は、サブビットストリームを生成するためのジオメトリビットストリーム及び特質ビットストリームのレイヤ分割又はレイヤリングに関するレイヤリング構造情報を生成する。実施例によるポイントクラウドデータ処理装置は、スケーラブル表現のためにジオメトリビットストリーム及び特質ビットストリームの一部(例えば、図20ないし図22で説明したジオメトリサブビットストリーム、特質サブビットストリーム)又は全体を送信する。また実施例によるレイヤ分割されたジオメトリビットストリーム、即ち、ジオメトリサブビットストリームはスライスに含まれる。実施例によるジオメトリサブビットストリームを含むスライスはジオメトリスライスと呼ばれる。実施例によるレイヤ分割された特質ビットストリーム、即ち、特質サブビットストリームはスライス(特質スライス)に含まれる。実施例による特質サブビットストリームを含むスライスは特質スライスと呼ばれる。
図23は実施例によるSPSの一例を示す。
図23は実施例によるSPSのためのシンタックスの一例であって、以下の情報(フィールド、パラメータなど)を含む。
profile_idcはビットストリームのプロファイルを示す。この情報は特定の値を有する。特定の値以外の他の値は追って使用するために保留される(reserved)。
profile_compatibility_flagsはビットストリームがprofile_idc値(例えば、j)が示すプロファイルによるビットストリームであるか否かを示す。profile_compatibility_flagsの値が1である場合、SPSが適用されるビットストリームはprofile_idc値(例えば、j)が示すプロファイルによるビットストリームである。profile_compatibility_flagsの値が0である場合、SPSが適用されるビットストリームは許容されるprofile_idc値ではない値が示すプロファイルをよるビットストリームである。
level_idcはビットストリームのレベルを示す。この情報は特定の値を有する。特定の値以外の他の値は追って使用するために保留される(reserved)。
sps_bounding_box_present_flagはソース境界ボックスオフセット(source bounding box offset)及びサイズ情報がSPSでシグナリングされるか否かを示す。実施例によるソース境界ボックスは3次元座標系(例えば、X、Y、Z軸)で表現される3次元空間上のボックス(例えば、図5で説明した境界ボックスなど)であって、ポイントクラウドデータのポイントを含む。sps_bounding_box_present_flagの値が1であると、sps_bounding_box_present_flagはソース境界ボックスオフセット及びサイズ情報がSPSでシグナリングされることを示す。sps_bounding_box_present_flagの値が0であると、sps_bounding_box_present_flagはソース境界ボックスオフセット及びサイズ情報がSPSでシグナリングされないことを示す。
以下はsps_bounding_box_present_flagの値が1である場合、ソース境界ボックスに関連する情報である。
sps_bounding_box_offset_xは直交座標系(cartesian coordinates)内のソース境界ボックスのxオフセットを示す。sps_bounding_box_offset_x情報が存在しないと、sps_bounding_box_offset_xの値は0と推論される。
sps_bounding_box_offset_yは直交座標系(cartesian coordinates)内のソース境界ボックスのyオフセットを示す。sps_bounding_box_offset_y情報が存在しないと、sps_bounding_box_offset_yの値は0と推論される。
sps_bounding_box_offset_zは直交座標系(cartesian coordinates)内のソース境界ボックスのzオフセットを示す。sps_bounding_box_offset_z情報が存在しないと、sps_bounding_box_offset_zの値は0と推論される。
sps_bounding_box_scale_factorは直交座標系内のソース境界ボックスの倍率(scale factor)を示す。sps_bounding_box_scale_factorが存在しないと、sps_bounding_box_scale_factorの値は1と推論される。
sps_bounding_box_size_widthは直交座標系内のソース境界ボックスの幅(width)を示す。sps_bounding_box_size_widthが存在しないと、sps_bounding_box_size_widthの値は1と推論される。
sps_bounding_box_size_heightは直交座標系内のソース境界ボックスの高さ(height)を示す。sps_bounding_box_size_height が存在しないと、sps_bounding_box_size_heightの値は1と推論される。
sps_bounding_box_size_depthは直交座標系内のソース境界ボックスの深さ(depth)を示す。sps_bounding_box_size_depthが存在しないと、sps_bounding_box_size_depthの値は1と推論される。
sps_source_scale_factorはソースポイントクラウド(ポイントクラウドデータ)の倍率(scale factor)を示す。実施例による倍率は浮動小数点(floating point)又は整数で表現される。
sps_seq_parameter_set_idは該当SPSを識別するための識別子(identifier)を提供する。この情報はSPSを参照(reference)する他のシンタックス(例えば、GPS、APS)などのために提供される。実施例の範囲内でsps_seq_parameter_set_idの値は0になる。0ではない他の値は追って使用するために保留される。
sps_num_attribute_setsはビットストリーム内の符号化された特質の個数を示す。実施例によるsps_num_attribute_setsの値は0から63に表現される範囲内に存在する。以下はSPS_num_attribute_setsが示す一つ又はそれ以上の符号化された特質に対して、各特質に関する情報である。図示したiはそれぞれの特質を示す。
attribute_dimension[i]はi番目の特質のコンポーネントの個数を示す。実施例による特質は反射率、色相などを示す。従って、特質が有するコンポーネントの個数は異なる。例えば、色相に対応する特質は3つの色相コンポーネント(例えば、RGB)を有する。従って、反射率(reflectance)に対応する特質は1次元的特質(mono-dimensional attribute)になり、色相に対応する特質は3次元的特質(three-dimensional attribute)になり得る。
attribute_instance_id[i]はi番目の特質のインスタンスID(instance_id)を示す。
attribute_bitdepth[i]はi番目の特質のビット深さ(bitdepth)を示す。
attribute_cicp_colour_primaries[i]はi番目の特質の色相特質ソースプライマリ(colour attribute source primaries)(例えば、白色及び黒色など)の色度座標系(chromaticity coordinates)の座標値を示す。
attribute_cicp_transfer_characteristics[i]はi番目の特質(色相特質)のOTF(Optical-electro Transfer characteristic Function)又は逆OTFを示す。実施例によるOTFは、0から1までの公称値が与えられた範囲(nominal real-valued range)のソース入力線形光学強度(Source Input linear Optical intensity、Lc)の関数である。実施例による逆OTFは、0から1までの公称値が与えられた範囲(nominal real-valued range)の出力線形光学強度(Output linear Optical intensity、Lo)の関数である。
attribute_cicp_matrix_coeffs[i]はi番目の特質の緑色、青色及び赤色又はY、Z及びXプライマリからルマ(luma)及びクロマ(choroma)信号を導き出すために使用されるマトリックスの係数を示す。
attribute_cicp_video_full_range_flag[i]はi番目の特質に対して、E′′及びE′又はE′′及びE′コンポーネント信号(real-valued component signals)抽出されたルマ及びクロマ信号のブラックレベル(black level)及び範囲を示す。
known_attribute_label_flag[i]はi番目の特質のためにknown_attribute_labelがシグナリングされるか否かを示す。known_attribute_label_flag[i]の値が1であると、known_attribute_label_flag[i]はi番目の特質のためにknown_attribute_labelがシグナリングされることを示す。known_attribute_label_flag[i]の値が0であると、known_attribute_label_flag[i]はi番目の特質のためにattribute_label_four_bytes[i]がシグナリングされることを示す。
以下はknown_attribute_label_flag[i]の値が1である時にシグナリングされるknown_attribute_label_flag[i]である。
known_attribute_label[i]は0から2のうちのいずれの値を有する。
known_attribute_label_flag[i]の値が0であると、該当特質は色相又カラー(color)である。
known_attribute_label_flag[i]の値が1であると、該当特質は反射率(reflectance)である。
known_attribute_label_flag[i]の値が2であると、該当特質はフレームインデックスである。
以下はknown_attribute_label_flag[i]の値が0である時にシグナリングされるattribute_label_four_bytes[i]である。
attribute_label_four_bytes[i]は4バイトのコードで知られた特質タイプ(Known attribute type)を示す。attribute_label_four_bytes[i]の値が0である場合、特質タイプは色相又はカラー(color)である。attribute_label_four_bytes[i]の値が1である場合、特質タイプは反射率(reflectance)である。
以下はスライスに関連する情報である。
split_slice_flagはポイントクラウドデータが一つ又はそれ以上のスライスに分かれるか否かを示す。split_slice_flagの値が1である場合、split_slice_flagはポイントクラウドデータ(ジオメトリビットストリーム、特質ビットストリーム)が一つ又はそれ以上のスライスに分かれるか否かを示す。split_slice_flagの値が0である場合、split_slice_flagはポイントクラウドデータ(ジオメトリビットストリーム、特質ビットストリーム)が一つのスライスに含まれることを示す。split_slice_flagの値が1である場合、SPSはsplit_typeを含む。
split_typeはポイントクラウドデータを一つ又はそれ以上のスライスに分かれる方法、方法のタイプ、ジオメトリビットストリーム及び特質ビットストリームのレイヤリング方法又はタイプを示す。例えば、split_typeの値が0であると、split_typeはポイントクラウドデータがLODに基づいて一つ又はそれ以上のスライス(例えば、図20及び図21で説明したジオメトリサブビットストリーム又は特質サブビットストリーム)に分かれていることを示す。例えば、図21及び図22で説明したように、最大LODを基準として分割されたポイントクラウドデータ(例えば、ジオメトリサブビットストリーム2113、特質サブビットストリーム2123)は一つのスライスに含まれる。split_typeの値が1であると、split_typeはポイントクラウドデータが八分木構造のレベルによって一つ又はそれ以上のスライス(例えば、図20及び図21で説明したジオメトリサブビットストリーム又は特質サブビットストリーム)に分かれていることを示す。例えば、一つのスライスは八分木レベル基盤にサンプリングされたポイントクラウドデータ(例えば、特質をマッチングしたカラー化された八分木構造のレベルに基づいてサンプリングされたポイントクラウドデータ)を含む。即ち、実施例によるジオメトリサブビットストリームは八分木レベルに対応する。
split_typeの値が0である場合、SPSは以下の情報を含む。
Num_LODはLODの個数を示す。上述したように、ポイントクラウドデータはLODの個数によって一つ又はそれ以上のスライスに分割される。
full_res_flagは全体LOD又は一部LODに対応するポイントクラウドデータが送信されるか否かを示す。full_res_flagの値が1である場合、full_res_flagは全体LODに対応するジオメトリ及び特質が送信されることを示す。即ち、full_res_flagの値が1である場合、full_res_flagはポイントクラウドデータの全体を構成する情報が送信されることを示す。full_res_flagの値が0である場合、full_res_flagは一部LODに対応するジオメトリ及び特質が送信されることを示す。従って、受信装置はこの情報に基づいて図18及び図19で説明したように、様々な解像度のポイントクラウドコンテンツを提供する。
full_res_flagの値が0である場合、SPSは以下の情報を含む。
full_geo_present_flagは全体ジオメトリが送信されるか否かを示す。full_geo_present_flagの値が1である場合、full_geo_present_flagは全体ジオメトリが送信されることを示す(全体特質送信に関係なく)。従って、受信装置は一部LODに対応する特質を受信しても、全体ジオメトリを復元して全体LODに対応する特質を復元することができる。full_geo_present_flagの値が0である場合、full_geo_present_flagは部分ジオメトリが送信されることを示す。部分ジオメトリは送信された部分特質と同一のLODに対応する。部分ジオメトリが送信された部分特質とは異なるLODに対応する場合、部分ジオメトリに対応するLOD及び部分特質に対応するLODに関する情報が別途にシグナリングされる。
split_info_present_in_slice_header_flagはスライスヘッダに追加情報が送信されるか否かを示す。split_info_present_in_slice_header_flagの値が1であると、split_info_present_in_slice_header_flagはスライスヘッダに追加情報が送信されることを示す。split_info_present_in_slice_header_flagの値が0であると、split_info_present_in_slice_header_flagはスライスヘッダに追加情報が送信されないことを示す。
sps_extension_present_flagはSPSシンタックス構造内にsps_extension_dataシンタックス構造が存在するか否かを示す。sps_extension_present_flagの値が0であると、sps_extension_present_flagはsps_extension_dataシンタックス構造が存在しないことを示す。sps_extension_present_flagの値が1であると、sps_extension_present_flagはSPS_extension_dataシンタックス構造が存在することを示す。
sps_extension_data_flagは任意の値を有する。この情報の存在及び値は受信装置の復号性能に影響を及ぼさない。
図23に示した実施例によるSPSのためのシンタックスは、上記の例示に限られず、図示していない追加情報(又はフィールド、パラメータなど)をさらに含む。
図24は実施例によるジオメトリスライスビットストリームのためのシンタックスの一例である。
図24はポイントクラウドデータが一つ又はそれ以上のスライスに分かれる場合、一つのスライスに対応するジオメトリビットストリーム(又はジオメトリスライスビットストリーム)のためのシンタックスの一例である。
図24に示した1番目のシンタックス2400は、実施例によるジオメトリスライスビットストリームのためのシンタックスの一例を示す。ジオメトリスライスビットストリームはジオメトリスライスヘッダ(geometry_slice_header)及びジオメトリスライスデータ(geometry_slice_data)を含む。
図24に示した2番目のシンタックス2410は、実施例によるジオメトリスライスヘッダのためのシンタックスの一例である。ジオメトリスライスヘッダのためのシンタックスは以下の情報(又はフィールド、パラメータなど)を含む。
gsh_geometry_parameter_set_idはアクティブGPSの識別子又は識別子の値を示す。
gsh_tile_idはジオメトリスライスヘッダが参照するタイルの識別子又は識別子の値を示す。実施例によるgsh_tile_idの値は0から任意の値までの範囲内である。
gsh_slice_idは他のシンタックスにより参照されるスライスヘッダを識別する。gsh_slice_idの値は0から任意の値までの範囲内である。
independent_decodable_flagはこのスライスが独立的に復号できるか否かを示す。independent_decodable_flagの値が1である場合、independent_decodable_flagはこのスライスが独立的に復号できることを示す。independent_decodable_flagの値が0である場合、independent_decodable_flagはこのスライスが独立的に復号できないことを示す。従って、受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)は、他のスライスに基づいてこのスライスを復号する。
図1ないし図22で説明したように、LODレベルが高いほどLODレベルが低いポイントクラウドデータを参照しなければならない。よって、図23で説明したsplit_typeの値が0である場合、LOD0に対応するスライスのindependent_decodable_flagの値は1であり、残りのLOD1ないしLOD Nに対応するスライスのindependent_decodable_flagの値は0である。
以下はindependent_decodable_flagの値が1である場合、関連する情報を示す。
gps_box_present_flagはこのスライスのための境界ボックスが存在するか否かを示す。gps_box_present_flagの値が1である場合、gps_box_present_flagはこのスライスのための境界ボックスが存在することを示す。gps_box_present_flagの値が1である場合は、ジオメトリスライスヘッダのためのシンタックスは以下の情報をさらに含む。
gps_gsh_box_log2_scale_present_flagは境界ボックスのオリジナルスケールがgsh_box_log2_scaleと同一であるか否かを示す。実施例によるgsh_box_log2_scaleはスライスごとに適用される倍率(scale factor)を示す。実施例によるGPS_gsh_box_log2_scaleは全てのスライスに共通に適用される倍率を示す。
gps_gsh_box_log2_scale_present_flagの値が0である場合、gps_gsh_box_log2_scale_present_flagはオリジナルスケールの値がgsh_box_log2_scaleの値と同一に定義されることを示す。gps_gsh_box_log2_scale_present_flagの値が1である場合は、gps_gsh_box_log2_scale_present_flagはオリジナルスケールの値がgps_gsh_box_log2_scaleの値と同一に定義されることを示す。
gps_gsh_box_log2_scale_present_flagの値が1である場合、ジオメトリスライスヘッダのためのシンタックス2410はgsh_box_log2_scaleを含む。
gsh_box_log2_scaleはgsh_slice_idにより識別される各スライスのための境界ボックス原点の倍率を示す。
gsh_box_origin_xはgsh_box_log2_scaleが示す値によってスケールされた境界ボックスの原点のx値を示す。gsh_box_origin_xはスライスの中心x(slice_origin_x)と同一であり、オリジナルスケールよりは小さい。
gsh_box_origin_yはgsh_box_log2_scaleが示す値によってスケールされた境界ボックスの原点のy値を示す。gsh_box_origin_yはスライスの中心y(slice_origin_y)と同一であり、オリジナルスケールよりは小さい。
Gsh_box_origin_zはgsh_box_log2_scaleが示す値によってスケールされた境界ボックスの原点のz値を示す。Gsh_box_origin_zはスライスの中心z(slice_origin_z)と同一であり、オリジナルスケールよりは小さい。
gps_box_present_flagの値が0である場合、スライスの中心x、y及びz値は0と推論される。
以下はindependent_decodable_flagの値が0である場合、関連する情報を示す。
ref_geom_slice_idはスライスを復号する時に参照するジオメトリスライスビットストリームのIDを示す。ref_geom_slice_idの値は該当ジオメトリスライスビットストリームのgsh_slice_idの値と同一である。
split_info_present_in_slice_header_flagはジオメトリスライスヘッダに追加情報が送信されるか否かを示す。split_info_present_in_slice_header_flagの値が1であると、split_info_present_in_slice_header_flagはジオメトリスライスヘッダに追加情報が送信されることを示す。split_info_present_in_slice_header_flagの値が0であると、split_info_present_in_slice_header_flagはジオメトリスライスヘッダに追加情報が送信されないことを示す。
split_info_present_in_slice_header_flagの値が1であると、ジオメトリスライスヘッダのためのシンタックス2410はlayer_infoを含む。
layer_infoはスライスに含まれたジオメトリデータのレイヤ(例えば、図19ないし図22で説明したレイヤ)を示す。図23で説明したsplit_type情報の値が0であると、layer_infoはLODレベルを示す。図23で説明したsplit_type情報の値が1であると、layer_infoは八分木レベル(又は八分木深さ)を示す。
実施例によるジオメトリスライスヘッダのためのシンタックス2410は以下の情報をさらに含む。
gsh_log2_cur_nodesizeはスライスに含まれたポイントクラウドデータを表現するために使用される八分木構造のノードサイズを示す。八分木構造基盤のレイヤリングによりスライスが分かれる場合、gsh_log2_cur_nodesizeは各レイヤに対応する八分木深さのノードサイズを示す。実施例によるノードは3次元キューブを示すので、ノードサイズはNxNxNのように表現される。Nは整数である。例えば、octree depth layerがMaxである場合は1(即ち、八分木ノードサイズが1x1x1である場合)、Max-1である場合は2、Max-2である場合は2x2のように表現される。gsh_log2_cur_nodesizeの値が1である場合、原本ポイントクラウドデータと同じ解像度(resolution)であることを示す。また図23で説明したfull_res_flagの値が0であると、サンプリングされたポイントクラウドデータを表現することを示す。
また、一つのスライスが一つ又はそれ以上の八分木深さに対応するジオメトリデータを含む場合、gsh_log2_cur_nodesizeはリーフノードに最も近い深さに対するノードサイズを示す。
gsh_log2_max_nodesizeは復号過程で使用される変数MaxNodeSize
の値を示す。MaxNodeSizeは以下のように表現される。
MAXNODESIZE=2( gbh_log2_max_nodesize )
八分木の深さは以下のように計算される。
Octree depth layer=gsh_log2_max_nodesize/gsh_log2_cur_nodesize
よって、実施例による受信装置は、gsh_log2_cur_nodesize及びgsh_log2_max_nodesizeに基づいて現在のジオメトリスライスに含まれたポイントクラウドデータ(又はジオメトリ)の八分木構造の深さを確認することができる。
gsh_points_numberはこのスライス内の符号化されたポイントの個数を示す。
図24に示す実施例によるジオメトリスライスヘッダのためのシンタックス2410は、上記例示に限られず、図示していない追加情報(又はフィールド、パラメータなど)をさらに含む。
図25は実施例による特質スライスビットストリームのためのシンタックスの一例である。
図25はポイントクラウドデータが一つ又はそれ以上のスライスに分かれた場合、一つのスライスに対応する特質ビットストリーム(又は特質スライスビットストリーム)のためのシンタックスの一例である。
図25に示した1番目のシンタックス2500は実施例による特質スライスビットストリームのためのシンタックスの一例を示す。特質スライスビットストリームは特質スライスヘッダ(attribute_slice_header)及び特質スライスデータ(attribute _slice_data)を含む。
図25に示した2番目の シンタックス2510は実施例による特質スライスヘッダのためのシンタックスの一例である。特質スライスヘッダのためのシンタックスは以下の情報(又はフィールド、パラメータなど)を含む。
ash_attr_parameter_set_idはアクティブAPSのaps_attr_parameter_set_id(例えば、APSのためのシンタックスに含まれたaps_attr_parameter_set_id)と同じ値を有する。
ash_attr_SPS_attr_idxはアクティブSPS(active SPS)に含まれた特質セットを識別する。
ash_attr_SPS_attr_idxの値は0からアクティブSPS内に含まれたSPS_num_attribute_sets値までの範囲内に属する。
ash_attr_geom_slice_idはアクティブジオメトリスライスヘッダのgsh_slice_id(例えば、図24で説明したジオメトリスライスヘッダのためのシンタックス2410内のgsh_slice_id)の値を示す。図1ないし図24で説明したように、特質復号はジオメトリ復号に基づいて行われる。従って、ash_attr_geom_slice_idは該当特質スライスで参照するジオメトリスライスを示す。
aps_slice_qp_delta_present_flagは特質スライスヘッダに量子化パラメータ(quantization parameter)が含まれるか否かを示す。
aps_slice_qp_delta_present_flagの値が1である場合、特質スライスヘッダのためのシンタックス2510はash_qp_delta_luma及びash_qp_delta_chromaを含む。
ash_qp_delta_lumaはアクティブ特質パラメータセット内のイニシャルスライスqpのルマデルタapを示す。この情報がシグナルされない場合、ash_qp_delta_lumaの値は0と推論される。
ash_qp_delta_chromaはアクティブ特質パラメータセット内のイニシャルスライスqpのクロマデルタapを示す。この情報がシグナルされない場合、ash_qp_delta_chromaの値は0と推論される。
independent_decodable_flagはこのスライスが独立的に復号できるか否かを示す。independent_decodable_flagの値が1である場合、independent_decodable_flagはこのスライスが独立的に復号できることを示す。independent_decodable_flagの値が0である場合、independent_decodable_flagはこのスライスが独立的に復号できないことを示す。よって、受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)は他のスライスに基づいてこのスライスを復号する。
以下はindependent_decodable_flagの値が0である場合、関連する情報を示す。
ref_attr_slice_idはスライスを復号する時に参照する他のスライス(又は特質スライスビットストリーム)のIDを示す。ref_attr_slice_idの値は該当特質スライスビットストリームのash_slice_idの値と同一である。上述したように、特質復号はジオメトリ復号に基づく。従って、実施例による受信装置はref_geom_slice_id(例えば、図24で説明したジオメトリスライスヘッダのためのシンタックス2410内のref_geom_slice_id)によりref_attr_slice_idが識別するスライスを復号する時に必要なジオメトリスライスを確認することができる。また、特質スライスヘッダのためのシンタックス2510はref_attr_slice_idが示すスライスを復号するために必要なジオメトリスライスを識別するための情報(例えば、ash_attr_geom_slice_id)をさらに含む。
split_info_present_in_slice_header_flagは特質スライスヘッダに追加情報が送信されるか否かを示す。split_info_present_in_slice_header_flagの値が1であると、split_info_present_in_slice_header_flagは特質スライスヘッダに追加情報が送信されることを示す。split_info_present_in_slice_header_flagの値が0であると、split_info_present_in_slice_header_flagは特質スライスヘッダに追加情報が送信されないことを示す。
split_info_present_in_slice_header_flagの値が1であると、特質スライスヘッダのためのシンタックス2510はlayer_infoを含む。
layer_infoはスライスに含まれた特質データのレイヤ(例えば、図19ないし図22で説明したレイヤ)を示す。図23で説明したsplit_type情報の値が0であると、layer_infoはLODレベルを示す。図23で説明したsplit_type情報の値が1であると、layer_infoは八分木レベル(又は八分木深さ)を示す。
図25に示した実施例による特質スライスヘッダのためのシンタックス2510は上記例示に限られず、図示していない追加情報(又はフィールド、パラメータなど)をさらに含む。
図26は実施例によるシグナリング情報の構造を示す。
図23ないし図25で説明したように、実施例によるビットストリームはSPS、一つ又はそれ以上のジオメトリスライス及び一つ又はそれ以上の特質スライスを含む。実施例によるポイントクラウドデータ処理装置(例えば、図1で説明した送信装置10000又は図12で説明した送信装置)は、図19の例示1910のようにレイヤードされたジオメトリ全体(例えば、LOD0からLOD N(最上位レベルNであって、例えば、2)に対応するジオメトリ)及びレイヤードされた特質(例えば、LOD0からLOD N(最上位レベルNであって、例えば、2)に対応する特質)を送信する。図26は3レベルのLOD基盤のレイヤ構造を有する全体ジオメトリ及び全体特質が送信される時のシグナリング情報の構造の一例である。
図26の例示2600はSPSのためのシンタックスを示す。実施例によるSPSは図23で説明したSPSのためのシンタックスに含まれる情報(又はパラメータ)を含む。従って、SPSのためのシンタックスに含まれる情報に関する説明は省略する。図26に示すように、SPSはSPS-idを含む。実施例によるジオメトリ及び特質は3レベルのLOD基盤のレイヤ構造を有するので、split_slice flagは1、split_typeは0、num_LODの値は3である。また実施例によるジオメトリ及び特質は全体LODに対応するので、full_res_flagの値は1である。
図19ないし図25で説明したように、一つのスライスは一つのジオメトリサブビットストリーム又は一つのレイヤに対応するジオメトリサブビットストリームを含む。
上述したように、ジオメトリは3レベルのLOD基盤のレイヤ構造を有する。よって、実施例によるジオメトリは最低の第1レベル(又は第1レイヤ)に対応する第1ジオメトリスライス、第2レベル(又は第2レイヤ)に対応する第2ジオメトリスライス、及び最上位の第3レベル(又は第3レイヤ)に対応する第3ジオメトリスライスを含む。
各々のジオメトリスライスはジオメトリスライスヘッダ及びジオメトリスライスデータ(又は図19ないし図22で説明したジオメトリサブビットストリーム)を含む。第1ジオメトリスライスは第1ジオメトリサブビットストリーム(例えば、第1ジオメトリサブビットストリーム2111)を含み、第2ジオメトリスライスは第2ジオメトリサブビットストリーム(例えば、第2ジオメトリサブビットストリーム2112)を含み、第3ジオメトリスライスは第3ジオメトリサブビットストリーム(例えば、第3ジオメトリサブビットストリーム2113)を含む。
図26の例示2610は、第1ジオメトリスライスヘッダのためのシンタックス2611、第2ジオメトリスライスヘッダのためのシンタックス2612、及び第3ジオメトリスライスヘッダのためのシンタックス2613を示す。第1ジオメトリスライスヘッダのためのシンタックス2611、第2ジオメトリスライスヘッダのためのシンタックス2612及び第3ジオメトリスライスヘッダのためのシンタックス2613は各々のジオメトリスライスに含まれ、この例示2610では、説明の便宜のために、ジオメトリスライスヘッダのためのシンタックスを共に示している。
実施例による各々のジオメトリスライスヘッダのためのシンタックスは、図24で説明したジオメトリスライスヘッダのためのシンタックス2410に含まれた情報(又はパラメータ)を含む。よって、実施例によるジオメトリスライスヘッダのためのシンタックスに含まれる情報に関する説明は省略する。
第1ジオメトリスライスは1番目のジオメトリスライスである。従って、実施例による第1ジオメトリスライスヘッダのためのシンタックス2611に含まれたgsh_slice_idの値は0である。上述したように、第1ジオメトリスライスは最低のレベル(又はレイヤ)に対応する。よって、実施例による受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)は、他のジオメトリスライスなしに、第1ジオメトリスライスに含まれたデータを復号してポイントクラウドコンテンツを提供することができる。従って、independent_decodable_flagの値は1である。LODレベルが低いほど、八分木深さのノードサイズは増加する。第1ジオメトリスライスヘッダのためのシンタックス2611は8の値を有するgsh_log2_cur_nodesize及び128の値を有するgsh_log2_max_nodesizeを含む。第2ジオメトリスライスは2番目のジオメトリスライスである。従って、実施例による第2ジオメトリスライスヘッダのためのシンタックス2612に含まれたgsh_slice_idの値は1である。上述したように、第2ジオメトリスライスは2番目のレベル(又はレイヤ)に対応する。よって、実施例による受信装置は第2ジオメトリスライスに含まれたデータを復号するためには第2ジオメトリスライスより低いレベルのジオメトリスライスが必要である。従って、independent_decodable_flagの値は0である。実施例による第2ジオメトリスライスヘッダのためのシンタックス2612はref_geom_slice_id、layer_infoをさらに含む。実施例によるref_geom_slice_idの値は第1ジオメトリスライスのgsh_slice_idの値である0と同一である。実施例によるlayer_infoは第2ジオメトリスライスのレイヤを示す。よって、layer_infoの値は1である。
LODレベルは高いほど八分木深さのノードサイズは減少する。第2ジオメトリスライスヘッダのためのシンタックス2612は4の値を有するgsh_log2_cur_nodesize及び128の値を有するgsh_log2_max_nodesizeを含む。
第3ジオメトリスライスは3番目のジオメトリスライスである。従って、実施例による第3ジオメトリスライスヘッダのためのシンタックス2613に含まれたgsh_slice_idの値は2である。上述したように、第3ジオメトリスライスは3番目のレベル(又はレイヤ)に対応する。よって、実施例による受信装置は第3ジオメトリスライスに含まれたデータを復号するためには、第3ジオメトリスライスより低いレベルのジオメトリスライスが必要である。従って、independent_decodable_flagの値はである。実施例による第3ジオメトリスライスヘッダのためのシンタックス2613はref_geom_slice_id、layer_infoをさらに含む。実施例によるref_geom_slice_idの値は第2ジオメトリスライスのgsh_slice_idの値である1と同一である。実施例によるlayer_infoは第3ジオメトリスライスのレイヤを示す。従って、layer_infoの値は2である。
LODレベルが高いほど八分木深さのノードサイズは減少する。第3ジオメトリスライスヘッダのためのシンタックス2613は1の値を有するgsh_log2_cur_nodesize及び128の値を有するgsh_log2_max_nodesizeを含む。
図19ないし図25で説明したように、一つのスライスは一つの特質サブビットストリーム、又は一つのレイヤに対応する特質サブビットストリームを含む。
上述したように、特質は3レベルのLOD基盤のレイヤ構造を有する。よって、実施例による特質は最低の第1レベル(又は第1レイヤ)に対応する第1特質スライス、第2レベル(又は第2レイヤ)に対応する第2特質スライス、及び最上位の第3レベル(又は第3レイヤ)に対応する第3特質スライスを含む。
各々の特質スライスは、特質スライスヘッダ及び特質スライスデータ(又は図19ないし図22で説明した特質サブビットストリーム)を含む。第1ジオメトリスライスは第1特質サブビットストリーム(例えば、第1特質サブビットストリーム2121)を含み、第2特質スライスは第2特質サブビットストリーム(例えば、第2特質サブビットストリーム2122)を含み、第3特質スライスは第3特質サブビットストリーム(例えば、第3ジオメトリサブビットストリーム2123)を含む。
図26の例示2620は、第1特質スライスヘッダのためのシンタックス2621、第2特質スライスヘッダのためのシンタックス2622及び第3特質スライスヘッダのためのシンタックス2623を示す。第1特質スライスヘッダのためのシンタックス2621、第2特質スライスヘッダのためのシンタックス2622及び第3特質スライスヘッダのためのシンタックス2623は各々の特質スライスに含まれ、この例示2620では、説明の便宜のために、特質スライスヘッダのためのシンタックスを共に示している。
実施例による各々の特質スライスヘッダのためのシンタックスは、図25で説明したジオメトリスライスヘッダのためのシンタックス2510に含まれた情報(又はパラメータ)を含む。よって、実施例による特質スライスヘッダのためのシンタックスに含まれる情報に関する説明は省略する。
第1特質スライスは1番目の特質スライスである。従って、実施例による第1特質スライスヘッダのためのシンタックス2621に含まれたash_slice_idの値は0である。上述したように、第1特質スライスは最低のレベル(又はレイヤ)に対応する。よって、実施例による受信装置は他の特質スライスなしに、第1特質スライスに含まれたデータを復号してポイントクラウドコンテンツを提供することができる。従って、independent_decodable_flagの値は1である。
第2特質スライスは2番目の特質スライスである。従って、実施例による第2特質スライスヘッダのためのシンタックス2622に含まれたash_slice_idの値は1である。上述したように、第2特質スライスは2番目のレベル(又はレイヤ)に対応する。よって、実施例による受信装置は第2特質スライスに含まれたデータを復号するためには、第2の特質スライスより低いレベルの特質スライスが必要である。従って、independent_decodable_flagの値は0である。実施例による第2特質スライスヘッダのためのシンタックス2622は、ref_attr_slice_id、layer_infoをさらに含む。実施例によるref_attr_slice_idの値は第1特質スライスのash_slice_idの値である0と同一である。実施例によるlayer_infoは第2特質スライスのレイヤを示す。従って、layer_infoの値は1である。
第3特質スライスは3番目の特質スライスである。従って、実施例による第3特質スライスヘッダのためのシンタックス2623に含まれたash_slice_idの値は2である。上述したように、第3特質スライスは3番目のレベル(又はレイヤ)に対応する。よって、実施例による受信装置は第3特質スライスに含まれたデータを復号するためには、第3特質スライスより低いレベルの特質スライスが必要である。従って、independent_decodable_flagの値は0である。実施例による第3特質スライスヘッダのためのシンタックス2623は、ref_attr_slice_id、layer_infoをさらに含む。実施例によるref_attr_slice_idの値は第2特質スライスのash_slice_idの値である1と同一である。実施例によるlayer_infoは第3特質スライスのレイヤを示す。従って、layer_infoの値は2である。
実施例による特質スライスヘッダのためのシンタックスは、関連するジオメトリスライスに関する情報をさらに含む。
従って、受信装置はビットストリームを受信し、図24ないし図26で説明したSPS、ジオメトリスライスヘッダ及び特質スライスヘッダからシグナリング情報を得、特定のレイヤ(又はレベル)に対応するジオメトリ及び特質を復号してスケーラブル表現を行うことができる。
図27は実施例によるシグナリング情報の構造を示す。
図27は図26で説明したシグナリング情報の構造の一例である。
図27の上側に示した例示2700は、3レベルのLOD基盤のレイヤ構造を有するジオメトリ及び特質に対して一つ又はそれ以上のレイヤに対応する部分ジオメトリ及び部分特質が送信される時のシグナリング情報の構造の一例である。図27の上側に示した例示2700は、第1レイヤ及び第2レイヤに対応する第1ジオメトリスライス及び第2ジオメトリスライス(例えば、図26で説明した第1ジオメトリスライス及び第2ジオメトリスライス)と第1特質スライス及び第2特質スライス(例えば、図26で説明した第1特質スライス及び第2特質スライス)を送信する時のシグナリング情報の構造を示す。
図27の例示2700は、SPSのためのシンタックス2710を含む。SPSのためのシンタックス2710に含まれた情報は図26で説明した通りであるが、full_res_flagの値が異なる。実施例によるジオメトリ及び特質は一部LODのみに対応するので、full_res_flagの値は0であり、full_geo_present_flagの値は0である。図27の例示2700に含まれた第1ジオメトリスライスヘッダのためのシンタックス2720及び第2ジオメトリスライスヘッダのためのシンタックス2721は、図26で説明した第1ジオメトリスライスヘッダのためのシンタックス2611及び第2ジオメトリスライスヘッダのためのシンタックス2612と同一であるので、具体的な説明は省略する。図27の例示2700に含まれた第1特質スライスヘッダのためのシンタックス2730及び第2特質スライスヘッダのためのシンタックス2731は、図26で説明した第1特質スライスヘッダのためのシンタックス2621及び第2特質スライスヘッダのためのシンタックス2622と同一であるので、具体的な説明は省略する。
図27の下側に示した例示2740は、2レベルのLOD基盤のレイヤ構造を有するジオメトリ及び特質に対して一つ又はそれ以上のレイヤに対応する部分ジオメトリ及び部分特質が送信される時のシグナリング情報の構造の一例である。図27の下側に示した例示2740は、第1レイヤに対応する第1ジオメトリスライス(例えば、図26で説明した第1ジオメトリスライス)と第1特質スライス(例えば、図26で説明した第1特質スライス)を送信する時のシグナリング情報の構造を示す。
図27の例示2740はSPSのためのシンタックス2750を含む。SPSのためのシンタックス2750は、上述したSPSのためのシンタックス2710と同じ情報を含むが、LODレベルが異なる。従って、num_LODの値は2である。図27の例示2740に含まれた第1ジオメトリスライスヘッダのためのシンタックス2760は、図26で説明した第1ジオメトリスライスヘッダのためのシンタックス2611と同一であるので、具体的な説明は省略する。図27の例示2740に含まれた第1特質スライスヘッダのためのシンタックス2770は、図26で説明した第1特質スライスヘッダのためのシンタックス2621と同一であるので、具体的な説明は省略する。
従って、実施例による受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)は、ビットストリームを受信し、図24ないし図27で説明したSPS、ジオメトリスライスヘッダ及び特質スライスヘッダからシグナリング情報を得、特定のレイヤ(又はレベル)に対応するジオメトリ及び特質を復号してスケーラブル表現を行うことができる。
図28は実施例によるシグナリング情報の構造を示す。
図28は図26及び図27で説明したシグナリング情報の構造の一例である。図28に示した例示2800は、3レベルのLOD基盤のレイヤ構造を有するジオメトリ及び特質に対して第1レイヤないし第3レイヤに対応する第1ジオメトリスライスないし第3ジオメトリスライス(例えば、図26で説明した第1ジオメトリスライスないし第3ジオメトリスライス)及び第1レイヤ及び第2レイヤに対応する第1特質スライス及び第2特質スライス(例えば、図26で説明した第1特質スライス及び第2特質スライス)が送信される時のシグナリング情報の構造の一例である。
図28の例示2800は、SPSのためのシンタックス2810を含む。SPSのためのシンタックス2810に含まれる情報は図26で説明した通りであるが、ジオメトリは全体LODに対応し、特質は一部LODのみに対応するので、full_res_flagの値は0であり、full_geo_present_flagの値は1である。
図28の例示2800に含まれた第1ジオメトリスライスヘッダのためのシンタックスないし第3ジオメトリスライスヘッダのためのシンタックスの例示2820は、図26で説明した第1ジオメトリスライスヘッダのためのシンタックス2611ないし第3ジオメトリスライスヘッダのためのシンタックス2623と同一であるので、具体的な説明は省略する。図28の例示2800に含まれた第1特質スライスヘッダのためのシンタックス及び第2特質スライスヘッダのためのシンタックスの例示2830は、図26で説明した第1特質スライスヘッダのためのシンタックス2621及び第2特質スライスヘッダのためのシンタックス2622と同一であるので、具体的な説明は省略する。
従って、実施例による受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)は、ビットストリームを受信し、図24ないし図27で説明したSPS、ジオメトリスライスヘッダ及び特質スライスヘッダからシグナリング情報を得、特定のレイヤ(又はレベル)に対応するジオメトリ及び特質を復号してスケーラブル表現を行うことができる。
図29は実施例によるポイントクラウドデータ処理装置の一例を示す。
図29に示す実施例によるポイントクラウドデータ処理装置2900は、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置の一例である。従って、ポイントクラウドデータ処理装置2900は図20で説明したポイントクラウドデータ処理装置2000の動作の逆過程に対応する動作を行う。ポイントクラウドデータ処理装置2900は、図1ないし図28で説明した受信装置の動作と同一又は類似する動作を行う。ポイントクラウドデータ処理装置2900は、図29には示していないが、図1ないし図28で説明した復号動作を行うための一つ又はそれ以上のエレメントをさらに含む。
ポイントクラウドデータ処理装置2900は、受信機(receiver)2910、逆多重化器(De-mux)2920、メタデータパーサ(Metadata parse)2930、サブビットストリーム分類器(Sub-bitstream classifier)2940、ジオメトリデコーダ(Geometry decoder)2950、特質デコーダ(Attribure decoder)2960、及びレンダラー(Renderer)2970を含む。
実施例による受信機2910は、送信装置(例えば、図1で説明した送信装置10000又は図12で説明した送信装置、図20で説明したポイントクラウドデータ処理装置2000)で出力したデータを受信する。受信機2910が受信したデータは図1で説明したビットストリーム、図20で説明した送信機2060で出力されたデータに対応する。
実施例による逆多重化器2920は、受信したデータをを逆多重化する。即ち、受信されたデータはジオメトリビットストリーム又はジオメトリサブビットストリーム、特質ビットストリーム又は特質サブビットストリーム、及びメタデータ(又はシグナリング情報、パラメータ)に逆多重化される。
実施例によるメタデータパーサ2930は、逆多重化器2920で出力されたメタデータを獲得する。実施例によるメタデータは、図23ないし図28で説明したSPSなどを含む。従って、実施例によるポイントクラウドデータ処理装置2900は、メタデータに基づいてジオメトリ及び特質のレイヤリングに関連する情報を確保することができる。またメタデータパーサ2930は、ジオメトリ復号及び/又は特質復号に必要な情報をそれぞれのデコーダに送信する。実施例によるサブビットストリーム分類器2930は、ジオメトリビットストリーム又はジオメトリサブビットストリーム(例えば、図21及び図22で説明したジオメトリサブビットストリーム)及び特質ビットストリーム又は特質サブビットストリーム(例えば、図21及び図22で説明した特質サブビットストリーム)のヘッダ(例えば、図24及び図25で説明したジオメトリスライスヘッダ又は特質スライスヘッダ)に含まれた情報及びメタデータパーサ2930で出力された情報に基づいて、復号に必要なジオメトリサブビットストリーム及び特質サブビットストリームを分類する。またサブビットストリーム分類器2940は、ジオメトリ及び特質のレイヤを選択する。実施例によるジオメトリデコーダ2950は、一つ又はそれ以上のレイヤに対応する一つ又はそれ以上のジオメトリサブビットストリームを受信し、ジオメトリの復号を行う。実施例によるジオメトリデコーダ2950の動作は、図11で説明した演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び座標系逆変換部11004の動作と同一又は類似するので、具体的な説明は省略する。
実施例による特質デコーダ2960は、ジオメトリデコーダ2950の復号に基づいて一つ又はそれ以上のレイヤに対応する一つ又はそれ以上の特質サブビットストリームを受信し、特質復号を行う。実施例による特質デコーダ2960の動作は、図11で説明した演算デコーダ11005、逆量子化部11006、RAHT変換部11007、LOD生成部11008、逆リフト部11009及び/又は色相逆変換部11010の動作と同一又は類似するので、具体的な説明は省略する。実施例によるレンダラー2970はジオメトリ及び特質を受信して最終出力のためのフォーマットに変換することができる。
図30は実施例によるポイントクラウド復号の動作を示す。
図30はビットストリームを受信して一つ又はそれ以上のサブストリームに分類又は選択するポイントクラウドデータ処理装置(例えば、図29で説明したポイントクラウドデータ処理装置2900又はサブビットストリーム分類器2940)の動作を示す。
図30の上側に示した例示3000は、実施例によるポイントクラウドデータ処理装置がLOD基盤のレイヤ構造を有するジオメトリサブビットストリーム(例えば、図21で説明したLOD0、LOD1及びLOD2に対応する第1ジオメトリを含む第1ジオメトリサブビットストリーム2111、LOD1及びLOD2に対応する第2ジオメトリR1を含む第2ジオメトリサブビットストリーム2112、及びLOD2のみに対応する第3ジオメトリR2を含む第3ジオメトリサブビットストリーム2113)及び特質サブビットストリーム(例えば、図21で説明したLOD0、LOD1及びLOD2に対応する第1特質を含む第1特質サブビットストリーム2121、LOD1及びLOD2に対応する第2特質R1を含む第2特質サブビットストリーム2122、及びLOD2のみに対応する第3特質R2を含む第3特質サブビットストリーム2123)を同じレイヤによって処理する過程を示す。実施例によるポイントクラウドデータ処理装置は、LODレベル1までに対応するレイヤによってジオメトリサブビットストリーム及び特質サブビットストリームを選択して復号する。例示3000の右側に示したように、LODレベル1に対応するポイントクラウドデータを処理するためには、LODレベル0に対応するポイントクラウドデータを共に処理しなければならない。従って、ポイントクラウド処理装置は、受信したビットストリームでLODレベル0及びLODレベル1に対応するジオメトリサブビットストリーム及び特質サブビットストリームを選択して3001、それぞれジオメトリ復号及び特質復号を行う。例示3000に示したR1はLODレベル1にのみ含まれるジオメトリ及び特質を示す。ポイントクラウド処理装置は、受信したビットストリームでLODレベル1より大きいLODレベル(例えば、LODレベル2)に対応するジオメトリサブビットストリーム及び特質ビットストリームを選択しない3002。例示3000に示したR2はLODレベル2にのみ含まれるジオメトリ及び特質を示す。
図30の下側に示した例示3000は、実施例によるポイントクラウドデータ処理装置がLOD基盤のレイヤ構造を有するジオメトリサブビットストリーム及び特質サブビットストリームを互いに異なるレイヤによって処理する過程を示す。実施例によるポイントクラウドデータ処理装置は、LODレベル2までに対応するレイヤによってジオメトリサブビットストリームを選択し、LODレベル1までに対応するレイヤによって特質サブビットストリームを選択して復号する。例示3010の右側に示したように、LODレベル2に対応するジオメトリを復号するためには、LODレベル0及びLODレベル1に対応するジオメトリが必要である。従って、ポイントクラウド処理装置は、受信したビットストリームでLODレベル0、LODレベル1、LODレベル2に対応するジオメトリサブビットストリーム及びLODレベル0及びLODレベル1の特質サブビットストリームを選択して3011、それぞれジオメトリ復号及び特質復号を行う。ポイントクラウド処理装置は、受信したビットストリームでLODレベル1より大きいLODレベル(例えば、LODレベル2)に対応する特質ビットストリームを選択しない3012。
実施例による送信装置(例えば、図1で説明した送信装置10000又は図12で説明した送信装置、図20で説明したポイントクラウドデータ処理装置2000)は、受信装置の性能によって図30に示す例示3000、3010のように、一部ジオメトリ及び一部特質又は一部特質を除去したビットストリームを生成して送信することができる。
図31は実施例によるポイントクラウドデータ送信及び受信構成を示す。
図31はスケーラブル復号及びスケーラブル表現のためのポイントクラウドデータ送信及び受信構成を示す。
図31の上側に示した例示3100は、部分PCCビットストリーム(Partial PCC bitstream)を送信及び受信する構成の一例である。実施例による送信装置(例えば、図1で説明した送信装置10000、図12で説明した送信装置、図20で説明したポイントクラウドデータ処理装置2000)は、ソースジオメトリ(Source geometry)及びソース特質(Source attribute)に対してスケーラブル符号化(Scalable encoding)を行い、図18ないし図29で説明したレイヤによってビットストリーム(又は図21及び図22で説明したサブビットストリーム)を選択して部分PCCビットストリームを生成する。従って、送信装置は必要なデータのみを送信して帯域幅の側面で効率的な情報の送信を行うことができる。実施例による受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置、図29で説明したポイントクラウドデータ処理装置2900)は、部分PCビットストリームを受信して復号して部分ジオメトリ及び部分特質を出力する3102。この例示3100に示す構成は、送信装置での更なるデータ処理(例えば、復号及びトランスコーディング)を要求しないので、データ処理過程で遅延が発生する確率が低くなる。また送信装置はレイヤに関連するシグナリング情報(例えば、図23ないし図28で説明したシグナリング情報)を共に送信するので、受信装置はシグナリング情報に基づいて効率的な部分ジオメトリ及び部分特質の復号を行うことができる。
図31の下側に示した例示3110は、全体PCCビットストリーム(Complete PCC bitstream)を送信及び受信する構成の一例である。実施例による送信装置はスケーラブル符号化(Scalable encoding)を行い、符号化されたジオメトリ及び特質を格納する。実施例による送信装置はジオメトリ及び特質をスライス単位でレイヤリングし、スライス単位のジオメトリ及び特質を含むビットストリーム(例えば、全体PCCビットストリームを生成する3111。送信装置はジオメトリ及び特質のレイヤに関連する情報(例えば、図23ないし図28で説明したシグナリング情報)を共に送信するので、受信装置はレイヤ及びスライスに関する情報を確保することができる。従って、受信装置はビットストリームを受信して、復号前にスライス単位のジオメトリサブビットストリーム及び/又は特質サブビットストリームを選択して全体ジオメトリ及び特質を復号するか、又は一部レイヤに該当するジオメトリ及び特質を復号して、部分ジオメトリ及び部分特質を出力する3112。この例示3110に示した構成によれば、受信装置は性能によって或いは分野によって表現しようとするポイントクラウドデータの密度によってサブビットストリームを選択する。また受信装置は復号前にレイヤを選択してより高い効率の復号を行い、様々な性能のデコーダを支援することができる。
図32は実施例によるポイントクラウドデータ処理方法のフローチャートの一例である。
図32のフローチャート3200はポイントクラウドデータ処理装置(例えば、図1、図11、図14及び図15で説明した送信装置及び図20で説明したポイントクラウドデータ処理装置2000)のポイントクラウドデータ処理方法を示す。実施例によるポイントクラウドデータ処理装置は、図1ないし図31で説明した符号化動作と同一又は類似する動作を行う。
実施例によるポイントクラウドデータ処理装置は、ジオメトリ情報及び特質情報を含むポイントクラウドデータを符号化する3210。実施例によるジオメトリ情報はポイントクラウドデータのポイントの位置を示す情報である。実施例による特質情報はポイントクラウドデータのポイントの特質を示す情報である。
実施例によるポイントクラウドデータ処理装置は、ジオメトリ情報を符号化してジオメトリビットストリームを出力する。またポイントクラウドデータ処理装置は、特質情報を符号化して特質ビットストリームを出力する。実施例によるポイントクラウドデータ処理装置は、図1ないし図31で説明したジオメトリ情報符号化の動作と同一又は類似する動作を行う。また、ポイントクラウドデータ処理装置は、図1ないし図31で説明した特質情報符号化動作と同一又は類似する動作を行う。実施例によるポイントクラウドデータ処理装置(例えば、図20で説明したサブビットストリーム生成器2030)は、ジオメトリビットストリームを一つ又はそれ以上のレイヤに対応する一つ又はそれ以上のジオメトリサブビットストリーム(例えば、図21で説明した第1ジオメトリサブビットストリーム2111、第2ジオメトリサブビットストリーム2112、第3ジオメトリサブビットストリーム2113)を生成する。実施例によるポイントクラウドデータ処理装置(例えば、図20で説明したサブビットストリーム生成器2030)は、特質ビットストリームの一つ又はそれ以上のレイヤに対応する一つ又はそれ以上の特質サブビットストリーム(例えば、図21で説明した第1特質サブビットストリーム2121、第2特質サブビットストリーム2122、第3特質サブビットストリーム2123)を生成する。図20ないし図28で説明したように、 ジオメトリサブビットストリームはジオメトリスライスに含まれ、特質サブビットストリームは特質スライスに含まれる。実施例によるビットストリームは一つ又はそれ以上のジオメトリスライス及び一つ又はそれ以上の特質スライスを含む。ビットストリームに関する具体的な説明は図23で説明した通りである。
実施例によるビットストリームはシグナリング情報(例えば、図23ないし図28で説明したシグナリング情報)を送信する。ビットストリームはスライスに関連する情報(例えば、図23で説明したスライスに関連する情報)を含み、スライスに関連する情報はジオメトリビットストリーム及び特質ビットストリームが一つ又はそれ以上のスライスに分かれるか否かを示す第1情報(例えば、図23で説明したsplit_slice_flag)を含む。第1情報がジオメトリビットストリーム及び特質ビットストリームが一つ又はそれ以上のスライスに分かれることを示すと、スライスに関連する情報はジオメトリサブビットストリーム及び特質サブビットストリームのレイヤがLOD(Level of Detail)に基づくか或いは八分木構造の深さに基づくかを示す第2情報(例えば、図23で説明したsplit_type)を含む。実施例によるシグナリング情報は図23ないし図28で説明した通りであるので、具体的な説明は省略する。
図33は実施例によるポイントクラウドデータ処理方法のフローチャートの一例である。
図33のフローチャート3300はポイントクラウドデータ処理装置(例えば、図1、図13、図14、図16ないし図25で説明したポイントクラウドデータ受信装置又はポイントクラウドデータデコーダ又は図29で説明したポイントクラウドデータ処理装置2900)のポイントクラウドデータ処理方法を示す。実施例によるポイントクラウドデータ処理装置は、図1ないし図31で説明した復号動作と同一又は類似する動作を行う。
実施例によるポイントクラウドデータ処理装置は、ポイントクラウドデータを含むビットストリームを受信する3310。実施例によるジオメトリ情報はポイントクラウドデータのポイントの位置を示す情報である。実施例による特質情報はポイントクラウドデータのポイントの特質を示す情報である。実施例によるビットストリームの構造は図23ないし図28で説明した通りであるので、具体的な説明は省略する。図20ないし図28で説明したように、ジオメトリサブビットストリームはジオメトリスライスに含まれ、特質サブビットストリームは特質スライスに含まれる。実施例によるビットストリームはジオメトリサブビットストリームを含むジオメトリスライス及び特質サブビットストリームを含む。一つ又はそれ以上のジオメトリサブビットストリーム(例えば、図21で説明した第1ジオメトリサブビットストリーム2111、第2ジオメトリサブビットストリーム2112、第3ジオメトリサブビットストリーム2113)及び一つ又はそれ以上の特質サブビットストリーム(例えば、図21で説明した第1特質サブビットストリーム2121、第2特質サブビットストリーム2122、第3特質サブビットストリーム2123)は、一つ又はそれ以上のレイヤに対応する。実施例によるビットストリームはシグナリング情報(例えば、図23ないし図28で説明したシグナリング情報)を送信する。ビットストリームはスライスに関連する情報(例えば、図23で説明したスライスに関連する情報)を含み、スライスに関連する情報はジオメトリビットストリーム及び特質ビットストリームが一つ又はそれ以上のスライスに分かれるか否を示す第1情報(例えば、図23で説明したsplit_slice_flag)を含む。第1情報がジオメトリビットストリーム及び特質ビットストリームが一つ又はそれ以上のスライスに分かれることを示すと、スライスに関連する情報はジオメトリサブビットストリーム及び特質サブビットストリームのレイヤがLOD(Level of Detail)に基づくか或いは八分木構造の深さに基づくかを示す第2情報(例えば、図23で説明したsplit_type)を含む。実施例によるシグナリング情報は図23ないし図28で説明した通りであるので、具体的な説明は省略する。
実施例によるポイントクラウドデータ処理装置はポイントクラウドデータを復号する3320。実施例によるポイントクラウドデータ処理装置はスライスに関連する情報に基づいて任意のレイヤに対応するジオメトリサブビットストリームを復号し、任意のレイヤに対応する特質サブビットストリームを復号して、スケーラブル表現を行う。
図1ないし図33で説明した実施例によるポイントクラウドデータ処理装置の構成要素は、メモリと結合した一つ又はそれ以上のプロセッサを含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。実施例によるデバイスの構成要素は、一つのチップ、例えば、一つのハードウェア回路で具現される。また実施例によるポイントクラウドデータ処理装置の構成要素は、それぞれのチップで具現される。また実施例によるポイントクラウドデータ処理装置の構成要素のいずれかは、一つ又はそれ以上のプログラムを実行可能な一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは図1ないし図33で説明したポイントクラウドデータ処理装置の動作/方法のうちのいずれか一つ又はそれ以上の動作を実行させたり、実行するための指示(Instruction)を含む。
説明の便宜のために、各図を区分して説明したが、各図に述べられている実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。実施例による装置及び方法は、上述したように、説明された実施例の構成と方法が限定して適用されることではなく、実施例は様々に変形可能に各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
実施例による装置及び方法に関する説明は互いに補完して適用できる。例えば、実施例によるポイントクラウドデータ送信方法は実施例によるポイントクラウドデータ送信装置又はポイントクラウドデータ送信装置に含まれた構成要素により行われる。また、実施例によるポイントクラウドデータ受信方法は実施例によるポイントクラウドデータ受信装置又はポイントクラウドデータ受信装置に含まれた構成要素により行われる。
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれ個々のチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のうちのいずれか一つ又はそれ以上の動作/方法を行わせるか、実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではない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ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限されるものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味しない。実施例を説明するために使用される、「~である場合」、「~の時」などの条件表現は選択的な場合にのみ制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。
発明の実施のための最善の形態で具体的に説明する。