添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというより、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に関する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。
実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものもあり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。
図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)の送信経路を示す。フィードバック情報はポイントクラウドコンテンツを消費するユーザとの相互作用を反映するための情報であって、ユーザの情報(例えば、ヘッドオリエンテーション情報)、ビューポート(Viewport)情報などを含む。特に、ポイントクラウドコンテンツがユーザとの相互作用が必要なサービス(例えば、自律走行サービスなど)のためのものである場合には、フィードバック情報はコンテンツ送信側(例えば、送信装置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)方式のうちのいずれか1つ以上に基づいてキャプチャーされる。
図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)、ボクセル化過程を行って復元されたジオメトリ(再構成されたジオメトリ)を生成することができる。
ブロックのエッジに位置するバーテックスはブロックを通過する表面を決定する。実施例による表面は非平面多角形である。三角形再構成の過程ではエッジの開始点、エッジの方向ベクトルとバーテックスの位置値に基づいて三角形で示される表面を再構成する。三角形再構成の過程は以下の通りである。(1)各バーテックスの中心(centroid)値を計算し、(2)各バーテックスの値から中心値を引いた値に(3)自乗を行って、その値を全て併せた値を得る。
加えられた値の最小値を求め、最小値がある軸に沿って投影(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番目のバーテックスで構成される。
表2-1.Triangles formed from vertices ordered 1,…,n
n triangles
3 (1,2,3)
4 (1,2,3), (3,4,1)
5 (1,2,3), (3,4,5), (5,1,3)
6 (1,2,3), (3,4,5), (5,6,1), (1,3,5)
7 (1,2,3), (3,4,5), (5,6,7), (7,1,3), (3,5,7)
8 (1,2,3), (3,4,5), (5,6,7), (7,8,1), (1,3,5), (5,7,1)
9 (1,2,3), (3,4,5), (5,6,7), (7,8,9), (9,1,3), (3,5,7), (7,9,3)
10 (1,2,3), (3,4,5), (5,6,7), (7,8,9), (9,10,1), (1,3,5), (5,7,9), (9,1,5)
11 (1,2,3), (3,4,5), (5,6,7), (7,8,9), (9,10,11), (11,1,3), (3,5,7), (7,9,11), (11,3,7)
12 (1,2,3), (3,4,5), (5,6,7), (7,8,9), (9,10,11), (11,12,1), (1,3,5), (5,7,9), (9,11,1), (1,5,9)
アップサンプリング過程は三角形のエッジに沿って中間に点を追加してボクセル化するために行われる。アップサンプリング係数(upsampling factor)とブロックの幅を基準として追加点を生成する。追加点はリファインドバーテックス(refined vertice)と呼ばれる。実施例によるポイントクラウドエンコーダはリファインドバーテックスをボクセル化することができる。またポイントクラウドエンコーダはボクセル化された位置(又は位置値)に基づいて特質符号化を行うことができる。
図7は実施例による隣接ノードパターンの一例を示す図である。
ポイントクラウドビデオの圧縮効率を増加させるために、実施例によるポイントクラウドエンコーダはコンテキスト適応演算(context adaptive arithmetic)コーディングに基づいてエントロピーコーディングを行う。
図1ないし図6で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダ(例えば、ポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ又は演算エンコーダ40004)は、占有コードをすぐエントロピーコーディングすることができる。またポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダは、現在ノードの占有コードと隣接ノードの占有率に基づいてエントロピー符号化(イントラ符号化)を行うか、又は以前フレームの占有コードに基づいてエントロピー符号化(インター符号化)を行うことができる。実施例によるフレームは、同時間に生成されたポイントクラウドビデオの集合を意味する。実施例によるイントラ符号化/インター符号化の圧縮効率は、参照する隣接ノードの個数によって異なる。ビットが大きくなると複雑になるが、一側に傾くようにして圧縮効率を高めることができる。例えば、3-bit contextを有すると、2の3乗である8つの方法でコーディングする。分けてコーディングする部分は具現の複雑度に影響を及ぼす。従って、圧縮効率と複雑度の適正水準を合わせる必要がある。
図7は隣接ノードの占有率に基づいて占有パターンを求める過程を示す。実施例によるポイントクラウドエンコーダは、八分木の各ノードの隣接ノードの占有率(occupancy)を判断して隣接ノードパターン(neighbor pattern)値を得る。隣接ノードパターンは該当ノードの占有パターンを推論するために使用される。図7の左側はノードに対応するキューブ(真ん中に位置するキューブ)及び該当キューブと少なくとも一面を共有する6つのキューブ(隣接ノード)を示している。図示したノードは同じ深さのノードである。図示した数字は6つのノードとそれぞれ連関する加重値(1、2、4、8、16、32、など)を示す。各加重値は隣接ノードの位置によって順に付与される。
図7の右側は隣接ノードパターン値を示す。隣接ノードパターン値は占有された隣接ノード(ポイントを有する隣接ノード)の加重値が掛けられた値の合計である。従って、隣接ノードパターン値は0から63までの値を有する。隣接ノードパターン値が0であることは、該当ノードの隣接ノードのうち、ポイントを有するノード(占有ノード)がないことを意味する。隣接ノードパターン値が63であることは、隣接ノードが全て占有ノードであることを意味する。図示したように、加重値1、2、4、8が付与された隣接ノードは占有ノードであるので、隣接ノードパターン値は1、2、4、8を足した値である15である。ポイントクラウドエンコーダは隣接ノードパターン値によってコーディングを行うことができる(例えば、隣接ノードパターン値が63である場合、64つのコーディングを行う)。実施例においてポイントクラウドエンコーダは隣接ノードパターン値を変更して(例えば、64を10又は6に変更するテーブルに基づく)、コーディングの複雑度を減らすことができる。
図8は実施例によるLODごとのポイント構成の一例を示す図である。
図1ないし図7で説明したように、特質符号化が行われる前、符号化されたジオメトリは再構成(復元)される。ダイレクトコーディングが適用された場合、ジオメトリ再構成の動作はダイレクトコーディングされたポイントの配置を変更することを含む(例えば、ダイレクトコーディングされたポイントをポイントクラウドデータの前方に配置)。trisoupジオメトリ符号化が適用された場合、ジオメトリ再構成の過程は三角形再構成、アップサンプリング、ボクセル化の過程を特質はジオメトリに従属するので、特質符号化は再構成されたジオメトリに基づいて行われる。
ポイントクラウドエンコーダ(例えば、LOD生成部40009)はポイントをLODごとに分類する(reorganization)。図面はLODに対応するポイントクラウドコンテンツを示す。図において左側はオリジナルポイントクラウドコンテンツを示す。図において左側から2番目は最低LODのポイントの分布を示し、最右側は最高LODのポイントの分布を示す。即ち、最低LODのポイントは粗い(sparse)分布であり、最高LODのポイントは細かい分布である。即ち、図面の下側に示された矢印方向に沿ってLODが増加するほどポイント間の間隔(又は距離)は短くなる。
図9は実施例によるLODごとのポイント構成の一例を示す図である。
図1ないし図8で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダ(例えば、ポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ又はLOD生成部40009)はLODを生成する。LODはポイントを設定されたLOD距離値(又はユークリッド距離(Euclidean Distance)のセット)によって改良レベル(refinement levels)のセットで再整列して生成される。LOD生成過程はポイントクラウドエンコーダだけではなく、ポイントクラウドデコーダでも行われる。
図9の上側は3次元空間に分布されたポイントクラウドコンテンツのポイントの一例(P0~P9)を示す。図9のオリジナルオーダー(Original order)はLOD生成前のポイントP0~P9の順を示す。図9のLOD基盤のオーダー(LOD based order)はLOD生成によるポイントの順を示す。ポイントはLODごとに再整列される。また高いLODは低いLODに属するポイントを含む。図9に示すように、LOD0はP0、P5、P4及びP2を含む。LOD1はLOD0のポイントとP1、P6及びP3を含む。LOD2はLOD0のポイント、LOD1のポイント及びP9、P8及びP7を含む。
図4で説明したように、実施例によるポイントクラウドエンコーダは予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングを選択的に又は組み合わせて行うことができる。
実施例によるポイントクラウドエンコーダは、ポイントに対する予測機(predictor)を生成して各ポイントの予測特質(又は予測特質値)を設定するための予測変換コーディングを行う。即ち、N個のポイントに対してN個の予測機が生成される。実施例による予測機は各ポイントのLOD値とLODごとに設定された距離内に存在する隣接ポイントに対するインデックス情報及び隣接ポイントまでの距離値に基づいて加重値(=1/距離)を計算することができる。
実施例による予測特質(又は特質値)は、各ポイントの予測機に設定された隣接ポイントの特質(又は特質値、例えば、色、反射率など)に各隣接ポイントまでの距離に基づいて計算された加重(又は加重値)を掛けた値の平均値で設定される。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は、各ポイントの特質(特質値)から予測特質(特質値)を引いた残余値(residuals、残余特質、残余特質値、特質予測残余値などとも呼ばれる)を量子化(quatization)及び逆量子化(inverse quantization)することができる。量子化過程は以下の表の通りである。
表.Attribute prediction residuals quantization pseudo code
int PCCQuantization(inT value, inT quantStep) {
if( value >=0) {
return floor(value / quantStep + 1.0 / 3.0);
} else {
return -floor(-value / quantStep + 1.0 / 3.0);
}
}
表.Attribute prediction residuals inverse quantization pseudo Code
int PCCInverseQuantization(inT value, inT quantStep) {
if( quantStep ==0) {
return value;
} else {
return value*quantStep;
}
}
実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがあれば、上述したように、量子化及び逆量子化された残余値をエントロピーコーディングする。実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがないと、上述した過程を行わず、該当ポイントの特質をエントロピーコーディングする。
実施例によるポイントクラウドエンコーダ(例えば、リフト変換部40010)は、各ポイントの予測機を生成し、予測機に計算されたLODを設定及び隣接ポイントを登録し、隣接ポイントまでの距離による加重値を設定してリフト変換コーディングを行う。実施例によるリフト変換コーディングは、上述した測変換コーディングと類似するが、特質値に加重値を累積適用するという点で差がある。実施例による特質値に加重値を累積適用する過程は以下の通りである。
1)各ポイントの加重値を貯蔵する配列QW(QuantizationWieght)を生成する。QWの全ての要素の初期値は1.0である。予測機に登録された隣接ノードの予測機インデックスのQW値に現在ポイントの予測機の加重値を掛けた値を加える。
2)リフト予測過程:予測された特質値を計算するために、ポイントの特質値に加重値を掛けた値を既存の特質値から引く。
3)アップデートウェイト(updateweight)及びアップデートという臨時配列を生成し、臨時配列を0に初期化する。
4)全ての予測機に対して計算された加重値に予測機インデックスに該当するQWに貯蔵された加重値をさらに掛けて算出された加重値をアップデートウェイト配列に隣接ノードのインデックスとして累積して合算する。アップデート配列には隣接ノードのインデックスの特質値に算出された加重値を掛けた値を累積して合算する。
5)リフトアップデート過程:全ての予測機に対して、アップデート配列の特質値を予測機インデックスのアップデートウェイト配列の加重値で割り、割った値に再び既存の特質値を加える。
6)全ての予測機に対して、リフトアップデート過程でアップデートされた特質値にリフト予測過程でアップデートされた(QWに貯蔵された)加重値をさらに掛けて予測特質値を算出する。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は予測特質値を量子化する。またポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は量子化された特質値をエントロピーコーディングする。
実施例によるポイントクラウドエンコーダ(例えば、RAHT変換部40008)は、八分木の下位レベルのノードに連関する特質を使用して上位レベルのノードの特質を予測するRAHT変換コーディングを行う。RAHT変換コーディングは八分木バックワードスキャンによる特質イントラコーディングの一例である。実施例によるポイントクラウドエンコーダは、ボクセルから全体領域にスキャンし、各ステップにおいてボクセルをもっと大きいブロックに合わせながらルートノード(root node)までの併合過程を繰り返して行う。実施例による併合過程は、占有ノードのみについて行われる。空ノード(empty node)については併合過程が行われず、空ノードの直上位ノードについて併合過程が行われる。
図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の動作と同一又は類似する動作のうちのいずれか1つ以上を行う。また、予測変換コーディング、リフト変換コーディング及び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)を含む。
スライス(slice)とは、コーディングされたポイントクラウドフレームの全体又は一部を示すシンタックスエレメントのシリーズをいう。
実施例による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の動作及び/又は復号と同一又は類似する動作及び/又は復号のうちのいずれか1つ以上を行う。実施例による色逆変換処理部13010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色逆変換処理部13010は色逆変換部11010の動作及び/又は逆変換コーディングと同一又は類似する動作及び/又は逆変換コーディングを行う。実施例によるレンダラー13011はポイントクラウドデータをレンダリングする。
図14は実施例によるポイントクラウドデータの送受信方法/装置に連動可能な構造の一例を示す図である。
図14の構造はサーバー1460、ロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440、家電1450及び/又はHMD1470のうちのいずれかがクラウドネットワーク1410に連結された構成を示している。ロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440又は家電1450などは装置とも呼ばれる。またXR装置1430は実施例によるポイントクラウドデータ(PCC)装置に対応するか又はPCC装置に連動する。
クラウドネットワーク1400はクラウドコンピューティングインフラの一部を構成するか、又はクラウドコンピューティングインフラ内に存在するネットワークを意味する。ここで、クラウドネットワーク1400は3Gネットワーク、4G又はLTEネットワーク又は5Gネットワークなどを用いて構成される。
サーバー1460はロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440、家電1450及び/又はHMD1470のいずれかにクラウドネットワーク1400により連結され、連結された装置1410~1470のプロセシングの少なくとも一部を助けることができる。
HMD(Head-Mount Display)1470は実施例によるXRデバイス及び/又はPCCデバイスが具現されるタイプのうちのいずれかを示す。実施例によるHMDタイプのデバイスは、コミュニケーションズユニット、コントロールユニット、メモリユニット、I/Oユニット、センサユニット及びパワー供給ユニットなどを含む。
以下、上記技術が適用される装置1410~1450の様々な実施例について説明する。ここで、図14に示した装置1410~1450は上述した実施例によるポイントクラウドデータ送受信装置に連動/結合することができる。
<PCC+XR>
XR/PCC装置1430はPCC及び/又はXR(AR+VR)技術が適用されて、HMD(Head-Mount Display)、車両に備えられたHUD(Head-Up Display)、TV、携帯電話、スマートフォン、コンピューター、ウェアラブルデバイス、家電機器、デジタル看板、車両、固定型ロボットや移動型ロボットなどで具現されることもできる。
XR/PCC装置1430は、様々なセンサにより又は外部装置から取得した3次元ポイントクラウドデータ又はイメージデータを分析して3次元ポイントに対する位置データ及び特質データを生成することにより周辺空間又は現実客体に関する情報を得て、出力するXR客体をレンダリングして出力することができる。例えば、XR/PCC装置1430は認識された物体に関する追加情報を含むXR客体を該当認識された物体に対応して出力することができる。
<PCC+XR+モバイルフォン>
XR/PCC装置1430は、PCC技術が適用されて、モバイルフォン1440などで具現される。
モバイルフォン1440は、PCC技術に基づいてポイントクラウドコンテンツを復号し、ディスプレイすることができる。
<PCC+自立走行+XR>
自律走行車両1420はPCC技術及びXR技術が適用されて、移動型ロボット、車両、無人飛行体などで具現される。
XR/PCC技術が適用された自律走行車両1420は、XR映像を提供する手段を備えた自律走行車両やXR映像内での制御/相互作用の対象となる自律走行車両などを意味する。特に、XR映像内での制御/相互作用の対象となる自律走行車両1420はXR装置1430とは区分されて互いに連動されることができる。
XR/PCC映像を提供する手段を備えた自律走行車両1420は、カメラを含むセンサからセンサ情報を得、得たセンサ情報に基づいて生成されたXR/PCC映像を出力する。例えば、自律走行車両1420はHUDを備えてXR/PCC映像を出力することにより、搭乗者に現実客体又は画面内の客体に対応するXR/PCC客体を提供することができる。
この時、XR/PCC客体がHUDに出力される場合には、XR/PCC客体の少なくとも一部が搭乗者の視線が向く実際の客体にオーバーラップされるように出力される。反面、XR/PCC客体が自律走行車両内に備えられるディスプレイに出力される場合には、XR/PCC客体の少なくとも一部が画面内の客体にオーバーラップされるように出力される。例えば、自律走行車両1220は車路、他の車両、信号灯、交通表示板、二輪車、歩行者、建物などのような客体に対応するXR/PCC客体を出力することができる。
実施例によるVR(Virtual Reality)技術、AR(Augmented Reality)技術、MR(Mixed Reality)技術及び/又はPCC(Point Cloud Compression)技術は、様々なデバイスに適用可能である。
即ち、VR技術は現実の客体や背景などをCG映像のみで提供するディスプレイ技術である。反面、AR技術は実際物事の映像上に仮想のCG映像を共に見せる技術である。また、MR技術は現実世界に仮想客体を混ぜて見せるという点では上記AR技術と類似する。しかし、AR技術では現実の客体とCG映像からなる仮想の客体の区別が明らかであり、現実客体を補完する形態で仮想の客体を使用する反面、MR技術では仮想の客体と現実の客体が同様の性格と見なされるという点でAR技術とは区別される。より具体的には、例えば、上記MR技術が適用されたものがホログラムサービスである。
但し、最近にはVR、AR、MR技術を明確に区別するよりは、XR(extended Reality)技術とも呼ぶ。よって、本発明の実施例はVR、AR、MR、XR技術のいずれにも適用可能である。かかる技術はPCC、V-PCC、G-PCC技術基盤の符号化/復号が適用される。
実施例によるPCC方法/装置は自律走行サービスを提供する車両に適用できる。
自律走行サービスを提供する車両はPCCデバイスと有無線通信可能に連結される。
実施例によるポイントクラウドデータ(PCC)送受信装置は、車両と有無線通信可能に連結された場合、自律走行サービスと共に提供できるAR/VR/PCCサービス関連コンテンツデータを受信/処理して車両に送信することができる。またポイントクラウドデータ送受信装置車両に搭載された場合は、ポイントクラウド送受信装置はユーザインターフェース装置で入力されたユーザ入力信号によってAR/VR/PCCサービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信する。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含む。
図1ないし図14で説明したように、実施例によるポイントクラウド処理装置(例えば、図1、図12及び図14で説明した送信装置又はポイントクラウドエンコーダ)は、ポイントクラウドコンテンツによって、RAHTコーディング、予測変換コーディング及びリフト変換コーディングを選択的に使用するか、あるいは1つ又はそれ以上のコーディングの組み合わせを使用して特質符号化を行う。例えば、RAHTコーディング及びリフト変換コーディングは、ポイントクラウドコンテンツデータを相当なサイズに圧縮する損失コーディング(lossy coding)に用いたれる。また予測変換コーディングは、無損失コーディング(lossless coding)に用いられる。
上述のように、実施例によるポイントクラウドエンコーダは、ポイントの予測機(predictor)を生成し、各ポイントの予測特質(又は、予測特質値)を設定するための予測変換コーディングを行う。実施例による予測変換コーディング及びリフト変換コーディングは、ポイントクラウドの隣接範囲内で格納されたポイント(以下、対象ポイントという)の位置に基づいて、各隣接ポイントまでの距離(又は、位置)を算出する。算出した距離は、対象ポイントの特質(例えば、色、反射率など)を予測するか、隣接ポイントの距離が変更された場合には、対象ポイントの特質(又は、予測された特質)をアップデートするための参照又は基準加重値として使用される。以下の数式は、隣接ポイントに基づいて予測された対象ポイントの特質を示す。
上記数式において、Pは、対象ポイントの予測特質を示し、d1、d2、d3は、対象ポイントの3つの隣接ポイントのそれぞれまでの距離を示す。それぞれの距離は組み合わされて基準加重値として使用される。C1、C2及びC3(数式に示されていない)は、各々の隣接ポイントの特質を示す。Shiftは、ポイントの平均エネルギー又はパワーの大きさを調節するパラメータである。Shift値は、エンコーダ又はデコーダのハードウェア電圧作動範囲によって調節される。
実施例によるポイントクラウドエンコーダは、ポイント(例えば、隣接ポイント)間の相関度を考慮して、上述した基準加重値を変更することができる。特に、ポイントクラウドエンコーダは、対象ポイントの隣接ポイントまでの距離において特性値を明確化するために、相関結合方式によって上記基準加重値を変更して算出された相関加重値を使用する。よって、ポイントクラウドエンコーダは、ポイント間の相関関係に比例する性能利得を確保することができる。またポイントクラウドエンコーダは、図1ないし図14で説明したRAHTコーディング、予測変換コーディング及びリフト変換コーディングの構造を変更することなく、相関度を考慮した予測機を生成することができる。
図15は、ポイントクラウド符号化の一例を示すフローダイヤグラムである。
図1ないし図14で説明したように、ポイントクラウド送信装置又はポイントクラウドエンコーダ(例えば、図4で説明したポイントクラウドエンコーダ)は、特質を受信する(15100)。
ポイントクラウドエンコーダ(例えば、LOD生成部4009)は、予測変換を行うためにLODを生成する(15200)。ポイントクラウドエンコーダは、改良レベル(refinement level)にポイントを再配列してLODを生成する。よって、LODのレベル値が大きいほどポイントクラウドコンテンツがより詳細であることを示す。実施例によるLODは、ポイント間の距離に基づいてグループ化したポイントを含んでもよい。ポイントクラウドエンコーダは、八分木構造に基づいてポイントを再配列する。グループ化したポイントは、ポイントの位置又はポイントの順序(例えば、モールトンコード順序など)に従って、八分木復号に適用可能な繰り返し的な生成アルゴリズム(iteration generation algorithm)を適用する。各々の繰り返し順序において1つのLOD(例えば、LODi)に属する1つ又はそれ以上の改良レベル(refinement level)、R0、R1、..Riが生成される。つまり、LODのレベルは改良レベルの組み合わせである。
また、図1ないし図14で説明したポイントクラウドエンコーダは、空間的拡張性復号(spatial scalability decoding)を支援する。実施例による空間的拡張性復号は、ポイントクラウド受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)の復号性能に応じて様々な解像度(レゾルーション、resolution)のポイントクラウドコンテンツが提供できるように、ジオメトリ及び/又は特質の一部又は全部に対して行う復号である。空間的拡張性復号は、ジオメトリに対する階層的ジオメトリ復号、特質に対する階層的特質復号のうちの少なくとも1つ以上を含む。階層的特質復号は、上述したRAHTコーディング、予測変換コーディング及びリフト変換コーディングのうちの少なくとも1つ以上を含む。よって、ポイントクラウドエンコーダは、ポイントクラウド受信装置(図10ないし図11で説明したポイントクラウドデコーダ、図13で説明した受信装置など)において階層的特質復号が行えるように特質符号化を行う。空間的拡張性復号を支援するためのLODは、八分木構造において最下端に位置したポイントから最上端に位置したポイントへと、近似最近傍探索(approximate nearest neighbor search)を用いて周りの隣接ポイントを探索することで生成できる。現在LOD内の該当ポイントの最も近い隣接ポイントは、現在LOD(例えば、LODl)のレベルより低いレベルのLOD(例えば、LODl-1)から探索される。また、現在LODより低いレベルのLODは、R0、R1、..、Rl-1の改良レベルの組み合わせである。
また、標準距離に基づいて2つの最も近い直線最短距離(nearest squared distances)間の相関直線距離(correlated squared distances)を算出する。相関直線距離は、以下のように示される。
算出方法は、上述した例示に限られない。
対象ポイントと最後に処理されたポイントとの間の相関直線距離がしきい値(threshold)より低い場合、最後に処理されたポイントの隣接ポイントを初期推測及び探索のために使用する。実施例によるしきい値はユーザによって定義されてもよい。実施例によるしきい値より大きい相関直線距離を有するポイントは除外される。
LOD生成アルゴリズムは、ポイントクラウド受信装置(例えば、図10-11及び図13で説明したポイントクラウドデコーダ及び受信装置)にも適用される。よって、ポイントクラウド受信装置は、上述したLOD生成アルゴリズムに基づいてLODを生成する。
ポイントクラウドエンコーダは、変換コーディングを行う(15300)。図1ないし図14で説明したように、実施例によるポイントクラウドエンコーダは、ポイントクラウドコンテンツに応じて、RAHTコーディング、予測変換コーディング及びリフト変換コーディングを選択的に使用するか、1つ又はそれ以上のコーディングの組み合わせを使用する。
実施例による予測変換コーディングは、補間基盤予測変換コーディング(interpolation based prediction)を含む。ポイントクラウドと連関した特質は、LOD生成過程に従って定義された順序に符号化及び復号される。各々のステップにおいて既に符号化又は復号されたポイントのみが予測のために考慮される。ポイントの特質は、該当ポイントの隣接ポイントの特質(又は特質値)の加重平均値に基づいて予測される。しかし、隣接ポイントグループ内のポイントは、該当ポイントと近く分布するか、遠く分布することがある。よって、密室して分布するポイントにさらに大きい加重値を与え、相対的に密室していないか、遠く離れているポイントに小さい加重値を与えることで、実際のポイント間の相関関係が反映できるため、より正確な予測特質を算出することができる。よって、実施例によるポイントの特質(又は、特質値)は、該当ポイントの最も近い隣接ポイントとの距離基盤のみならず、加重値を追加した補間基盤予測変換コーディング(又は、補間予測変換プロセス)を用いて予測することができる。
実施例によるリフト変換コーディングは、各々のポイントの予測特質を算出するためにアップデートオペレーターを用いる。リフト変換コーディングは、最高レベルのLOD(例えば、LODn)に属するポイントに対して予測値及び残余値を算出する。リフト変換コーディングは、該当ポイントの加重値を算出することができる。該当ポイントのアップデートオペレーターは、算出した加重値及び残余値に基づいてアップデートされた特質値を算出することができる。算出したアップデート特質値は、次のLOD(例えば、上記LODnより1つ低いレベルであるLOD n-1)のポイントの予測特質の算出に使用される。レベルの低いLODは、他のレベルの高いLODにも含まれるポイントを含む。即ち、レベルの低いLODに含まれたポイントは、予測のためにさらに多く使用されるため、LOD基盤のリフト変換コーディングは、レベルの低いLODに属するポイントに対してより多い影響を及ぶ。よって、アップデートオペレーターは、該当ポイントの加重値に該当隣接ポイントの加重値を加算してアップデートされた加重値に基づいてアップデートを行うことができる。
実施例によるリフト変換コーディングは、隣接ポイント間の相関度を反映してアップデートされた加重値を使用する。アップデートオペレーターは、アップデートされた加重値に基づいてアップデート動作を行う。以下、隣接ポイント間の相関度を反映して加重値をアップデートする過程を示す。隣接ポイント間の相関度を反映してアップデートされた加重値は、相関加重値とも呼ばれる。
LOD構造において定義された順序の逆方向(inverse order)に従ってポイントを点検(traverse)する。
実施例によるアップデートプロセスは、ポイントクラウド送信装置及び受信装置に含まれた1つ又はそれ以上のメモリに格納されたプログラム指示によって行われる。実施例によるプログラム指示は、ポイントクラウドエンコーダ及び/又はデコーダ (又は、プロセッサ)によって行われ、ポイントクラウドエンコーダ及び/又はデコーダが特質値をアップデートする。
実施例によるポイントクラウドエンコーダは、量子化を行う(15400)。量子化は、図1ないし図14に示したものと同様であるため、具体的な説明は省略する。上述したポイント間の相関関係による加重値は量子化にも適用可能である。
実施例によるポイントクラウドエンコーダは、演算符号化を行う(15500)。演算符号化は、図1ないし図14に示したものと同様であるため、具体的な説明は省略する。上述したポイント間の相関関係による加重値は、演算符号化にも適用可能である。
図16は、ポイントと隣接ポイントの一例を示す。
図17は、ビットストリーム構造図の一例を示す。
ポイントクラウド処理装置(例えば、図1、図12及び図14に示した送信装置)は、符号化されたポイントクラウドデータをビットストリームの形態で送信することができる。ビットストリームは、ポイントクラウドデータ(又は、ポイントクラウドフレーム)の表現を形成するビットのシーケンスである。
ポイントクラウドデータ(又は、ポイントクラウドフレーム)は、タイル及びスライスに分割することができる。
ポイントクラウドデータは、マルチプルスライス(multiple slices)に分割(partition)することができ、ビットストリーム内で符号化される。1つのスライスは、ポイントの集合であって、符号化されたポイントクラウドデータの全部又は一部を示す構文要素のシリーズで表現される。1つのスライスは、他のスライスに対して依存性を有してもよく、有さなくてもよい。また、1つのスライスは、1つのジオメトリデータユニット(geometry data unit)を含み、1つ以上の特質データユニット(attribute data unit)を有してもよく、有さなくてよい(zero attribute data unit)。上述のように、特質符号化は、ジオメトリ符号化に基づいて行われるため、特質データユニットは同一のスライス内のジオメトリデータユニットに基づく。即ち、ポイントクラウドデータ受信装置(例えは、受信装置10004又はポイントクラウドビデオデコーダ10006)は、復号されたジオメトリデータに基づいて特質データを処理することができる。よって、スライス内においてジオメトリデータユニットは連関した特質データユニットよりも必ず先に現れる。スライス内のデータユニットは必ず連続的であり、スライス間の順序は特定されない。
タイル(tile)は、境界ボックス(例えば、図5に示した境界ボックス)内の長方形直方体(3次元)である。境界ボックスは、1つ又はそれ以上のタイルを含むことができる。1つのタイルは、他のタイルと全部又は一部がオーバーラップされてもよい。1つのタイルは、1つ又はそれ以上のスライスを含む。
よって、ポイントクラウドデータ送信装置は、重要度に応じて、タイルに対応するデータを処理し、高品質のポイントクラウドコンテンツを提供することができる。即ち、実施例によるポイントクラウドデータ送信装置は、ユーザにとって重要な領域に対応するデータに対してさらに良い圧縮効率と適宜な遅延でポイントクラウド圧縮コーディング処理を行うことができる。
実施例によるビットストリームは、シグナル情報及び複数のスライス(slice 0、…、slice n)を含む。図示したように、シグナル情報は、ビットストリーム内においてスライスよりも先に現れる。よって、ポイントクラウドデータ受信装置は、シグナル情報を先に確保し、シグナル情報に基づいて複数のスライスを順次に又は選択的に処理することができる。図示したように、スライス0(slice0)は、1つのジオメトリデータユニット(Geom00)及び2つの特質データユニット(Attr00、Attr10)を含む。また、ジオメトリデータユニットは、同一のスライス内で特質データユニットよりも先に現れる。よって、ポイントクラウドデータ受信装置は、ジオメトリデータユニット(又は、ジオメトリデータ)を先に処理(復号)して、処理されたジオメトリデータに基づいて特質データユニット(又は、特質データ)を処理する。実施例によるシグナル情報は、シグナリングデータ、メタデータなどとも呼ばれ、例示に限られない。
実施例によるシグナル情報は、SPS(Sequence Parameter Set)、GPS(Geometry Parameter set)及び1つ又はそれ以上のAPS(Attribute Parameter Set)を含む。SPSは、プロファイル、レベルなどのシーケンス全体に関する符号化情報であって、ピクチャー解像度、ビデオフォーマットなどのシーケンス全体に関する包括的な情報(シーケンスレベル)を含む。GPSは、シーケンス(ビットストリーム)内に含まれたジオメトリに適用したジオメトリ符号化に関する情報である。GPSは、八分木(例えば、図6に示した八分木)に関する情報、八分木深さに関する情報などを含む。APSは、シーケンス(ビットストリーム)内に含まれた特質の適用した特質符号化に関する情報である。図示したように、ビットストリームは、特質を識別する識別子によって1つ又はそれ以上のAPS(例えば、図示されたAPS0、APS1..)を含む。
実施例によるシグナル情報はTPSをさらに含んでもよい。TPSはタイルに関する情報であって、タイル識別子、タイルサイズなどに関する情報を含む。実施例によるシグナル情報はシーケンス、即ちビットストリームレベルの情報であって、該当ットストリームに適用される。また、シグナル情報は、構文要素(syntax element)及びこれを説明する記述子(Descriptor)を含む構文構造を有する。構文を説明するための擬似コード(pseudo code)が使用される。また、ポイントクラウド受信装置は構文内に示される構文要素を順次に分析して処理することができる。
図示しないが、実施例によるジオメトリデータユニット及び特質データユニットのそれぞれはジオメトリヘッダ及び特質ヘッダを含む。実施例によるジオメトリヘッダ及び特質ヘッダは、該当スライスレベルにおいて適用されるシグナル情報であって、上述した構文構造を有する。
実施例によるジオメトリヘッダは、該当ジオメトリデータユニットを処理するための情報(又は、シグナル情報)を含む。よって、ジオメトリヘッダは該当ジオメトリデータユニット内で一番先に現れる。ポイントクラウド受信装置は、ジオメトリヘッダを先に分析してジオメトリデータユニットを処理することができる。ジオメトリヘッダは、全体のジオメトリに関する情報を含むGPSと連関関係を有する。よって、ジオメトリヘッダは、GPSに含まれたgps_geom_parameter_set_idを特定する情報を含む。また、ジオメトリヘッダは、ジオメトリデータユニットが属するスライスと関連したタイル情報(例えば、tile_id)、スライス識別子などを含む。
実施例による特質ヘッダは、該当特質データユニットを処理するための情報(又は、シグナル情報)を含む。よって、特質ヘッダは、該当特質データユニット内で一番先に現れる。ポイントクラウド受信装置は、特質ヘッダを先に分析して特質データユニットを処理することができる。特質ヘッダは、全体の特質に関する情報を含むAPSと連関関係を有する。よって、特質ヘッダは、APSに含まれたaps_attr_parameter_set_idを特定する情報を含む。上述のように、特質復号は、ジオメトリ復号に基づくため、特質ヘッダは該当特質データユニットと連関したジオメトリデータユニットを確定するために、ジオメトリヘッダ内に含まれたスライス識別子を特定する情報などを含む。
ポイントクラウドデータ処理装置が、図15ないし図16に示した相関加重値に基づいて特質符号化を行った場合、ビットストリーム内のシグナル情報は、相関加重値に関する情報を含む。実施例による相関加重値に関する情報は、シーケンスレベルのシグナル情報(例えば、SPS、APSなど)に含まれてもよく、スライスレベル(例えば、特質ヘッダなど)に含まれてもよい。
図18は、実施例によるシグナル情報の一例を示す。
図18は、図17に示したSPSの構文構造であって、図17に示した相関加重値に関する情報がシーケンスレベルのSPSに含まれた一例を示す。
実施例によるSPSの構文は、以下の構文要素を含む。
profile_compatibility_flags:ビットストリームが復号のための特定のプロファイル(profile)に従うか、又は他のプロファイルにも従うかを示す。プロファイルはビットストリームを復号するための特性(capabilities)を特定するためにビットストリームに与えられる制約条件を特定する。各々のプロファイルは、アルゴリズム的な特徴及び制限事項のセブセット(subset)であって、該当プロファイルに従う全てのデコーダによって支持される。復号のためのものであって標準などによって定義できる。
level_idc:ビットストリームに適用されるレベルを示す。レベルは全てのプロファイル内で使用される。一般に、レベルは特定のデコーダ処理負荷及びメモリ特性に対応する。
sps_bounding_box_present_flag:sps内の境界ボックスに関する情報が存在するか否かを示す。sps_bounding_box_present_flagの値が1であると、境界ボックスに関する情報が存在することを示し、sps_bounding_box_present_flagの値が0であると、境界ボックスに関する情報は定義されていないことを示す。
以下、sps_bounding_box_present_flagの値が1であるときにspsに含まれる境界ボックスに関する情報である。
sps_bounding_box_offset_x:x、y、z軸を含むデカルト座標系内のソース境界ボックス(source bounding box)の量子化されたx軸オフセットを示す。
sps_bounding_box_offset_y:x、y、z軸を含むデカルト座標系内のソース境界ボックス(source bounding box)の量子化されたy軸オフセットを示す。
sps_bounding_box_offset_z:x、y、z軸を含むデカルト座標系内のソース境界ボックス(source bounding box)の量子化されたz軸オフセットを示す。
sps_bounding_box_scale_factor:ソース境界ボックスのサイズを示すために使用されるスケール因子(scale factor)を示す。
sps_bounding_box_size_width:x、y、z軸を含むデカルト座標系内のソース境界ボックス(source bounding box)の広さを示す。
sps_bounding_box_size_height:x、y、z軸を含むデカルト座標系内のソース境界ボックス(source bounding box)の高さを示す。
sps_bounding_box_size_depth:x、y、z軸を含むデカルト座標系内のソース境界ボックス(source bounding box)の深さを示す。
実施例によるSPS構文は、以下の要素をさらに含む。
sps_source_scale factor:ソースポイントクラウドデータ(source point cloud Data)のスケール因子を示す。
sps_seq_parameter_set_id:他の構文要素(例えば、GPS内のseq_parameter_set_idなど)による参照のためのSPSの識別子である。
sps_num_attribute_sets:ビットストリーム内において符号化された特質の数を示す。sps_num_attribute_setsの値は0から63までの範囲内に含まれる。
以下、sps_num_attribute_setsが指示する数だけの特質のそれぞれに関する情報を示す要素を含む。図示されたiは各々の特質(又は、特質セット)を示し、iの値は0より大きいか同一であり、sps_num_attribute_setsが指示する数より小さい。
attribute_dimension_minus1[ i ]:i番目の特質のコンポーネントの数より1の小さい値を示す。特質が色(colour)である場合、特質は対象ポイントの光の特性を示す3次元(3dimension)信号に対応する。例えば、特質はRGB(Red、Green、Blue)の3つのコンポーネントにシグナルされる。また、特質は、ルマ(luma、輝度)及び2つのクロマ(chorma、彩度)であるYUVの3つのコンポーネントにシグナルされる。特質が反射率(reflectance)である場合、特質は対象ポイントの光の反射率の強度の比率を示す1次元信号に対応する。
attribute_instance_id[ i ]:i番目の特質のインスタンスidを示す。attribute_instance_idは、同一の特質レベルと特質を区分するために使用される。
attribute_bitdepth_minus1[ i ]:i番目の特質信号の1番目のコンポーネントのビット深さよりも1の小さい値である。この値に1を加算した値は1番目のコンポーネントのビット深さを特定する。
attribute_cicp_colour_primaries[ i ]:i番目の特質の色特質ソース原色(primary)の色度座標系(chromaticity coordinates)を示す。
attribute_cicp_transfer_characteristics[ i ]:0から1の公称実数値範囲(nominal real-valued range)を有するソース入力線形光強度(optical intensity)Lcの関数であって、色特質の基準光電子伝達特性関数(opto-electronic transfer characteristic function)を示すか、0から1の公称実数値範囲を有する出力線形光強度Loの関数であって、色特質の基準電気光学伝達特性関数の逆関数を示す。
attribute_cicp_matrix_coeffs[ i ]:RBG又はYXZ原色からルマ及びクロマのシグナルを誘導するのに使用されるマトリックス係数を示す。
attribute_cicp_video_full_range_flag[ i ]: E′E′及びE′又はE′E′′実数値を有するコンポーネントシグナルから派生するルマ及びクロマ信号のブラックレベル及び範囲を示す。
上述のように、SPS構文は、相関加重値に関する情報を含む。以下の要素は、図15ないし図16に示した相関加重値に関する情報を示す。
attribute_correlated_weight_flag:算出された距離値が必ず相関しているか否かを示す。attribute_correlated_weight_flagの値が1であると、算出された距離値が相関していることを示し(即ち、相関加重値が使用されている)、attribute_correlated_weight_flagの値が0であると、そうではないことを示す。デフォルト値は0と推論される。
attribute_correlated_weight method: attribute_correlated_weight_flagの値が1である場合の相関加重値を算出する方法を示す。例えば、相関加重値を算出する方法は、図15に示した数式2ないし4を含む。よって、ポイントクラウド受信装置は、attribute_correlated_weight methodで指示する方法に従って相関加重値を算出し、補間基盤予測変換コーディング及びリフト変換コーディングを行う。
実施例による相関加重値に関する情報は、上記例示に限られない。よって、相関加重値に関する情報は、相関加重変数に関する情報、相関ポイントセット内の隣接ノード数に関する情報などをさらに含んでもよい。
実施例によるSPSの構文は、以下の構文要素を含む。
known_attribute_label_flag[ i ]、known_attribute_label[ i ]、and attribute_label_fourbytes[ i ]は、i番目の特質内から送信されるデータのタイプを識別するために共に用いられる。known_attribute_label_flag[ i]は、特質がknown_attibute_label[ i ]の値又は他の客体識別子attribute_label_fourbytes [ i ]で識別されるか否かを示す。
sps_extension_flag:sps_extension_data_flagがSPS内に示されるか否かを示す。sps_extension _flagの値が0であると、SPS構文構造内にsps_extension_data_flag構文要素が存在しないことを示す。sps_extension_flagの値1は、今後の使用のために保存される。デコーダは1の値を有するsps_extension_flagの以後に現れる全てのsps_extension_data_flag構文要素を無視することができる。
sps_extension_data_flag:今後の使用のためのデータが存在するか否かを示し、いずれの値でも有することができる。
実施例によるSPS構文は、上記例示に限られず、更なる要素を含んでもよく、シグナリングの効率性のために、図示された一部の要素を含まなくてもよい。一部の要素は、SPSではなく、他のシグナル情報(例えば、APS、特質ヘッダなど)又は特質データユニットによってシグナルされてもよい。また、構文要素は、第1の情報、第2の情報などとも呼ばれる。
図19は、実施例によるシグナル情報の一例を示す。
図19は、図17に示したAPSの構文構造であって、図17に示した相関加重値に関する情報がシーケンスレベルのAPSに含まれた一例を示す。
実施例によるAPSの構文は、以下の構文要素を含む。
aps_attr_parameter_set_id:他の構文要素による参照ためのAPSの識別子を示す。aps_attr_parameter_set_idは0~15の範囲内の値を有する。ビットストリーム(例えば、図17に示したビットストリーム)内には1つ又はそれ以上の特質データユニットが含まれ、各々の特質データユニットは特質ヘッダを含む。特質ヘッダは、aps_attr_parameter_set_idと同一値を有するフィールド(例えば、ash_attr_parameter_set_id)を含む。実施例によるポイントクラウド受信装置は、APSを分析して同一のaps_attr_parameter_set_idを参照する特質データユニットを分析されたAPS及び特質ヘッダに基づいて処理する。
aps_seq_parameter_set_id:アクティブSPS(active SPS)のためのsps_seq_parameter_set_idの値を示す。aps_seq_parameter_set_idは0~15の範囲内の値を有する。
attr_coding_type:与えられた値に対する特質コーディングタイプ(coding type)を示す。特質コーディングは特質符号化を意味する。上述のように、特質コーディングは、RAHTコーディング、予測変換コーディング及びリフト変換コーディングのうちの少なくとも1つを使用して、attr_coding_typeは、上述した3つのコーディングのタイプのうちのいずれか1つを示す。よって、attr_coding_typeの値はビットストリームにおいて0、1又は2のいずれか1つである。他のattr_coding_typeの値はISO/IECによって今後使用されてもよい。よって、実施例によるポイントクラウド受信装置は、0、1及び2ではない値を有するattr_coding_typeを無視する。値が0であると、特質コーディングタイプは予測変換コーディング、値が1であると、特質コーディングタイプはRAHTコーディング、値が2であると、特質コーディングタイプはリフト変換コーディングである。attr_coding_typeの値は変更可能であり、本例示に限られない。例えば、値が0であると、特質コーディングタイプはRAHTコーディング、値が1であると、特質コーディングタイプはLOD基盤予測変換(LOD with predicting transform)コーディング、値が2であると、特質コーディングタイプはLOD基盤リフト変換(LOD with lifting transform)コーディングを示す。
aps_attr_initial_qp:現在のAPSを参照する各々のスライスのための変数SliceQPの初期値を示す。
aps_attr_chroma_qp_offset:aps_attr_initial_qpによってシグナルされる初期量子化パラメータに適用されるオフセットを特定する。
aps_slice_qp_delta_present_flag:特質データユニットのヘッダ内にash_attr_qp_offsetによって指示されるコンポーネントQPオフセットが存在するか否かを示す。
上述のようにAPS構文は、図15ないし図16に示した相関加重値に関する情報を含む。図示したように、APS構文は、attribute_correlated_weight_flag及びattribute_correlated_weight methodを含む。各要素に関する説明は、図18に示したものと同様であるため省略する。
実施例による相関加重値に関する情報は、上記例示に限られない。よって、相関加重値に関する情報は、相関加重変数に関する情報、相関ポイントセット内の隣接ノードの数に関する情報などをさらに含んでもよい。
以下、attr_coding_typeの値がリフト変換コーディングを示す場合のAPSに示される構文要素を示す。
lifting_num_pred_nearest_neighbours:予測のために使用される最も近い隣接ポイントの最大数を特定する。
lifting_max_num_direct_predictors:ダイレクト予測のために使用される予測機の最大数を示す。
lifting_search_range:予測のために使用される最も近い隣接ポイントを決定し、距離に基づくLOD生成のために使用される探索範囲(search range)を特定する。
lifting_lod_regular_sampling_enabled_flag:LODを生成するために使用されたサンプリング戦略を示す。lifting_lod_regular_sampling_enabled_flagの値が1であると、lifting_lod_regular_sampling_enabled_flagはレギュラーサンプリング戦略(regular sampling strategy)を用いてLODを生成したことを示す。lifting_lod_regular_sampling_enabled_flagの値が0であると、lifting_lod_regular_sampling_enabled_flagは、距離に基づくサンプリング戦略(distance-based sampling strategy)を用いてLODを生成したことを示す。
lifting_num_detail_levels_minus1:特質コーディングのためのLODの数を示す。lifting_num_detail_levels_minus1の値は0より大きいか同一である。
以下、lifting_num_detail_levels_minus1が指示する数だけの各々のLODに関する情報を示す要素を含む。図示されたidxは、各々のLODを示し、idxの値は0より大きいか同一であり、lifting_num_detail_levels_minus1が指示する数よりは小さい。
lifting_lod_regular_sampling_enabled_flagの値が1であると、lifting_sampling_period[ idx ]が含まれる。lifting_lod_regular_sampling_enabled_flagの値が0であると、lifting_sampling_distance_squared[ idx ]が含まれる。
lifting_sampling_period[ idx ]: LOD idxのためのサンプリング周期(sampling period)を特定する。
lifting_sampling_distance_squared[ idx ]: LOD idxのためのサンプリング距離の二乗を誘導するための倍率因数(scaling factor)を特定する。
attr_coding_typeが特質コーディングは予測変換コーディングであることを示す場合、APSは以下の構文要素を含む。
lifting_adaptive_prediction_threshold:適応予測(adaptive prediction)を可能にするしきい値(threshold)を示す。
lifting_intra_lod_prediction_num_layers:同一のLODレイヤに含まれた復号されたポイントが対象ポイントの予測値を生成するように参照可能なLODレイヤの数を特定する。
実施例によるAPSの構文は、以下の構文要素を含む。
aps_extension_flag:aps_extension_data_flagがAPS内に存在するか否かを示す。aps_extension _flagの値が0であると、APS構文構造内にaps_extension_data_flag構文要素が存在しないことを示す。aps_extension_flagの値の1であると、今後の使用のために保存される。デコーダは1の値を有するaps_extension_flag以後に示される全てのaps_extension_data_flag構文要素を無視することができる。
aps_extension_data_flag:今後の使用のためのデータが存在するか否かを示し、いずれの値でも有することができる。
実施例によるAPS構文は、上記例示に限られず、さらなる要素を含んでもよく、シグナリングの効率性のために、図示された一部の要素を含まなくてもよい。一部の要素は、APSではない他のシグナル情報(例えば、特質ヘッダなど)又は特質データユニットによってシグナルされてもよい。また、構文要素は、第1の情報、第2の情報とも呼ばれる。
図15ないし図19に示したように、相関加重値は、2つ以上の隣接ポイントが存在する場合、ポイント間の相関関係に基づいて算出することができる。相関加重値を算出する方法は、従来の特質符号化のためのアルゴリズムを変更せずに算出できるため、システム設計の柔軟性が確保できる。また、予測/リフト変換において使用される加重常数の代わりに相関加重値を使用することで、符号化及び復号の性能が改善できる。実施例による相関加重値を算出する方法及び相関加重値は、量子化などの予測アルゴリズムが必要な全ての関数に適用可能である。
相関度値を算出する方法(例えば、数式2)は、該当ポイントの距離を含んでもよく、含まなくてもよい。また相関度値を算出する方法は、図2に示したマトリックスを用いた加算、乗算、割り算の演算で構成することができる。また相関度値を算出する方法は、相関値を除去するか、相関値を用いて各常数を割り当てて掛ける演算を含む。各常数は、整数だけではなく、複素数を含んでもよく、固定値又は変動値を有してもよい。
相関加重値は、相関度値に基づいて加重値が合計されたものであって、平均又は分散値に対応する(例えば、数式3)。相関度が結合されていない加重値は平均又は分散値として用いられる。
図20は、実施例による相関加重値をコード化できる方法に対する一例を示す。
図20は、3つのポイントが存在する場合、様々な方法によって相関加重値を算出する方法(例えば、数式2及び数式3)を示す指示である。
図示されたweighted_sumは、各々のポイントと相関度値の合計を示し、相関度の算出方法は、実施例によって変更可能である。w0、w1、w2は、各々のポイント別に算出された相関度値が反映された相関加重値を示す。
1番目のブロックは、相関値に任意の常数であるアルファ、ベータ、ガンマ(alpha、beta、gamma)を掛けて相関度値を算出する過程を示す。2番目のブロックは、単にポイントの距離に基づいて相関度値を算出する過程を示す。3番目のブロックは、ポイント距離の二乗に基づいて相関度値を算出する過程を示す。4番目のブロックは、ポイント距離の合計に基づいて相関度値を算出する過程を示す。各々のブロックは、相関度を算出する過程に従って算出された相関度値が反映された各々のポイントの相関加重値(w0、w1、w2)を示す。相関加重値は相関度の算出方法及び形態によって変更可能である。また相関度値を算出する方法は、上述した例示に限られない。
図1ないし図20に示したポイントクラウド処理装置は、空間的拡張性復号(spatial scalability decoding)を支援する。実施例による空間的拡張性復号は、ポイントクラウド受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)の復号性能に応じて様々な解像度(レゾルーション、resolution)のポイントクラウドコンテンツが提供できるように、ジオメトリ及び/又は特質の一部又は全部に対して行う復号である。実施例によるジオメトリ及び特質の一部は、パーシャルジオメトリ(partial geometry)及びパーシャル特質(partial attribute)とも呼ばれる。実施例によるジオメトリに適用される階層的復号は、階層的ジオメトリ復号又はジオメトリ階層的復号とも呼ばれる。実施例による特質に適用される階層的復号は、階層的特質復号又は特質階層的復号とも呼ばれる。図1ないし図17に示したように、ポイントクラウドコンテンツのポイントは3次元空間に分布されて、分布されたポイントは八分木構造(例えば、図6に示した八分木)で表現される。八分木構造は、8分木構造でって、上位ノードから下位ノードへと深さが増加する。実施例による深さは、レベル及び/又はレイヤと呼ばれる。
ポイントクラウド処理装置(又は、ジオメトリエンコーダ)は、八分木構造に基づいてジオメトリ符号化を行う。またポイントクラウド処理装置(又は、特質エンコーダ)は、八分木構造に基づいてLODを生成して特質符号化(例えば、RAHT変換、予測変換、リフト変換など)を行う。LODは八分木構造に基づいて生成されるため、八分木構造はポイントのグループ化を分割するものとみなされ、ジオメトリ及び特質に対するポイントの数を整列する。LODのレベルは八分木の深さに対応する。LOD(又は、八分木深さ)は、オリジナル品質が示されるほど大きい必要があるため、空間的拡張性はソースポイントクラウドが局所的領域にも密室した場合に非常に有用である。空間的拡張性からポイントクラウド受信装置(又は、デコーダ)は、デコーダの低い複雑度及び/又は小さい帯域幅の有するサムネイルのような低解像度のポイントクラウドコンテンツを提供することができる。ポイントクラウド処理装置は、空間的拡張性復号を支援する場合、図17に示したビットストリームに含まれたシグナル情報(例えば、SPS、APS、特質ヘッダなど)によって空間的拡張性復号のための情報を送信する。
ポイントクラウド受信装置は、ビットストリームに含まれたシグナル情報から空間的拡張性復号のための情報を確保する。ポイントクラウド受信装置は、八分木構造の上位ノードから下位ノードへと特定の深さ(又は、レベル)に対応する全体ジオメトリ又は一部ジオメトリに対するジオメトリ復号を行う。上述のように、特質復号はジオメトリ復号に基づくため、ポイントクラウド受信装置は、復号されたジオメトリ(又は、復号された八分木構造)に基づいてLODを生成し、全体特質及び/又は一部特質に対する特質復号(例えば、RAHT変換、予測変換、リフト変換など)を行う。
図21は、空間的拡張性復号の一例を示す。
図示された矢印1800は、LODのレベルの増加する方向を示す。
図1ないし図14に示したように、ポイントクラウド処理装置は八分木構造に基づいてLODを生成する。LODは八分木構造を有するポイントの特質を管理するためのものであって、LODの値が大きいほどポイントコンテンツの詳細が増加することを示す。1つのLODは八分木構造の1つ又はそれ以上の深さに対応できる。八分木構造の最上位ノードは、最下位深さ又は最初の深さに対応し、ルート(Root)と呼ばれる。また八分木構造の最下位ノードは、最上位深さ又は最後の深さに対応し、リーフ(Leaf)と呼ばれる。八分木構造の深さはルートからリーフへと増加し、これは図示した矢印方向と同様である。
実施例によるポイントクラウドデコーダは、性能に応じて、フル解像度(full resolution)のポイントクラウドコンテンツを提供するための復号1811、又はロー解像度(low resolution)のポイントクラウドコンテンツを提供するための復号1812を行う。ポイントクラウドデコーダは、八分木構造の全体に対応するジオメトリビットストリーム1811-1及び特質ビットストリーム1812-1を復号1811してフル解像度のポイントクラウドコンテンツを提供する。ポイントクラウドデコーダは八分木構造の特定の深さに対応する一部ジオメトリビットストリーム1812-1及び一部特質ビットストリーム1812-2を復号1812し、ロー解像度のポイントクラウドコンテンツを提供する。図21は、特質復号としてリフト変換を示し、本例示に限られない。
上述のように、ビットストリーム(例えば、図17のビットストリーム)のシグナル情報(例えば、SPS、APS、特質ヘッダなど)は、シーケンスレベル又はスライスレベルにおいて空間的拡張性復号(又は、リフト変換)に関連した拡張性(scalability)情報(例えば、scalable_lifting_enabled_flag、又はlifting_scalability_enabled_flag)を含む。上述のように、特質復号は、復号されたジオメトリ八分木構造に基づいて行われる。空間的拡張性復号(又は、リフト変換)に関連した情報は、一部特質を復号するために、全体の八分木構造が必要であるか、又は一部の八分木構造が必要であるかを示す。
ポイントクラウド受信装置は、ビットストリームのシグナル情報を確保し、空間的拡張性復号に関連した情報に従ってジオメトリの復号結果である全体八分木構造又は一部八分木構造に基づいて階層的特質復号を行う。
上述のように、LODは八分木構造に基づいて生成される(例えば、図15のステップ1520)。よって、LODのレベルは、八分木の深さに基づいて生成され、八分木構造が変更されると、LOD構造も変更される。ポイントクラウドエンコーダ(例えば、図15に示したポイントクラウドエンコーダ)は、LODに基づくリフト変換を行う(例えば、図15のステップ1530)。上述のように、ポイントクラウド処理装置は、最高レベルのLODから最低レベルのLODへとリフト変換コーディングを行う。実施例によるリフト変換コーディングは、各々のポイントの予測特質を算出するためにアップデートオペレーターを用いる。該当ポイントのアップデートオペレーターは、算出された加重値及び残余値に基づいてアップデートされた特質値を算出する。実施例によるポイントクラウド処理装置は、量子化加重値(quantization weight)を量子化加重値の誘導プロセスに従って決定(又は、算出、誘導)し、決定された量子化加重値に基づいて量子化を行う。
実施例によるポイントクラウド受信装置(又は、ポイントクラウドデコーダ)は、ポイントクラウド処理装置と同様に、アップデートオペレーターを用いて特質値を復元し、量子化加重値を算出して逆量子化(inverse quantization)を行う。
各々のレベルのLODに属したポイントの密室度は異なる。例えば、より高いレベルのLODに属したポイントの密室度は、より低いレベルのLODに属したポイントの密室度より小さい。よって、実施例による量子化加重値は、より高いレベルのLOD内の距離の合計から誘導される。しかし、空間的拡張性復号を行う場合、ポイントクラウド受信装置は、低いLOD情報が分からないため、正確な量子化加重値が算出できない。よって、実施例による量子化加重値は、該当LODのポイント数によって固定される。以下、一部の八分木構造に基づいて行われる特質復号(例えば、リフト変換コーディング)を支援するために、各々のLODの量子化加重値を算出するプロセスを示す。
iは、各々のLODのレベルを示すパラメータであって、iは0より大きいか同一であり、LODの数(LODcount)より小さい。Point countは、該当LODに属するポイントの数であり、predictorCountは、該当LODよりも小さいLODに属するポイントの予測機の数を示す。predictorCount[i]は、該当LODに属するポイントの予測機の数を示す。数式に示したように、加重値は特質の数及び固定された常数(例えば、kFixedPointweightShift)に基づいて算出される。
上述した数式は、各々のLODの予測値を有するポイントではなく、ポイントが密室しているLODに関する情報に基づいて量子化加重値を算出する。よって、1つ又はそれ以上のLODにポイントが均一に分布されているか、LODインデックスのギャップが大きく、ポイントの分布が不規則な場合は、量子化加重値によってデコーダの性能劣化が生じることがある。
よって、実施例によるポイントクラウド送信装置及びポイントクラウド受信装置は、リフト変換コーディング(例えば、一部の八分木構造に基づいて行われるリフト変換コーディング)を行うにあたって、数学的に最適に改善された量子化加重値の誘導プロセスを行う。実施例による改善された量子化加重値の誘導プロセスは、固定常数を適用することなく変更可能な改善された量子化加重値を算出することができる。よって、改善された量子化値の誘導プロセスは、ポイントクラウドシステムによる量子化加重値の変化を最小化し、各々のシステムの固定常数を変更しない。また量子化加重値は、数学的に最適値に該当して、従来の量子化加重値に比べてさらに高い性能利得を確保する。また、改善された量子化加重値の誘導プロセスは、各々のポイントごとの演算が求められないため、ポイントクラウド受信装置の複雑度を減らすことができる。
実施例による量子化加重値の誘導プロセスは、ポイントクラウド送信装置及び受信装置に含まれた1つ又はそれ以上のメモリに格納されたプログラム指示によって行われる。実施例によるプログラム指示は、ポイントクラウドエンコーダ及び/又はデコーダ(又は、プロセッサ)によって行われ、ポイントクラウドエンコーダ及び/又はデコーダが量子化加重値を算出/誘導できるようにする。
実施例によるリフト変換は、量子化加重値と特質値との合計を示す線形関数で表される。以下の数式は、リフト変換を示す線形関数であって、全リソースの割り当てられた値に最大の利益を満たすために決定された関数である。実施例によるリソースは、ポイントの特質値(特質値を表現する電圧)と加重値との積和を意味する。
パラメータjは、各々のポイントのインデックスであり、0より大きいか同一であり、Nと同一である。パラメータNは、予測されるポイントクラウドのポイントの全数を示す。即ち、Nは、ポイントクラウド送信装置が送信しようとするポイントの全数に対応する。パラメータwjは、量子化加重値(又は、改善された量子化加重値)であって、改善された量子化加重値の誘導プロセスによって決定(又は、算出或いは誘導)される。パラメータajは、各々のポイントの特質値を示す。SumAttributeは、量子化加重値と特質値との合計を示し、N個の線形関数の乗算及び加算の形態である。
ポイントクラウド受信装置は、SumAttribute値によって該当ポイントの明るさ及び色値などを確保することができる。上述したリフト変換を示す関数の最適化条件は、以下の数式のようである。
上記数式に示すように、リフト変換を示す関数の最適化は、パラメータwjに対して適用される制約条件(Constraint)によって取得することができる。実施例によるwjは、1より大きいか同一である。また、N個のwj値(jは0より大きいか同一であり、Nと同一である)の合計(又は、全体加重値)は、全体の予測されるポイントの数(TotalPredictedCount)より小さいか同一である。これは、量子化加重値が無限大に増加することを防止し、演算に必要なメモリのオーバーフローの問題を防止するためである。またリフト変換の誘導式は線形び整数空間(integer space)で構成されるため、関数の凸さ(Convexity)を保持する。
上記数式を構成する任意の関数fjは、整数及び小数の乗算及び加算からなる。よって、関数fjは凸関数(Convex function)で示され、関数-fjも必要十分条件により凹関数(Concave function)で示される。仮に、w1、w2、..、wNの値が1より大きいか同一である場合、w1の関数f1、w2の関数f2、..、fNもまた凸関数であるため、2つ以上の凸関数の結合は凸関数となる。実施例による加重値(又は、加重常数)wjの値は、修正又は変更されてもよく、最適化した値を有する。またfjという関数が凸関数の結合又は群集である場合、fi、即ち、群集関数内の群集関数であるgも凸関数となる。よって、LODグループ化した加重値の群集の最適値が得られる。実施例による関数gは、最大値及び最小値を有する。
図22は、改善された量子化加重値の誘導プロセスの一例を示す。
図22は、改善された量子化加重値の誘導プロセスを示すフローダイヤグラムである。フローダイヤグラムは、説明の便宜のために、1つ又はそれ以上のステップを含み、各々のステップは同時に又は順次に行うことができる。
実施例による改善された量子化加重値の誘導プロセスは、初期加重値(又は、初期量子化加重値)を定義する(22100)。実施例による初期加重値は、平均送受信機電力(average transceiver power)に基づいて決定される。即ち、初期加重値は、データメモリサイズ、計算複雑度などを考慮して、32ビット及び64ビットの平均エネルギー値又は全体のエネルギー値に基づいて決定される。また、全てのポイントクラウドデータが正規化された場合、初期加重値は1と決定される。
改善された量子化加重値の誘導プロセスは、LOD別に予測されるポイントの数(例えば、上述した全体予測されるポイントの数(TotalPredictedCount))を再分類又はカウント(resort/count)する(22200)。ポイントはジオメトリポイント又は特質ポイントを意味する。LOD別に予測されるポイントの数は、復号されたジオメトリから確保することができる。LOD別に予測されるポイントの数はパラメータとして格納される。改善された量子化加重値の誘導プロセスは、予測されるポイントの数をカウントせず、実際のポイントの数(例えば、上述した全数(TotalCount))をパラメータとして格納してもよい。
改善された量子化加重値の誘導プロセスは、全体の制約条件(Total Constraints)を算出する(22300)。実施例による制約条件は、加重値又は加重値の合計(例えば、数式8に示したwjの合計)に適用される。実施例による制約条件は、各々のLODの累積された全体のLODのポイント数、一部のLODのポイント数、部分集合に属するポイント数、LODのグループ化によるポイント数などを含んでもよく、この例示に限られない。
改善された量子化加重値の誘導プロセスは、算出された制約条件に基づいて決定される加重値割り当てを算出する(22400)。即ち、改善された量子化加重値の誘導プロセスは、制約条件に基づいて、リソースを各々のLoDレベル及びLoD内のポイントに合わせて割り当てる。上述のように、リソースは各々のポイントの加重値を掛けた特質の合計であるため、そのリソースはLoDレベル及びLoD内のポイントに合わせて比例して割り当てられる。
即ち、制約条件に基づいて全体のポイント数を加重値によって各々のLODレベルに合わせて割り当てる。
改善された量子化加重値の誘導プロセスは、加重値のアップデートを行う(22500)。アップデートされた加重値(又はアップデートされた量子化加重値)は、割り当てられた加重値で定義されるか、初期加重値に割り当てられた加重値を累積、又は既存にアップデートされた加重値の一部を修正、結合することで生成することができ、最終にアップデートされた加重値は最適値を有する。
以下、図22に示した算出された制約条件に基づいて決定される加重値の割り当てを算出するプロセスを説明する。
上述のように、改善された量子化加重値の誘導プロセスは、全体予測されるポイントの数(例えば、上述したTotalPredictedCount)に基づく。全体予測されるポイントの数には制限があり、改善された量子化加重値の誘導プロセスは、同一又は類似した最適値を誘導することができる。実施例による最適値は全体リソース(全体のポイント数)における該当リソース(該当LODの累積されたポイントの数)の比率に基づいて算出される。
各々のLODの累積されたポイントの数を算出するプロセスは、ポイントクラウド送信装置及び受信装置に含まれた1つ又はそれ以上のメモリに格納されたプログラム指示によって行われる。実施例によるプログラム指示は、ポイントクラウドエンコーダ及び/又はデコーダ(又はプロセッサ)によって行われ、ポイントクラウドエンコーダ及び/又はデコーダが各々のLODの累積されたポイントの数を算出する。i番目の最適値(改善された量子化加重値)を算出するプロセスは、以下のようである。
OptimalWeight[i]は、i番目のLODの最適値を示す。numberOfPointsPerLOD[LodCount-1]は、LoDCountが示す値よりも1が小さい値に対応するLODレベルまでの全てのポイントの数である。即ち、numberOfPointsPerLOD[LodCount-1]は、i値が0であるレベルのLODからi値がLodCount-1であるレベルのLODまで、各々のLODに属するポイントの数の合計を示す(例えば、0番目のLODのポイントの数1、1番目のLODのポイントの数7..LodCount-1番目のLODのポイントの数XXまでの合計)。実施例によるnumberOfPointsPerLOD[LodCount-1]はインデックスなどの形態で格納され、格納された最大のインデックス値から確保することができる。
上述のように、i番目の最適値は、制約条件びRatio[i]に基づいて生成される。実施例によるRatio[i]は、ポイントクラウドノイズエラーのような実際の環境で発生する総エネルギーの不規則性によって変更されることがある。例えば、numberOfpointsperLOD[i]の代わりに、numberOfpointsperLOD[i-1]などが使用されるか、numberOfpointsperLOD[i]の一部をグループ化して変数値として処理してもいよい。実施例によるグループ化された変数は、i+1、i+2のような順次変数、又はi、i+4、i+6のような非順次変数を含むことができる。制約条件であるnumberOfPointsPerLOD[LodCount-1]は、numberOfPointsPerLOD[k]で表現され、kは、i-1、i-2、…0、又はi+1、i+2の値を有する。またnumberOfPointsPerLOD[k]の一部はグループ化して変数として処理してもよい。例えば、実施例によるグループ化された変数は、k+1、k+2のような順次変数、又はk、k+4、k+6のような非順次変数を含む。i変数とk変数で表されるnumberOfPointsPerLOD[i]とnumberOfPointsPerLOD[k]は、特定の常数によって加減又は結合される。例えば、iとkのための任意の2つの常数であるアルファ、ベータ(alpha、beta)によってnumberOfPointsPerLOD[i](+又は-)アルファ(alpha)又はnumberOfPointsPerLOD[i](*又は/)アルファ(alpha)となり、numberOfPointsPerLOD[k](+又は-)ベータ(beta)又はnumberOfPointsPerLOD[k](*又は /)ベータ(beta)となる。
同一の特質の各々のLODレベルのポイントに対して、互いに異なる改善された量子化加重値の誘導プロセスを適用してもよい。例えば、i=1の場合、最適値は、numberOfPointPerLOD[LoDCount-1]/numberOfPointsPerLoD[i]から類推でき、iが1より大きい場合、最適値は、(numberOfPointPerLOD[LoDCount-1]-numberOfPointsPerLoD[i])/numberOfPointsPerLoD[i]から類推できる。
互いに異なる特質のLoDレベルによるポイントに対して、互いに異なる改善された量子化加重値の誘導プロセスを適用してもよい。よって、特質が反射率である場合のLODレベルによる量子化加重値と、特質が色である場合のLODレベルによる量子化加重値とは、互いに異なる最適値を有する。
同一の特質内の各々のサブコンポーネント(例えば、輝度(luma)、彩度(chroma)など)のLoDレベルによるポイントに対して、互いに異なる改善された量子化加重値の誘導プロセスを適用してもよい。よって、特質が色(YCbCr)である場合、サブコンポーネントY(luma)の量子化加重値と、サブコンポーネントCb、Cr(chroma)の量子化加重値とは互いに異なる最適値を有する。
図23は、実施例によるポイントクラウドの符号化を示すフローダイヤグラムである。
図1ないし図22に示したポイントクラウド送信装置又はポイントクラウドエンコーダは、図21に示した空間的拡張性復号を支援するための特質符号化を行うことができる。実施例による特質符号化は、RAHTコーディング、予測変換コーディング、リフト変換コーディングのうちの少なくとも1つ以上を含む。空間的拡張性復号を支援するためのリフト変換コーディングは、図21ないし図22に示した改善された量子化加重値の算出プロセスを行う。
図23に示したように、ポイントクラウドエンコーダは特質が入力される(23100)。実施例による特質は、色、反射率などを含む。
実施例によるポイントクラウドエンコーダは、特質の種類に応じて特質符号化を行う(23200、23210)。図示したように、ポイントクラウドエンコーダは、特質が色である場合と特質が反射率である場合とでそれぞれ独立して符号化を行う。2つの特質の符号化動作は、同時に又は順次に行うことができる。特質符号化は、LODベースのリフト変換を行う(例えば、図15のステップ1530)。上述のように、ポイントクラウド処理装置は、最高レベルのLODから最低レベルのLODへとリフト変換コーディングを行う。
上述のように、ポイントクラウド符号化は、空間的拡張性復号(spatial scalability decoding)を支援することができる(23300、23310)。実施例による空間的拡張性復号は、ポイントクラウド受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)の復号性能に応じて様々な解像度(レゾルーション、resolution)のポイントクラウドコンテンツが適用できるように、ジオメトリ及び/又は特質の一部又は全部に対して行う復号である。空間的拡張性によって、ポイントクラウド受信装置(又はデコーダ)は、デコーダの低複雑度及び/又は小さい帯域幅を有するサムネイルのような低解像度のポイントクラウドコンテンツを提供することができる。ポイントクラウド処理装置は、空間的拡張性復号を支援する場合、図17に示したビットストリームに含まれたシグナル情報(例えば、SPS、APS、特質ヘッダなど)から空間的拡張性復号のための情報を送信する。上述のように、ビットストリーム(例えば、図17のビットストリーム)のシグナル情報(例えば、SPS、APS、特質ヘッダなど)は、シーケンスレベル又はスライスレベルにおいて空間的拡張性復号(又はリフト変換)と関連した拡張性(上述した一部の八分木構造に基づいて上記特質の復号が可能であるか否かを示す拡張性(scalability)情報(例えば、scalable_lifting_enabled_flag、又はlifting_scalability_enabled_flag)を含むことができる。上述のように、特質復号は、復号されたジオメトリ八分木構造に基づいて行われる。空間的拡張性復号(又はリフト変換)と関連した情報は、一部の特質を復号するために、全体の八分木構造が必要であるか、又は一部の八分木構造が必要であるかを示す。よって、ポイントクラウド受信装置は、ビットストリームのシグナル情報を確保して、空間的拡張性復号と関連した情報によって、ジオメトリの復号結果である全体の八分木構造又は一部の八分木構造に基づいて階層的特質復号を行う。
仮に、一部の八分木構造に基づいて行われる空間的拡張性復号(例えば、リフト変換コーディング)を支援する場合、実施例によるポイントクラウドエンコーダは、図21ないし図23に示した改善された量子化加重値の誘導プロセスによって量子化加重値を算出する(23400、23410)。改善された量子化加重値の誘導プロセスは、図21ないし図22に示したものと同様であるため、具体的な説明は省略する。実施例によるポイントクラウド受信装置(又は、ポイントクラウドデコーダ)は、ポイントクラウド処理装置と同様に量子化加重値を算出して逆量子化(inverse quantization)を行う。
ポイントクラウドエンコーダは、色特質及び反射率特質を圧縮する(23500、23520)。
図23に示したポイントクラウド符号化は、ポイントクラウド送信装置及び受信装置に含まれた1つ又はそれ以上のメモリに格納されたプログラム指示によって行われる。実施例によるプログラム指示は、ポイントクラウドエンコーダ及び/又はデコーダ (又はプロセッサ)によって行われ、ポイントクラウドエンコーダ及び/又はデコーダがポイントクラウド符号化及び/又は復号を行う。また、実施例によるポイントクラウドデコーダは、図23に示した過程と同様な動作を行う。
図24は、実施例によるポイントクラウドデータ送信方法を示すフローダイヤグラムである。
図24のフローダイヤグラム2400は、図1ないし図23に示したポイントクラウドデータ送信装置(例えば、図1、図12及び図14に示した送信装置又はポイントクラウドエンコーダ)のポイントクラウドデータ送信方法を示す。ポイントクラウドデータ送信装置は、ジオメトリ及び特質を含むポイントクラウドデータを符号化する(2410)。ジオメトリは、ポイントクラウドデータのポイントの位置を示す情報であり、特質は、ポイントの色及び反射率のうちの少なくとも1つ以上を含む。ポイントクラウドデータ送信装置は、ジオメトリを符号化する。図1ないし図23に示したように、特質符号化はジオメトリ符号化に従属する。よって、ポイントクラウドデータ送信装置は、図21に示したように、符号化されたジオメトリの全体又は一部(パーシャル、partial)の八分木構造に基づいて特質を符号化する。特質は、1つ又はそれ以上のLOD(Level Of Detail)の各々のLODに含まれるポイントに対する量子化加重値に基づいて符号化される。また量子化加重値は、ポイントの数及び該当LODが示すレベル(l)まで属するポイントの数に基づいて決定される。その詳細は、図20ないし図23に対する説明と同様であるため省略する。
実施例による量子化加重値は、以下のように示される。
図15ないし図23に示したように、ポイントクラウドデータ送信装置は、ポイントを再整列して1つ又はそれ以上のLODを生成し、1つ又はそれ以上のLODに基づいて特質に対してリフト変換コーディングを行い、量子化加重値に基づいてリフト変換コードされた特質を量子化する。実施例による量子化加重値は、ジオメトリの一部の八分木構造に基づいて符号化された特質を復号するために使用される。即ち、図1ないし図23に示したように、ポイントクラウド送信装置は、空間的拡張性復号(spatial scalability decoding)を支援する。実施例による空間的拡張性復号は、ポイントクラウド受信装置(例えば、図1の受信装置10004、図10及び図11のポイントクラウドデコーダ、図13の受信装置)の復号性能に応じて様々な解像度(レゾルーション、resolution)のポイントクラウドコンテンツが適用できるように、ジオメトリ及び/又は特質の一部又は全部に対して行う復号である。
ポイントクラウドデータ送信装置は、符号化されたポイントクラウドデータを含むビットストリーム(例えば、図17に示したビットストリーム)を送信する(2420)。
よって、実施例によるビットストリーム(例えば、図17)は、一部の八分木構造に基づいて符号化された特質の復号が可能であるか否かを示す拡張性情報(例えば、scalable_lifting_enabled_flag、又はlifting_scalability_enabled_flag)を含む。図20ないし図23に示したように、図17に示したビットストリームに含まれたシグナル情報(例えば、SPS、APS、特質ヘッダなど)によって空間的拡張性復号のための情報を送信する。上述のように、ビットストリーム(例えば、図17のビットストリーム)のシグナル情報(例えば、SPS、APS、特質ヘッダなど)は、シーケンスレベル又はスライスレベルにおいて一部の八分木構造に基づいて符号化された特質の復号が可能であるか否かを示すシグナル情報を含む。受信機は、かかる情報を確保し、空間的拡張性復号を行う。ポイントクラウドデータ送信装置の動作は、図1ないし図23に示したものと同様であるため、具体的な説明は省略する。
図25は、実施例によるポイントクラウドデータ処理方法のフローダイヤグラムである。
図25のフローダイヤグラム2500は、図1ないし図23に示したポイントクラウドデータ受信装置(例えば、受信装置10004又はポイントクラウドビデオデコーダ10006)のポイントクラウドデータ処理方法を示す。
ポイントクラウドデータ受信装置(例えば、図1の受信機、図13の受信部などの受信機)は、ポイントクラウドデータを含むビットストリームを受信する(2510)。実施例によるビットストリームは、ポイントクラウドデータを復号するために必要なシグナル情報(例えば、SPS、APS、特質ヘッダなど)を含む。図20ないし図23に示したように、図17に示したビットストリームに含まれたシグナル情報(例えば、SPS、APS、特質ヘッダなど)によって空間的拡張性復号のための情報を送信する。上述のように、ビットストリームのシグナル情報(例えば、SPS、APS、特質ヘッダなど)は、シーケンスレベル又はスライスレベルにおいて空間的拡張性復号(又はリフト変換)と関連した情報を含んでもよい。
ポイントクラウドデータ受信装置(例えば、図10のデコーダ)は、シグナル情報に基づいてポイントクラウドデータを復号する(2520)。ポイントクラウドデータ受信装置(例えば、図10のジオメトリデコーダ)は、ポイントクラウドデータに含まれたジオメトリを復号する。実施例によるジオメトリは、ポイントクラウドデータのポイントの位置を示す情報である。ポイントクラウドデータ受信装置(例えば、図10の特質デコーダ)は、復号されたジオメトリの全体又は一部(パーシャル、partial)の八分木構造に基づいてポイントの色及び反射率のうちの少なくとも1つ以上を含む特質を復号する。特質は、1つ又はそれ以上のLOD(Level Of Detail)の各々のLODに含まれるポイントに対する量子化加重値(又は、改善された量子化加重値)に基づいて復号される。量子化加重値は、ポイントの数と該当LODが示すレベル(l)まで属するポイントの数に基づいて決定される。
実施例によるポイントクラウドデータを復号するために必要なシグナル情報は、一部の八分木構造に基づいて特質の復号が可能であるか否かを示す拡張性情報(例えば、scalable_lifting_enabled_flag、又はlifting_scalability_enabled_flag)をさらに含む。拡張性情報が一部の八分木構造に基づいて特質の復号が可能であると示す場合、量子化加重値は0番目のLODから最後のLODまでの各々のLODに含まれた各ポイント毎に決定される。量子化加重値の算出プロセスは、図21ないし図23に示したものと同様であるため、具体的な説明は省略する。
実施例によるポイントクラウドデータ受信装置は、ポイントを再整列して1つ又はそれ以上のLODを生成し、1つ又はそれ以上のLODに基づいて特質に対してリフト変換復号を行い、量子化加重値に基づいてリフト変換復号された特質を逆量子化する。図22に示すように、量子化加重値は、ポイントクラウド受信装置に含まれたメモリに格納された量子化加重値を算出するためのプログラム指示を行って決定される。ポイントクラウドデータ受信装置のポイントクラウドデータ処理動作は、図1ないし図23に示したものと同様であるため、具体的な説明は省略する。
図1ないし図25で説明した実施例によるポイントクラウドデータ処理装置の構成要素は、メモリと結合した1つ又はそれ以上のプロセッサを含むハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより具現される。実施例による装置の構成要素は、1つのチップ、例えば、一つのハードウェア回路で具現される。また、実施例によるポイントクラウドデータ処理装置の構成要素はそれぞれ個々のチップで具現される。また、実施例によるポイントクラウドデータ処理装置の構成要素のうちの少なくとも1つ以上は、1つ又はそれ以上のプログラムを実行できる1つ又はそれ以上のプロセッサで構成され、1つ又はそれ以上のプログラムは、図1ないし図25に示したポイントクラウドデータ処理装置の動作/方法のうちのいずれか1つ又はそれ以上の動作を行わせるか、行うための指示を含む。
説明の便宜のために、各図を区分して説明したが、各図に述べられている実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。実施例による装置及び方法は、上述したように、説明された実施例の構成と方法が限られて適用されるのではなく、実施例は様々な変形が行われるように各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
実施例による装置及び方法に対する説明は、互いに補完して適用できる。例えば、実施例によるポイントクラウドデータ送信方法は、実施例によるポイントクラウドデータ送信装置又はポイントクラウドデータ送信装置に含まれた構成要素によって実行される。また、実施例によるポイントクラウドデータ受信方法は、実施例によるポイントクラウドデータ受信装置又はポイントクラウドデータ受信装置に含まれた構成要素によって実行される。
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれ個々のチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のうちのいずれか一つ又はそれ以上の動作/方法を行わせるか、実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではない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ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限するものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」という表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味しない。実施例を説明するために使用される、「~である場合」、「~とき」などの条件表現は選択的な場合のみに制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。
(発明の実施のための形態)
発明を実施するための最善の形態について具体的に説明する。
(産業上の利用可能性)
本発明の思想や範囲を逸脱することなく、本発明で様々な変更及び変形が可能であることは当業者にとって自明である。したがって、本発明は、添付の特許請求の範囲及びその同等範囲内で提供される本発明の変更及び変形を含むものとして意図される。