IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エルジー エレクトロニクス インコーポレイティドの特許一覧

特表2024-511312ポイントクラウドデータ送信方法、ポイントクラウドデータ送信装置、ポイントクラウドデータ受信方法及びポイントクラウドデータ受信装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-13
(54)【発明の名称】ポイントクラウドデータ送信方法、ポイントクラウドデータ送信装置、ポイントクラウドデータ受信方法及びポイントクラウドデータ受信装置
(51)【国際特許分類】
   G06T 9/40 20060101AFI20240306BHJP
   H04N 19/597 20140101ALI20240306BHJP
【FI】
G06T9/40
H04N19/597
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023554037
(86)(22)【出願日】2022-03-03
(85)【翻訳文提出日】2023-10-30
(86)【国際出願番号】 KR2022003009
(87)【国際公開番号】W WO2022186626
(87)【国際公開日】2022-09-09
(31)【優先権主張番号】10-2021-0029566
(32)【優先日】2021-03-05
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】オ ヒョンムク
(72)【発明者】
【氏名】ホ ヒョチョン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC01
5C159MB01
5C159ME01
5C159PP03
5C159PP13
5C159PP16
5C159UA02
5C159UA05
(57)【要約】
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化するステップと、前記ポイントクラウドデータを含むビットストリームを送信するステップと、を含む。また、実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを符号化するエンコーダと、前記ポイントクラウドデータを含むビットストリームを送信する送信機と、を含む。また、実施例によるポイントクラウドデータ受信方法は、ポイントクラウドデータを含むビットストリームを受信するステップと、前記ポイントクラウドデータを復号するステップと、を含む。また、実施例によるポイントクラウドデータ受信装置は、ポイントクラウドデータを含むビットストリームを受信する受信部と、前記ポイントクラウドデータを復号するデコーダと、を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
第1のフレームに含まれたポイントクラウドデータを符号化するステップと、
前記ポイントクラウドデータを含むビットストリームを送信するステップと、を含み、
前記ポイントクラウドデータを符号化するステップは、
前記ポイントクラウドデータの位置情報を符号化するステップと、前記ポイントクラウドデータの属性情報を符号化するステップを含む、
ポイントクラウドデータ送信方法。
【請求項2】
前記第1のフレームに含まれた前記ポイントクラウドデータを符号化するステップは、
第2のフレームに含まれたポイントクラウドデータに基づいて前記第1のフレームの前記ポイントクラウドデータを予測するステップを含む、
請求項1に記載のポイントクラウドデータ送信方法。
【請求項3】
前記ポイントクラウドデータを予測するステップは、
前記第1のフレームに属するポイントと前記第2のフレームに属するポイントとの位置情報の差異及び属性情報の差異に基づいて動きベクトルを生成するステップを含む、
請求項2に記載のポイントクラウドデータ送信方法。
【請求項4】
前記ポイントクラウドデータを予測するステップは、
さらに、前記動きベクトルに基づいて八分木構造の特定の深さ(depth)範囲内で八分木ノードのポイントを予測するステップを含む、
請求項3に記載のポイントクラウドデータ送信方法。
【請求項5】
前記ポイントクラウドデータを予測するステップは、
さらに、前記八分木ノードを分割(split)するコスト(cost)と前記動きベクトルに基づいて前記八分木ノードのポイントを予測するコスト(cost)とを比較するステップを含み、
前記八分木ノードのポイントを予測するステップは、
前記比較するステップのコスト比較結果に対応して実行される、
請求項4に記載のポイントクラウドデータ送信方法。
【請求項6】
前記ビットストリームは、前記八分木ノードが分割されたか否かを示す情報、及び前記第2のフレームに関する識別子情報を含む、
請求項5に記載のポイントクラウドデータ送信方法。
【請求項7】
第1のフレームに含まれたポイントクラウドデータを符号化するエンコーダ、前記ポイントクラウドデータは位置情報及び属性情報を含み、と、
前記ポイントクラウドデータを含むビットストリームを送信する送信機と、を含む、
ポイントクラウドデータ送信装置。
【請求項8】
前記エンコーダは、
第2のフレームに含まれたポイントクラウドデータに基づいて前記第1のフレームの前記ポイントクラウドデータを予測する、
請求項7に記載のポイントクラウドデータ送信装置。
【請求項9】
前記エンコーダは、
前記第1のフレームに属するポイントと前記第2のフレームに属するポイントとの位置情報の差異及び属性情報の差異に基づいて動きベクトルを生成する、
請求項8に記載のポイントクラウドデータ送信装置。
【請求項10】
前記エンコーダは、
前記動きベクトルに基づいて八分木構造の特定の深さ(depth)範囲内で八分木ノードのポイントを予測する、
請求項9に記載のポイントクラウドデータ送信装置。
【請求項11】
前記エンコーダは、
前記八分木ノードを分割(split)するコスト(cost)と前記動きベクトルに基づいて前記八分木ノードのポイントを予測するコスト(cost)とを比較し、
前記コスト比較結果に対応して前記動きベクトルに基づいて前記八分木ノードに対してポイントを予測する、
請求項10に記載のポイントクラウドデータ送信装置。
【請求項12】
前記ビットストリームは、前記八分木ノードが分割されたか否かを示す情報、及び前記第2のフレームに関する識別子情報を含む、
請求項11に記載のポイントクラウドデータ送信装置。
【請求項13】
第1のフレームに属するポイントクラウドデータを含むビットストリームを受信するステップと、
前記ポイントクラウドデータを復号するステップと、を含み、
前記ポイントクラウドデータを復号するステップは、
前記ポイントクラウドデータの位置情報を復号するステップと、前記ポイントクラウドデータの属性情報を復号するステップを含む、
ポイントクラウドデータ受信方法。
【請求項14】
前記ポイントクラウドデータを復号するステップは、
第2のフレームに含まれたポイントクラウドデータに基づいて前記第1のフレームの前記ポイントクラウドデータを予測するステップを含む、
請求項13に記載のポイントクラウドデータ受信方法。
【請求項15】
前記ビットストリームは動きベクトル情報を含み、
前記動きベクトル情報は、
前記第1のフレームに属するポイントと前記第2のフレームに属するポイントとの位置情報の差異及び属性情報の差異に基づいて生成された情報であり、
前記ポイントクラウドデータを予測するステップは、
前記動きベクトル情報に基づいて前記第1のフレームの前記ポイントクラウドデータを予測する、
請求項14に記載のポイントクラウドデータ受信方法。
【請求項16】
前記ポイントクラウドデータを復号するステップは、
前記動きベクトルに基づいて八分木構造の特定の深さ(depth)範囲内で八分木ノードのポイントを予測する、
請求項15に記載のポイントクラウドデータ受信方法。
【請求項17】
さらに、前記ビットストリームは、前記八分木ノードが分割されたか否かを示す情報を含み、
前記ポイントクラウドデータを復号するステップは、
前記分割されたか否かを示す情報に対応して前記八分木ノードのポイントを予測する、
請求項16に記載のポイントクラウドデータ受信方法。
【請求項18】
さらに、前記ビットストリームは、前記第2のフレームに関する識別子情報及び前記八分木構造の特定の深さ(depth)範囲に関する情報を含む、
請求項17に記載のポイントクラウドデータ受信方法。
【請求項19】
第1のフレームに属するポイントクラウドデータを含むビットストリームを受信する受信部と、
前記ポイントクラウドデータの位置情報及び属性情報を復号するデコーダを含む、
ポイントクラウドデータ受信装置。
【請求項20】
前記デコーダは、
第2のフレームに含まれたポイントクラウドデータに基づいて前記第1のフレームの前記ポイントクラウドデータを予測する、
請求項19に記載のポイントクラウドデータ受信装置。
【請求項21】
前記ビットストリームは動きベクトル情報を含み、
前記動きベクトル情報は、
前記第1のフレームに属するポイントと前記第2のフレームに属するポイントとの位置情報の差異及び属性情報の差異に基づいて生成された情報であり、
前記デコーダは、
前記動きベクトル情報に基づいて前記第1のフレームの前記ポイントクラウドデータを予測する、
請求項20に記載のポイントクラウドデータ受信装置。
【請求項22】
前記デコーダは、
前記動きベクトルに基づいて八分木構造の特定の深さ(depth)範囲内で八分木ノードのポイントを予測する、
請求項21に記載のポイントクラウドデータ受信装置。
【請求項23】
さらに、前記ビットストリームは、前記八分木ノードが分割されたか否かを示す情報を含み、
前記デコーダは、
前記分割されたか否かを示す情報に対応して前記八分木ノードのポイントを予測する、
請求項22に記載のポイントクラウドデータ受信装置。
【請求項24】
前記デコーダは、
さらに、前記ビットストリームは、前記第2のフレームに関する識別子情報及び前記八分木構造の特定の深さ(depth)範囲に関する情報を含む、
請求項23に記載のポイントクラウドデータ受信装置。
【発明の詳細な説明】
【技術分野】
【0001】
実施例はポイントクラウドコンテンツ(point Cloud Content)を処理する方法及び装置に関する。
【背景技術】
【0002】
ポイントクラウドコンテンツは3次元空間を表現する座標系に属する点(ポイント)の集合であるポイントクラウドで表現されるコンテンツである。ポイントクラウドコンテンツは3次元からなるメディアを表現でき、VR(Virtual Reality、仮想現実)、AR(Augmented Reality、拡張現実)、MR(Mixed Reality、複合現実)及び自律走行サービスなどの様々なサービスを提供するために使用される。しかし、ポイントクラウドコンテンツを表現するためには、数万から数十万個のポイントデータが必要である。従って、膨大な量のポイントデータを効率的に処理する方法が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
実施例はポイントクラウドデータを効率的に処理するための装置及び方法を提供する。実施例は遅延(latency)及び符号化/復号複雑度を解決するためのポイントクラウドデータ処理方法及び装置を提供する。
【0004】
但し、上述した技術的課題のみに制限されず、記載する全ての内容に基づいて当業者が導き出される他の技術的課題にも実施例の権利範囲を拡張することができる。
【課題を解決するための手段】
【0005】
技術的課題を達成するために、実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化するステップ、ポイントクラウドデータを含むビットストリームを送信するステップを含む。実施例によるポイントクラウドデータ受信方法は、ポイントクラウドデータを含むビットストリームを受信するステップ、ポイントクラウドデータを復号するステップを含む。
【発明の効果】
【0006】
実施例による装置及び方法は、高効率でポイントクラウドデータを処理することができる。
【0007】
実施例による装置及び方法は、良質のポイントクラウドサービスを提供することができる。
【0008】
実施例による装置及び方法は、VRサービス、自律走行サービスなどの汎用的なサービスを提供するためのポイントクラウドコンテンツを提供することができる。
【図面の簡単な説明】
【0009】
添付図面は実施例の理解を助けるためのものであり、実施例に関連する説明と共に実施例を示す。後述する様々な実施例に対するより適切な理解のために、添付図面において類似する参照番号に対応する部分を含む次の図面に関連して以下の実施例の説明を必ず参照すべきである。
【0010】
図1】実施例によるポイントクラウドコンテンツ提供システムの一例を示す。
図2】実施例によるポイントクラウドコンテンツ提供動作を示すブロック図である。
図3】実施例によるポイントクラウドビデオキャプチャー過程の一例を示す。
図4】実施例によるポイントクラウドエンコーダ(Point Cloud Encoder)の一例を示す。
図5】実施例によるボクセルの一例を示す。
図6】実施例による八分木及び占有コード(occupancy code)の一例を示す。
図7】実施例による隣接ノードパターンの一例を示す。
図8】実施例によるLODごとのポイント構成の一例を示す。
図9】実施例によるLODごとのポイント構成のその他の一例を示す。
図10】実施例によるポイントクラウドデコーダ(Point Cloud Decoder)の一例を示す。
図11】実施例によるポイントクラウドデコーダ(Point Cloud Decoder)の一例を示す。
図12】実施例によるポイントクラウドデータ送信装置の一例を示す。
図13】実施例によるポイントクラウドデータ受信装置の一例を示す。
図14】実施例によるポイントクラウドデータ送受信方法/装置に連動可能な構造の一例を示す。
図15】実施例による動きベクトル算出の一例を示す。
図16】実施例による八分木ノードが分割又は占有されているか否かを示すフラグ情報の一例を示す。
図17】実施例による八分木ノードのコスト関数の一例を示す。
図18】実施例による八分木構造で動き推定が実行される一例を示す。
図19】実施例による参照フレームの予測ブロックPから予測された予測ブロックB’の一例を示す。
図20】実施例による八分木構造で上位深さの親ノード属性が子ノード属性に基づいて定義されることを示す。
図21】実施例による八分木構造で特定の八分木深さ範囲に対して動き推定に基づいて属性予測した一例を示す。
図22】実施例による符号化されたポイントクラウドデータの一例を示す。
図23】実施例によるデータユニットヘッダシンタックスの一例を示す。
図24】実施例によるデータユニットシンタックスの一例を示す。
図25】実施例によるポイントクラウドデータ送信方法の一例を示す。
図26】実施例によるポイントクラウドデータ受信方法の一例を示す。
図27】実施例によるポイントクラウドデータ送信装置/方法の動作を示すフローチャートである。
図28】実施例によるポイントクラウドデータ受信装置/方法の動作を示すフローチャートである。
図29】実施例によるポイントクラウドデータ送信方法の一例を示す。
図30】実施例によるポイントクラウドデータ受信方法の一例を示す。
【発明を実施するための形態】
【0011】
添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというより、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に関する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例が実行できることは当業者にとって明らかである。
【0012】
実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものもあり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。
【0013】
図1は実施例によるポイントクラウドコンテンツ提供システムの一例を示す図である。
【0014】
図1に示したポイントクラウドコンテンツ提供システムは、送信装置(transmission device)10000及び受信装置(reception device)10004を含む。送信装置10000及び受信装置10004はポイントクラウドデータを送受信するために有無線通信が可能である。
【0015】
実施例による送信装置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機器/サーバーなどを含む。
【0016】
実施例による送信装置10000は、ポイントクラウドビデオ獲得部(Point Cloud Video Acquisition)10001、ポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002及び/又は送信機(Transmitter(又は通信モジュール)10003を含む。
【0017】
実施例によるポイントクラウドビデオ獲得部10001は、キャプチャー、合成又は生成などの処理過程によりポイントクラウドビデオを獲得する。ポイントクラウドビデオは、3次元空間に位置するポイントの集合であるポイントクラウドで表現されるポイントクラウドコンテンツであって、ポイントクラウドビデオデータ、ポイントクラウドデータなどと呼ばれる。実施例によるポイントクラウドビデオは、一つ又はそれ以上のフレームを含む。一つのフレームは停止映像/ピクチャを示す。よって、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャを含み、ポイントクラウド映像、フレーム及びピクチャのうちのいずれかに呼ばれる。
【0018】
実施例によるポイントクラウドビデオエンコーダ10002は、確保したポイントクラウドビデオデータを符号化する。ポイントクラウドビデオエンコーダ10002はポイントクラウド圧縮(Point Cloud Compression)コーディングに基づいてポイントクラウドビデオデータを符号化する。実施例によるポイントクラウド圧縮コーディングは、G-PCC(Geometry-based Point Cloud Compression)コーディング及び/又はV-PCC(Video based Point Cloud Compression)コーディング又は次世代コーディングを含む。なお、実施例によるポイントクラウド圧縮コーディングは、上述した実施例に限られない。ポイントクラウドビデオエンコーダ10002は、符号化されたポイントクラウドビデオデータを含むビットストリームを出力する。ビットストリームは符号化されたポイントクラウドビデオデータだけではなく、ポイントクラウドビデオデータの符号化に関連するシグナリング情報を含む。
【0019】
実施例による送信機10003は、符号化されたポイントクラウドビデオデータを含むビットストリームを送信する。実施例によるビットストリームはファイル又はセグメント(例えば、ストリーミングセグメント)などにカプセル化されて、放送網及び/又はブロードバンド網などの様々なネットワークにより送信される。図示していないが、送信装置10000はカプセル化動作を行うカプセル化部(又はカプセル化モジュール)を含む。また実施例において、カプセル化部は送信機10003に含まれる。実施例において、ファイル又はセグメントはネットワークにより受信装置10004に送信されるか、又はデジタル格納媒体(例えば、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど)に格納される。実施例による送信機10003は受信装置10004(又は受信機(Receiver)10005)と4G、5G、6Gなどのネットワークにより有無線通信が可能である。また送信機10003はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)によって必要なデータ処理動作を行うことができる。また送信装置10000はオン・デマンド(On Demand)方式によってカプセル化されたデータを送信することもできる。
【0020】
実施例による受信装置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機器/サーバーなどを含む。
【0021】
実施例による受信機10005は、ポイントクラウドビデオデータを含むビットストリーム又はビットストリームがカプセル化されたファイル/セグメントなどをネットワーク又は格納媒体から受信する。受信機10005はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)により必要なデータ処理動作を行う。実施例による受信機10005は、受信したファイル/セグメントをデカプセル化してビットストリームを出力する。また実施例において、受信機10005はデカプセル化の動作を行うためのデカプセル化部(又はデカプセル化モジュール)を含む。またデカプセル化部は受信機10005とは別個のエレメント(又はコンポーネント)で具現される。
【0022】
ポイントクラウドビデオデコーダ10006は、ポイントクラウドビデオデータを含むビットストリームを復号する。ポイントクラウドビデオデコーダ10006はポイントクラウドビデオデータが符号化された方式により復号することができる(例えば、ポイントクラウドビデオエンコーダ10002の動作の逆過程)。従って、ポイントクラウドビデオデコーダ10006はポイントクラウド圧縮の逆過程であるポイントクラウド復元コーディングを行って、ポイントクラウドビデオデータを復号することができる。ポイントクラウド復元コーディングはG-PCCコーディングを含む。
【0023】
レンダラー10007は復号されたポイントクラウドビデオデータをレンダリングする。レンダラー10007はポイントクラウドビデオデータだけではなく、オディオデータもレンダリングしてポイントクラウドコンテンツを出力する。実施例において、レンダラー10007はポイントクラウドコンテンツをディスプレイするためのディスプレイを含む。実施例において、ディスプレイはレンダラー10007に含まれず、別のデバイス又はコンポーネントで具現される。
【0024】
図面において、点線で示した矢印は、受信装置10004で得たフィードバック情報(feedback information)の送信経路を示す。フィードバック情報はポイントクラウドコンテンツを消費するユーザとの相互作用を反映するための情報であって、ユーザの情報(例えば、ヘッドオリエンテーション情報)、ビューポート情報など)を含む。特に、ポイントクラウドコンテンツがユーザとの相互作用が必要なサービス(例えば、自律走行サービスなど)のためのものである場合には、フィードバック情報はコンテンツ送信側(例えば、送信装置10000)及び/又はサービス供給者に伝達されることができる。実施例において、フィードバック情報は送信装置10000だけではなく受信装置10004で使用されてもよく、提供されなくてもよい。
【0025】
実施例によるヘッドオリエンテーション情報はユーザの頭の位置、方向、角度、動きなどに関する情報である。実施例による受信装置10004はヘッドオリエンテーション情報に基づいてビューポート情報を計算する。ビューポート情報はユーザが見ているポイントクラウドビデオの領域に関する情報である。視点(viewpoint)はユーザがポイントクラウドビデオを見ている点であり、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とする領域であり、領域のサイズ、形態などはFOV(Field Of View)により決定される。従って、受信装置10004はヘッドオリエンテーション情報以外に、装置が支援する垂直(vertical)或いは水平(horizontal)FOVなどに基づいてビューポート情報を抽出することができる。また受信装置10004はゲイズ分析(Gaze Analysis)などを行って、ユーザのポイントクラウド消費方式、ユーザが凝視するポイントクラウドビデオ領域、凝視時間などを確認する。実施例において、受信装置10004はゲイズ分析の結果を含むフィードバック情報を送信装置10000に送信することができる。実施例によるフィードバック情報はレンダリング及び/又はディスプレイ過程で得られる。実施例によるフィードバック情報は受信装置10004に含まれた一つ又はそれ以上のセンサにより確保される。また実施例において、フィードバック情報はレンダラー10007又は別の外部エレメント(又はデバイス、コンポーネントなど)により確保される。図1に示された点線はレンダラー10007で確保したフィードバック情報の伝達過程を示す。ポイントクラウドコンテンツ提供システムはフィードバック情報に基づいてポイントクラウドデータを処理(符号化/復号)する。従って、ポイントクラウドビデオデータデコーダ10006はフィードバック情報に基づいて復号の動作を行うことができる。また受信装置10004はフィードバック情報を送信装置10000に送信することができる。送信装置10000(又はポイントクラウドビデオデータエンコーダ10002)はフィードバック情報に基づいて符号化の動作を行うことができる。従って、ポイントクラウドコンテンツ提供システムは全てのポイントクラウドデータを処理(符号化/復号)せず、フィードバック情報に基づいて必要なデータ(例えば、ユーザのヘッド位置に対応するポイントクラウドデータ)を効率的に処理して、ユーザにポイントクラウドコンテンツを提供することができる。
【0026】
実施例において、送信装置10000はエンコーダ、送信デバイス、送信機などと呼ばれ、受信装置10004はデコーダ、受信デバイス、受信機などと呼ばれる。
【0027】
実施例による図1のポイントクラウドコンテンツ提供システムで処理される(獲得/符号化/送信/復号/レンダリングの一連の過程で処理される)ポイントクラウドデータは、ポイントクラウドコンテンツデータ又はポイントクラウドビデオデータとも呼ばれる。実施例において、ポイントクラウドコンテンツデータはポイントクラウドデータに関連するメタデータ或いはシグナリング情報を含む概念として使用することができる。
【0028】
図1に示したポイントクラウドコンテンツ提供システムのエレメントは、ハードウェア、ソフトウェア、プロセッサ及び/又はこれらの組み合わせなどで具現される。
【0029】
図2は実施例によるポイントクラウドコンテンツ提供の動作を示すブロック図である。
【0030】
図2図1で説明したポイントクラウドコンテンツ提供システムの動作を示すブロック図である。上述したように、ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディング(例えば、G-PCC)に基づいてポイントクラウドデータを処理する。
【0031】
実施例によるポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置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)、透明度など)を含む。一つのポイントは一つ又はそれ以上の特質(又は属性)を有する。例えば、一つのポイントは、1つの色相の特質を有してもよく、或いは色相及び反射率の二つの特質を有してもよい。実施例において、ジオメトリは位置、ジオメトリ情報、ジオメトリデータ、位置情報、位置データなどとも呼ばれ、特質は特質、特質情報、特質データ、属性情報、属性データなどとも呼ばれる。またポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)は、ポイントクラウドビデオの獲得過程に関連する情報(例えば、深さ情報、色相情報など)からポイントクラウドデータを確保することができる。
【0032】
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又はポイントクラウドビデオエンコーダ10002)は、ポイントクラウドデータを符号化する(20001)。ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディングに基づいてポイントクラウドデータを符号化する。上述したように、ポイントクラウドデータはポイントのジオメトリ情報及び特質情報を含む。よって、ポイントクラウドコンテンツ提供システムは、ジオメトリを符号化するジオメトリ符号化を行ってジオメトリビットストリームを出力することができる。ポイントクラウドコンテンツ提供システムは、特質を符号化する特質符号化を行って特質ビットストリームを出力することができる。実施例において、ポイントクラウドコンテンツ提供システムはジオメトリ符号化に基づいて特質符号化を行うことができる。実施例によるジオメトリビットストリーム及び特質ビットストリームは多重化されて一つのビットストリームで出力される。実施例によるビットストリームはジオメトリ符号化及び特質符号化に関連するシグナリング情報をさらに含む。
【0033】
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又は送信機10003)は、符号化されたポイントクラウドデータを送信する(20002)。図1で説明したように、符号化されたポイントクラウドデータはジオメトリビットストリーム、特質ビットストリームで表現される。また符号化されたポイントクラウドデータはポイントクラウドデータの符号化に関連するシグナリング情報(例えば、ジオメトリ符号化及び特質符号化に関連するシグナリング情報)と共に、ビットストリームの形態で送信される。またポイントクラウドコンテンツ提供システムは符号化されたポイントクラウドデータを送信するビットストリームをカプセル化してファイル又はセグメントの形態で送信する。
【0034】
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、符号化されたポイントクラウドデータを含むビットストリームを受信する。またポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、ビットストリームを逆多重化することができる。
【0035】
ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームで送信される符号化されたポイントクラウドデータ(例えば、ジオメトリビットストリーム、特質ビットストリーム)を復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームに含まれたポイントクラウドビデオデータの符号化に関連するシグナリング情報に基づいてポイントクラウドビデオデータを復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ジオメトリビットストリームを復号してポイントの位置(ジオメトリ)を復元する。ポイントクラウドコンテンツ提供システムは、復元したジオメトリに基づいて特質ビットストリームを復号してポイントの特質を復元する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、復元されたジオメトリによる位置及び復号された特質に基づいてポイントクラウドビデオを復元する。
【0036】
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号されたポイントクラウドデータをレンダリングする(20004)。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号過程で復号されたジオメトリ及び特質を様々なレンダリング方式によってレンダリングする。ポイントクラウドコンテンツのポイントは、一定の厚さを有する定点、該当定点の位置を中央とする所定の最小サイズを有する立方体、又は定点の位置を中央とする円などにレンダリングされる。レンダリングされたポイントクラウドコンテンツの全部又は一部の領域はディスプレイ(例えば、VR/ARディスプレイ、一般ディスプレイなど)によりユーザに提供される。
【0037】
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004)は、フィードバック情報を確保することができる(20005)。ポイントクラウドコンテンツ提供システムは、フィードバック情報に基づいてポイントクラウドデータを符号化及び/又は復号する。実施例によるフィードバック情報及びポイントクラウドコンテンツ提供システムの動作は、図1で説明したフィードバック情報及び動作と同一であるので、具体的な説明は省略する。
【0038】
図3は実施例によるポイントクラウドビデオキャプチャー過程の一例を示す図である。
【0039】
図3図1及び図2で説明したポイントクラウドコンテンツ提供システムのポイントクラウドビデオキャプチャー過程の一例を示す。
【0040】
ポイントクラウドコンテンツは、様々な3次元空間(例えば、現実環境を示す3次元空間、仮想環境を示す3次元空間など)に位置するオブジェクト(object)及び/又は環境を示すポイントクラウドビデオ(イメージ及び/又は映像)を含む。従って、実施例によるポイントクラウドコンテンツ提供システムは、ポイントクラウドコンテンツを生成するために一つ又はそれ以上のカメラ(例えば、深さ情報を確保できる赤外線カメラ、深さ情報に対応する色相情報を抽出できるRGBカメラなど)、プロジェクト(例えば、深さ情報を確保するための赤外線パターンプロジェクターなど)、LiDARなどを使用してポイントクラウドビデオをキャプチャーする。実施例によるポイントクラウドコンテンツ提供システムは、深さ情報から3次元空間上のポイントで構成されたジオメトリの形態を抽出し、色相情報からそれぞれのポイントの特質を抽出してポイントクラウドデータを確保する。実施例によるイメージ及び/又は映像は内向き(inward-facing)方式及び外向き(outward-facing)方式のうちのいずれかに基づいてキャプチャーされる。
【0041】
図3の左側には内向き方式が示されている。内向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトをキャプチャーする方式である。内向き方式は核心核心客体に対する360°イメージをユーザに提供するポイントクラウドコンテンツ(例えば、ユーザに客体(例:キャラクター、選手、品物、俳優などの核心となる客体)の360°イメージを提供するVR/ARコンテンツ)を生成するために使用される。
【0042】
図3の右側には外向き方式が示されている。外向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトではない中心オブジェクトの環境をキャプチャーする方式である。外向き方式はユーザの視点からの周辺環境を提供するためのポイントクラウドコンテンツ(例えば、自律走行車両のユーザに提供される外部環境を示すコンテンツ)を生成するために使用される。
【0043】
図示したように、ポイントクラウドコンテンツは一つ又はそれ以上のカメラのキャプチャー動作に基づいて生成される。この場合、それぞれのカメラの座標系が異なるので、ポイントクラウドコンテンツ提供システムはキャプチャー動作前にグローバル空間座標系(global coordinate system)を設定するために、一つ又はそれ以上のカメラの較正(calibration)を行う。またポイントクラウドコンテンツ提供システムは、上述したキャプチャー方式でキャプチャーされたイメージ及び/又は映像と任意のイメージ及び/又は映像を合成してポイントクラウドコンテンツを生成する。またポイントクラウドコンテンツ提供システムは、仮想空間を示すポイントクラウドコンテンツを生成する場合、図3で説明したキャプチャー動作を行わない。実施例によるポイントクラウドコンテンツ提供システムは、キャプチャーしたイメージ及び/又は映像に対して後処理を行うことができる。即ち、ポイントクラウドコンテンツ提供システムは、望まない領域(例えば、背景)を除去したり、キャプチャーしたイメージ及び/又は映像が連結された空間を認識して穴(spatial hole)がある場合、それを埋める動作を行うことができる。
【0044】
またポイントクラウドコンテンツ提供システムは、それぞれのカメラから確保したポイントクラウドビデオのポイントに対して座標系変換を行って、一つのポイントクラウドコンテンツを生成することができる。ポイントクラウドコンテンツ提供システムは、それぞれのカメラの位置座標を基準としてポイントの座標系変換を行う。これにより、ポイントクラウドコンテンツ提供システムは、一つの広い範囲を示すコンテンツを生成するか、或いはポイントの密度が高いポイントクラウドコンテンツを生成することができる。
【0045】
図4は実施例によるポイントクラウドエンコーダ(Point Cloud Encoder)の一例を示す図である。
【0046】
図4図1のポイントクラウドビデオエンコーダ10002の一例を示す。ポイントクラウドエンコーダは、ネットワーク状況或いはアプリケーションなどによってポイントクラウドコンテンツの質(例えば、無損失-lossless、損失-lossy、損失に近い-near-lossless)を調節するために、ポイントクラウドデータ(例えば、ポイントの位置及び/又は特質)を再構成して符号化動作を行う。ポイントクラウドコンテンツの全体サイズが大きい場合(例えば、30fpsの場合、60Gbpsであるポイントクラウドコンテンツ)、ポイントクラウドコンテンツ提供システムは該当コンテンツをリアルタイムストリーミングできない場合がある。従って、ポイントクラウドコンテンツ提供システムは、ネットワーク環境などに合わせて提供するために、最大ターゲットビットレート(bitrate)に基づいてポイントクラウドコンテンツを再構成することができる。
【0047】
図1及び図2に示したように、ポイントクラウドエンコーダはジオメトリ符号化及び特質符号化を行うことができる。ジオメトリ符号化は特質符号化よりも先に行われる。
【0048】
実施例によるポイントクラウドエンコーダは、座標系変換部(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を含む。
【0049】
座標系変換部40000、量子化部40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004及びジオメトリ再構成部40005は、ジオメトリ符号化を行うことができる。実施例によるジオメトリ符号化は、八分木ジオメトリコーディング、ダイレクトコーディング(direct coding)、trisoupジオメトリ符号化(trisoup geometry encoding)及びエントロピー符号化を含む。ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に或いは組み合わせて適用される。なお、ジオメトリ符号化は上記の例示に限られない。
【0050】
図示したように、実施例による座標系変換部40000は、位置を受信して座標系(coordinate)に変換する。例えば、位置は3次元空間(例えば、XYZ座標系で表現される3次元空間など)の位置情報に変換される。実施例による3次元空間の位置情報はジオメトリ情報とも称される。
【0051】
実施例による量子化部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次元空間のポイントのグループをボクセルでマッチングすることができる。実施例において、一つのボクセルは一つのポイントのみを含むことができる。実施例において、一つのボクセルは一つ又はそれ以上のポイントを含む。また一つのボクセルを一つのポイントで表現するために、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて、該当ボクセルの中央点(center)の位置を設定することができる。この場合、一つのボクセルに含まれた全ての位置の特質が統合されて(combined)、該当ボクセルに割り当て(assigned)られる。
【0052】
実施例による八分木分析部40002は、ボクセルを八分木構造で表すための八分木ジオメトリコーディング(又は八分木コーディング)を行う。八分木構造は八分割構造に基づいてボクセルにマッチングされたポイントを表現する。
【0053】
実施例による表面近似分析部40003は、八分木を分析して近似化する。実施例による八分木分析及び近似化は、八分木及びボクセル化を効率的に提供するために、多数のポイントを含む領域をボクセル化するために分析を行う過程である。
【0054】
実施例による演算エンコーダ40004は、八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。符号化の結果としてジオメトリビットストリームが生成される。
【0055】
色変換部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コーディング、予測変換コーディング及びリフト変換コーディングが選択的に使用されるか、又は一つ又はそれ以上のコーディングの組み合わせが使用される。また実施例による特質符号化は上述した例示に限られない。
【0056】
実施例による色変換部40006は、特質に含まれた色値(又はテクスチャ)を変換する色変換コーディングを行う。例えば、色変換部40006は色相情報のフォーマットを変換(例えば、RGBからYCbCrに変換)する。実施例による色変換部40006の動作は、特質に含まれた色値によって任意に(optional)適用される。
【0057】
実施例によるジオメトリ再構成部40005は、八分木、予測木及び/又は近似化した八分木を再構成(復元)する。ジオメトリ再構成部40005はポイントの分布を分析した結果に基づいて八分木/ボクセルを再構成する。再構成された八分木/ボクセルは再構成されたジオメトリ(又は復元されたジオメトリ)とも呼ばれる。
【0058】
実施例による特質変換部40007は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。上述したように、特質はジオメトリに従属するので、特質変換部40007は再構成されたジオメトリ情報に基づいて特質を変換することができる。例えば、特質変換部40007は、ボクセルに含まれたポイントの位置値に基づいてその位置のポイントが有する特質を変換することができる。上述したように、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて該当ボクセルの中央点の位置が設定される場合、特質変換部40007は一つ又はそれ以上のポイントの特質を変換する。trisoupジオメトリ符号化が行われた場合、特質変換部40007はtrisoupジオメトリ符号化に基づいて特質を変換することができる。
【0059】
特質変換部40007は、各ボクセルの中央点の位置(又は位置値)から特定の位置/半径内に隣接しているポイントの特質又は特質値(例えば、各ポイントの色相、又は反射率など)の平均値を計算して特質変換を行う。特質変換部40007は平均値の計算時、中央点から各ポイントまでの距離による加重値を適用する。従って、各ボクセルは位置及び計算された特質(又は特質値)を有する。
【0060】
特質変換部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ツリー又はモールトンコードが活用される。
【0061】
図示したように、変換された特質はRAHT変換部40008及び/又はLOD生成部40009に入力される。
【0062】
実施例によるRAHT変換部40008は、再構成されたジオメトリ情報に基づいて特質情報を予測するRAHTコーディングを行う。例えば、RAHT変換部40008は、八分木の下位レベルにあるノードに連関する特質情報に基づいて、八分木の上位レベルにあるノードの特質情報を予測することができる。
【0063】
実施例によるLOD生成部40009は予測変換コーディングを行うために、LOD(Level of Detail)を生成する。実施例によるLODはポイントクラウドコンテンツの詳細を示す程度であって、LOD値が小さいほどポイントクラウドコンテンツの詳細が低いことを示し、LOD値が大きいほどポイントクラウドコンテンツの詳細が高いことを示す。ポイントをLODによって分類できる。
【0064】
実施例によるリフト変換部40010は、ポイントクラウドの特質を加重値に基づいて変換するリフト変換コーディングを行う。上述したように、リフト変換コーディングは選択的に適用される。
【0065】
実施例による係数量子化部40011は、特質コーディングされた特質を係数に基づいて量子化する。
【0066】
実施例による演算エンコーダ40012は、量子化された特質を演算コーディングに基づいて符号化する。
【0067】
図4のポイントクラウドエンコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図4のポイントクラウドエンコーダのエレメントの動作及び/又は機能のうち、いずれか一つを行うことができる。また、一つ又はそれ以上のプロセッサは、図4のポイントクラウドエンコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行することができる。実施例による一つ又はそれ以上のメモリは高速ランダムアクセスメモリを含むか、又は非揮発性メモリ(例えば、一つ又はそれ以上のマグネチックディスク格納デバイス、フラッシュメモリデバイス、又は他の非揮発性固体メモリデバイス(Solid-state memory devices)など)を含む。
【0068】
図5は実施例によるボクセルの一例を示す図である。
【0069】
図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で説明した通りであるので、省略する。
【0070】
図6は実施例による八分木及び占有コード(occupancy code)の一例を示す図である。
【0071】
図1ないし図4に示したように、ポイントクラウドコンテンツ提供システム(ポイントクラウドビデオエンコーダ10002)又はポイントクラウドエンコーダ(例えば、八分木分析部40002)は、ボクセルの領域及び/又は位置を効率的に管理するために、八分木構造基盤の八分木ジオメトリコーディング(又は八分木コーディング)を行う。
【0072】
図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)は量子化されたポイントの位置(又は位置値)を示す。
【0073】
【数1】
【0074】
図6の上側中央に示したように、分割によって全体3次元空間は8つの空間に分かれる。分割されたそれぞれの空間は6つの面を有するキューブで表現される。図6の右上側に示したように、8つの空間はそれぞれ再び座標系の軸(例えば、X軸、Y軸、Z軸)により分かれる。よって、それぞれの空間は再び8つの小さい空間に分かれる。分割された小さい空間も6つの面を有するキューブで表現される。このような分割方式は八分木のリーフノード(leaf node)がボクセルになるまで適用される。
【0075】
図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)は占有コードに基づいて八分木を再構成する。
【0076】
実施例によるポイントクラウドエンコーダ(例えば、図4のポイントクラウドエンコーダ、又は八分木分析部40002)は、ポイントの位置を格納するためにボクセル化及び八分木コーディングを行う。しかし、3次元空間内のポイントがいつも均一に分布していることではないので、ポイントが多く存在しない特定の領域が存在し得る。従って、3次元空間の全体に対してボクセル化を行うことは非効率的である。例えば、特定の領域にポイントがほぼ存在しないと、該当領域までボクセル化を行う必要はない。
【0077】
従って、実施例によるポイントクラウドエンコーダは、上述した特定の領域(又は八分木のリーフノードを除いたノード)についてはボクセル化を行わず、特定の領域に含まれたポイントの位置を直接にコーディングするダイレクトコーディング(Direct coding)を行う。実施例によるダイレクトコーディングポイントの座標は、ダイレクトコーディングモード(Direct Coding Mode、DCM)と呼ばれる。また実施例によるポイントクラウドエンコーダは、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化(Trisoup geometry encoding)を行うことができる。trisoupジオメトリ符号化はオブジェクトの表現を三角形メッシュ(triangle mesh)のシリーズで表現するジオメトリ符号化である。従って、ポイントクラウドデコーダはメッシュ表面からポイントクラウドを生成することができる。実施例によるダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に行われる。また実施例によるダイレクトコーディング及びtrisoupジオメトリ符号化は八分木ジオメトリコーディング(又は八分木コーディング)と結合して行うことができる。
【0078】
ダイレクトコーディング(Direct coding)を行うためには、ダイレクトコーディングを適用するための直接モード(direct mode)の使用オプションが活性化されている必要があり、ダイレクトコーディングを適用するノードはリーフノードではなく、特定のノード内に閾値(threshold)以下のポイントが存在する必要がある。またダイレクトコーディングの対象となる全体ポイントの個数は所定の閾値を超えてはいけない。上記条件を満たすと、実施例によるポイントクラウドエンコーダ(又は演算エンコーダ40004)はポイントの位置(又は位置値)をエントロピーコーディングすることができる。
【0079】
実施例によるポイントクラウドエンコーダ(例えば、表面近似分析部40003)は、八分木の特定のレベル(レベルは八分木の深さdよりは小さい場合)を定め、そのレベルからは表面モデルを使用してノード領域内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化を行うことができる(trisoupモード)。実施例によるポイントクラウドエンコーダは、trisoupジオメトリ符号化を適用するレベルを指定できる。例えば、指定されたレベルが八分木の深さと同一であると、ポイントクラウドエンコーダはtrisoupモードで動作しない。即ち、実施例によるポイントクラウドエンコーダは指定されたレベルが八分木の深さ値よりも小さい場合にのみtrisoupモードで動作することができる。実施例による指定されたレベルのノードの3次元立方体領域をブロック(block)と呼ぶ。一つのブロックは一つ又はそれ以上のボクセルを含む。ブロック又はボクセルはブリック(brick)に対応することもできる。それぞれのブロック内においてジオメトリは表面(surface)と表現される。実施例による表面は最大1回、ブロックの各エッジ(edge)と交差することができる。
【0080】
一つのブロックは12つのエッジを有するので、一つのブロック内に少なくとも12つの交差点が存在する。それぞれの交差点はバーテックス(vertex、頂点又は頂上)と呼ばれる。エッジに沿って存在するバーテックスは該当エッジを共有する全てのブロックのうち、そのエッジに隣接する少なくとも一つの占有ボクセル(occupied voxel)がある場合に検知される。実施例による占有ボクセルはポイントを含むボクセルを意味する。エッジに沿って検出されたバーテックスの位置は、該当エッジを共有する全てのブロックのうち、該当エッジに隣接する全てのボクセルのエッジによる平均位置である(the average position along the edge of all voxels)。
【0081】
バーテックスが検出されると、実施例によるポイントクラウドエンコーダは、エッジの開始点(x,y,z)、エッジの方向ベクトル(Δx,Δy,Δz)、バーテックス位置値(エッジ内の相対的位置値)をエントロピーコーディングすることができる。trisoupジオメトリ符号化が適用された場合、実施例によるポイントクラウドエンコーダ(例えば、ジオメトリ再構成部40005)は三角形再構成(triangle reconstruction)、アップ-サンプリング(up-sampling)、ボクセル化過程を行って復元されたジオメトリ(再構成されたジオメトリ)を生成することができる。
【0082】
ブロックのエッジに位置するバーテックスはブロックを通過する表面を決定する。実施例による表面は非平面多角形である。三角形再構成の過程ではエッジの開始点、エッジの方向ベクトルとバーテックスの位置値に基づいて三角形で示される表面を再構成する。三角形再構成の過程は以下の通りである。(1)各バーテックスの中心(centroid)値を計算し、(2)各バーテックスの値から中心値を引いた値に(3)自乗を行って、その値を全て合算した値を得る。
【0083】
【数2】
【0084】
合算された値の最小値を求め、最小値がある軸に沿って投影(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番目のバーテックスで構成される。
【0085】
Triangles formed from vertices ordered 1,…,n
【0086】
n triangles
【0087】
3 (1,2,3)
【0088】
4 (1,2,3), (3,4,1)
【0089】
5 (1,2,3), (3,4,5), (5,1,3)
【0090】
6 (1,2,3), (3,4,5), (5,6,1), (1,3,5)
【0091】
7 (1,2,3), (3,4,5), (5,6,7), (7,1,3), (3,5,7)
【0092】
8 (1,2,3), (3,4,5), (5,6,7), (7,8,1), (1,3,5), (5,7,1)
【0093】
9 (1,2,3), (3,4,5), (5,6,7), (7,8,9), (9,1,3), (3,5,7), (7,9,3)
【0094】
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)
【0095】
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)
【0096】
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)
【0097】
アップサンプリング過程は三角形のエッジに沿って中間に点を追加してボクセル化するために行われる。アップサンプリング係数(upsampling factor)とブロックの幅を基準として追加点を生成する。追加点はリファインドバーテックス(refined vertice)と呼ばれる。実施例によるポイントクラウドエンコーダはリファインドバーテックスをボクセル化することができる。またポイントクラウドエンコーダはボクセル化された位置(又は位置値)に基づいて特質符号化を行うことができる。
【0098】
図7は実施例による隣接ノードパターンの一例を示す図である。
【0099】
ポイントクラウドビデオの圧縮効率を増加させるために、実施例によるポイントクラウドエンコーダはコンテキスト適応演算(context adaptive arithmetic)コーディングに基づいてエントロピーコーディングを行う。
【0100】
図1ないし図6で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダ(例えば、ポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ又は演算エンコーダ40004)は、占有コードをすぐエントロピーコーディングすることができる。またポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダは、現在ノードの占有コードと隣接ノードの占有率に基づいてエントロピー符号化(イントラ符号化)を行うか、又は以前フレームの占有コードに基づいてエントロピー符号化(インター符号化)を行うことができる。実施例によるフレームは、同時間に生成されたポイントクラウドビデオの集合を意味する。実施例によるイントラ符号化/インター符号化の圧縮効率は、参照する隣接ノードの個数によって異なる。ビットが大きくなると複雑になるが、一側に傾くようにして圧縮効率を高めることができる。例えば、3-bit contextを有すると、2の3乗である8つの方法でコーディングする。分けてコーディングする部分は具現の複雑度に影響を及ぼす。従って、圧縮効率と複雑度の適正水準を合わせる必要がある。
【0101】
図7は隣接ノードの占有率に基づいて占有パターンを求める過程を示す。実施例によるポイントクラウドエンコーダは、八分木の各ノードの隣接ノードの占有率(occupancy)を判断して隣接ノードパターン(neighbor pattern)値を得る。隣接ノードパターンは該当ノードの占有パターンを推論するために使用される。図7の左側はノードに対応するキューブ(真ん中に位置するキューブ)及び該当キューブと少なくとも一面を共有する6つのキューブ(隣接ノード)を示している。図示したノードは同じ深さのノードである。図示した数字は6つのノードとそれぞれ連関する加重値(1、2、4、8、16、32など)を示す。各加重値は隣接ノードの位置によって順次に付与される。
【0102】
図7の右側は隣接ノードパターン値を示す。隣接ノードパターン値は占有された隣接ノード(ポイントを有する隣接ノード)の加重値が掛けられた値の合計である。従って、隣接ノードパターン値は0から63までの値を有する。隣接ノードパターン値が0であることは、該当ノードの隣接ノードのうち、ポイントを有するノード(占有ノード)がないことを意味する。隣接ノードパターン値が63であることは、隣接ノードが全て占有ノードであることを意味する。図示したように、加重値1、2、4、8が付与された隣接ノードは占有ノードであるので、隣接ノードパターン値は1、2、4、8を併せた値である15である。ポイントクラウドエンコーダは隣接ノードパターン値によってコーディングを行うことができる(例えば、隣接ノードパターン値が63である場合、64つのコーディングを行う)。実施例においてポイントクラウドエンコーダは隣接ノードパターン値を変更して(例えば、64を10又は6に変更するテーブルに基づいて)、コーディングの複雑度を減らすことができる。
【0103】
図8は実施例によるLODごとのポイント構成の一例を示す図である。
【0104】
図1ないし図7で説明したように、特質符号化が行われる前、符号化されたジオメトリは再構成(復元)される。ダイレクトコーディングが適用された場合、ジオメトリ再構成の動作はダイレクトコーディングされたポイントの配置を変更することを含む(例えば、ダイレクトコーディングされたポイントをポイントクラウドデータの前方に配置)。trisoupジオメトリ符号化が適用された場合、ジオメトリ再構成の過程は三角形再構成、アップサンプリング、ボクセル化の過程を特質はジオメトリに従属するので、特質符号化は再構成されたジオメトリに基づいて行われる。
【0105】
ポイントクラウドエンコーダ(例えば、LOD生成部40009)はポイントをLODごとに分類する(reorganization)。図面はLODに対応するポイントクラウドコンテンツを示す。図において左側はオリジナルポイントクラウドコンテンツを示す。図において左側から2番目は最低LODのポイントの分布を示し、最右側は最高LODのポイントの分布を示す。即ち、最低LODのポイントは粗い(sparse)分布であり、最高LODのポイントは細かい分布である。即ち、図面の下側に示された矢印方向に沿ってLODが増加するほどポイント間の間隔(又は距離)は短くなる。
【0106】
図9は実施例によるLODごとのポイント構成の一例を示す図である。
【0107】
図1ないし図8で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドエンコーダ(例えば、ポイントクラウドビデオエンコーダ10002、図4のポイントクラウドエンコーダ又はLOD生成部40009)はLODを生成する。LODはポイントを設定されたLOD距離値(又はユークリッド距離(Euclidean Distance)のセット)によって改良レベル(refinement levels)のセットで再整列して生成される。LOD生成過程はポイントクラウドエンコーダだけではなく、ポイントクラウドデコーダでも行われる。
【0108】
図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を含む。
【0109】
図4で説明したように、実施例によるポイントクラウドエンコーダは予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングを選択的に又は組み合わせて行うことができる。
【0110】
実施例によるポイントクラウドエンコーダは、ポイントに対する予測機(predictor)を生成して各ポイントの予測特質(又は予測特質値)を設定するための予測変換コーディングを行う。即ち、N個のポイントに対してN個の予測機が生成される。実施例による予測機は各ポイントのLOD値とLODごとに設定された距離内に存在する隣接ポイントに対するインデックス情報及び隣接ポイントまでの距離値に基づいて加重値(=1/距離)を計算することができる。
【0111】
実施例による予測特質(又は特質値)は、各ポイントの予測機に設定された隣接ポイントの特質(又は特質値、例えば、色相、反射率など)に各隣接ポイントまでの距離に基づいて計算された加重(又は加重値)を掛けた値の平均値で設定される。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は、各ポイントの特質(特質値)から予測特質(特質値)を引いた残余値(residuals、残余特質、残余特質値、特質予測残余値、属性残差値などとも呼ばれる)を量子化(quatization)及び逆量子化(inverse quantization)することができる。量子化過程は以下の表の通りである。
【0112】
【表1】
【0113】
【表2】
【0114】
実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがあれば、上述したように、量子化及び逆量子化された残余値をエントロピーコーディングする。実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがないと、上述した過程を行わず、該当ポイントの特質をエントロピーコーディングする。
【0115】
実施例によるポイントクラウドエンコーダ(例えば、リフト変換部40010)は、各ポイントの予測機を生成し、予測機に計算されたLODを設定及び隣接ポイントを登録し、隣接ポイントまでの距離による加重値を設定してリフト変換コーディングを行う。実施例によるリフト変換コーディングは、上述した予測変換コーディングと類似するが、特質値に加重値を累積適用するという点で差がある。実施例による特質値に加重値を累積適用する過程は以下の通りである。
【0116】
1)各ポイントの加重値を貯蔵する配列QW(QuantizationWieght)を生成する。QWの全ての要素の初期値は1.0である。予測機に登録された隣接ノードの予測機インデックスのQW値に現在ポイントの予測機の加重値を掛けた値を加える。
【0117】
2)リフト予測過程:予測された特質値を計算するために、ポイントの特質値に加重値を掛けた値を既存の特質値から引く。
【0118】
3)アップデートウェイト(updateweight)及びアップデートという臨時配列を生成し、臨時配列を0に初期化する。
【0119】
4)全ての予測機に対して計算された加重値に予測機インデックスに該当するQWに貯蔵された加重値をさらに掛けて算出された加重値をアップデートウェイト配列に隣接ノードのインデックスとして累積して合算する。アップデート配列には隣接ノードのインデックスの特質値に算出された加重値を掛けた値を累積して合算する。
【0120】
5)リフトアップデート過程:全ての予測機に対して、アップデート配列の特質値を予測機インデックスのアップデートウェイト配列の加重値で割り、割った値に再び既存の特質値を加える。
【0121】
6)全ての予測機に対して、リフトアップデート過程でアップデートされた特質値にリフト予測過程でアップデートされた(QWに貯蔵された)加重値をさらに掛けて予測特質値を算出する。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は予測特質値を量子化する。またポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は量子化された特質値をエントロピーコーディングする。
【0122】
実施例によるポイントクラウドエンコーダ(例えば、RAHT変換部40008)は、八分木の下位レベルのノードに連関する特質を使用して上位レベルのノードの特質を予測するRAHT変換コーディングを行う。RAHT変換コーディングは八分木バックワードスキャンによる特質イントラコーディングの一例である。実施例によるポイントクラウドエンコーダは、ボクセルから全体領域にスキャンし、各ステップにおいてボクセルをもっと大きいブロックに合わせながらルートノード(root node)までの併合過程を繰り返して行う。実施例による併合過程は、占有ノードのみについて行われる。空ノード(empty node)については併合過程が行われず、空ノードの直上位ノードについて併合過程が行われる。
【0123】
【0124】
【数3】
【0125】
【0126】
【数4】
【0127】
gDC値もハイパス係数のように量子化されてエントロピーコーディングされる。
【0128】
図10は実施例によるポイントクラウドデコーダ(Point Cloud Decoder)の一例を示す。
【0129】
図10に示したポイントクラウドデコーダは、図1に示したポイントクラウドビデオデコーダ10006の一例であり、図1で説明したイントクラウドビデオデコーダ10006の動作などと同一又は類似する動作を行う。図示したように、ポイントクラウドデコーダは一つ又はそれ以上のビットストリーム(bitstream)に含まれたジオメトリビットストリーム(geometry bitstream)及び特質ビットストリーム(Attribute bitstream)を受信する。ポイントクラウドデコーダはジオメトリデコーダ(geometry decoder)及び特質デコーダ(attribute decoder)を含む。ジオメトリデコーダはジオメトリビットストリームに対してジオメトリ復号を行って復号されたジオメトリ(decoded geometry)を出力する。特質デコーダは復号されたジオメトリ及び特質ビットストリームに基づいて特質復号を行って復号された特質(decoded attributes)を出力する。復号されたジオメトリ及び復号された特質はポイントクラウドコンテンツを復元(decoded point cloud)するために使用される。
【0130】
図11は実施例によるポイントクラウドデコーダ(Point Cloud Decoder)の一例を示す。
【0131】
図11に示したポイントクラウドデコーダは図10で説明したポイントクラウドデコーダの一例であり、図1ないし図9で説明したポイントクラウドエンコーダの符号化動作の逆過程である復号動作を行う。
【0132】
図1及び図10で説明したように、ポイントクラウドデコーダはジオメトリ復号及び特質復号を行う。ジオメトリ復号は特質復号よりも先に行われる。
【0133】
実施例によるポイントクラウドデコーダは、演算デコーダ(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を含む。
【0134】
演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び座標系逆変換部11004はジオメトリ復号を行う。実施例によるジオメトリ復号はダイレクト復号(direct decoding)及びtrisoupジオメトリ復号(trisoup geometry decoding)を含む。ダイレクト復号及びtrisoupジオメトリ復号は選択的に適用される。またジオメトリ復号は上記の例示に限られず、図1ないし図9で説明したジオメトリ符号化の逆過程で行われる。
【0135】
実施例による演算デコーダ11000は、受信したジオメトリビットストリームを演算コーディングに基づいて復号する。演算デコーダ11000の動作は演算エンコーダ40004の逆過程に対応する。
【0136】
実施例による八分木合成部11001は、復号されたジオメトリビットストリームから(又は復号結果、確保されたジオメトリに関する情報)から占有コードを獲得して八分木を生成する。占有コードに関する具体的な説明は図1ないし図9に説明した通りである。
【0137】
実施例による表面近似合成部11002は、trisoupジオメトリ符号化が適用された場合、復号されたジオメトリ及び/又は生成された八分木に基づいて表面を合成する。
【0138】
実施例によるジオメトリ再構成部11003は、表面及び/又は復号されたジオメトリに基づいてジオメトリを再生成する。図1ないし図9で説明したように、ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に適用される。従って、ジオメトリ再構成部11003はダイレクトコーディングが適用されたポイントの位置情報を直接持ってきて追加する。また、trisoupジオメトリ符号化が適用される場合、ジオメトリ再構成部11003はジオメトリ再構成部40005の再構成動作、例えば、三角形再構成、アップサンプリング、ボクセル化動作を行ってジオメトリを復元する。具体的な内容は図6で説明した通りであるので省略する。復元されたジオメトリは特質を含まないポイントクラウドピクチャ又はフレームを含む。
【0139】
実施例による座標系逆変換部11004は復元されたジオメトリに基づいて座標系を変換してポイントの位置を得る。
【0140】
演算デコーダ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つの復号は選択的に使用されるか、一つ又はそれ以上の復号の組み合わせが使用される。また実施例による特質復号は上述した例示に限られない。
【0141】
実施例による演算デコーダ11005は、特質ビットストリームを演算コーディングに復号する。
【0142】
実施例による逆量子化部11006は、復号された特質ビットストリーム又は復号結果により確保した特質に関する情報を逆量子化(inverse quantization)して、逆量子化された特質(又は特質値)を出力する。逆量子化はポイントクラウドエンコーダの特質符号化に基づいて選択的に適用される。
【0143】
実施例においてRAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009は、再構成されたジオメトリ及び逆量子化された特質を処理する。上述したように、RAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009は、ポイントクラウドエンコーダの符号化によってそれに対応する復号動作を選択的に行う。
【0144】
実施例による色逆変換部11010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色逆変換部11010の動作はポイントクラウドエンコーダの色変換部40006の動作に基づいて選択的に行われる。
【0145】
図11のポイントクラウドデコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図11のポイントクラウドデコーダのエレメント動作及び/又は機能のうちのいずれかを行う。また、一つ又はそれ以上のプロセッサは、図11のポイントクラウドデコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行する。
【0146】
図12は実施例による送信装置の一例を示す。
【0147】
図12に示した送信装置は、図1の送信装置10000(又は図4のポイントクラウドエンコーダ)の一例である。図12に示した送信装置は、図1ないし図9で説明したポイントクラウドエンコーダの動作及び符号化方法と同一又は類似する動作及び方法のうちのいずれかを行う。実施例による送信装置は、データ入力部12000、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005、演算コーダー12006、メタデータ処理部12007、色相変換処理部12008、特質変換処理部(又は属性変換処理部)12009、予測/リフト/RAHT変換処理部12010、演算コーダー12011及び/又は送信処理部12012を含む。
【0148】
実施例によるデータ入力部12000はポイントクラウドデータを受信又は獲得する。データ入力部12000はポイントクラウドビデオ獲得部10001の動作及び/又は獲得方法(又は図2に示した獲得過程20000)と同一又は類似する動作及び/又は獲得方法を行う。
【0149】
データ入力部12000、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005及び演算コーダー12006はジオメトリ符号化を行う。実施例によるジオメトリ符号化は、図1ないし図9で説明したジオメトリ符号化と同一又は類似するので、具体的な説明は省略する。
【0150】
実施例による量子化処理部12001は、ジオメトリ(例えば、ポイントの位置値、又はポジション値)を量子化する。量子化処理部12001の動作及び/又は量子化は、図4に示した量子化部40001の動作及び/又は量子化と同一又は類似する。具体的な説明は図1ないし図9に説明した通りである。
【0151】
実施例によるボクセル化処理部12002は、量子化されたポイントの位置値をボクセル化する。ボクセル化処理部12002は図4に示した量子化部40001の動作及び/又はボクセル化過程と同一又は類似する動作及び/又は過程を行う。具体的な説明は図1ないし図9に説明した通りである。
【0152】
実施例による八分木占有コード生成部12003は、ボクセル化されたポイントの位置を八分木構造に基づいて八分木コーディングを行う。八分木占有コード生成部12003は占有コードを生成する。八分木占有コード生成部12003は図4及び図6で説明したポイントクラウドエンコーダ(又は八分木分析部40002)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1ないし図9に説明した通りである。
【0153】
実施例による表面モデル処理部12004は、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化を行う。表面モデル処理部12004は図4に示したポイントクラウドエンコーダ(例えば、表面近似分析部40003)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1ないし図9に説明した通りである。
【0154】
実施例によるイントラ/インターコーディング処理部12005は、ポイントクラウドデータをイントラ/インターコーディングする。イントラ/インターコーディング処理部12005は、図7で説明したイントラ/インターコーディングと同一又は類似するコーディングを行う。具体的な説明は図7に説明した通りである。実施例においてイントラ/インターコーディング処理部12005は演算コーダー12006に含まれる。
【0155】
実施例による演算コーダー12006は、ポイントクラウドデータの八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。演算コーダー12006は演算エンコーダ40004の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
【0156】
実施例によるメタデータ処理部12007は、ポイントクラウドデータに関するメタデータ、例えば、設定値などを処理してジオメトリ符号化及び/又は特質符号化などの必要な処理過程に提供する。また実施例によるメタデータ処理部12007は、ジオメトリ符号化及び/又は特質符号化に関連するシグナリング情報を生成及び/又は処理する。実施例によるシグナリング情報はジオメトリ符号化及び/又は特質符号化とは別途に符号化処理される。また実施例によるシグナリング情報はインターリービングされることもある。
【0157】
色相変換処理部12008、特質変換処理部12009、予測/リフト/RAHT変換処理部12010及び演算コーダー12011は特質符号化を行う。実施例による特質符号化は、図1ないし図9で説明した特質符号化と同一又は類似するので具体的な説明は省略する。
【0158】
実施例による色相変換処理部12008は、特質に含まれた色相値を変換する色相変換コーディングを行う。色相変換処理部12008は再構成されたジオメトリに基づいて色相変換コーディングを行う。再構成されたジオメトリに関する説明は、図1ないし図9に説明した通りである。また図4で説明した色変換部40006の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は省略する。
【0159】
実施例による特質変換処理部12009は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。特質変換処理部12009は図4に説明した特質変換部40007の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は省略する。実施例による予測/リフト/RAHT変換処理部12010は変換された特質をRAHTコーディング、予測変換コーディング及びリフト変換コーディングのうちのいずれか一つ又は組み合わせてコーディングする。予測/リフト/RAHT変換処理部12010は図4に説明したRAHT変換部40008、LOD生成部40009及びリフト変換部40010の動作と同一又は類似する動作のうちのいずれかを行う。また、予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングに関する説明は図1ないし図9に説明した通りであるので、具体的な説明は省略する。
【0160】
実施例による演算コーダー12011は、コーディングされた特質を演算コーディングに基づいて符号化する。演算コーダー12011は演算エンコーダ400012の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
【0161】
実施例による送信処理部12012は、符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報を含む各ビットストリームを送信するか、又は符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報を一つのビットストリームで構成して送信する。実施例による符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報が一つのビットストリームで構成された場合、ビットストリームは一つ又はそれ以上のサブビットストリームを含む。実施例によるビットストリームはシーケンスレベルのシグナリングのためのSPS(Sequence Parameter Set)、ジオメトリ情報コーディングのシグナリングのためのGPS(Geometry Parameter Set)、特質情報コーディングのシグナリングのためのAPS(Attribute Parameter Set)、タイルレベルのシグナリングのためのTPS(Tile Parameter Set)を含むシグナリング情報及びスライスデータを含む。スライスデータは一つ又はそれ以上のスライスに関する情報を含む。実施例による一つのスライスは一つのジオメトリビットストリーム(Geom00)及び一つ又はそれ以上の特質ビットストリーム(Attr00、Attr10)を含む。
【0162】
スライス(slice)とは、コーディングされたポイントクラウドフレームの全体又は一部を示すシンタックスエレメントのシリーズをいう。
【0163】
実施例によるTPSは一つ又はそれ以上のタイルに対してそれぞれのタイルに関する情報(例えば、bounding boxの座標値情報及び高さ/サイズ情報など)を含む。ジオメトリビットストリームはヘッダとペイロードを含む。実施例によるジオメトリビットストリームのヘッダはGPSに含まれたパラメータセットの識別情報(geom_parameter_set_id)、タイル識別子(geom_tile_id)、スライス識別子(geom_slice_id)及びペイロードに含まれたデータに関する情報などを含む。上述したように、実施例によるメタデータ処理部12007はシグナリング情報を生成及び/又は処理して送信処理部12012に送信することができる。実施例において、ジオメトリ符号化を行うエレメント及び特質符号化を行うエレメントは、点線処理したように、相互データ/情報を共有することができる。実施例による送信処理部12012は送信機10003の動作及び/又は送信方法と同一又は類似する動作及び/又は送信方法を行う。具体的な説明は図1及び図2に説明した通りであるので、省略する。
【0164】
図13は実施例による受信装置の一例を示す。
【0165】
図13に示した受信装置は、図1の受信装置10004(又は図10及び図11のポイントクラウドデコーダ)の一例である。図13に示した受信装置は、図1ないし図11で説明したポイントクラウドデコーダの動作及び復号方法と同一又は類似する動作及び方法のうちのいずれかを行う。
【0166】
実施例による受信装置は、受信部13000、受信処理部13001、演算(arithmetic)デコーダ13002、占有コード(Occupancy code)基盤の八分木再構成処理部13003、表面モデル処理部(三角形再構成、アップサンプリング、ボクセル化)13004、逆(inverse)量子化処理部13005、メタデータ分析13006、演算(arithmetic)デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009、色相逆変換処理部13010及び/又はレンダラー13011を含む。実施例による復号の各構成要素は実施例による符号化の構成要素の逆過程を行う。
【0167】
実施例による受信部13000は、ポイントクラウドデータを受信する。受信部13000は図1の受信機10005の動作及び/又は受信方法と同一又は類似する動作及び/又は受信方法を行う。具体的な説明は省略する。
【0168】
実施例による受信処理部13001は受信したデータからジオメトリビットストリーム及び/又は特質ビットストリームを得る。受信処理部13001は受信部13000に含まれる。
【0169】
演算デコーダ13002、占有コード基盤の八分木再構成処理部13003、表面モデル処理部13004及び逆量子化処理部13005はジオメトリ復号を行う。実施例によるジオメトリ復号は図1ないし図10で説明したジオメトリ復号と同一又は類似するので、具体的な説明は省略する。
【0170】
実施例による演算デコーダ13002はジオメトリビットストリームを演算コーディングに基づいて復号する。演算デコーダ13002は演算デコーダ11000の動作及び/又はコーディングと同一又は類似する動作及び/又はコーディングを行う。
【0171】
実施例による占有コード基盤の八分木再構成処理部13003は、復号されたジオメトリビットストリームから(又は復号結果、確保されたジオメトリに関する情報)から占有コードを獲得して八分木を再構成する。占有コード基盤の八分木再構成処理部13003は、八分木合成部11001の動作及び/又は八分木生成方法と同一又は類似する動作及び/又は方法を行う。実施例による表面モデル処理部13004はtrisoupジオメトリ符号化が適用された場合、表面モデル方式に基づいてtrisoupジオメトリ復号及びそれに関連するジオメトリ再構成(例えば、三角形再構成、アップサンプリング、ボクセル化)を行う。表面モデル処理部13004は表面近似合成部11002及び/又はジオメトリ再構成部11003の動作と同一又は類似する動作を行う。
【0172】
実施例による逆量子化処理部13005は復号されたジオメトリを逆量子化する。
【0173】
実施例によるメタデータ分析13006は受信したポイントクラウドデータに含まれたメタデータ、例えば、設定値などを分析する。メタデータ分析13006はメタデータをジオメトリ復号及び/又は特質復号に伝達する。メタデータに関する具体的な説明は図12で説明した通りであるので省略する。
【0174】
演算デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009及び色相逆変換処理部13010は特質復号を行う。特質復号は図1ないし図10で説明した特質復号と同一又は類似するので、具体的な説明は省略する。
【0175】
実施例による演算デコーダ13007は、特質ビットストリームを演算コーディングに復号する。演算デコーダ13007は再構成されたジオメトリに基づいて特質ビットストリームの復号を行う。演算デコーダ13007は演算デコーダ11005の動作及び/又はコーディングと同一又は類似する動作及び/又はコーディングを行う。
【0176】
実施例による逆量子化処理部13008は、復号された特質ビットストリームを逆量子化する。逆量子化処理部13008は逆量子化部11006の動作及び/又は逆量子化方法と同一又は類似する動作及び/又は方法を行う。
【0177】
実施例による予測/リフト/RAHT逆変換処理部13009は、再構成されたジオメトリ及び逆量子化された特質を処理する。予測/リフト/RAHT逆変換処理部13009は、RAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009の動作及び/又は復号と同一又は類似する動作及び/又は復号のうちのいずれかを行う。実施例による色相逆変換処理部13010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色相逆変換処理部13010は色逆変換部11010の動作及び/又は逆変換コーディングと同一又は類似する動作及び/又は逆変換コーディングを行う。実施例によるレンダラー13011はポイントクラウドデータをレンダリングする。
【0178】
図14は実施例によるポイントクラウドデータの送受信方法/装置に連動可能な構造の一例を示す。
【0179】
図14の構造はサーバー1460、ロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440、家電1450及び/又はHMD1470のうちのいずれかがクラウドネットワーク1410に連結された構成を示している。ロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440又は家電1450などは装置とも呼ばれる。またXR装置1430は実施例によるポイントクラウドデータ(PCC)装置に対応するか又はPCC装置に連動する。
【0180】
クラウドネットワーク1400はクラウドコンピューティングインフラの一部を構成するか、又はクラウドコンピューティングインフラ内に存在するネットワークを意味する。ここで、クラウドネットワーク1400は3Gネットワーク、4G又はLTEネットワーク又は5Gネットワークなどを用いて構成される。
【0181】
サーバー1460はロボット1410、自律走行車両1420、XR装置1430、スマートフォン1440、家電1450及び/又はHMD1470のいずれかにクラウドネットワーク1400により連結され、連結された装置1410~1470のプロセシングの少なくとも一部を助けることができる。
【0182】
HMD(Head-Mount Display)1470は実施例によるXRデバイス及び/又はPCCデバイスが具現されるタイプのうちのいずれかを示す。実施例によるHMDタイプのデバイスは、コミュニケーションズユニット、コントロールユニット、メモリユニット、I/Oユニット、センサユニット及びパーワ供給ユニットなどを含む。
【0183】
以下、上記技術が適用される装置1410~1450の様々な実施例について説明する。ここで、図14に示した装置1410~1450は上述した実施例によるポイントクラウドデータ送受信装置に連動/結合することができる。
【0184】
<PCC+XR>
【0185】
XR/PCC装置1430はPCC及び/又はXR(AR+VR)技術が適用されて、HMD(Head-Mount Display)、車両に備えられたHUD(Head-Up Display)、TV、携帯電話、スマートフォン、コンピューター、ウェアラブルデバイス、家電機器、デジタル看板、車両、固定型ロボットや移動型ロボットなどで具現されることもできる。
【0186】
XR/PCC装置1430は、様々なセンサにより又は外部装置から獲得した3次元ポイントクラウドデータ又はイメージデータを分析して3次元ポイントに対する位置データ及び特質データを生成することにより周辺空間又は現実オブジェクトに関する情報を得て、出力するXR客体をレンダリングして出力することができる。例えば、XR/PCC装置1430は認識された物体に関する追加情報を含むXR客体を該当認識された物体に対応して出力することができる。
【0187】
<PCC+XR+モバイルフォン>
【0188】
XR/PCC装置1430は、PCC技術が適用されて、モバイルフォン1440などで具現されることができる。
【0189】
モバイルフォン1440は、PCC技術に基づいてポイントクラウドコンテンツを復号し、ディスプレイすることができる。
【0190】
<PCC+自律走行+XR>
【0191】
自律走行車両1420はPCC技術及びXR技術が適用されて、移動型ロボット、車両、無人飛行体などで具現される。
【0192】
XR/PCC技術が適用された自律走行車両1420は、XR映像を提供する手段を備えた自律走行車両やXR映像内での制御/相互作用の対象となる自律走行車両などを意味する。特に、XR映像内での制御/相互作用の対象となる自律走行車両1420はXR装置1430とは区分されて、互いに連動されることができる。
【0193】
XR/PCC映像を提供する手段を備えた自律走行車両1420は、カメラを含むセンサからセンサ情報を得て、得たセンサ情報に基づいて生成されたXR/PCC映像を出力する。例えば、自律走行車両1420はHUDを備えてXR/PCC映像を出力することにより、搭乗者に現実オブジェクト又は画面内のオブジェクトに対応するXR/PCC客体を提供することができる。
【0194】
このとき、XR/PCC客体がHUDに出力される場合には、XR/PCC客体の少なくとも一部が搭乗者の視線が向く実際の客体にオーバーラップされるように出力される。反面、XR/PCC客体が自律走行車両内に備えられるディスプレイに出力される場合には、XR/PCC客体の少なくとも一部が画面内の客体にオーバーラップされるように出力される。例えば、自律走行車両1220は車路、他の車両、信号灯、交通表示板、二輪車、歩行者、建物などのような客体に対応するXR/PCC客体を出力することができる。
【0195】
実施例によるVR(Virtual Reality)技術、AR(Augmented Reality)技術、MR(Mixed Reality)技術及び/又はPCC(Point Cloud Compression)技術は、様々なデバイスに適用可能である。
【0196】
即ち、VR技術は現実の客体や背景などをCG映像のみで提供するディスプレイ技術である。反面、AR技術は実際物事の映像上に仮想のCG映像を共に見せる技術である。また、MR技術は現実世界に仮想客体を混ぜて結合して見せるという点では前述したAR技術と類似する。しかし、AR技術では現実の客体とCG映像からなる仮想の客体の区別が明らかであり、現実客体を補完する形態で仮想の客体を使用する反面、MR技術では仮想の客体と現実の客体が同様の性格と見なされるという点でAR技術とは区別される。より具体的には、例えば、上記MR技術が適用されたことがホログラムサービスである。
【0197】
但し、最近にはVR、AR、MR技術を明確に区別するよりは、XR(extended Reality)技術とも呼ぶ。よって、本発明の実施例はVR、AR、MR、XR技術のいずれにも適用可能である。かかる技術はPCC、V-PCC、G-PCC技術基盤の符号化/復号が適用される。
【0198】
実施例によるPCC方法/装置は自律走行サービスを提供する車両に適用できる。
【0199】
自律走行サービスを提供する車両はPCCデバイスと有無線通信可能に連結される。
【0200】
実施例によるポイントクラウドデータ(PCC)送受信装置は、車両と有無線通信可能に連結された場合、自律走行サービスと共に提供できるAR/VR/PCCサービス関連コンテンツデータを受信/処理して車両に送信することができる。またポイントクラウドデータ送受信装置車両に搭載された場合は、ポイントクラウド送受信装置はユーザインターフェース装置で入力されたユーザ入力信号によってAR/VR/PCCサービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信する。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含む。
【0201】
図1ないし図14に示したように、ポイントクラウドデータは、ポイントの集合からなり、各ポイントは、ジオメトリデータ(ジオメトリ情報)と特質データ(特質情報)を有する。ジオメトリデータは、各ポイントの3次元位置情報(例えば、x,y,z軸の座標値)である。すなわち、各ポイントの位置は、3次元空間を示す座標系上のパラメータ(例えば、空間を示す3つの軸であるX軸、Y軸及びZ軸のパラメータ(x,y,z))で表現される。また、特質情報は、ポイントの色相(RGB、YUVなど)、反射度(reflectance)、法線(normal vectors)、透明度(transparency)などを意味する。特質情報はスカラー又はベクトルで示される。
【0202】
実施例によれば、ポイントクラウドデータの種類及び取得方法に応じて静的ポイントクラウドデータのカテゴリー1、動的ポイントクラウドデータのカテゴリー2、動的に動きながら取得したカテゴリー3にポイントクラウドデータを分類することができる。カテゴリー1は、オブジェクトや空間に対してポイントの密度が高い単一フレームのポイントクラウドから構成される。カテゴリー3のデータは、移動しながら取得した多数のフレームを有するフレーム-基盤データ及び大規模空間に対してライダーセンサを介して取得したポイントクラウドと2D映像で取得した色相映像が整合された単一フレームの融合された(fused)データに区分される。
【0203】
実施例によれば、ポイントクラウドデータの符号化又は復号化の過程においてポイントクラウドデータを同じフレーム内の他のポイントクラウドデータから予測することで効率を高めることができる。同じフレーム内に属するポイントクラウドデータ間の予測をイントラ予測(intra prediction)といい、画面内の予測を示す。
【0204】
実施例によれば、多数のフレームを有するフレーム-基盤ポイントクラウドデータのように、時間によるマルチプルフレーム(multiple frames)を有する3次元ポイントクラウドデータを効率的に圧縮するために、インター予測(inter prediction)を用いてもよい。インター予測は、ジオメトリ情報及び/又は特質情報に適用される。インター予測は、画面間予測又はフレーム間予測であり、イントラ予測は、画面内予測である。
【0205】
以下、インター予測と関連した動き推定(Motion estimation)を説明する。
【0206】
インター予測は、コーディングされたフレーム(frame)から現在フレーム(current frame)と類似度の高い情報を活用して、現在フレームの全体又は一部を予測する。このとき、類似度を判断する単位は予測ユニット(Prediction unit,PU)という。インター予測(inter prediction)は、時間によって取得したマルチプルフレーム間の動きを用いる予測方式であり、動きベクトル推定(motion vector estimation)又は動き推定(motion estimation)によって実行される。
【0207】
動き推定は、フレームの全体を回転、移動、拡大及び/又は縮小する方式で、動きベクトルを算出するグローバル動き推定(global motion estimation)と、フレームの一部領域又はオブジェクトの動きを予測するローカル動き推定(local motion estimation)とに区分される。
【0208】
インター予測は、参照フレームのポイントクラウドデータと現在フレームのポイントクラウドデータとの類似性に基づいて動きベクトルを算出し、動きベクトルを用いて現在フレームのポイントクラウドデータを予測する。
【0209】
本明細書による実施例は、インター予測に基づく属性情報圧縮で圧縮の効率を高める方法/装置を提案する。複数の連続したフレームを有するデータを圧縮するとき、隣接フレーム間の相関関係が高いことがあり、この場合、フレーム間の重複する情報を除去することで圧縮効率が向上される。
【0210】
実施例はインター予測基盤の属性情報圧縮であって、動き推定(motion estimation)及び動き補償(motion compensation)基盤の属性圧縮、位置情報(geometry information)及び属性情報(attribute information)を考慮した動き推定(motion estimation) の方法を提案する。
【0211】
動き補償(motion compensation)基盤のポイントクラウドデータ圧縮は、予測単位(Prediction unit)によって以前フレーム(又は参照フレーム)と現在フレームとの間の動きを探し、動きベクトル(motion vector)により予測を行い、予測値と圧縮対象値(又は原本値)とを比較して類似する情報を除去することで圧縮を行う。
【0212】
実施例は、八分木(octree)基盤の位置圧縮方法で使用される動き予測及び動き補償方法に基づいて動き予測基盤の属性圧縮方法を説明する。実施例において八分木構造に基づいて属性を圧縮する方法は、LoD(Level of Datail)のような構造に基づく属性圧縮にも適用できる。
【0213】
動き推定(motion estimation)はモーション推定又はモーションエスティメーションとも呼び、動き補償(motion compensation)はモーション補償又はモーションコンペンセーションとも呼ぶ。動きベクトル(motion vector)はモーションベクトルとも呼ぶ。
【0214】
図15は実施例による動きベクトル算出の一例を示す。
【0215】
実施例による動きベクトル算出は、図1図2図4図10図11図12図13図25図28に示したエンコーダ/符号化の動作、又はデコーダ/復号の動作、送受信装置/方法によって実行される。具体的には、図12のイントラ/インターコーディング処理部12005、図25の動き推定(Motion estimation)、図27の動き推定(Motion estimation)の動作によって実行される。
【0216】
実施例による動きベクトル算出は、動き推定(motion estimation)で示される。
【0217】
動き推定(motion estimation)は、予測ユニット(prediction unit)(PU)15003単位で行われる。予測ユニット15003は、現在フレームで八分木構造の特定の深さ(depth)における隣接ノードの集合で定義されてもよく、同一の親ノード(parent node)を有するノードの集合で定義されてもよい。親ノードは上位レベルのノードを示す。
【0218】
現在フレームで定義された任意の予測ユニット(PU)15003に対して、参照フレームにおいて類似情報を推定するために、図15のように動きが推定される。このとき、動き推定の効率性を高めるために、参照フレームに対して動き調査領域(search window)15001が定義され、予測ユニット15003に含まれた情報と調査領域に含まれた情報との類似性が判断される。現在フレームは、符号化又は復号化の対象となるフレームを称し、参照フレームは、符号化又は復号化の過程で現在フレームのポイントクラウドデータを予測するために参照するフレームを称する。現在フレーム及び参照フレームのそれぞれは、第1のフレームと第2のフレームとも呼ばれる。また、参照フレームは、以前フレーム、以後フレームなどと参照されるフレームの性格に応じて様々な方法で呼ばれる 。
【0219】
このとき、類似性の判断の正確度を高めるために、予測ユイット15003に含まれたポイントの位置分布特性及び属性分布特性を共に考慮する。現在フレームの予測ユニット15003に属するポイントの集合をブロックB(block B)と定義し、参照フレームにおいて調査領域(search window)W内に定義された任意の予測候補に属するポイントの集合を予測機候補(predictor candidate)P15002とすれば、BとPとの差異D(B,P)は、以下のように、各ポイントの位置情報と属性情報の差異の関数で定義される。関数D(B,P)は、BとPに属するポイントをb、pとするとき、各ポイントの位置をb(x,y,z)、p(x,y,z)と定義し、属性は、b(r,g,b,R)、p(r,g,b,R)と定義する。実施例が提案する動き推定(motion estimation)の方法は、属性圧縮又は位置圧縮、両方にも適用できる。
【0220】
【数5】
【0221】
図16は実施例において八分木ノードが分割されているか否か、占有されているか否かを示すフラグ情報の一例を示す。図16に示したように、八分木ノードが分割又は占有されている状態に応じて、スプリットフラグ(split flag)情報、ポピュレーションフラグ(pop flag)情報がシグナリングされる。
【0222】
図16の左側に示したように、スプリット(分割)されていないノード(16001)に対してスプリットフラグは0にシグナリングされる。ノードが分割され、分割された下位ノードのうちのいずれか1つが占有された場合(16002)、スプリットフラグは1 0000であり、ポピュレーションフラグは1000にシグナリングされる。また、ノードが分割され、その下位ノードのうちの一部がさらに分割された場合(16003)、スプリットフラグは1 1010であり、ポピュレーションフラグは01 1001 1000である。
【0223】
図16の右側にLPUがPUに分割されていることを示す。Populated LPUは陰影で表示される。また、分割されていない場合と、1次分割(1st order split)されている場合、及び2次分割(2nd order split)されている場合が図示される。
【0224】
また、実施例による送受信装置/方法は、各々の八分木深さに対して分割するか否かを決定するために、以下の式のように、下位予測ユニットのコストの累積値でコスト関数(cost function)を定義する。以下のコスト関数は、動きベクトルの使用においてそれによる誤差発生、ビット使用、又はノードを分割する場合による演算をコストで示す項を含む。よって、コスト関数で算出したコスト(cost)が最も小さい方に八分木ノードの分割が決定される。すなわち、実施例によれば、八分木ノードを分割する場合のコストと、動きベクトルを送信する場合のコストとを比較し、コストの小さい方に符号化過程が決定される。
【0225】
【数6】
【0226】
図17は実施例による八分木ノードのコスト関数を算出する一例を示す。
【0227】
図17によれば、分割された下位ノードのうち、占有されたノードのコスト関数算出の一例(C(V1),C(V4))が示され、ノード全体のコスト関数算出の一例(C)が示される。ここで、Eはerrorを示す項である。
【0228】
実施例による送受信装置/方法は、前述したコスト関数を用いることで、八分木ノードを分割するか、動きベクトルを適用するかの効率的な方法を選択することができる。
【0229】
実施例によるコスト関数の使用は、図1図2図4図12図25に示したエンコーダ/符号化動作の送信装置/方法によって実行される。実施例による送信装置/方法は、ノードを分割するか否か、動きベクトルを送信するか否かの情報をシグナリングし、実施例による受信装置/方法(図10図11図13図26図28)は、受信されたシグナリング情報に基づいてポイントクラウドデータを復号する。
【0230】
図18は実施例による八分木構造で動き推定が実行される一例を示す。
【0231】
実施例による送受信装置/方法は、八分木構造の特定の深さ範囲において動き推定を実行する。実施例による動き推定は、図1図2図4図10図11図12図13図25図28に示すエンコーダ/符号化の動作又はデコーダ/復号の動作、送受信装置/方法によって実行される。
【0232】
図18に示したように、八分木構造を有するポイントクラウドデータに対して、図15のように、動きベクトルを探す過程が行われる。ルート(root)からリーフ(leaf)に至る八分木構造において動き推定(motion estimation)が行われる八分木深さ(depth)範囲は陰影で表示される。特定のノードを分割(split)することなく、動きベクトル(MV)を送達した方が分割(split)よりもコスト関数のコスト(cost)が小さい場合、splitが0と指定され、当該ノードに対して動きベクトルが適用される。逆に、ノードを分割(split)した方が動きベクトル(MV)の送達よりもコスト関数のコスト(cost)が大きい場合は、ノードを分割し、下位ノードで動きベクトルが送達される。
【0233】
図18によれば、ME depth start及びME depth endは、実施例による動き推定が行われる八分木深さ(又はレベル)の範囲を示す。図18では、ルートノードの次の下位ノードからリーフノードのすぐ上位ノードまで動き推定を行うか否かを判断する。Splitが0であるノードは、動きベクトルを送達した方がコスト関数のコストが小さくて分割しないノードであり、splitが1であるノードは、分割した方がコスト関数のコストが小さくてノードをさらに分割したノードである。
【0234】
図19は実施例による参照フレームの予測ブロックP19001から予測された予測ブロックB’19002の一例を示す。
【0235】
実施例により算出した動きベクトルに基づいて、参照フレームから予測ブロックB’を予測することを動き補償(motion compensation)で示す。実施例による動き補償は、図1図2図4図10図11図12図13図25図28に示すエンコーダ/符号化の動作又はデコーダ/復号の動作、送受信装置/方法によって実行される。具体的には、図25図26の動き補償ユニット(motion compensation unit)、図27の動き補償(motion compensation)動作、図28のインターフレーム属性予測(inter-frame attribute prediction)で実行される。
【0236】
実施例によるインター予測基盤の属性圧縮方法は、参照フレームに対する動きベクトルV情報に基づいて予測ブロック(Predictor)Pが特定される。現在フレームに対して予測が行われる予測ユニットのブロック位置をB(x,y,z)とし、動きベクトルV19003をV(x,y,z)とするとき、予測ブロック(Predictor)P19001の位置P(x,y,z)は、以下のように定義される。
【0237】
【数7】
【0238】
ブロック位置は、ブロックに含まれたポイントに対する境界ボックス(bounding box)の各軸に対する最小値で定義される。参照フレームで定義されたP19001に基づいて現在フレームの予測対象Bが予測される。現在フレームの予測ユニットに対する予測をB’19002とするとき、B’に属するポイントの占有(occupancy)は、Pの占有(occupancy)に従い、B’に属するポイントb’の位置と属性は、Pに属するポイントpの位置と属性について以下のように定義される。
【0239】
【数8】
【0240】
予測ブロック(Predictor)P19001によって予測されたBの予測ブロックB’19002の代表属性は、以下のように定義される。
【0241】
【数9】
【0242】
avg{}とmed{}は、平均と中間値を出力する関数であり、T、H、Lは、全体集合、昇順に並べたときの上位a%、下位b%に属するポイントの集合を示す。N()は、集合に属するポイントの数を示し、このように、予め定義された範囲に属するポイントの平均によって代表属性が定義される。
【0243】
実施例によるポイントクラウドデータ送信装置が符号化のときに現在フレームのポイントクラウドデータを予測する場合、参照フレームのポイントクラウドデータ情報を用いて現在フレームのポイントクラウドデータを予測する。例えば、図19のように、参照フレームの予測ブロックP19001から動きベクトルV19003だけ動き補償(motion compensation)が行われ、現在フレームの予測ブロックB’19002が予測される。
【0244】
実施例による予測ブロックB’19002に属するポイントは、現在フレームに対する予測ポイントであり得る。予測ブロックB’19002に属するポイントの属性情報は、実施例によって算出された参照フレームの予測ブロックP19001に属するポイントの属性情報で予測される。具体的に、予測ブロックB’19002に属するポイントの属性情報は、予測ブロック19001に属するポイントの平均属性値又は中間属性値で予測され、予測ブロック19001に属するポイントのうちの一部の属性値の平均に基づいて予測される。
【0245】
以上の動き推定(estimation)過程及び動き補償(compensation)過程からフレーム間の相関関係に基づく属性圧縮が実行される。
【0246】
前述した実施例によるポイントクラウドデータの処理は、実施例によるポイントクラウドデータ送信装置(例えば、図1のポイントクラウドビデオエンコーダ10002、図2の符号化20001、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430、図25の送信装置、1つ以上のメモリと通信可能に設定された1つ以上のプロセッサ、又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせなど)によって実行される。
【0247】
また、前述した実施例によるポイントクラウドデータの処理は、実施例によるポイントクラウドデータ受信装置(図1のポイントクラウドビデオデコーダ10006、図10図11図13の受信装置、図14のXRデバイス1430、図26の受信装置及び/又は1つ以上のメモリと通信可能に設定された1つ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせなど)によって実行される。
【0248】
図20は実施例による八分木構造において上位深さの親ノード属性が子ノード属性に基づいて定義されることの一例を示す。
【0249】
実施例による八分木ノードの属性マッチングは、図1図2図4図10図11図12図13図25図28に示すエンコーダ/符号化の動作又はデコーダ/復号の動作、送受信装置/方法によって実行される。
【0250】
フレーム間の相関関係に基づく属性圧縮の最初の過程では、現在フレームのポイントクラウドに対する八分木構造から生成される各ノードに属性をマッチングする。これにはスケーラブル属性コーディング(scalable attribute coding)で使用する方法が適用される。ポイントクラウドデータの各ポイントは、八分木構造のリーフノードと1対1マッチングされることができるが、上位深さの親(parent)ノード属性が子(child)ノードの属性に基づいて定義される。例えば、図20によれば、モートンコード(Morton code)順に整列された子(child)において最初の子(child)の属性が親(parent)の属性として指定される。1つ上の深さ(depth)に対しては最後の子(child)の属性が親(parent)の属性として指定され、このサンプリング(sampling)過程がルート(root)に至るまで交互に行われる。図20において、実線で示す円は、各々の八分木深さで定義されるポイント/ノードを意味し、点線は、上位ノードの属性でサンプリングされることを示す。
【0251】
実施例による八分木構造のノード情報(位置情報又は属性情報)のマッチングは、フレーム内の相関関係によって子ノードの情報に基づいてサンプリングすることで親ノードの情報が指定される。(intra)
【0252】
フレーム間の相関関係を利用しない場合、すなわち、フレーム内の相関関係のみを基盤として圧縮を実行する場合、各々の八分木深さレベル(octree depth level)から予測残差が送達される。すなわち、図20において、各レベルに応じて、o/ d-o / h-d / a-d、f-h、l-o / b-a、c-a、e-d、g-f、i-h、j-h、k-h、m-l、n-l、p-o、q-oが残差として送達される。このとき、ルートに対しては属性値そのものが同じであるため、大きい予測エラーを有し、親(parent)-子(child)の属性の相関関係が低い場合、予測エラーが大きくなり、圧縮の効率が低下する。
【0253】
図20によれば、下位ノードの属性のうちのいずれか1つの属性が親ノードの属性として指定される。例えば、それぞれa、b、cの属性を有するリーフノードの親ノードは、リーフノードの属性の1つであるa属性で指定される。また、それぞれa、d属性を有する子ノードの親ノードは、子ノードの属性の1つであるd属性で指定される。すなわち、親ノードの属性情報は、子ノードの属性情報の中でサンプリングして指定される。親ノードへの属性情報指定は、リーフノードからルートノードに至るまで行われる。
【0254】
実施例によるポイントクラウドデータ送受信方法/装置は、フレーム間の動き予測に基づいて参照フレーム内に存在する予測ブロックの属性によって現在フレームの予測ユニットブロックの属性を予測する方法を提案する。
【0255】
図21は実施例による八分木構造において特定の八分木深さ範囲に対して動き推定に基づいて属性を予測する一例を示す。
【0256】
図21は、属性情報がマッチングされた八分木構造に対して、動き推定(motion estimation)及び動き補償(motion compensation)によって各々の属性予測値が各々のノードにマッチングされることを示す。このとき、ME depth start-endの範囲に属するノードのうち、動きベクトルが送信されるノード又はスプリットフラグ(split flag)が0であるノードに対して、フレーム間の属性予測がマッチングされ、予測属性値は動きが補償された予測ブロック内のポイントに基づく代表属性(又は、平均、中間値、最初、以後、一部に対する平均など)で指定される。図21において予測属性値をo’、d’、f’、h’で表現する。
【0257】
実施例による八分木ノードの属性値の予測は、図1図2図4図10図11図12図13図25図28に示すエンコーダ/符号化の動作、又はデコーダ/復号の動作、送受信装置/方法によって実行される。
【0258】
参照フレームから予測属性値を取得した後、各ノードに対する残差(residual)は、以下のように生成される。
【0259】
1. depth start ・・・ depth end -1
【0260】
動きベクトルが存在する場合(split flag=0)、残差(residual)=ノード属性(node attribute)-予測属性(predicted attribute)
【0261】
その他の場合、スキップ(skip)
【0262】
2. depth end ・・・ leafについて、
【0263】
動きベクトルが存在する場合(split flag=0)、残差(residual)=ノード属性(node attribute)-予測属性(predicted attribute)
【0264】
その他の場合、残差(residual)=子(child)-親(parent)
【0265】
このとき、従来のスケーラブル属性コーディング(scalable attribute coding)とは異なり、ルート(root)から残差(residual)を生成するのではなく、ME depth startから残差(residual)を生成する。それにより生成される残差は、以下のようである。以下において下線した部分は、フレーム間の予測を使用する場合を示す。以下は、フレーム間の予測に基づいて残差(residual)が生成される一例を示す。
【0266】
ME start depth : o-o’,d-d’
【0267】
ME end depth : a-d,f-f’,h-h’,l-o
【0268】
Leaf: b-a,c-a,e-d,g-f,i-h,j-h,k-h,m-l,n-l,p-o,q-o
【0269】
実施例において予測ブロック(predictor)の属性を代表属性値とする方法を説明したが、圧縮方法に応じて全てのリーフ(leaf)ノードに対して予測ブロック(predictor)が定義されるか、親(parent)のノードで予測ブロック(predictor)内のポイントをマッチングする方法が適用される。また、残差(residual)の送達するに当たって、イントラ予測(intra-prediction)の残差(residual)とインター予測(inter-prediction)の残差(residual)との差異又は平均値が送達される。
【0270】
実施例において動きベクトル(MV)、スプリットフラグ(split_flag)、ポピュレーションフラグ(population_flag)がある場合、実施例によるポイントクラウドデータ受信装置は、以下のようにポイントクラウドデータの復元を実行する。
【0271】
1.depthStart
【0272】
A.ノードoに対して親(parent)ノードが復元されておらず、split_flag=0、動きベクトルに基づいてo’を予測、o=o’+res
【0273】
2.depthStart+1
【0274】
A.ノードdに対して親(parent)ノードが復元されておらず、split_flag=0、動きベクトルに基づいてd’を予測、d=d’+res
【0275】
B.ノードoに対して親(parent)ノードが復元されていて、サンプリング(sampling)される位置(点線)であるため、親(parent)の属性を相続
【0276】
3.depthEnd
【0277】
A.ノードaに対して親(parent)ノードが復元されているため、フレーム内の予測に基づいてa=d+res
【0278】
B.ノードdに対して親(parent)ノードが復元されていて、サンプリング(sampling)される位置(点線)であるため、親(parent)の属性を相続
【0279】
C.ノードfに対して親(parent)ノードが復元されておらず、split_flag=0、動きベクトルに基づいてf’を予測、f=f’+res
【0280】
D.ノードhに対して親(parent)ノードが復元されておらず、split_flag=0、動きベクトルに基づいてh’を予測、h=h’+res
【0281】
E.ノードiに対して親(parent)ノードが復元されているため、フレーム内の予測に基づいてi=o+res
【0282】
F.ノードoに対して親(parent)ノードが復元されていて、サンプリング(sampling)される位置(点線)であるため、親(parent)の属性を相続
【0283】
depthEndにおいて全てのノードが復元されるため、以後のノードに対してはイントラ予測(intra prediction)によって属性の復元が行われる。
【0284】
実施例によるポイントクラウドデータ送受信装置/方法は、前述のように、属性情報を予測することで、親ノードと子ノードとの差異値よりも小さい残差を送受信することができる。よって、小さい残差値の送信による符号化/復号化及び送受信の効率が増大される。
【0285】
実施例によるポイントクラウドデータ送受信装置/方法は、図20のように、属性情報が指定された八分木構造に対して特定の範囲(ME depth start、ME depth end)で動き推定に基づく属性情報の予測を行う。図21によれば、属性情報dに対して動き推定に基づいて予測属性情報d’が予測され、属性情報fに対して動き推定に基づいて予測属性情報f’が予測され、属性情報hに対して動き推定に基づいて予測属性情報h’が予測される。また、属性情報oに対して動き推定に基づいて予測属性情報o’が予測される。
【0286】
八分木ノードに対する残差情報は、ME depth startからME depth end -1の範囲である場合、動きベクトルが存在すれば(split flag=0)、残差(residual)は、ノード属性(node attribute)と予測属性(predicted attribute)との差異である。動きベクトルが存在しない場合は、スキップしてもよい。
【0287】
ME depth endにおいてリーフノード範囲の場合、動きベクトルが存在すれば(split flag=0)、残差(residual)は、ノード属性(node attribute)と予測属性(predicted attribute)との差異である。その他の場合、残差(residual)は、子(child)ノードの属性と親(parent)ノードの属性との差異である。
【0288】
実施例によるポイントクラウドデータ送受信装置/方法は、予測属性情報と原本属性情報の残差(d-d’、f-f’、h-h’、o-o’)を送受信することで、送信される残差情報を減らし、コーディングの効率を増大することができる。
【0289】
図22は実施例による符号化されたポイントクラウドデータの一例を示す。
【0290】
実施例による属性コーディングに対して、インター予測(inter prediction)に関する情報は、適用単位に応じて、パラメータセット(parameter set)、データユニットヘッダ(data unit header)、又はデータユニット(data unit)に定義され、アプリケーション、システムによって相応する位置又は所定の位置に定義され、適用範囲、適用方法などを異ならせて使用することができる。
【0291】
実施例は、データユニット(data unit)に情報が定義されることを説明したが、パラメータセット(parameter set)、データユニットヘッダ(data unit header)に定義されてもよく、属性コーディング(attribute coding)方法と連携するか、属性コーディング(attribute coding)に適用するために属性パラメータセット(attribute parameter set)及び属性スライスヘッダ(attribute slice header)に定義されてもよく、シーケンスパラメータセット(sequence parameter set)、タイルパラメータセット(tile parameter set)などに定義されてもよい。また、定義されたシンタックス要素(syntax element)が現在のポイントクラウドデータストリーム(point cloud data stream)だけではなく、複数のポイントクラウドデータストリーム(point cloud data stream)に適用可能な場合、上位概念のパラメータセット(parameter set)などを介して送達されてもよい。
【0292】
実施例によるシグナリング情報は、(スケーラブル)ポイントクラウド圧縮送信装置/方法の圧縮(符号化)過程から生成され、(スケーラブル)ポイントクラウド圧縮受信装置/方法の復号過程で使用される。
【0293】
以下、実施例によるパラメータ(メタデータ、シグナリング情報などと様々に呼ばれる)は、実施例による送信装置のプロセス上で生成され、実施例による受信装置へ送達され、ポイントクラウドデータの再構成過程に用いられる。例えば、実施例によるパラメータは、実施例による送信装置のメタデータ処理部(又は、メタデータジェネレータ)で生成され、実施例による受信装置のメタデータパーザで取得される。)
【0294】
スライス(slice)間の参照関係による圧縮は、スライスの開始ノードだけではなく、任意のノードに対してもその他のスライス内のノードを参照してもよい。また、ツリー(tree)間の参照関係に広がって適用することができる。
【0295】
図22に示す略語は、以下のことを意味する。
【0296】
SPS: Sequence Parameter Set
【0297】
GPS: Geometry Parameter Set
【0298】
APS: Attribute Parameter Set
【0299】
TPS: Tile Parameter Set
【0300】
Geom: Geometry bitstream = geometry slice header+ geometry slice data
【0301】
Attr: Attribute bitstream = attribute slice header + attribute slice data
【0302】
実施例によるポイントクラウドデータエンコーダ、送信装置などは、実施例による動作に関するシグナリング情報を生成し、上記のようなポイントクラウドデータを含むビットストリームを生成して送信する。
【0303】
実施例によるポイントクラウドデータデコーダ、受信装置などは、ビットストリームを受信し、ビットストリームに含まれたパラメータ(ら)に基づいてポイントクラウドデータを復元する。
【0304】
図23は実施例によるデータユニットヘッダシンタックスの一例を示す。
【0305】
図23図22のビットストリームに含まれたスライスヘッダを示す。
【0306】
図24は実施例によるデータユニットシンタックスの一例を示す。
【0307】
図24図22のビットストリームに含まれたスライスを示す。
【0308】
データユニットヘッダシンタックス及びデータユニットシンタックスは、図22のGeometry bitstream(Geom)又はAttribute bitstream(Attr)にマッチングされる。図22のスライス(slice)は、データユニット(data unit)と対応する。また、図22のスライスヘッダ(slice header)は、データユニットヘッダ(data unit header)と対応する。
【0309】
参照フレームID(ref_frame_id)は、予測ユニット(PU)の予測(prediction)に用いられる参照フレーム(reference frame)のインデックス(index)を示す。
【0310】
Mv_depth_start、mv_depth_endは、動きベクトル(motion vector)が送信可能な八分木深さ(octree depth)の開始と終了を示す。
【0311】
Split_flagが1である場合、当該ノードに対する動きベクトル(motion vector)は、子ノード(child)の分割以後に送達される。0である場合、当該ノードに対する動きベクトルが送達される。
【0312】
Pupolation_flagが1である場合、分割(split)されていないノードが占有(occupied)されているか否かを示す。
【0313】
動きベクトル(Motion_vector)は、各軸に対する動きベクトルを示す。
【0314】
残差(Residual)は、各軸に対する予測残差を示す。
【0315】
実施例によるパラメータ(メタデータ、シグナリング情報など)は、実施例による送受信装置/方法のプロセス上で生成され、実施例による受信装置へ送達され、ポイントクラウドデータの復元に用いられる。例えば、実施例によるパラメータは、実施例による送信装置のメタデータ処理部(又は、メタデータジェネレータ)で生成され、実施例による受信装置のメタデータパーザで取得される。
【0316】
図25は実施例によるポイントクラウドデータ送信装置/方法の一例を示す。図25に示す構成又は動作は、実施例によるポイントクラウドデータ送信装置/方法(例えば、図1の送信装置、図2の符号化、図4のエンコーダ、図12の送信装置、図27の送信方法)又はそれらの組み合わせによって実行される。実施例によるポイントクラウドデータ送受信装置/方法の構成要素は、ハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせによって構成/実行される。
【0317】
図25に示すポイントクラウドデータ送信装置/方法は、動き推定に基づく属性情報予測による属性情報圧縮である。動き推定に基づく圧縮方法は、位置情報の圧縮及びその他の情報の圧縮にも適用される。
【0318】
図25はフレーム間の相関関係による動き推定に基づく属性圧縮の一例を示す。入力されたポイントクラウドデータに対して八分木構造に基づいて八分木ノードに属性情報がマッチングされる(attr matching to octree nodes)。このとき、スケーラブルLoD生成(scalable LoD generation)方法が用いられる。また、八分木レベル(octree level)間の関係に基づいて属性予測が行われる(Intra-frame attribute prediction)。又は、実施例による動き推定に基づいて動きベクトルが存在するノードに対して動き基盤の属性予測が行われる(inter-frame attribute prediction)。このとき、動き推定(motion estimation)及び動き補償(motion compensation)は、属性圧縮において別途として適用されてもよく、位置圧縮時に推定された動きベクトルが使用されてもよい。前者の場合、動きベクトルを属性に対して別途に送達するが、後者の場合、位置圧縮のために送達された動きベクトル情報及びスプリット(split)、ポピュレーション(population)情報を再び使用するため、ビット率を下げることができる。予測された属性情報に対して、原本属性情報との差異を求め、これを変換(transform)、量子化(quantization)、エントロピーコーディング(entropy coding)することで、属性情報が圧縮される。
【0319】
図25に示す動き推定(motion estimation)に基づく属性情報予測(attiribute prediction)は、図15ないし図24に基づいて実行される。すなわち、動きベクトル(motion vector)は、現在フレームと参照フレームの位置情報の差異だけではなく、属性情報の差異を考慮して算出される。予測ポイントの属性情報は、参照フレームの予測ブロック(B’)の代表属性で予測される。図25において、八分木ノードに属性情報マッチングから八分木レベル間の関係に基づいて属性情報を予測する動作は、図18ないし図21に基づいて実行される。
【0320】
図25に示す実施例によるポイントクラウドデータ送信装置は、特質マッチャー(attr matcher to octree nodes)25001、イントラフレーム属性予測機(intra-frame attribute predictor)25002、予測誤差推定機(prediction error estimator)25003、変換機(transformer)25004、量子化機(quantizator)25005、エントロピー符号化機(entropy coder)25006、動き推定機(motion estimatior)25007、動き補償機(motion compensator)25008及び/又はインターフレーム属性予測機(inter-frame attribute predictor)25009を含む。
【0321】
特質マッチャー25001は、八分木構造(octree structure)のノードに属性情報をマッチングする。特質マッチャー25001は、八分木構造の下位ノードの属性情報をサンプリングし、親ノードの属性情報と指定する。すなわち、特質マッチャー25001は、下位ノードの属性情報に基づいて上位ノードの属性情報を指定する。実施例による八分木ノードと属性情報のマッチングについては、図20に説明する。
【0322】
イントラフレーム属性予測機25002は、同一のフレーム内のポイントの属性情報を参照して、予測ユニットに含まれたポイントの属性情報を予測する。実施例によるイントラフレームの属性予測は、八分木構造の上位ノードと下位ノードの属性情報に基づいて行われる。例えば、下位ノードのうちのいずれか1つの属性情報に基づいて上位ノードの属性情報を予測するか、又は上位ノードの属性情報に基づいて下位ノードの属性情報を予測する。
【0323】
動き推定機25007は、現在フレームのポイントを予測するために、参照フレームに基づいて動きベクトルを算出する。動き推定機25007は、参照フレーム内のサーチ範囲(search window)で複数の予測機候補のうち、現在フレームの予測ユニット(PU)と最も差異の小さい予測機候補Pを算出する。このとき、差異は、予測ユニット内のポイントの位置情報と属性情報に基づく関数によって算出する。実施例による動きベクトルは、現在フレームの予測ユニットブロックと参照フレームの予測機候補の差異、動きベクトルを使用するときに発生する誤差、更なるビットの使用などを考慮した最適な動きベクトルを算出する。図15において実施例による動きベクトル算出を説明する。
【0324】
動き補償機25008は、算出した動きベクトルに基づいて参照フレームのポイントから現在フレームのポイントを予測するための予測値を算出する。参照フレームのポイントの位置情報と動きベクトルに基づいて現在フレームの予測ユニット内のポイントの位置情報を予測し、参照フレームのポイントの属性情報に基づいて現在フレームの予測ユニット内のポイントの属性情報を予測する。図19において実施例による動き補償を説明する。
【0325】
インターフレーム属性予測機25009は、動き推定、動き補償に基づいて参照フレームのポイントの属性情報から現在フレームのポイントの属性情報を予測する。例えば、現在フレームの八分木ノードの属性情報は、参照フレームの予測機に属するポイントの属性情報から予測する。参照フレームの予測機は、動きベクトルに基づいて算出され、予測機内に属するポイントの属性情報の平均値、中間値、又は一部のポイントの属性情報の平均値の組み合わせなどによって現在フレームの八分木ノードの属性情報が予測される。図19において実施例による属性情報予測を説明する。予測誤差推定機(prediction error estimator)は、予測情報と原本情報の誤差である残差を生成する。実施例による残差は、八分木構造において上位ノード情報(位置又は属性)と下位ノード情報との差異値及び動き推定に基づいて予測された予測情報と原本情報との差異値を含む。図20ないし図21において実施例による残差を説明する。
【0326】
変換機25004は、残差を変換し、量子化機25005は、変換した残差値を量子化する。エントロピー符号化機25006は、変換して量子化した残差値をエントロピー符号化する。
【0327】
図26は実施例によるポイントクラウドデータ受信装置/方法の一例を示す。図26に示した動作は、実施例によるポイントクラウドデータ受信装置/方法(例えば、図1の受信装置、図2の復号、図11のデコーダ、図13の受信装置、図28の受信方法)、又はそれらの組み合わせによって構成/実行される。実施例によるポイントクラウドデータ送受信装置/方法の構成要素は、ハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせによって構成/実行される。
【0328】
図26に示すポイントクラウドデータ受信装置/方法は、動き推定に基づく属性情報予測による属性情報復元に関する。動き推定に基づく復元方式は、位置情報の復元及びその他の情報の復元にも適用される。また、図26のポイントクラウドデータ受信方法は、図25のポイントクラウドデータ送信方法で実行するデータ処理過程の逆過程に対応する。
【0329】
図26に示す動き推定(motion estimation)に基づく属性情報予測(attiribute prediction)は、図15ないし図24に基づいて実行される。すなわち、動きベクトル(motion vector)は、現在フレーム及び参照フレームの位置情報の差異だけではなく、属性情報の差異を考慮して算出される。予測ポイントの属性情報は、参照フレームの予測ブロック(B’)の代表属性で予測される。
【0330】
図26はインター予測(フレーム間の予測)を考慮した属性デコーダの実行動作の一例を示す。位置圧縮において適用した動きベクトル及び関連情報を属性圧縮に使用する場合、スプリット(split)、ポピュレーション(populatoin)情報に基づいてフレーム間の属性予測が実行される(inter-frame attribute prediction)。動きベクトルが送達されていないノードの場合、フレーム内の類似情報に基づいて予測が実行される(intra-frame attribute prediction)。
【0331】
図26に示す実施例によるポイントクラウドデータ受信装置は、エントロピーデコーダ(entropy decoder)26001、逆量子化機&逆変換機(inv.quantizator&inv.transformer)26002、イントラフレーム属性予測機(intra-frame attribute predictor)26003、復元機(reconstructor)26004、動き補償機(motion compensator)25005及び/又はインターフレーム属性予測機(inter-frame attribute predictor)26006を含む。
【0332】
エントロピーデコーダ(entropy decoder)26001は、ビットストリームを復号化する。逆量子化機&逆変換機(inv.quantizator&inv.transformer)26002は、復号化したポイントクラウドデータを逆量子化して逆変換する。
【0333】
イントラフレーム属性予測機26003は、同一のフレーム内のポイントの属性情報を参照して、予測ユニットに含まれたポイントの属性情報を予測する。実施例によるイントラフレーム属性予測は、八分木構造の上位ノードと下位ノードの属性情報に基づいて実行される。例えば、下位ノードのうちのいずれか1つの属性情報に基づいて上位ノードの属性情報を予測するか、上位ノードの属性情報に基づいて下位ノードの属性情報を予測する。
【0334】
動き補償機26005は、算出した動きベクトルに基づいて参照フレームのポイントから現在フレームのポイントを予測するための予測値を算出する。参照フレームのポイントの位置情報と動きベクトルに基づいて現在フレームの予測ユニット内のポイントの位置情報を予測し、参照フレームのポイントの属性情報に基づいて現在フレームの予測ユニット内のポイントの属性情報を予測する。図19において実施例による動き補償を説明する。
【0335】
インターフレーム属性予測部26006は、動き推定、動き補償に基づいて参照フレームのポイントの属性情報から現在フレームのポイントの属性情報を予測する。例えば、現在フレームの八分木ノードの属性情報は、参照フレームの予測機に属するポイントの属性情報から予測される。参照フレームの予測機は、動きベクトルに基づいて算出され、予測機内に属するポイントの属性情報の平均値、中間値、又は一部のポイントの属性情報の平均値の組み合わせなどによって現在フレームの八分木ノードの属性情報が予測される。図19において実施例による属性情報予測を説明する。
【0336】
復元機(reconstructor)26004は、予測された情報と残差値を合算して原本情報を復元する。すなわち、再構成されたポイントを生成する。
【0337】
図27は実施例によるポイントクラウドデータ送信方法の動作を示すフローチャートである。図27に示す動作は、実施例によるポイントクラウドデータ送信装置(例えば、図1の送信装置、図2の符号化、図4のエンコーダ、図12の送信装置、図25の送信装置)又はそれらの組み合わせによって実行される。実施例によるポイントクラウドデータ送受信装置の構成要素は、ハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせによって構成される。
【0338】
図27はフレーム間の相関関係に基づく属性圧縮方法を示す。八分木ノードに対して属性情報がマッチングされると、動きベクトルに基いて予測を行う深さ(depth)範囲(depthStart、depthEnd)で動き予測(motion estimation)及び動き補償(motion compensation)が実行される。図15ないし図19において実施例による動き予測及び動き補償の実行過程を説明する。
【0339】
このとき、親(parent)ノードをスプリット(split)したか否かを示すparentSplitFlagという内部パラメータに基づいて、動き予測を行うか否かを決定し、depthStartに属する全てのノードに対してはparentSplitFlag=1と仮定して、depthStartから予測を実行する。占有された(occupied)ノードに対して(population_flag=1)parentSplitFlagが1である場合、実施例による動き推定(又は予測)を実行し、取得した動きベクトルに対して動き補償(motion compensation)によって現在ノードと類似した予測ブロック(又はpredictor)を参照フレーム(reference frame)から取得する。動き推定において動きベクトルは、図15ないし図19のように、現在フレームと参照フレームとの位置情報の差異及び属性情報の差異を考慮して算出する。
【0340】
その後、動きベクトルを送達する場合にコスト関数で算出したコスト(cost(mv))と、送達せずにスプリット(split)する場合にコスト関数で算出したコスト(cost(split))とを比較し、動きベクトルを送達した方のコスト(cost)が小さい場合にはスプリット(split)を行わず、動きベクトルを用いる場合の予測ブロック(又はpredictor)に基づいてフレーム間の属性予測を実行し、子ノードに対してparentSplitFlagが0値に指定される。その逆の場合、スプリットされるため、split_flag=1に定義され、圧縮が行われない。動き推定(motion estimation)は、位置情報(geometry)コーディングにおいて生成された結果を使用することで、動きベクトルの送達にかかるビットを減らすことができる。一方、属性コーディングに対する別途の動きベクトルを送達すれば、属性にさらに正確な動きベクトルを送達することができる。
【0341】
図27を参照すれば、実施例によるポイントクラウドデータ送信方法は、以下のように動作する。
【0342】
以下の動作は、八分木ノードに属性情報がマッチングされた後、八分木構造のdepth start-depth endの範囲で実行される。
【0343】
S27001は、占有されたノードに対して親ノードが分割されたか否かを示す内部パラメータparentSplitFlag情報を確認するステップである。
【0344】
S27002は、占有されたノードに対して親ノードが分割されている場合(parentSplitFlag=1)、属性情報、位置情報に対する動き推定(motion estimation)を行うステップである。図25の動き推定機(motion estimation)25007で行う。
【0345】
S27003は、算出された動きベクトルに基づいて動き補償(motion compensation)を行うステップである。図25の動き補償機(motion compensator)25008で行う。
【0346】
S27004は、動きベクトルを送達する場合にコスト関数で算出されたコスト(cost(mv))と、送達せずにスプリット(split)を行う場合にコスト関数で算出されたコスト(cost(split))とを比較するステップである。
【0347】
S27005は、S27004において動きベクトルを送達するコストの方が低い場合、split flag=0、population flag=1、子ノードのparentSplitFlag=0と指定され、当該ノードに対してインターフレーム属性予測(inter-frame attribute prediction)が行われるステップである。図25のインターフレーム属性予測機25009で行う。
【0348】
S27006は、親ノードが分割されていない場合(parentSplitFlag=0)、イントラフレーム属性予測を行うステップである。図25のイントラフレーム属性予測機25002で行う。
【0349】
S27007は、インターフレーム属性予測又はイントラフレーム属性予測で予測された属性情報(attrInterPred、attrParent)と原本情報との残差を推定するステップである。図25の予測誤差推定機(prediction error estimator)25003で行う。
【0350】
前述した動作は、八分木構造の特定の深さ範囲で全てのノードを巡回しながら行われる。
【0351】
図28は実施例によるポイントクラウドデータ受信方法の動作を示すフローチャートである。
【0352】
図28に示す動作は、実施例によるポイントクラウドデータ受信装置/方法(例えば、図1の受信装置、図2の復号、図11のデコーダ、図13の受信装置、図26の受信装置)又はそれらの組み合わせによって実行される。実施例によるポイントクラウドデータ送受信装置の構成要素は、ハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせによって構成される。 図28に示す動作は、図27のポイントクラウドデータ送信装置/方法で実行するデータ処理過程の逆過程に対応する。
【0353】
図28によれば、実施例による受信装置は、別途の動きベクトルを送達されるか、位置情報コーディング(geometry decoding)過程から生成された動きベクトル情報を格納して属性復号化に使用する。実施例による受信装置は、ParentReconFlagという内部パラメータを用いて、親ノードが復号化されているか否かを示す。すなわち、ParentReconFlagが1である場合、フレーム内の属性予測値を用いて属性を復元し、0である場合、現在ノードに対して動きベクトルが存在し得るため、送達されるシグナルのsplit_flagを確認して、復号化をするか否かを決定する。Split_flagが1である場合、更なる分割(split)が行われるため、動きベクトルと残差が送達されない。split_flagが0である場合、参照フレームID(reference_frame_id)が指定するフレーム内で動き補償(motion compensation)された予測ブロックを介して属性予測を実行する(inter-frame attribute prediction)。動きベクトル、split_flag、population_flagなどは、直接にシグナリングされた値を使用するか、位置情報復元(geometry decoding)過程で算出された値を使用する。その後、予測値と残差を用いて各ノードにおける属性が復号化される。
【0354】
図28によれば、実施例によるポイントクラウドデータ受信方法は、以下のように動作する。
【0355】
以下の動作は、八分木構造のdepth start-depth end範囲で実行される。
【0356】
S28001は、占有されたノードに対して親ノードが復元されたか否かを示す内部パラメータのparentReconFlag情報を確認するステップである。
【0357】
S28002は、占有されたノードに対して親ノードが復元されていない場合(parentReconFlag=0)、Split_flag=0であるか否かを確認するステップである。Split_flag=0であれば、子ノードに対してparentReconFlag=1が指定される。
【0358】
S28003は、Split_flag=0である場合、動きベクトルに基づいてインターフレーム属性予測を実行するステップである。図26のインターフレーム属性予測部26006で実行する。現在フレームのポイント予測値(Pred)は、インターフレーム属性予測による予測値(attInterPred)となる。
【0359】
S28004は、占有されたノードに対して親ノードが復元されたか否かを示す内部パラメータparentReconFlag情報が1である場合、イントラフレーム属性予測を実行するステップである。図26のイントラフレーム属性予測機26003で実行する。現在フレームのポイント予測値(Pred)は、イントラフレーム属性予測による予測値(attParent)となる。例えば、親ノードの属性情報で子ノードの属性情報が予測される。
【0360】
S28005は、インターフレーム属性予測又はイントラフレーム属性予測で予測された属性情報(attrInterPred、attrParent)と残差を合算して原本情報を復元(reconstruction)するステップである。図26の復元機(reconstructor)26004で実行する。
【0361】
前述した動作は、八分木構造の特定の深さ範囲で全てのノードを巡回しながら実行される。
【0362】
図29は実施例によるポイントクラウドデータ送信方法の一例を示す。実施例による送信方法は、ポイントクラウドデータを符号化するステップS2900と、ポイントクラウドデータを含むビットストリームを送信するステップS2910を含む。
【0363】
ポイントクラウドデータを符号化するステップS2900は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化20001、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430、図26の送信装置、1つ以上のメモリと通信可能に設定された1つ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせなどによってポイントクラウドデータを符号化するステップである。
【0364】
より具体的には、ポイントクラウドデータを符号化するステップS2900は、ポイントクラウドデータの位置情報を符号化するステップと、ポイントクラウドデータの属性情報を符号化するステップを含む。
【0365】
ポイントクラウドデータを含むビットストリームを送信するステップS2910は、図1の送信機10003、図12の送信処理部12012、図14のXRデバイス1430、図25の送信装置及び/又は1つ以上のメモリと通信可能に設定された1つ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせなどによってポイントクラウドデータを図2の送信20002ステップのように送信するステップである。
【0366】
より具体的には、実施例による送信方法は、フレームに含まれたポイントクラウドデータを符号化するステップと、ポイントクラウドデータを含むビットストリームを送信するステップを含み、ポイントクラウドデータを符号化するステップは、ポイントクラウドデータの位置情報を符号化するステップと、前記ポイントクラウドデータの属性情報を符号化するステップを含む。
【0367】
ここで、フレームに含まれたポイントクラウドデータを符号化するステップは、参照フレームに含まれたポイントクラウドデータに基づいて現在フレームのポイントクラウドデータを予測するステップを含む。図15ないし図25に示したように、現在フレーム(第1のフレーム)と参照フレーム(第2のフレーム)との位置情報及び属性情報の差異に基づいて動きベクトルが算出され、算出された動きベクトルを用いて動き補償することで、参照フレームから現在フレームに属するポイントの位置情報及び属性情報を予測する。よって、現在フレームのポイントクラウドデータを予測するステップは、動きベクトルを生成するステップを含む。
【0368】
また、実施例によるポイントクラウドデータ送信方法は、現在フレームに対して動きベクトルに基づいて予測するとき、八分木構造の特定の深さ範囲内で八分木ノードのポイントを予測する。八分木構造の特定の深さ範囲内で八分木ノードのポイントを予測する動作に関して図18図21に示し、八分木構造の特定の深さ範囲に対する情報はシグナリングされる。
【0369】
また、実施例によるポイントクラウドデータ送信方法は、現在フレームに対して動きベクトルに基づいて予測するとき、八分木ノードを分割(split)するコスト(cost)と、動きベクトルに基づいて八分木ノードのポイントを予測するコスト(cost)とを比較して、より低いコストの動作を実行する。この動作に関して図16図17に示し、図27のフローチャートは、動きベクトルを送信するコストとノードを分割するコストとを比較するステップを示す。すなわち、実施例によるポイントクラウドデータ送信方法は、八分木ノードを分割(split)するコスト(cost)と動きベクトルに基づいて八分木ノードのポイントを予測するコスト(cost)とを比較するステップを含み、八分木ノードのポイント情報予測は、比較結果に応じて実行される。
【0370】
実施例によるポイントクラウドデータ送信方法は、八分木ノードが分割されたか否かを示す情報、及び参照フレームに対する識別子情報をビットストリームに含んで送信する。
【0371】
前述した実施例によるポイントクラウドデータ送信方法は、実施例によるポイントクラウドデータ送信装置(例えば、図1のポイントクラウドビデオエンコーダ10002、図2の符号化20001、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430、図25の送信装置、1つ以上のメモリと通信可能に設定された1つ以上のプロセッサ、又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせなど)によって実行される。
【0372】
図30は実施例によるポイントクラウドデータ受信方法の一例を示す。実施例による受信方法は、ポイントクラウドデータを含むビットストリームを受信するステップS3000とポイントクラウドデータを復号するステップS3010を含む。
【0373】
ポイントクラウドデータを含むビットストリームを受信するステップS3000は、図1の受信装置10004、図10図11の受信装置、図13の受信部13000、図14のXRデバイス1430、図26の受信装置及び/又は1つ以上のメモリと通信可能に設定された1つ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせなどによってポイントクラウドデータを受信する。
【0374】
ポイントクラウドデータを復号するステップS3010は、図1のポイントクラウドビデオデコーダ10006、図10図11図13の受信装置、図14のXRデバイス1430、図26の受信装置及び/又は1つ以上のメモリと通信可能に設定された1つ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせなどによってポイントクラウドデータを復号する。
【0375】
ポイントクラウドデータを復号するステップは、ポイントクラウドデータの位置情報を復号するステップと、ポイントクラウドデータの属性情報を復号するステップを含む。
【0376】
より具体的には、実施例によるポイントクラウドデータ受信方法は、フレームに属するポイントクラウドデータを含むビットストリームを受信するステップと、ポイントクラウドデータを復号するステップを含み、ポイントクラウドデータを復号するステップは、ポイントクラウドデータの位置情報を復号するステップと、ポイントクラウドデータの属性情報を復号するステップを含む。
【0377】
ここで、ポイントクラウドデータを復号するステップは、参照フレーム(第2のフレーム)に含まれたポイントクラウドデータに基づいて現在フレーム(第1のフレーム)のポイントクラウドデータを予測するステップを含む。すなわち、図15ないし図25に示したように、現在フレームと参照フレームとの位置情報及び属性情報の差異に基づいて動きベクトルが算出され、算出された動きベクトルを用いて動き補償することで、参照フレームから現在フレームに属するポイントの位置情報及び属性情報が予測される。よって、現在フレームのポイントクラウドデータを予測するステップは、動きベクトルを生成するステップを含む。
【0378】
また、実施例による受信方法は、受信されたビットストリームが動きベクトル情報を含み、受信された動きベクトル情報に基づいて参照フレームから現在フレームのポイントクラウドデータを予測する。
【0379】
また、実施例による受信方法で現在フレームのポイントクラウドデータを予測するステップは、八分木構造の特定の深さ(depth)範囲内で動きベクトルに基づいて八分木ノードのポイントを予測する。八分木構造の特定の深さ範囲内で八分木ノードのポイントを予測する動作を図18図21に示し、八分木構造の特定の深さ範囲に関する情報は、ビットストリームに含まれてシグナリングされる。
【0380】
実施例による受信方法においてビットストリームは、八分木ノードが分割されたか否かを示す情報を含み、ポイントクラウドデータを復号するステップは、八分木ノードが分割されたか否かを示す情報に対応して、八分木ノードのポイントを動きベクトルに基づいて予測する。図28のフローチャートは、分割されたか否かを示す情報(split_flag)を確認するステップを示す。Split_flag=0である場合、八分木ノードは分割されず、動きベクトルに基づいて八分木ノードのポイントを予測する(inter-frame prediction)。すなわち、実施例による受信方法は、分割されたか否かを示す情報に対応して八分木ノードのポイントを予測する。
【0381】
実施例によるポイントクラウドデータ送受信方法/装置は、現在フレームに含まれたデータを効率的に圧縮するために、参照フレーム(第1のフレーム、第2のフレーム、以前フレーム、以後フレーム、後続フレームなどと呼ぶ)に含まれたポイントを参照する。例えば、参照フレームに含まれた位置情報の差異、属性情報の差異に基づいて動きベクトルを生成して予測コーディングを実行することで、現在フレームのポイントクラウドデータをより正確に予測する。よって、原本ポイントクラウドデータと予測ポイントクラウドデータとの差異が小さくなり、残差送信の効率及びコーディング/復号の効率が増大する。結局、実施例によるポイントクラウドデータ送受信方法/装置は、3次元ポイントクラウドビデオ又は映像を効率的に復元でき、ユーザにVR、AR、MR及び自立走行などの様々なサービスを提供することができる。
【0382】
前述した実施例によるポイントクラウドデータ受信方法は、実施例によるポイントクラウドデータ受信装置(図1のポイントクラウドビデオデコーダ10006、図10図11図13の受信装置、図14のXRデバイス1430及び/又は1つ以上のメモリと通信可能に設定された1つ以上のプロセッサ、又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせなど)によって実行される。
【0383】
本発明においてスライス(slice)間の依存(dependency)に基づく圧縮方法は、ポイントクラウドデータ圧縮に使用される。特に、スケーラブルリフト(scalable lifting)属性圧縮に使用され、八分木(octree)構造に基づくRAHTに使用される。
【0384】
実施例によるポイントクラウドデータ送受信装置は、位置及び属性に基づく動き予測を適用することで、位置及び属性の基準を満たす予測ブロックを探し、位置及び属性に共通した動き情報を使用する。このとき、1つの動きベクトルで位置及び属性の予測を実行するため、動きベクトルを一方のみで送達し、ビットストリームサイズを減らすことができる。
【0385】
よって、実施例によるポイントクラウドデータ送信装置及びエンコーダは、フレーム内の予測(イントラ予測)だけではなく、フレーム間のデータ予測(インター予測)モードをさらに考慮することで、ポイントクラウドデータを効率的に圧縮できるという効果がある。同様に、実施例によるポイントクラウドデータ受信装置及びデコーダは、ポイントクラウドデータを含むビットストリームを受信し、ビットストリーム内のシグナリング情報及び/又は実施例による復号動作に基づいてポイントクラウドデータを効率的に復元できるという効果がある。
【0386】
前述した実施例によるポイントクラウド圧縮の送受信方法/装置の動作は、以下のポイントクラウド圧縮の装置/方法のプロセスと結合/参照して説明される。
【0387】
また、本明細書で説明する実施例による動作は、実施例によってメモリ及び/又はプロセッサを含む送受信装置によって実行される。メモリは、実施例による動作を処理/制御するためのプログラムを格納し、プロセッサは、本明細書で説明する様々な動作を制御する。プロセッサは、コントローラなどとも呼ぶ。実施例による動作は、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせによって実行され、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせは、プロセッサ又はメモリに格納される。
【0388】
実施例は方法及び/又は装置の観点で説明しており、方法の説明及び装置の説明は互いに補完して適用できる。
【0389】
説明の便宜のために、各図を区分して説明したが、各図に述べられている実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。実施例による装置及び方法は、上述したように、説明された実施例の構成と方法が限定して適用されることではなく、実施例は様々に変形可能に各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
【0390】
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれ個々のチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のうちのいずれか一つ又はそれ以上の動作/方法を行わせるか、実行させるための指示を含む。
【0391】
実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではないCRM又は他のコンピュータープログラム製品に格納されるか、又は一つ又はそれ以上のプロセッサにより実行されるために構成された一時的なCRM又は他のコンピュータープログラム製品に格納されることができる。
【0392】
また実施例によるメモリは、揮発性メモリ(例えば、RAMなど)だけではなく、非揮発性メモリ、フラッシュメモリ、PROMなどを全部含む概念として使用される。また、インターネットによる送信などのような搬送波の形態で具現されることも含む。またプロセッサが読み取られる記録媒体は、ネットワークで連結されたコンピューターシステムに分散されて、分散方式によりプロセッサが読み取られるコードが格納されて実行されることができる。
【0393】
この明細書において、「/」と「、」は「及び/又は」に解釈される。例えば、「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)」を意味する。
【0394】
第1、第2などの用語は実施例の様々な構成要素を説明するために使用される。しかし、実施例による様々な構成要素は上記用語により解釈が制限されてはいけない。かかる用語は一つの構成要素を他の構成要素と区別するために使用されることに過ぎない。例えば、第1ユーザ入力信号は第2ユーザ入力信号と称することができる。同様に、第2ユーザ入力信号は第1ユーザ入力信号と称することができる。かかる用語の使用は様々な実施例の範囲から離脱していない。第1ユーザ入力信号及び第2ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
【0395】
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限されるものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味しない。実施例を説明するために使用される、「~である場合」、「~の時」などの条件表現は選択的な場合にのみ制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。
【0396】
また、この明細で説明する実施例による動作は、実施例によってメモリ及び/又はプロセッサを含む送受信装置により行われる。メモリは実施例による動作を処理/制御するためのプログラムを格納し、プロセッサはこの明細で説明した様々な動作を制御する。プロセッサはコントローラなどとも称される。実施例の動作はファームウェア、ソフトウェア及び/又はこれらの組み合わせにより行われ、ファームウェア、ソフトウェア及び/又はこれらの組み合わせはプロセッサに格納されるか又はメモリに格納される。
【0397】
一方、前述した実施例による動作は、実施例による送信装置及び/又は受信装置によって実行される。送受信装置は、メディアデータを送受信する送受信部、実施例によるプロセスに対する指示(プログラムコード、アルゴリズム、フローチャート(flowchart)及び/又はデータ)を格納するメモリ、送/受信装置の動作を制御するプロセッサを含む。
【0398】
プロセッサはコントローラなどとも呼び、例えば、ハードウェア、ソフトウェア、及び/又はそれらの組み合わせに対応する。前述した実施例による動作は、プロセッサによって実行される。また、プロセッサは、前述した実施例の動作のためのエンコーダ/デコーダなどで具現される。
【0399】
上述したように、実施例を実施するための最善の形態について関連内容を説明する。
【産業上の利用可能性】
【0400】
上述したように、実施例はポイントクラウドデータ送受信装置及びシステムに全体又は部分的に適用することができる。当業者であれば、実施例の範囲内で実施例を様々に変更及び変形することができる。実施例は変更/変形を含み、変更/変形は請求項及びそれと同一のものの範囲内である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
【国際調査報告】