添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというより、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に関する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。
実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものもあり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。
図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)することができる。量子化過程は以下の表の通りである。
実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがあれば、上述したように、量子化及び逆量子化された残余値をエントロピーコーディングする。実施例によるポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は、各ポイントの予測機に隣接するポイントがないと、上述した過程を行わず、該当ポイントの特質をエントロピーコーディングする。
実施例によるポイントクラウドエンコーダ(例えば、リフト変換部40010)は、各ポイントの予測機を生成し、予測機に計算されたLODを設定及び隣接ポイントを登録し、隣接ポイントまでの距離による加重値を設定してリフト変換コーディングを行う。実施例によるリフト変換コーディングは、上述した測変換コーディングと類似するが、特質値に加重値を累積適用するという点で差がある。実施例による特質値に加重値を累積適用する過程は以下の通りである。
1)各ポイントの加重値を貯蔵する配列QW(QuantizationWieght)を生成する。QWの全ての要素の初期値は1.0である。予測機に登録された隣接ノードの予測機インデックスのQW値に現在ポイントの予測機の加重値を掛けた値を加える。
2)リフト予測過程:予測された特質値を計算するために、ポイントの特質値に加重値を掛けた値を既存の特質値から引く。
3)アップデートウェイト(updateweight)及びアップデートという臨時配列を生成し、臨時配列を0に初期化する。
4)全ての予測機に対して計算された加重値に予測機インデックスに該当するQWに貯蔵された加重値をさらに掛けて算出された加重値をアップデートウェイト配列に隣接ノードのインデックスとして累積して合算する。アップデート配列には隣接ノードのインデックスの特質値に算出された加重値を掛けた値を累積して合算する。
5)リフトアップデート過程:全ての予測機に対して、アップデート配列の特質値を予測機インデックスのアップデートウェイト配列の加重値で割り、割った値に再び既存の特質値を加える。
6)全ての予測機に対して、リフトアップデート過程でアップデートされた特質値にリフト予測過程でアップデートされた(QWに貯蔵された)加重値をさらに掛けて予測特質値を算出する。実施例によるポイントクラウドエンコーダ(例えば、係数量子化部40011)は予測特質値を量子化する。またポイントクラウドエンコーダ(例えば、演算エンコーダ40012)は量子化された特質値をエントロピーコーディングする。
実施例によるポイントクラウドエンコーダ(例えば、RAHT変換部40008)は、八分木の下位レベルのノードに連関する特質を使用して上位レベルのノードの特質を予測するRAHT変換コーディングを行う。RAHT変換コーディングは八分木バックワードスキャンによる特質イントラコーディングの一例である。実施例によるポイントクラウドエンコーダは、ボクセルから全体領域にスキャンし、各ステップにおいてボクセルをもっと大きいブロックに合わせながらルートノード(root node)までの併合過程を繰り返して行う。実施例による併合過程は、占有ノードのみについて行われる。空ノード(empty node)については併合過程が行われず、空ノードの直上位ノードについて併合過程が行われる。
gDC値もまたハイパス係数と共に量子化されてエントロピーコーディングされる。
図10は実施例によるポイントクラウドデコーダ(Point Cloud 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に説明した通りである。
実施例による表面モデル処理部12004は、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセル基盤に再構成するtrisoupジオメトリ符号化を行う。表面モデル処理部12004は図4に示したポイントクラウドエンコーダ(例えば、表面近似分析部40003)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1ないし図9に説明した通りである。
実施例による八分木占有コード生成部12003は、ボクセル化されたポイントの位置を八分木構造に基づいて八分木コーディングを行う。八分木占有コード生成部12003は占有コードを生成する。八分木占有コード生成部12003は図4及び図6で説明したポイントクラウドエンコーダ(又は八分木分析部40002)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図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サービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信する。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含む。
図15は実施例によるポイントクラウドエンコーダを示す。
実施例によるポイントクラウドエンコーダ15000は、ポイントクラウドデータ(PCCデータ)15000aを受信し、これらを符号化する。実施例によるポイントクラウドエンコーダは幾何情報ビットストリーム15000b及び属性情報ビットストリーム15000cを出力する。実施例によるポイントクラウドエンコーダ15000は空間分割部15001、幾何情報符号化部15002及び/又は属性情報符号化部15003を含む。
図15のポイントクラウドエンコーダは、図1の送信装置1000、ポイントクラウドビデオエンコーダ10002、図2の符号化部18001、図4のエンコーダ、図12の送信装置、及び図14のXRデバイス1430などに対応又は結合する。
空間分割部15001は、ポイントクラウドエンコーダがポイントクラウドデータ(PCCデータ)15000aを受信し、ポイントクラウドデータを一つ又はそれ以上の3次元空間に分割する。空間分割部15001はポイントクラウドデータを受信し、ポイントクラウドデータを3次元ブロックに空間分割する。ポイントクラウドデータはポイント(又は複数のポイント)の幾何情報及び/又は属性情報を含む。空間分割部15001は境界ボックス(bounding box)及び/又は副境界ボックスなどに基づいてポイントクラウドデータ(PCCデータ)を空間分割する。実施例による方法/装置は分割された単位(ボックス)に基づいて符号化/復号を行う。
実施例による送信装置(例えば、空間分割部)は、3次元空間上のポイントクラウドデータを圧縮するために、並列処理が可能な単位に分割する。実施例による空間分割部15001は、受信装置がユーザに拡張性(Scalability)、及び/又は関心領域(ROI)の機能を支援するために、ポイントクラウドデータをスライス単位に分割する。
実施例による送信装置は、低遅延、低複雑度、時間的拡張性、空間的拡張性、関心領域基盤の空間的拡張性、品質拡張性、並列的符号化、及び受信装置の並列的復号化を達成するために、実施例によるポイントクラウドデータをスライス(ブリックとも呼ばれる)、タイル単位に分割する。よって、実施例による送信装置は、スライス単位で拡張性の調節、量子値の調節などを支援する動作を行う必要がある。従って、実施例によるポイントクラウドデータ送信装置は、スライス間の重畳領域が含まれるように重畳スライスを構成する。実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを一つ又はそれ以上のスライス(又は重畳スライス)に分割する方法については、以下に詳しく説明する。
スライスとは、実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを符号化及び/又は復号するための単位(又は最小単位)を意味し、ポイントクラウドデータ送信装置及び/又は受信装置は、スライス単位でポイントクラウドデータを独立して(independently)符号化及び/又は復号化することができる。実施例によるスライスは、他にはブリック、ブロック、マクロブロックとも呼ばれる。
空間分割部15001は、図1のクラウド取得(Point Cloud Acquisition)10001、図2の取得20000の動作、図3ないし図5による動作、図12のデータ入力部12000の動作の一部/全部を行う。
幾何情報符号化部15002は、実施例によるポイントクラウドデータ(PCCデータ)のジオメトリ情報を受信してそれを符号化する。ジオメトリ情報はポイントクラウドデータに含まれたポイントの位置情報を意味する。幾何情報符号化部15002はジオメトリ情報を符号化して幾何情報ビットストリームを出力する。幾何情報符号化部15002はポイントの位置情報を再構成して復元された幾何情報15002aを出力する。幾何情報符号化部15002は復元された幾何情報を属性情報符号化部15002に伝達する。
幾何情報符号化部15002は、図1のポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002、図2の符号化部20001、図4の座標系変換部40000、量子化40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004、ジオメトリ再構成部40005、図12の量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005及び/又は演算コーダー12006の動作の一部/全部を行う。
属性情報符号化部15003は実施例によるポイントクラウドデータの属性情報を受信し、幾何情報符号化部15003から受信した復元された幾何情報を用いて属性情報を符号化する。属性情報符号化部15003は属性情報を符号化して属性情報ビットストリーム15000cを出力する。属性情報符号化部15003は例えば、実施例による予測変換(prediction transform)、リフト変換(lifting transform)及び/又はRAHT(Region Adaptive Hierarchical Transform)変換を行う。属性情報符号化部15003は、例えば、予測リフト(prediction lifting)変換を行う。予測リフト変換は実施例による予測変換及び/又はリフト変換の各々の詳しい動作の一部又は全部を組み合わせたことを意味する。
実施例によるポイントクラウドエンコーダは、実施例による予測変換(prediction transform)、リフト変換(lifting transform)及び/又はRAHT(Region Adaptive Hierarchical Transform)変換の一部、全部及び/又はそれぞれの組み合わせにより符号化を行う。
属性情報符号化部15003は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化部20001、図4の色変換部40006、属性変換部40007、RATH変換部40008、LOD生成部40009、リフト変換部40010、係数量子化部40011及び/又は演算符号化部40012の動作、図12の色変換処理部12008、属性変換処理部12009、予測/リフト/RAHT変換処理部12010、演算コーダー12011の動作の全部/一部を行う。
ここで、復元された幾何情報15002cは、図4で説明したジオメトリ再構成部(Reconstruct Geometry)40005により再構成された八分木及び/又は近似化された八分木を意味する。復元された幾何情報は図6で説明した占有コードを意味するか又は八分木構造を意味する。復元された幾何情報は図12で説明した八分木占有コード生成部12003により生成された八分木占有コードを意味することもできる。
属性情報符号化部15003は、実施例によるポイントクラウドデータの属性情報を符号化する。ここで、実施例による符号化部15003は実施例による復元された幾何情報(又は復元されたジオメトリ情報)を用いて属性情報を符号化する。属性情報符号化部15003は受信されたデータを符号化して特質情報(又は属性情報)を含むビットストリームを生成することができる。
実施例による属性情報符号化部15003は、図4の色変換部40006、属性送信部40007、RAHT変換部40008、LOD生成部40009、リフト部40010、量子化部40011及び/又は演算符号化部40012を含む。
実施例によるポイントクラウドデータは、データの特性によってカテゴリー1とカテゴリー3とに分類される。カテゴリー1のデータは静的データであって、1枚のフレーム(frame)で構成されるデータである。カテゴリー3のデータは動的データであって、N枚のフレームで構成されるデータである。ポイントクラウドデータのファイルフォーマットであるplyファイルは、データの取得方法によって複数のポイントで構成される。
実施例によるポイントは、該当ポイントの位置情報(ジオメトリ情報)及び色情報、反射率情報、時間情報、法線ベクトル(Normal vector)情報などを含む属性情報(特質情報)を含む。実施例によるポイントは表現しようとする条件に応じて様々な情報を含む。ポイントからなるカテゴリー1とカテゴリー3のデータは大容量のポイントを含むフレームを含む。しかし、実施例によるポイントクラウドデータ送信装置は、このポイントを含むフレームを受信して符号化する場合、遅延時間と不要なリソースが多く使われるという問題がある。
従って、実施例によるポイントクラウドデータ送信装置では、ポイントクラウドデータの送信動作、符号化動作、受信装置の復号化動作、及び受信装置のレンダリング処理動作がリアルタイムで行われると共に、低遅延で処理するために、ポイントクラウドデータを複数の領域に分割する。実施例によるポイントクラウドデータ送信装置では、ポイントクラウドデータのフレームをタイル、スライス及び/又はブリックの単位に分割する。
従って、実施例によるポイントクラウドデータ送信装置では、3次元ポイントクラウド(Point Cloud)データの並列処理能力の向上及び拡張性(scalability)の向上のために独立したデータ分割方法によってポイントクラウドデータを分割する。独立したデータ分割を行うとき、空間上近い点同士で再分割が行われる方法を支援することで空間適応的分割方法を含むことができる。
実施例によれば、ポイントクラウドデータは、例えばデータの特性によってカテゴリー1(Category 1)とカテゴリー3(Category 3)とに分類される。例えば、カテゴリー1のデータは静的ポイントクラウド(static point cloud)であって、1枚のフレーム(frame)で構成されるデータである。例えば、カテゴリー3のデータは動的データ(動的に取得されたポイントクラウドデータ、dynamically acquired point cloud data)であって、N枚のフレーム(frame)で構成される。
実施例によるフレーム(frame)は、実施例によるタイル及び/又はスライスなどを含む。実施例によるタイル及び/又はスライスは、1つ又はそれ以上のポイントを含む。1つのポイントは、位置情報、色情報、反射率情報、時間情報、ノーマル大型地形地図(fused)データなどで構成される。実施例によれば、ポイントクラウドデータのファイルフォーマット(file format)であるplyファイルは、データの法線ベクトル(Normal vector)情報など表現しようとする条件に応じて様々な情報を含むことができる。
このようなポイントからなるカテゴリー1とカテゴリー3のデータは、大容量のポイントを1つのフレームで構成する。1つのデータを符号化/復号化する時間とリソースが多く使われるという問題がある。例えば、大型ポイントクラウドであるカテゴリー3-fusedデータは、1つのデータに圧縮するには処理にかかるメモリが多く必要であり、よって符号化過程において多くのリソースと時間が消費される。また1枚のフレーム内で算出すべき隣接ノード(neighbor nodes)算出法、LoD(Level of Detail)生成など1回の符号化/復号化で処理すべき単位が大きくなり得る。
よって、実施例によるポイントクラウドデータ送信装置/受信装置は、ポイントクラウドデータを1つ又はそれ以上のタイル(tiles)及び/又はスライス(slices)に分割し、これらに基づいて並列的に符号化/復号を行う。ポイントクラウドの送信、符号化/復号化、レンダリング処理過程がリアルタイム、低遅延で行われるために、送信装置及び/又は受信装置は、ポイントクラウドフレームの1枚をタイル、スライス、又はブリックの単位に分ける。このような構成は、送信装置及び/又は受信装置が空間上のランダムアクセス(random access)と並列符号化/復号化を行えるようにする。よって、実施例によるポイントクラウドデータ送信装置(又は空間分割部)15001は、3次元ポイントクラウド(Point Cloud)データを符号化及び/又は圧縮する前に、並列処理と空間ランダムアクセス(spatial random access)機能を支援するためのポイントクラウドデータを分割することができる。
実施例によるスライス(slice)は、独立して実施例によるポイントクラウドデータ送信装置によって符号化されるか、ポイントクラウドデータ受信装置によって復号されるポイントのセットを意味する(A slice is A set of points that can be encoded or decoded independently)。スライスは1つのジオメトリデータユニット及び0又はそれ以上の特質データユニットを含む(A slice comprises one geometry data unit and zero or more attribute data units)。特質データユニットは、同一のスライス内にある対応するジオメトリデータユニットに依存する(Attribute data units depend upon the corresponding geometry data unit within the same slice)。同一のスライスにおいて、ジオメトリデータユニットは、連関した特質ユニットよりも先に現れることがある(Within a slice、the geometry data unit must appear before any associated attribute units)。スライスのデータユニットは連続的である(The data units of a slice must be contiguous)。1つのフレーム(frame)におけるスライスの順序は任意に決定される。
スライスのグループは、共通するタイル識別子により識別される(A group of slices may be identified by a common tile identifier)。よって、実施例によるポイントクラウドデータ送信装置は、タイルインベントリ(tile inventory、又はタイルパラメータセット(tile parameter set))を含むシグナル情報をさらに送信する。タイルインベントリは、各々のタイル(tile)に対する境界ボックスを説明する。1つのタイルは境界ボックス内の他のタイルとオーバーラップ(overlap)されることがある(a tile inventory describes a bounding box for each tile。a tile may overlap another tile in the bounding box)。各々のスライスは、そのスライスが含まれるタイルを識別するインデックス(index)を含む。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを分割し、これらをそれぞれ独立して符号化することで、ポイントクラウドデータが占有する3次元空間上のランダムアクセス(random access)と並列符号化を可能にし、よって実施例によるポイントクラウドデータ受信装置はこのポイントクラウドデータを素早く復号することができる。
図16は実施例によるポイントクラウドデータ送信装置を示す。
図16に示した実施例によるポイントクラウドデータ送信装置は、図1のポイントクラウドビデオ取得部10001、ポイントクラウドビデオエンコーダ10002の一部又は全部、図2の取得部18000及び/又は符号化部18001の全部又は一部である。図16に示した実施例による構成は、図15の空間分割部15001、幾何情報符号化部15002及び/又は属性情報符号化部15003の一部又は全部に含まれる。
図16に示した実施例によるポイントクラウドデータ送信装置は、図14のXRデバイス1430などによって結合される。
実施例によるポイントクラウドデータ送信装置は、データ特性調査部16000、分割部及び精製部16001、データ入力部16002、座標変換部16003、量子化/ボクセル化処理部16004、八分木占有コード生成部16005、表面モデル処理部16006、第1の演算コーダ、ジオメトリ再構成部16008、色変換処理部16009、属性変換処理部16010、予測/リフト/RAHT変換処理部16011、係数量子化処理部16012及び/又は第2の演算コーダ16013を含む。
データ特性調査部16000は、実施例によるポイントクラウドデータの特性を調査する。データ特性調査部16000は、図1のポイントクラウドビデオ取得部10001の動作、図3に示した動作を行う。
分割部及び/又は精製部16001は、実施例によるポイントクラウドデータを分割(partition)及び/又は精製(refine)する。分割及び/又は精製部16001は、分割部及び/又は精製部を含む。
実施例による分割部は、ポイントクラウドデータを1つ又はそれ以上のタイル(tile)に分割する。実施例による分割部は、ポイントクラウドデータを1つ又はそれ以上のスライス(slice)(ブリック(brick)又はブロック(block)とも呼ばれる)に分割する。
例えば、分割部は、ポイントクラウドデータを1つ又はそれ以上のタイル(tile)に分割し、各々のタイルに対して1つ又はそれ以上のスライス(slice)に分割する。1つのスライス(slice)はポイントクラウドデータのポイント(point)を含むことができる。
実施例による精製部は、ポイントクラウドデータを分割して生成された1つ又はそれ以上のスライス(又はタイル)を精製する。精製とは、1つ又はそれ以上のスライス(slice)を併合(merge)して、併合されたスライスを生成するか、1つのスライスを分離(split)して、複数のスライスを生成又は隣接したスライスに再分配することを意味する。
併合(merge)とは、2つ以上のスライスに含まれたポイントをいずれも含む1つのスライスを生成する動作を意味する。
分離(split)とは、1つのスライスに含まれたポイントが2つ以上のスライスに含まれるように1つのスライスを再び分割するか、1つのスライスに含まれたポイントを該当スライス及び該当スライスと隣接したスライスが分け持つように再分配することを意味する。
分割部及び/又は精製部16001は、図15に示した空間分割部15001に含まれる。
データ入力部16002には、実施例による分割部及び/又は精製部16001によって生成されたスライスが入力される。データ入力部16002は、入力されたスライスを実施例によるエンコーダ(例えば、ジオメトリエンコーダ及び/又は特質エンコーダ)へ伝達する。例えば、実施例によるデータ入力部16002は、各々のスライスに含まれたポイントの位置情報(位置値)を実施例による座標変換部16003へ伝達する。また、例えば、実施例によるデータ入力部16002は、各々のスライスに含まれたポイントの属性情報(位置値)を実施例による色変換処理部16009へ伝達する。
実施例によるデータ入力部16002は、ポイントクラウドデータ送信装置が各々のスライス別に独立した符号化を行うために、スライス単位でポイントクラウドデータが入力され、スライス単位でポイントクラウドデータを実施例によるエンコーダへ伝達する。
データ入力部16002は、図15に示した空間分割部15001に含まれる。
座標変換部16003は、実施例によるポイントの位置情報(位置値)を受信し、これらの座標を変換する。座標変換部16003は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化部18001、図4の座標変換部30000、図5の動作を行う。
量子化/ボクセル化処理部16004は、実施例によるポイントクラウドデータを量子化及び/又はボクセル化する。量子化/ボクセル化処理部16004は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化部18001、図4の量子化及びボクセル化部30001、図5の動作、図6の動作を行う。
八分木占有コード生成部16005は、量子化及び/又はボクセル化処理したポイントクラウドデータを用いて八分木(octree)占有コード(occupancy code)を生成する。量子化/ボクセル化処理部16004は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化部18001、図4の八分木分析部30002、図6の動作、図7の動作を行う。
表面モデル処理部16006は、図4の表面モデル処理部30003の動作、図12の表面モデル処理部12004の動作を行う。
第1の演算コーダは、実施例による八分木占有コードを演算コーディングする。第1の演算コーダは、図4の演算符号化部30004の動作を行う。
ジオメトリ再構成部16008は、八分木占有コード生成部16005によって生成された八分木占有コード及び/又は、表面モデル処理部16006によって表面モデル処理された八分木占有コードを用いてジオメトリ情報を再構成する。ジオメトリ再構成部16008は、図4のジオメトリ再構成部30005の動作を行う。
色変換処理部16009は、特質に含まれた色値(又はテキスチャー)を変換する色変換コーディングを行う。色変換処理部16009は、図4に示した色変換部40006を意味する。
属性変換処理部16010は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。属性変換処理部16010は、図4に示した特質変換部40007を意味する。
予測/リフト/RAHT変換処理部16011は、図4のRAHT変換部40008、LOD生成部40009及び/又はリフト変換部40010を意味する。
係数量子化処理部16012は、図4の係数量子化部40011を意味する。
第2の演算コーダ16013は、図4の演算コーダ40012、図12の演算コーダ12011を意味する。
実施例によるポイントクラウドデータ送信装置は、符号化されたジオメトリビットストリーム、符号化された特質ビットストリームを結合する結合部をさらに含んでもよい。
図17は実施例によるポイントクラウドデータ送信装置を示す。
図17に示した構成要素は、例えば、図15の空間分割部15001、図16のデータ特性調査部16000、分割部及び/又は精製部16001を意味する。図17に示した構成要素は、図1のポイントクラウドビデオ取得部10001及び/又はポイントクラウドビデオエンコーダ10002であってもよい。図17に示した構成要素は、図2の取得部18000及び/又は符号化部18001、図12のデータ入力部12000であってもよい。
図17に示した実施例によるポイントクラウドデータ送信装置は、図14のXRデバイス1430などによって結合される。
実施例によるポイントクラウドデータ送信装置17000(例えば、空間分割部15001)は、分割部17001、精製部17002を含む。
実施例による分割部17001は、ポイントクラウドデータを受信し、これらを前処理(preprocessing)及び/又は分割(partition)する。例えば、分割部は、1つのフレーム(frame)を1つ又はそれ以上のタイル(tile)及び/又はスライス(slices)に分割する。実施例による分割部17001は、様々な分割方法(partitioning method)によってポイントクラウドデータを分割する。よって、分割部17001は実施例による分割方法確認部17001aを含む。
実施例による分割方法確認部17001aは、ポイントクラウドデータの特性に基づいて分割方法を決定する。実施例による分割方法は、時間による分割方法(Timestamp partitioning)、モールトン順序分割方法(Morton order partitioning)、均等四角形分割方法(Uniform square partitioning)、八分木分割方法(Octree partitioning)のうちのいずれか1つである。
実施例による分割部17001(又は分割方法確認部17001a)は、実施例による分割部がポイントクラウドデータを分割する分割方法を示すシグナル情報を生成する(例えば、後述する分割方法(partitioning_method)パラメータなど)。実施例による送信装置(又は分割部)は、上述した分割方法のうちの1つの分割方法に基づいてポイントクラウドデータを分割してもよく、複数の分割方法に基づいて分割してもよい。
実施例による分割部17001は、図16のデータ特性調査部16000、データ特性による分割部&精製部16001の動作の一部又は全部を行う。実施例による分割部17001は、図15の空間分割部15001の動作の一部又は全部を行う。実施例による分割部17001は、図1のポイントクラウドビデオエンコーダ10002、図2の符号化部18001に含まれる。
実施例による精製部17002(refiner)は、実施例による分割部によって生成されたスライスのうちの一部のスライスを併合(merge)又は分離(split)する。精製部は、所定の基準(1つのスライスに入るポイントの数、空間の体積、ポイントの密度)によって既に分割部によって分割されたスライスを精製(refine)する。
併合(merge)とは、分割部17001によって分割して生成されたスライスのうちの一部のスライスを1つのスライスに合わせることである。例えば、スライスのうちの第1のスライス、第2のスライスを併合する場合、精製部17002は、第1のスライス及び第2のスライスに含まれた全てのポイントを含む1つのスライスを生成する。
分離(split)とは、分割部17001によって分割して生成されたスライスのうちの1つのスライスを複数のスライスに分けるか、1つのスライスに含まれたポイントを隣接したスライスと分け持つように分配(又はスライスの境界を再設定)することを意味する。例えば、第1のスライスを分離(split)する場合、第1のスライスに含まれたポイントを第2のスライス、第3のスライスなどが含むように再分割する動作を意味する。例えば、第1のスライスを分離(split)する場合、第1のスライスに含まれたポイントを、第1のスライスと隣接した第2のスライスと分け持つように、第1のスライスと第2のスライスの境界を再設定することを意味する。
実施例による精製部17002は、実施例による併合(merge)の動作を行う併合部17002a、分離(split)の動作を行う分離部17002bを含む。
実施例による精製部17002(又は併合部17002a)は、1つのスライスに含まれたポイントの数が、ポイントの数の最小値(minimum number of points)より少ない場合、該当スライスを他のスライスと併合(merge)する。ポイントの数の最小値はシステムによって予め設定した値でもよく、ユーザが設定した値でもよい。
実施例による精製部17002(又は分離部17002b)は、1つのスライスに含まれたポイントの数が、ポイントの数の最大値(maximum number of points)より多い場合、該当スライスを分離(split)する。ポイントの数の最大値はシステムによって予め設定した値でもよく、ユーザが設定した値でもよい。
精製部17002は、実施例による境界ボックス内の空間上に位置するスライスのインデックス(index)に応じて、1次元探索、2次元探索、3次元探索などを行う。
実施例による分割方法は、ジオメトリビットストリームと属性ビットストリームを送信するために、送信装置からシグナル情報で送信することができる。実施例による送信装置は、符号化されたジオメトリビットストリーム及び符号化された特質ビットストリームを結合する結合部をさらに含んでもよい。このとき、結合部は、ジオメトリビットストリームと属性ビットストリームをどのような順序によって結合するかを決定し、この順序を示す情報をシグナル情報で送信することができる。
精製部17002は、実施例による精製動作(例えば、併合部17002の併合動作及び/又は分離部17002bの分離動作)は、精製のためのデータ構造(data structure)に基づいて行われる。精製のためのデータ構造は、分割部17001によって分割されたスライス間の隣接性(adjacency)を示すためのデータ構造を含む。
精製のためのデータ構造は、例えば、リスト型(1次元配列、1次元リンクされたリスト、2次元配列、2次元リンクされたリストなど)のデータ構造であってもよく、ツリー型(二分木、k-ワンツリー、bツリーなど)のデータ構造であってもよい。
例えば、精製部では、リスト型のデータ構造を用いるリスト型精製方法(List refine method)を使用するか、又はツリー型のデータ構造を用いるツリー型精製方法(Tree refine method)を使用するかを決定する。リスト型精製方法は、分割されたリストをスライスに属したポイントの数の昇順(list_point_num_ascending_order)又は降順(list_point_num_descending_order)にシグナリングする。
実施例による精製部の精製動作の精製方法は、距離に基づく精製方法、2/4/6方形の精製方法を含む。距離に基づく精製方法は、例えば、minポイント間の距離(minPoint_distance)、maxポイント間の距離(maxPoint_distance)、またmidポイント間の距離(midpoint_distance)を精製有無に対する基準として有する。2/4/6方形の精製方法は、例えば、所定のスライスと隣接するn個のスライスのうち、ポイントの数が少ない順に併合(minPointNum_order)、ポイントの数が多い順に併合(maxPointNum_order)、またユーザが定義した順に併合(left_right_bottom_top_order)を行う。
実施例による分割部17001で行う分割方法の実施例は、図18ないし図21、図24ないし図25で詳しく説明する。
実施例による精製部17002の動作に対する実施例は、図22、図23、図26、図27で説明する。
よって、実施例によるポイントクラウドデータ送信装置/受信装置は、ポイントクラウドデータを1つ又はそれ以上のタイル(tiles)及び/又はスライス(slices)に分割し、これに基づいて並列的に符号化/復号を行う。この構成は、送信装置及び/又は受信装置が空間上のランダムアクセス(random access)と並列符号化/復号化をできるようにする。
図18は実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを分割する動作の一例を示す。
具体的に、図18は、ポイントクラウドデータを伝達する1つのフレーム(frame)においてポイントクラウドデータが複数のスライス(slice)に分割されることを示す。即ち、図18はポイントクラウドデータ18001とこれらを分割する複数のスライス(slice)18002を示す。図18に示した動作は、図17の分割部17001、図16のデータ特性調査部16000、データ特性による分割部&精製部16001の一部又は全部、図15の空間分割部15001において行われる。
図18に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
実施例によるポイントクラウドデータ18001は、図1ないし図16で説明したポイントクラウドデータを意味し、カテゴリー1(Category 1)データ及び/又はカテゴリー3(Category 3)データのうちのいずれか1つを意味する。図18に示したポイントクラウドデータは、例えば、カテゴリー3(Category)データを意味する。
複数のスライス18002は、図15ないし図17で説明したスライス(又はブリック)を意味する。1つのスライスはポイントを含む。
実施例によるポイントクラウドデータ送信装置は、図18に示したように、ポイントクラウドデータを複数のスライスに分割する。しかし、ポイントクラウドデータをスライスに分割する場合、スライスのサイズ及び密度によっては符号化/復号の効率が低下することがある。
例えば、図18の18002aに示したスライスは、多数のポイントを含むためポイントの密度が高い。図18の18002aをポイントクラウドデータが独立して符号化する場合、多いメモリのリソースと高い処理演算が求められる。別の例として、図18の18002bに示したスライスは、ポイントの数が少ないため、符号化の効率が低下することがある。図18の18002bをポイントクラウドデータが独立して符号化する場合、不要な遅延が発生する可能性がある。
また、例えば、送信装置が均等に又は所定の基準に従ってスライスを分割するだけである場合、実施例による受信装置を使用する者が18002bを視聴する場合にも、送信装置は18001に存在する全ての部分を符号化する必要があり、受信装置はその部分を全部復号する必要がある。これは送信装置及び/又は受信装置が不要な遅延を発生させることになる。
よって、送信装置は、18002aのスライスに対して、図15ないし図17で説明した分離(split)の動作によって複数のスライスに分離する。また送信装置は、18002bのスライスに対して、図15ないし図17で説明した併合(merge)の動作によって他のスライスと併合する。また実施例による送信装置は、図19ないし図21、図24ないし図25による分割方法に基づいて分割を行うことで、符号化の性能を効率的に改善することができる。分割方法には、例えば、時間による分割方法(Timestamp partitioning)、モールトン順序分割方法(Morton order partitioning)、均等四角形分割方法(Uniform square partitioning)、八分木分割方法(Octree partitioning)などがある。
実施例によるポイントクラウドデータ送信装置/受信装置は、ポイントクラウドデータを1つ又はそれ以上のタイル(tiles)及び/又はスライス(slices)に分割し、これに基づいて並列的に符号化/復号を行う。この構成は、送信装置及び/又は受信装置が空間上のランダムアクセス(random access)と並列符号化/復号化をできるようにする。
図19は実施例によるポイントクラウドデータを分割する方法の実施例を示す。
図19の動作は、図18に示した分割動作の方法の実施例を示す。図19の動作は、図17の分割部17001、図16のデータ特性調査部16000、データ特性による分割部&精製部17001、図15の空間分割部15001において行われる。
図19に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
図19は、実施例による時間分割方法(timestamp partitioning)を示す。図19の動作は、ポイントクラウドデータの属性のうちの時間属性に基づいて分割することを意味する。実施例によるポイントクラウドデータの時間(time)特質(属性)は、実施例による取得部(Acquisition)によって取得される特質データであるため、時間属性が存在する場合にはこの方法を用いることができる。
図19(B)によれば、ポイントクラウドデータは時間属性を含む。実施例によるポイントは、同図に示したように、フロート(float)のような時間属性を含む。
図19(A)によれば、ポイントクラウドデータ送信装置は、図19の右側の時間属性を用いてポイントの時間順序を把握する。例えば、ポイントクラウドデータ送信装置は、時間属性を整列してポイントクラウドデータがいずれの方向順に生成されるかを確認する。
ポイントクラウドデータ送信装置は、時間属性を昇順又は降順に整列してポイントを複数のスライスに分割する。
図20は実施例によるポイントクラウドデータの分割方法及び精製方法の実施例を示す。
図20の動作は、図17ないし図18に示した分割動作及び精製方法の実施例を示す。図20の動作は、図17の分割部17001及び/又は精製部17002、図16のデータ特性調査部16000、データ特性による分割部&精製部17001、図15の空間分割部15001において行われる。
図20に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
図20は、モールトン順序分割方法(Morton order partitioning)及びモールトン順序精製方法(Morton order refining)を示す。図20の動作は、ポイントクラウドデータのポイントのモールトンコードに基づいてポイントを複数のスライスに分割する。
モールトンコード(Morton code)は、ポイントの位置情報の座標値(例えば、x座標値、y座標値、z座標値)をビット単位でインターリービングして生成されたコードを意味する。モールトンコードは2進数又は10進数の実数で表現される。実施例によるポイントクラウドデータ送信装置は、分割されたスライスに基づいて実施例による分割/精製動作及び/又は符号化動作の順序を定める。
図20によれば、実施例による分割部は、ポイントクラウドデータを含む3次元空間(例えば、境界ボックス)を所定の基準に従って分割する。所定の基準は、図19、図20、図22ないし図26に示した分割方法による基準である。例えば、分割部は、ポイントクラウドデータを含む3次元空間を図26に示した軸長さに基づく分割方法によって複数のスライスに分割するか、又は図22に示した均等四角形分割方法によって複数のスライスに分割する。分割部は、ポイントクラウドデータのポイントの数、分割されたスライスの最大のポイント数及び/又は最小のポイント数に基づいて分割を行う。
図20によれば、実施例による精製部は、分割された複数のスライスを、各々のスライスの位置に基づいて、各々のスライスのモールトンコードを生成し、生成したスライスのモールトンコードの昇順に実施例による精製(例えば、図23ないし図24に示した方法)を行う。
実施例により分割されたスライスは、ポイントの存在するスライスとポイントの存在しないスライスとに分けられ、ポイントの存在するスライスをモールトンコードに基づいて整列すれば、bottom-left-frontスライスからtop-right-backスライスまで整列することができる。
例えば、スライスのうち、モールトンコード順に、最小コードは20001スライスである。20001スライスはポイントの数が少ないため、実施例による精製部は次のモールトンコード順である20002スライスと併合するか否かを決定する。次に、20002スライスは20001スライスと併合されたスライスであり、依然としてポイントの数が少ないことがある(例えば、mimPointNumより少ないポイント数を有する)。よって、精製部は、20002スライスを次のモールトンコード順である20003スライスと併合するか否かを決定する。
例えば、精製部が20002スライス及び20003スライスを併合する場合、併合されたスライス内のポイントの数が多いことがある(例えば、maxPointNumより多いポイント数を有する)。よって、精製部は、併合された20003スライスを分離(split)することができる。精製部は、20003スライスを次のモールトンコード順である20004スライスの方向に分離してもよく、20002の方向に分離してもよく、20001の方向に分離してもよい。
精製部は上述した方法によって、2000nスライスまで実施例によるスライスを併合及び/又は分離する。
実施例によるポイントクラウドデータ送信装置は、上述した方法によってスライスを生成することで、個別のポイントの属性を照会しなくてもスライスを生成することができ、スライスの生成過程から発生する遅延を減らすことができる。
図21は実施例によるポイントクラウドデータを分割する方法の実施例を示す。
図21の動作は、図18に示した分割動作の方法の実施例を示す。図21の動作は、図17の分割部17001、図16のデータ特性調査部16000、データ特性による分割部&精製部17001、図15の空間分割部15001において行われる。
図21に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
図21は、均等四角形分割方法(Uniform square partitioning)を示す。図21の動作は、ポイントクラウドデータのポイントを均等な四角形(uniform square)21002のスライスに分割することを示す。均等な四角形(uniform square)21002は、例えば、少なくとも1面が正四角形の正六面体を意味する。均等な四角形のスライスは、碁盤状スライスとも呼ばれる。
ポイントクラウドデータ21001は、図1ないし図20に示したポイントを含むデータを意味する。
均等な四角形スライス21002は、ポイントクラウドデータの境界ボックス21000を構成するスライスである。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータ21001の境界ボックスの最長軸、中間長軸を最短軸の長さにセグメント(segment)することで複数の均等な四角形のスライス21002を生成する。
例えば、図21によれば、ポイントクラウドデータの境界ボックスは、最長軸である第1の軸21000C(maxAxis)、中間長軸である第2の軸21000b(midAxis)及び最短軸である第3の軸21000a(minAxis)で構成される。ポイントクラウドデータ送信装置は、第1の軸(例えば、maxAxis)、第2の軸(例えば、midAxis)を第3の軸の長さに切り、均等な四角形のスライス21002を生成(又はセグメント)する。
実施例によるポイントクラウドデータ送信装置は、均等四角形分割方法(Uniform square partitioning)に基づいてポイントクラウドデータを複数のスライスに分割した後、複数のスライスをさらに精製(refine)する。ポイントクラウドデータ送信装置が複数のスライスをさらに精製(refine)する過程は、図22ないし図23、図26ないし図27で詳細に説明する。
実施例によるポイントクラウドデータ送信装置は、上述した方法によってスライスを生成することで、個別のポイントの属性を照会しなくてもスライスを生成することができ、スライス生成過程から発生する遅延を減らすことができる。
図22は実施例によるスライス(slice)を精製する方法の実施例を示す。
図22に示した実施例によるスライスを精製する動作は、図15の空間分割部15001、図16のデータ特性による分割部&精製部16001、図17の精製部17002において行われる。
図22(A)は、ポイントクラウドデータのポイントが複数のスライスに分割22000されることを示す。実施例によるスライスは、スライス識別子によって他のスライスと区別できる。例えば、22001で指示されるスライスの識別子は、N(N番目のスライス)である。
図22に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
実施例によれば、N番目のスライス22001は、他のスライスと隣接している。例えば、N番目のスライス22001は、複数の隣接したスライス(adjacent slices)を有する。例えば、図22(A)によれば、N番目のスライスは、N+1番目のスライス、N-M番目のスライス、N+M番目のスライス、N-1番目のスライスと隣接している。
図22によれば、N+1番目のスライスはN番目のスライス22001の上(up)方向に隣接したスライスであり、N-1番目のスライスはN番目のスライス22001の下(down)方向に隣接したスライスであり、N+M番目のスライスはN番目のスライス22001の右(right)方向に隣接したスライスであり、N-M番目のスライスはN番目のスライス22001の左(left)方向に隣接したスライスである。
実施例によるポイントクラウドデータ送信装置は、特定のスライス(例えば、N番目のスライス)を精製することができる。
図22(B)は、実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを複数のスライスに分割(partition)し、分割したスライスのうちの一部を精製する動作を示す。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを分割するステップ22002a、特定のスライスと隣接したスライスに関する情報を導き出すステップ22002b及び/又はスライスを併合(merge)及び/又は分離(split)することで精製するステップ22002cを含む。
ポイントクラウドデータを分割するステップ22002aは、ポイントクラウドデータを複数のスライス(slice)に分割する。ポイントクラウドデータを分割するステップ22002aは、図15の空間分割部15001、図16のデータ特性調査部16000、データ特性による分割部16001の動作の一部、図17の分割部17001、図18ないし図21の動作を行う。例えば、ポイントクラウドデータを分割するステップ22002aは、図21に示した均等四角形分割方法(Uniform square partitioning)によってポイントクラウドデータを分割する。分割したスライス(例えば、図示した現在スライス(current slice))は、図22(A)により、隣接したスライス(例えば、上側スライス(top slice)、下側スライス(bottom slice)、左側スライス(left slice)、右側スライス(right slice))を有する。
特定のスライスと隣接したスライスに関する情報を導き出すステップ22002bは、分割したスライス(例えば、現在スライス(current slice))と隣接したスライスに関する情報を導き出す。
例えば、0番目のスライスは、最左側最下端に位置したスライスである。この場合、隣接したスライスが1番目のスライス及び3番目のスライスであり、ポイントクラウドデータ送信装置は各々の隣接したスライスのポイントの数を確認(例えば、1番目のスライスは100個、3番目のスライスは200個など)する。ポイントクラウドデータ送信装置は、既に確認したスライスに対しては重複してポイントの数を確認しなくてもよい。
スライスを併合(merge)及び/又は分離(split)することで精製するステップ22002cは、分割したスライスを精製する。
ポイントクラウドデータ送信装置は、分割したスライス(例えば、現在スライス(current slice))のポイント数がポイントの最小数(minimum number of point、minNumPoint)より少ない場合は、実施例による隣接したスライスのうちの1つのスライスと併合する。よって、併合したスライスは分割したスライスに含まれたポイントと隣接したスライスのうちの1つのスライスに含まれたポイントをいずれも含む1つのスライスである。隣接したスライスのうちの1つのスライスは、例えば、隣接したスライスのうち、ポイントの数が最も少ないスライスである。
例えば、現在スライス(current slice)がポイントの最小数(minNumPoint)より少ないポイントを有する場合、ポイントクラウドデータ送信装置は、実施例による併合(merge)の動作を行う。現在スライスと隣接したスライス(4個のスライス)のそれぞれが20個、100個、50個、80個のポイントを有する場合、20個のポイントを有するスライスを現在スライスと併合する。
ポイントクラウドデータ送信装置は、分割したスライス(例えば、現在スライス(current slice))のポイントの数がポイントの最大数(maximum number of point、maxNumPoint)より多い場合は、分割したスライスを分離(split)することができる。よって、ポイントクラウドデータ送信装置は、分割したスライス(current slice)に含まれたポイントを2つ以上のスライスが含むようにする。
例えば、現在スライス(current slice)がポイントの最大数(maxNumPoint)より少ないポイントを有する場合、ポイントクラウドデータ送信装置は、実施例による分離(split)の動作を行う。現在スライスの数が150個(例えば、ポイントの最大数(maxNumPoint)が100個である場合)、ポイントクラウドデータ送信装置は、現在スライスを分離して2個のスライスを生成する。
ポイントクラウドデータ送信装置は、例えば、現在スライス(N番目のスライス)の150個のポイントのうちの100個はN番目のスライスに、余りの50個のポイントは隣接したスライス(例えば、N+1番目のスライス)に分配する。この場合、N+1番目のスライスはその境界がさらに大きくなることがある。例えば、N番目のスライスに含まれたポイントのうち、N+1番目のスライスの近くに位置するポイントはN+1番目のスライスに含まれるように、ポイントクラウドデータ送信装置がN+1番目のスライスの境界を再設定する。
実施例によるポイントクラウドデータ送信装置は、現在スライスで再分配するポイントを次のインデックスを有するスライスに再分配し、次のインデックスを有するスライスの境界を再調整することができる。
実施例によるポイントクラウドデータ送信装置は、上述した方法によってスライスを生成することで、個々のポイントの属性を照会しなくてもスライスを生成することができ、スライス生成過程から発生する遅延を減らすことができる。
実施例によるポイントクラウドデータ送信装置は、このような構成により、スライス内のポイントの数を均等に又は適宜に分配又は決定することができ、送信装置の並列的な符号化効率を高めることができる。
また、実施例によるポイントクラウドデータ受信装置は、このような構成により、スライス内のポイントの数の偏差が大きくないように設定され、各々のスライスを独立して符号化する過程から発生する遅延を減らすことができる。
図23は実施例によるポイントクラウドデータが複数のスライスに分割及び/又は精製された結果の一例を示す。
図23の動作は、図17の分割部17001、図16のデータ特性調査部16000、データ特性による分割部&精製部17001、図15の空間分割部15001において行われる。
図23に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを分割(partitioning)して複数のスライスを生成し、生成した複数のスライスを精製する。
実施例によるポイントクラウドデータ送信装置は、実施例による分割(partitioning)の動作を行い、以下のような動作を行う。
1)隣接情報生成(Generate adjacent information)
各々の分割されたスライス(精製されていないスライス)は、少なくとも1つの隣接したスライス(adjacent slice)に関する情報を含む隣接情報(adjacent information)を生成する。実施例による隣接したスライスは、分割されたスライス(current slice)と下側に(bottom)、左側に(left)、上側に(top)、右側に(right)隣接したスライスのうちの1つを意味する。実施例による隣接したスライスは、分割されたスライス(current slice)と下側に(bottom)、左側に(left)、上側に(top)、右側に(right)、前側に(front)、後側に(back)隣接したスライスのうちの1つを意味する。
隣接情報は、現在スライス(current slice)と下側に(bottom)隣接したスライス、左側に(left)隣接したスライス、上側に(top)隣接したスライス及び/又は右側に(right)隣接したスライスの情報(例えば、スライスの識別子情報、スライスに含まれたポイント数の情報など)を含む。隣接情報は、現在スライス(current slice)と下側に(bottom)隣接したスライス、左側に(left)隣接したスライス、上側に(top)隣接したスライス、右側に(right)隣接したスライス、前側に(front)隣接したスライス、後側に(back)隣接したスライスの情報を含む。
2)併合(Merge)
実施例による併合(merge)は、現在スライス(current slice)と隣接したスライスのうちの1つを併合する。併合(merge)は、現在スライス(current slice)のポイントの数がポイントの最小数情報(minimum numbers of points、minNumPoint)の値より少ない場合に行われる。
実施例による隣接したスライスのうちの1つは、現在スライス(current slice)と下側に(bottom)隣接したスライス、左側に(left)隣接したスライス、上側に(top)隣接したスライス、右側に(right)隣接したスライス、前側に(front)隣接したスライス、後側に(back)隣接したスライスである。
3)分離(Split)
実施例による分離(split)は、現在スライス(current slice)を複数のスライスに分けるか、次のインデックスを有するスライスにポイントを再分配することを意味する。分離(split)は現在スライス(current slice)のポイントの数がポイントの最小数情報(minimum numbers of points、minNumPoint)の値より少ない場合に行われる。
図23は実施例によるポイントクラウドデータ送信装置が併合(merge)及び/又は分離(split)の動作を行った後のスライスを示す。ポイントクラウドデータ送信装置が併合(merge)及び/又は分離(split)の動作を行う場合、スライスはポイントの分布又は領域に適応して(adaptive)配置される。即ち、実施例による併合(merge)及び/又は分離(split)の動作が行われたスライスは符号化又は復号に最適化してポイントの数を含む。
実施例によるポイントクラウドデータ送信装置は、このような構成により、スライス内のポイントの数を均等に又は適宜に分配又は決定することができ、送信装置の並列的な符号化効率を高めることができる。
また、実施例によるポイントクラウドデータ受信装置は、このような構成により、スライス内のポイントの数の偏差が大きくないように設定され、各々のスライスを独立して符号化する過程から発生する遅延を減らすことができる。
図24は実施例によるポイントクラウドデータを分割する方法の実施例を示す。
図24の動作は、図18に示した分割動作の方法の実施例を示す。図24の動作は、図17の分割部17001、図16のデータ特性調査部16000、データ特性による分割部&精製部17001、図15の空間分割部15001において行われる。
図24に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化部18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などによって結合して行われる。
図24に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
図24は八分木分割方法(Octree partitioning)を示す。図24の動作は、ポイントクラウドデータのポイントを境界ボックス(bounding box)24000に対する八分木(octree)に基づいて複数のスライスに分割することを示す。
八分木分割方法(Octree partitioning)は、全体の空間(実施例によるポイントクラウドデータが含まれた境界ボックス)を8つの空間に8等分して再帰的(recursive)に分割する。
実施例によるポイントクラウドデータ送信装置は、最長軸の長さLを境界ボックスに設定し(LXLXL)、八分木の1レベルが下がる度に8のl自乗(8 power of l)の空間を生成する。実施例による八分木のレベル(l)は所定値でもよく、ユーザによって設定された値でもよい。例えば、八分木のレベル(即ち、l)の値を3にする場合、送信装置は、8^3の512つの空間に分割することができる。実施例による送信装置は、実施例によるレベルの値をシグナル情報として受信装置に送信することができる。
実施例によるレベルの値は入力値として伝達された値でもよく、境界ボックス(空間)内に存在するポイントの数に基づいて決定(例えば、lの数はポイントの数でしきい値として決定)してもよい。
例えば、実施例による送信装置は、スライス分割のためのレベルがxであるとき、1つのスライス内に存在するポイントの数が1ないし100,000であるスライスの数が全体のスライス数の50%を占める場合には八分木分割を中止することができる。このとき、八分木分割を中止する方法としては、密度、しきい値、スライスの長さなどを基準としてもよい。
八分木分割方法(Octree partitioning)は、八分木を用いた均等-ジオメトリ分割(Uniform-Geometry partition using Octree)とも呼ばれる。八分木を用いた均等-ジオメトリ分割は、例えば、以下の動作を行う分割方法である。
1)八分木の深さ(八分木のレベル、depOctree)を1に設定する。(Set the depth of octree partition depOctree = 1 by default)
2)八分木分割スキーム(Octree partition scheme)に従ってポイントクラウドデータを8^depOctree個のスライスに分割する。(Divide the input point cloud into 8depOctree slices by Octree partition scheme.)
3)全てのスライスに対して、各々のスライス内のポイントの分布比率がポイントの最大数(maxPointNum)になるように確認する。分布比率のしきい値(thres)を設定する。分布の比率がしきい値より大きい場合、次のステップに進む。分布の比率がしきい値より大きくない場合は、1)の動作を再び行い、八分木の深さ(depOctree)の値から1を上げる。(Evaluate the proportion ratio of points smaller than the maxPointNum in all slices.Set a ratio threshold thres.If ratio is bigger than thres、go to next step.Otherwise、back to procedure 1) and set depOctree += 1.)
スライス分割(slice partition)が行われた後、ポイントの数がポイントの最大数(MaxPointNum)より多いスライスのポイントクラウドは分離(split)してもよい。スライス分割(slice partition)が行われた後、ポイントの数がポイントの最小数(MinPointNum)より少ないスライスのポイントクラウドは併合(merge)してもよい。(After slice partition、the point cloud of slice whose point count is more than MaxPointNum is splitted、and the point cloud of slice whose point count too few points is merged.)
実施例による分離(split)の動作は、図18なしい図23に示した分離動作を意味する。分離動作は、ポイントの数(Asize)がポイントの最大数より多い場合は、該当スライスをn個のスライスに分けることができる。nは、例えば、ceil(Asize/MaxPointNum)である。
実施例による併合(merge)の動作は、図18ないし図23に示した併合動作を意味する。併合動作は、ポイントの数がポイントの最小数(MinPointNum)より少ない場合、該当スライスを前のスライス又は次のスライスと併合する。(Merge: If the point count of current slice is less than MinPointNum、merge it with either prior slice or next one.)
併合(merge)しようとするスライス(slice)を決定するために、実施例によるポイントクラウドデータ送信装置は、併合の方向(direction to merge)を以下のように決定する。
スライスが最初のスライス(first place)である場合、併合の方向は、次のスライス(next slice)の方向である。
スライスが最後のスライス(at the end)である場合、併合の方向は、前のスライス(prior slice)の方向である。
スライスが最初のスライスでもなく、最後のスライスでもない場合は、以下のように行われる。該当スライス(current slice)が前のスライス(prior slice)と併合して生成されたスライスのポイントの数を「SumFront」、該当スライス(current slice)が次のスライス(next slice)と併合して生成されたスライスのポイントの数を「SumNext」とすれば、併合動作は、以下のように行われる。
SumFrontがポイントの最大数より大きく、SumNextがポイントの最大数より大きい場合(If SumFront > MaxPointNum and SumNext > MaxPointNum)、前のスライス(prior slice)及び次のスライス(next slice)のうち、ポイントの数がより多いスライスを選択する。
SumFrontがポイントの最大数より小さく、SumNextがポイントの最大数より小さい場合(If SumFront < MaxPointNum and SumNext < MaxPointNum)、前のスライス(prior slice)及び次のスライス(next slice)のうち、ポイントの数がより多いスライスを選択する。
その他の場合(otherwise)、SumFront及びSumNextのうちの一方がポイントの最大数より大きく、その他方がポイントの最大数より小さい場合は、前のスライス(prior slice)及び次のスライス(next slice)のうち、少ないポイントの数を有するスライスと併合する。
併合動作が行われた後、併合後に生成された全てのスライスを巡回して、SumMergedとMaxPointNumを比較する。SumMergedは併合したスライスのポイントの数である。
SumMerged < MinPointNumである場合、現在スライスを他のスライスとさらに併合することができる。
SumMerged > MaxPointNumである場合は、併合したスライスを分離(split)することができる。
MinPointNum <SumMerged< MaxPointNumである場合、現在スライスを維持する。
実施例によるポイントクラウドデータ送信装置は、このような構成により、スライス内のポイントの数を均等に又は適宜に分配又は決定することができ、送信装置の並列的な符号化効率を高めることができる。
また、実施例によるポイントクラウドデータ受信装置は、このような構成により、スライス内のポイントの数の偏差が大きくないように設定され、各々のスライスを独立して符号化する過程から発生する遅延を減らすことができる。
図25は実施例によるポイントクラウドデータを分割する方法の実施例を示す。
図25の動作は、図18に示した分割動作方法の実施例を示す。図25の動作は、図17の分割部17001、図16のデータ特性調査部16000、データ特性による分割部&精製部17001、図15の空間分割部15001において行われる。
図25に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化部18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などによって結合して行われる。
図25は、ポイントクラウドデータ送信装置がポイントクラウドデータの占める3次元空間又はポイントクラウドデータ25000を境界ボックスの軸の長さに基づいて分割した領域25001、25002に分割することを示す。実施例によるポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを1つ又はそれ以上の境界ボックスの軸の長さに基づいて分割した領域25001、25002別に符号化することができる。実施例によれば、境界ボックスの軸の長さに基づいて分割した領域25001、25002(例えば、スライス)に分割する動作を適応的軸長さ基盤のスライスタイルリング(又は軸長さ基盤のスライス分割)とも呼ぶ。図25に示した動作は、例えば、図12のデータ入力部12000において行われる。
ポイントクラウドデータ25000は、1つ又はそれ以上のポイントを含む。ポイントクラウドデータは、3次元空間(例えば、境界ボックス)内に含まれる。実施例による3次元空間(例えば、境界ボックス)は、x軸、y軸及びz軸で表現される。
ポイントクラウドデータ25000は、例えば、x軸、y軸及びz軸のうちのいずれかの長さがその他の2つの軸の長さよりも短いか、顕著に短い。例えば、1つの軸を除く2つの軸に広く分散されている形態の地形を表現するポイントクラウドデータが存在する。ポイントクラウドデータの送信装置が軸の長さとは関係なく境界ボックス内のポイントに対して符号化を行う場合、符号化の効率は低下する。よって、ポイントクラウドデータ送信装置は、3次元空間の軸の長さに適応して、1つ又はそれ以上の領域に分割する必要がある。よって、実施例によるポイントクラウドデータ送信装置は、x軸、y軸及びz軸の相対的な長さを算出し、算出した相対的な長さに基づいてポイントクラウドデータを1つ又はそれ以上の領域に分割する。
実施例によるポイントクラウドデータ送信装置(例えば、図16のタイル分割部16000)は、3次元空間のx軸の長さ25000x、y軸の長さ25000y及びz軸の長さ25000zのうち、最長軸(例えば、X軸)の長さを最短軸(例えば、Z軸)の長さ単位に分割して、1つ又はそれ以上のスライス25001を構成する。1つ又はそれ以上のスライスに分けられたデータは、並列的に符号化及び復号が可能な単位である。
実施例によるポイントクラウドデータ送信装置(例えば、図18のタイル分割部18000、又は図19のタイルリング部19001)は、一部のスライス25001に対して再分割を行う。実施例による再分割は、スライスのうちの一部のスライスに対して、最長軸(即ち、図25の25001スライスではy軸25000y)を最短軸(例えば、x軸又はz軸)の長さ単位に分割して、1つ又はそれ以上の細部のスライス(又は第2のスライス25002)を構成する。1つ又はそれ以上の細部のスライス(又は第2のスライス)に分けられたデータは、並列的に符号化及び復号が可能な単位である。
実施例によるポイントクラウドデータ送信装置は、第1のスライス内のポイントの最大数と最小数(maxPointNum、minPointNum)で空間上のデータ分布によらず、ポイントの最小/最大(min/max)情報に基づいて分割を行ってもよい。
実施例によるポイントクラウドデータ送信装置は、第1のスライス又は第2のスライスを領域内のポイントの数、領域のそれぞれが割り当てる空間のサイズ、領域内に含まれたポイントの密度に基づいて、また再分割を行うか否かを決定する。実施例によれば、空間上に再分割を行う場合、空間適応的に行い、単に特定の軸に分ける方法の他にも中間軸を基準として再分割を行うような方法でスライスを分割することができる。
実施例によるポイントクラウドデータ送信装置は、実施例による適応的軸長さ基盤の領域タイルリングを用いることで、大型地形地物を含むポイントクラウドデータの1つのフレーム内で空間単位で連関関係のあるシーケンスにおいて効果的に符号化を行うことができる。実施例によるポイントクラウドデータ受信装置は、大型地形地物を含むポイントクラウドデータに対して効果的に復号化を行うことができる。
例えば、最短軸(例えば、Z軸)で最長軸(例えば、X軸)を分割して1つのスライスを構成する。特定の軸に分けられたスライスは再分割されてもよい。上述した最短軸で最長軸を分割する方法を再分割に置き換えて、再帰的に分割を行ってもよい。再分割されるスライスは最短軸がまたZ軸となり、スライス内で分割されない最長軸であるY軸に対してZ軸の長さx(Z軸の長さ)だけの空間を有するスライスに再分割される。
実施例による軸長さ基盤のスライス分割方法は、最長エッジに対する均等-ジオメトリ分割(Uniform-Geometry partition along the longest edge)とも呼ばれる。
最長エッジに対する均等-ジオメトリ分割(Uniform-Geometry partition along the longest edge)は、例えば、以下のように行われる。
1)実施例によるスライス分割方法によってポイントクラウドデータを分割する。
2)スライス内のポイントの最大数(例えば、実施例によるMaxPointNum)及び/又はスライス内のポイントの最小数(例えば、実施例によるMinPointNum)に基づいて、実施例による併合(merge)動作及び/又は分離(split)動作を行う。
実施例によるポイントクラウドデータ送信装置は、このような構成により、別途のシグナル情報及びパラメータがなくても、スライス内のポイントの数を均等に又は適宜に分配又は決定することができ、送信装置の並列的な符号化効率を高めることができる。
実施例による軸長さ基盤のスライス分割方法は、ポイントクラウドデータにおいて1つの軸を除く2つの軸に広く分散されている形態の地形を有するポイントクラウドデータを分割する方法において効果的である。
図26は実施例による隣接したスライス(adjacent slice)の一例を示す。
図26の動作は、図22に示した実施例による精製動作において、該当スライスと隣接したスライス(adjacent slice)を決定する方法を示す。例えば、図26に示した動作は、図22のN番目のスライス(slice N)22001と隣接したスライス(adjacent slice)を探す方法を示す。
図26の動作は、図17の精製部17002、図16のデータ特性調査部16000、データ特性による分割部&精製部16001、図15の空間分割部15001において行われる。
図26に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化部18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などによって結合して行われる。
精製部は、実施例による併合(merge)動作及び/又は分離(split)動作を行う。精製部は、精製基準に従って決定する距離に基づく精製及び/又は2/4/6方形に基づく精製を行う。
図26(A)ないし26(C)のそれぞれは、2方形精製方法、4方形精製方法、6方形精製方法を示す。
実施例によるポイントクラウドデータ送信装置は、分割されたスライスの位置又は分割方法によって、2方形(左右)、4方形(左右上下)、6方形(左右上下前後)に存在する隣接スライスの探索を行う。
図26(A)は2方形に基づく精製方法を示す。
2方形に基づく精製方法は、1次元で長軸を短軸で分ける分割方法の精製方法であって、併合又は分離が適用される。例えば、2方形に基づく精製方法は、ポイントクラウドデータ送信装置が1つのスライスに対して併合(merge)動作及び/又は分離(split)動作を行うために、隣接したスライス(adjacent slice)を1次元上で探索する。例えば、ポイントクラウドデータ送信装置は、2方形に基づく精製方法によって、該当スライスと左側に隣接したスライス、該当スライスと右側に隣接したスライスを用いて併合及び/又は分離の動作を行う。
図26(B)は4方形に基づく精製方法を示す。
4方形に基づく精製方法は、現在位置するスライスから上側、下側、左側、右側に位置するスライスの位置を見て併合又は分離を行う方法である。例えば、4方形に基づく精製方法は、ポイントクラウドデータ送信装置が1つのスライスに対して併合(merge)動作及び/又は分離(split)動作を行うために、隣接したスライス(adjacent slice)を2次元上で探索する。例えば、ポイントクラウドデータ送信装置は、4方形に基づく精製方法によって、該当スライスと左側に(left)隣接したスライス、該当スライスと右側に(right)隣接したスライス、該当スライスと上側に(up)隣接したスライス、該当ライスと下側に(bottom)隣接したスライスを用いて、併合及び/又は分離の動作を行う。
図26(C)は6方形に基づく精製方法を示す。
6方形に基づく精製方法は、八分木分割方法のように、空間に基づいて分割が行われた分割方法に適用される。例えば、6方形に基づく精製方法は、ポイントクラウドデータ送信装置が1つのスライスに対して併合(merge)動作及び/又は分離(split)動作を行うために、隣接したスライス(adjacent slice)を3次元上で探索する。例えば、ポイントクラウドデータ送信装置は、6方形に基づく精製方法によって、該当スライスと左側に(left)隣接したスライス、該当スライスと右側に(right)隣接したスライス、該当スライスと上側に(up)隣接したスライス、該当スライスと下側に(bottom)隣接したスライス、該当スライスと前側に(front)隣接したスライス、該当スライスと後側に(back)隣接したスライスを用いて、併合及び/又は分離の動作を行う。
ポイントクラウドデータ送信装置が分割部において分けられたスライスを2、4、6方形に併合及び/又は分離する方法は、1次元リスト型で構成されたデータ構造及び/又はツリー型で構成されたデータ構造に基づいて行われる。ポイントクラウドデータ送信装置が1次元リスト型で構成されたデータ構造及び/又はツリー型で構成されたデータ構造に基づいて併合及び/又は分離する動作は、図27に詳述する。
距離に基づく精製方法は、分割部で分割したスライスの適応的距離を算出又は測定し、算出又は測定した距離に基づいて併合動作及び/又は分離動作を行う。距離に基づく精製方法は、例えば、疑似コード(pseudocode)で示すと以下のようである。
for(slice N)
slice0からslice1~Nの全ての距離
最も近い距離に存在するsliceXをslice0の次であるslice1に格納
slice++
例えば、ポイントクラウドデータ送信装置は、現在スライスと最も近く存在するスライス(即ち、該当スライスから最小距離を有するスライス)、現在スライスと全てのスライスのそれぞれの距離のうち、中間値を有する距離のスライス、現在スライスと最も遠く存在するスライス(即ち、該当スライスから最大距離を有するスライス)の距離を測定又は算出することができ、全てのスライスの距離のうち、最も近いスライスが次のスライスに再整列される。
ポイントクラウドデータ送信装置は、最も近いスライス、中間スライス及び/又は最も遠いスライスを算出及び測定する場合、既に照会したスライスをスキップすることができる。例えば、二番目のスライスでは一番目のスライスを除外して残りのスライス3~Nまでの距離を測定又は算出して最も近いスライスを次のスライスとして決定し、上記動作を全てのスライスNに対して繰り返して行う。
ポイントクラウドデータ送信装置は、距離に基づいて整列されたスライス順に併合動作及び/又は分離動作を行う。併合動作は1つのスライス内のポイントの数がminPointNumより少ない場合、次のスライスと併合する動作であり、分離動作は1つのスライス内のポイントの数がmaxPointNumより多い場合、次のスライスと近い位置に属するポイントを分離(split)して2つのスライスに分ける。
実施例によるポイントクラウドデータ送信装置は、距離に基づく精製及び/又は2/4/6方形に基づく精製動作を、図18ないし図25に示した分割方法を適用したスライスに対して共通して適用する。
実施例によるポイントクラウドデータ送信装置は、このような構成により、スライス内のポイントの数を均等に又は適宜に分配又は決定することができ、送信装置の並列的な符号化効率を高めることができる。
また、実施例によるポイントクラウドデータ受信装置は、このような構成により、スライス内のポイント数の偏差が大きくないように設定され、各々のスライスを独立して符号化する過程から発生する遅延を減らすことができる。
図27は実施例による隣接したスライス(adjacent slice)を用いてスライスを精製する方法の一例を示す。
図27は隣接したスライス(adjacent slice)を用いてスライスを精製するためのデータ構造を示す。ポイントクラウドデータ送信装置が分割部部で分けられたスライスを2、4、6方形に併合及び/又は分離する方法は、1次元リスト型で構成されたデータ構造及び/又はツリー型で構成されたデータ構造に基づいて行われる。
図27は、図22に示した実施例による精製動作において、該当スライスと隣接したスライス(adjacent slice)を決定し、実施例による精製動作を示す。例えば、図27に示した動作は、図22のN番目のスライス(slice N)22001と隣接したスライス(adjacent slice)を探す方法を示し、隣接したスライスと精製する動作を示す。
図27は、図17の精製部17002、図16のデータ特性調査部16000、データ特性による分割部&精製部16001、図15の空間分割部15001において行われる。
図27に示した分割方法による動作は、図1の送信装置1000、送信機10003、ポイントクラウドビデオエンコーダ10002、図2の符号化部18001、送信部18002、図4のエンコーダ、図12の送信装置、図14のXRデバイス1430などによって結合して行われる。
図27(A)は1次元リスト型に基づくデータ構造によって精製動作を行うことを示す。
例えば、送信装置は、ポイントクラウドデータを分割して生成されたN個のスライスを、各々のスライスに含まれたポイント数に基づいて整列する。整列したスライスは、整列前の上側、下側、左側、右側に位置する隣接したスライスをインデックスに格納する。送信装置は、ポイントの数で整列されたスライスに対して最小ポイント数のスライスから併合及び分離を行う。このとき、送信装置は、併合されるスライスが上側、下側、左側、右側に位置するインデックスを確認し、4つのスライスの中でもポイントの数が最小のスライスから併合する。送信装置は、併合後にもminPointNumより少ないポイント数を有する場合、2つ/4つ/6つの隣接したスライスのうち、その次にポイントの数の少ないスライスと併合する。送信装置は、スライス内のmaxPointNumより多いポイントを有しているとき、最小ポイント数を有する方向に分離を行う。
例えば、図27(A)によれば、1次元リスト型に基づくデータ構造は、図27(A)の右側図のようである。1次元リスト型に基づくデータ構造は、各々のスライスを行に区分し、各行に対応するスライスと隣接したスライスをリンク(link)することで構成される。各行は、該当スライスと隣接したスライスをポイント数の昇順に従ってリンク(link)する。例えば、2番目のスライスは[2]行に位置し、2番目のスライスは0番目、3番目及び4番目のスライスと隣接し、0番目のスライス(10個)、3番目のスライス(30個)、4番目のスライス(100個)の順にポイントの数が少ないため、[2]行には[0]、[3]、[4]が順にリンクされる。ここで、データ構造の1番目の列( [0]ないし[5]と示される個所)はヘッド(head)とも呼び、2番目の列ないし最後の列に該当する箇所はノード(node)とも呼ぶ。
例えば、図27(A)によれば、以下のように行われる。
0番目のスライスから順に精製動作を行う。0番目のスライスは10個のポイントを有し、1番目のスライス及び2番目のスライスのそれぞれと上側(up)、右側(right)に隣接する。精製部は隣接したスライス(1番目及び2番目のスライス)のうち、ポイント数の少ないスライス順に併合を行うか否かを決定する。例えば、精製部は、0番目のスライスを1番目及び2番目のスライスのうち、ポイント数の少ない1番目のスライスと併合する。仮に、0番目のスライスが1番目のスライスと併合した後にもminPointNumより少ないポイントを有する場合、精製部は併合したスライスを2番目のスライスと再び併合する。図27(A)では、minPointNumを60と仮定していて、0番目及び1番目のスライスと併合して50個のポイントを有するため、精製部は該当スライスを2番目のスライスと再び併合して100個のスライスを有することができる。併合した0番目ないし2番目のスライスのポイント数は100個であって、maxPointNumの以下であるため、分離動作は行わない。よって、精製部は、次のスライス(3番目のスライス)に対して併合及び分離を行うか否かを確認する。
3番目のスライスは30個のポイントを有する。よって、精製部は隣接したスライスのうちの最小ポイントを有するスライスと併合する。データ構造によれば、1番目のスライス、2番目のスライス、5番目のスライスの順に併合を行う。1番目のスライスは0番目ないし3番目のスライスと併合したスライスであって、100個のポイントを有する。よって、3番目のスライスは0番目ないし2番目のスライスと併合して130個のポイントを有する。併合したスライスは0番目ないし2番目又は3番目のスライスに含まれる。併合した0番目ないし3番目のスライスはmaxPointNumより多いため、2つのスライスに分離される。
4番目のスライスのポイント数は、minPointNum以上、maxPointNum以下であるため、精製が行われない。
5番目のスライスのポイント数は、maxPointNum以上であるため(180個)、精製部は5番目のスライスを分離する。精製部は5番目のスライスを、例えば、4番目の方向に90個のポイントを有する2つのスライスに分離する。
図27(B)はツリー型に基づくデータ構造によって精製動作を行うことを示す。
実施例による精製部がツリー型に基づくデータ構造によって精製動作を行う場合、精製部はツリー型精製とも呼ばれる。
実施例によるツリー型精製部は、ポイントクラウドデータを含むスライスのそれぞれの位置情報をツリー(tree)型のデータ構造で示す。図27(B)はツリー型のデータ構造の一例である。
例えば、図27(B)によれば、ツリー型に基づくデータ構造は、図27(B)の右側図のようである。ツリー型に基づくデータ構造において、子ノード(child node、1つ又は複数)は、親ノード(parent node)の隣接したスライスの関係であることを示す。例えば、0番目のスライスは1番目のスライスと2番目のスライスと隣接しているため、0番目のスライスを親ノード、1番目及び2番目のスライスは0番目のスライスの子ノードである。さらに、1番目のスライスは3番目のスライスとより隣接しているため、1番目のスライスの子ノードは3番目のスライスである。さらに、2番目のスライスは4番目のスライスとより隣接しているため、2番目のスライスの子ノードは4番目のスライスである。さらに、4番目のスライスは5番目のスライスとより隣接しているため、4番目のスライスの子ノードは5番目のスライスである。即ち、精製部はスライスのインデックスとスライス内のポイント数を用いて、ツリー型隣接性情報を含むツリー型データ構造で生成する。
精製部は、例えば、完成したツリーで深さ優先探索(DFS、Depth first search)を行い、ポイント数を調査する。
例えば、精製部は、深さ優先探索を用いてリーフノードにある5番目のスライスからminPointNum及びmaxPointNumの間にポイント数が存在するか否かを確認する。例えば、5番目のスライスは150個のポイントを有するため、精製部は5番目のスライスに対して分離動作を行い、2つのスライスに分ける。例えば、精製部は5番目のスライスを分離し、2つ以上のスライスを生成して、2つ以上のスライスをいずれも4番目のスライスの子ノードとして生成する。また、例えば、精製部は5番目のスライスを分離し、一部は親ノードである4番目のスライスに組み入れ(又は再分配)てもよく、余りのポイントを1つ又はそれ以上のスライスに分配して4番目のスライスの子ノードとして生成してもよい。
精製部は、深さ優先探索を用いて、次の4番目のスライスに対して精製動作を行う。仮に、5番目のスライスを精製する過程において、5番目のスライス内のポイントのうちの一部が4番目のスライスに組み入れられない場合、4番目のスライスのポイントの数は100個である。よって、精製動作を行わない(minPointNum及びmaxPointNumの間のポイント数を有するためである)。
精製部は、次の2番目のスライスに対して精製動作を行うか否かを確認する。2番目のスライスは、精製動作を行わない(minPointNum及びmaxPointNumの間のポイント数を有するためである)。
精製部は、次の3番目のスライスに対して精製動作を行うか否かを確認する。3番目のスライスは、30個のポイントを有するため、併合動作を行う(minPointNum以上であるためである)。精製部は3番目のスライスの親ノードである1番目のスライスと併合を行い、70個のポイントを有するスライスを生成する。併合した1番目及び3番目のスライスは0番目のスライスの子ノードとして生成される。併合した1番目及び3番目のスライスに対して、精製部は分離動作を行わない。
精製部は、次の0番目のスライスに対して精製動作を行うか否かを確認する。0番目のスライスは、10個のポイントを有するため、子ノードのうち、少ないポイント数を有するスライス(即ち、併合した1番目及び3番目のスライス)と併合して80個のポイントを有するスライスを生成する。
実施例によるポイントクラウドデータ送信装置は、このような構成により、スライス内のポイント数を均等に又は適宜に分配又は決定することができ、送信装置の並列的な符号化効率を高めることができる。
実施例によるポイントクラウドデータ送信装置は、このようなデータ構造を用いて精製動作を行うことで、メモリの効率を極大化すると共に、精製過程において不要な遅延及びエラーを最小化することができる。
また、実施例によるポイントクラウドデータ受信装置は、このような構成により、スライス内のポイント数の偏差が大きくないように設定され、各々のスライスを独立して符号化する過程から発生する遅延を減らすことができる。
図28は実施例によるポイントクラウドデータ受信装置の一例を示す。
図28に示した分割動作は、図1の受信装置10004、受信部10005、ポイントクラウドビデオデコーダ10006、図2の復号18003、送信部18002、図10、図11のデコーダ、図13の受信装置、図14のXRデバイス1430などによって結合して行われる。
実施例によるポイントクラウド受信装置(又はデコーダ)28000は、幾何情報復号化部28001及び/又は属性情報復号化部28002を含む。実施例によれば、ポイントクラウドデコーダは、PCC復号化機、PCC復号化部、ポイントクラウド復号化機、ポイントクラウド復号化部、PCCデコーダなどとも呼ばれる。
幾何情報復号化部28001は、ポイントクラウドデータの幾何情報ビットストリーム28000aを受信する。幾何情報復号化部28001は、ポイントクラウドデータの幾何情報ビットストリーム28000aを復号化(復号)して、復元されたポイントクラウドデータ28000cの特質情報を出力する。 幾何情報復号化部28001は、幾何情報ビットストリームをジオメトリ情報で再構成して、復元された幾何情報28001を出力する。幾何情報ビットストリーム28000aは、図15の幾何情報ビットストリーム、ジオメトリビットストリームを意味する。属性情報ビットストリーム28000bは、図15の属性情報ビットストリーム、特質ビットストリームを意味する。
幾何情報復号化部28001は、入力された幾何情報ビットストリームを復号化して、幾何情報を復元する。復元された幾何情報は、属性情報復号化部に入力される。属性情報復号化部28002は、入力された属性情報ビットストリームと幾何情報復号化部から入力された復元された幾何情報が入力され、属性情報を復元する。復元された幾何情報は、図11に示したジオメトリ再構成部(reconstruct geometry)11003によって再構成されたジオメトリを意味する。復元された幾何情報は、図13に示した占有コードに基づく八分木再構成処理部13003によって再構成された八分木占有コードを意味する。
幾何情報復号化部28001は実施例による受信装置が受信した幾何情報ビットストリームを受信する。幾何情報復号化部28001は幾何情報ビットストリームを復号化する。
幾何情報復号化部28001は、図1のポイントクラウドビデオデコーダの動作、図2の復号20003、図10のジオメトリデコーダの動作、図11に示した演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ 再構成部11003及び/又は座標系逆変換部11004の動作の全部/一部を行う。
属性情報復号化部28002はポイントクラウドデータの属性情報ビットストリーム28000bを受信する。属性情報復号化部28002は、ポイントクラウドデータの属性情報ビットストリーム28000bを復号化(デコード)し、復元されたポイントクラウドデータ28000cの特質情報を出力する。属性情報復号化部28002は、幾何情報復号化部28001によって生成された復元された幾何情報28001aに基づいて属性情報ビットストリームを復号化(デコード)する。
属性情報復号化部28002は、実施例による受信装置が受信した属性情報ビットストリームを受信する。属性情報復号化部は、復元された幾何情報に基づいて属性情報ビットストリームの属性情報を復号化する。ポイントクラウドデータに含まれた幾何情報及び/又は属性情報は復号化されて復元されたPCCデータである。
属性情報復号化部28002は、図1のポイントクラウドビデオデコーダ、図2の復号20003の動作、図10に示した特質デコーダ(attribute decoder)の動作、図11の逆量子化部11006、RAHT11007、LOD生成部11008、逆リフト部11009,及び/又は色逆変換部11010の動作、図13に示した演算デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009、色逆変換処理部13010及び/又はレンダラー13011の動作の一部又は全部を行う。
図29は実施例によるポイントクラウドデータ受信装置を示す。
図29に示した実施例によるポイントクラウドデータデコーダの一部又は全部は、図1の受信装置10004、受信部10005、ポイントクラウドビデオデコーダ10006、図2の復号18003、送信部18002、図10、図11のデコーダ、図13の受信装置、図14のXRデバイス1430などによって結合して行われる。
図29の実施例によるポイントクラウドデコーダは、図28の実施例によるポイントクラウドデータデコーダ28000を意味する。実施例によるポイントクラウドデコーダは、受信部29000、分割されたデータ入力部29001、第1の演算デコーダ29002、占有コードに基づく八分木再構成処理部29003、表面モデル処理部29004、ジオメトリ再構成部29005、座標逆変換部29006、第2の演算デコーダ29007、逆量子化処理部29008、予測/リフト/RAHT逆変換処理部29009、属性再構成部29010、色逆変換部29011及び/又はポイント結合部を含む。
図29に示した実施例によるポイントクラウドデータデコーダの構成要素は、ブリック(brick)単位で行われてもよく、ブリック単位で独立して行われてもよい。
受信部29000は実施例によるポイントクラウドデータを含むビットストリームを受信する。受信部29000は受信したビットストリームを分割されたデータ入力部29001に送信する。受信部29000は、図1の受信機10007、図2の送信部20002、図13の受信部13000の動作を行う。
分割されたデータ入力部29001は、実施例によるポイントクラウドデータを含むビットストリームをブリック(brick)単位で受信し、ブリック単位で復号を行うためにブリック単位でポイントクラウドデータのジオメトリビットストリームと属性ビットストリームを出力する。分割されたデータ入力部29001は、ブリック単位のジオメトリビットストリームを第1の演算デコーダ29002に送信し、ブリック単位の属性ビットストリームを第2の演算デコーダ29002に送信する。
分割されたデータ入力部29001は、受信部29000によって受信したビットストリームに含まれた、ブリック単位で符号化されたことを示すシグナル情報(例えば、bistream_brick_decoding_flag)が存在する場合(又はブリック単位で符号化されたことを指示する場合)、実施例によるポイントクラウドデータ受信装置は、受信ビットストリームに対してN回の復号動作が行われる。分割されたデータ入力部29001は、図1の受信機10007、図2の送信20002、図13の受信処理部13001の動作を行う。
第1の演算デコーダ29002はブリック単位でジオメトリビットストリームを受信する。第1の演算デコーダ29002はジオメトリビットストリームを復号化する。第1の演算デコーダ29002は復号化されたジオメトリ情報を出力する。
第1の演算デコーダ29002は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の演算復号部11000、図13の演算デコーダ13002の動作を行う。
占有コードに基づく八分木再構成処理部29003は、復号化されたジオメトリ情報を受信する。占有コードに基づく八分木再構成処理部29003は、ブリック単位のジオメトリビットストリームに基づいて占有(occupancy)基盤の八分木(octree)を再構成する。占有コードに基づく八分木再構成処理部29003は、再構成された八分木を表面モデル処理部29004に送信する。
占有コードに基づく八分木再構成処理部29003は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の八分木分析部11001、図13の占有コードに基づく八分木再構成処理部13003の動作を行う。
表面モデル処理部29004は、第1の演算デコーダ29002によって復号されたジオメトリ情報及び/又は占有コードに基づく八分木再構成処理部29003によって再構成された八分木に基づいてジオメトリ情報の表面モデル処理を行う。ジオメトリ情報の表面モデル処理は、例えば、三角形再構成の動作、アップ-サンプリングの動作、ボクセル化の動作を含む。
表面モデル処理部29004は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の表面近似分析部11002、図13の表面モデル処理部13004の動作を行う。
ジオメトリ再構成部29005は、表面モデル処理部29004によって表面モデル処理されたジオメトリ情報を受信する。ジオメトリ再構成部は、表面モデル処理されたジオメトリ情報を再構成する。ジオメトリ再構成部29005は、再構成されたジオメトリ情報を予測/リフト/RAHT逆変換処理部29009及び/又は座標逆変換部29006に送信する。
ジオメトリ再構成部29005は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11のジオメトリ再構成部11003の動作を行う。
座標逆変換部29006は、ジオメトリ再構成部29005によって生成されたジオメトリ情報の座標情報を逆変換する。座標逆変換部29006は、ジオメトリ情報を逆変換して、ポイントクラウドデータのポイントの位置情報を出力する。座標逆変換部29006はポイントの位置情報をポイント結合部29012に送信する。
座標逆変換部29006は、該当ポイントに対応するブリック(brick)に対してジオメトリ復号が行われたことを示す情報を分割されたデータ入力部29001に送信する。
座標逆変換部29006は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の座標逆変換部11004の動作を行う。
第2の演算デコーダ29007は、ブリック単位でジオメトリビットストリームを受信する。第2の演算デコーダ29007は、属性ビットストリーム(特質ビットストリーム)を復号化する。第2の演算デコーダ29007は復号化された特質情報を出力する。
第2の演算デコーダ29007は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の演算復号11005、図13の演算デコーダ13007の動作を行う。
逆量子化処理部29008は、第2の演算デコーダ29007によって生成された復号化された特質情報を受信する。逆量子化処理部29008は、受信した復号化された特質情報を逆量子化する。逆量子化処理部29008は、逆量子化された特質情報を出力し、逆量子化された特質情報を予測/リフト/RAHT逆変換処理部29009に送信する。
逆量子化処理部29008は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の逆量子化部11006、図13の演算デコーダ13007の動作を行う。
予測/リフト/RAHT逆変換処理部29009は、逆量子化処理部29008によって逆量子化されたジオメトリ情報を受信し、これらを逆変換する。予測/リフト/RAHT逆変換処理部29009は、逆量子化された特質情報を予測方法(prediction)、リフト方法(lifting)、RAHT方法のうちの少なくとも1つに基づいて逆変換する。予測/リフト/RAHT逆変換処理部29009は、ジオメトリ再構成部29005によって再構成されたジオメトリ情報(又は復元されたジオメトリ情報)に基づいて特質情報を逆変換する。
予測/リフト/RAHT逆変換処理部29009は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11のRAHT11007、LOD生成部11008、逆リフト部11009の動作を行う。
属性再構成部29010は、予測/リフト/RAHT逆変換処理部29009によって逆変換された特質情報に基づいて属性情報を再構成する。属性再構成部は再構成された属性情報を出力し、これを色逆変換処理部29011に送信する。
属性再構成部29010は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の色逆変換部11010、図13の色逆変換処理部13010の動作を行う。
色逆変換部29011は、属性再構成部29010によって再構成されたジオメトリ情報を受信する。色逆変換部29011は、再構成されたジオメトリ情報を色逆変換する。色逆変換部29011はポイントクラウドデータのポイントの属性情報を出力する。
色逆変換部29006は、該当ポイントに対応するブリック(brick)に対して特質復号が行われたことを示す情報を分割されたデータ入力部29001に送信する。属性再構成部29010は、図1のポイントクラウドビデオデコーダ10006、図2の復号20003、図11の色逆変換部11010、図13の色逆変換処理部13010の動作を行う。
ポイント結合部は、実施例によるポイントクラウドデータのポイントのジオメトリ情報(位置情報)及び/又はポイントの特質情報(属性情報)を受信する。ポイント結合部はブリック(brick)単位のポイントクラウドデータのポイントのジオメトリ情報(位置情報)及び/又はポイントの特質情報(属性情報)を受信し、これをブリック単位で結合する。ポイント結合部はポイントの位置情報と属性情報を含むブリック単位のポイントクラウドデータを出力する。
図30は実施例によるポイントクラウドデータのビットストリーム構造の一例を示す。
図30は実施例によるポイントクラウドデータのビットストリーム構造30000の一例である。図30に示したポイントクラウドデータのビットストリーム構造30000は、実施例による送信装置の図1の送信機10003、図2の送信部18002、図12の送信処理部12012、図16のビットストリーム結合部16014、図17のビットストリーム結合部17000で生成される。
実施例による送信装置は、分割部と精製部を追加/実行するために、フィルタリング情報をシグナルする。
実施例によるパラメータ(メタデータ、シグナル情報などと呼ばれる)は、後述する実施例による送信機のプロセス上で生成されてもよく、実施例による受信機に伝達されて再構成過程に用いられてもよい。
例えば、実施例によるパラメータは、後述する実施例による送信装置のメタデータ処理部(又はメタデータ生成部)で生成され、実施例による受信装置のメタデータ分析で取得される。
図30に示したポイントクラウドデータのビットストリーム構造30000は、実施例による受信装置の図1の受信機10005、図2の復号部18003、図13の受信部13000、図35の受信部35000で受信するビットストリームである。図30に示したポイントクラウドデータのビットストリーム構造30000は、図36の各々のスライスのジオメトリと属性ビットストリーム36001を意味する。
図38に示した実施例によるビットストリーム構造30000の一部又は全部は、図14のXRデバイス1430によって生成される。また、同図に示すブリック(brick)はスライス(slice)に対応し、その逆も成り立つ。本明細書においてブリックはスライスとも呼ばれる。
実施例によるポイントクラウドデータ送信装置は、図31に示したビットストリーム構造を有するビットストリーム30000を送信する。ポイントクラウドデータのビットストリーム30000は、SPS(Sequential Parameter Set)30001、GPS(Geometry Parameter Set)30002、APS(Attribute Parameter Set)30003、TPS(Tile Parameter Set)30004及び1つ又はそれ以上のスライス(slice 0、slice 1 …slice n)30004を含む。ポイントクラウドデータのビットストリーム30000は、1つ又はそれ以上のタイル(tile)を含む。実施例によるタイルは、1つ又はそれ以上のスライスを含むスライスグループである。実施例によるビットストリーム30000は、ポイントクラウドデータを領域別に分けて処理するように、タイル又はスライスを提供する。実施例によるビットストリーム30000の各々の領域は、互いに異なる重要度を有する。よって、ポイントクラウドデータをタイルで分けられる場合、各々のタイルに異なるフィルター(符号化方法)、異なるフィルターユニットを適用することができる。ポイントクラウドをスライスで分けられる場合、各々のスライスに異なるフィルター、異なるフィルターユニットを適用することができる。
実施例によるポイントクラウドデータ送信装置は、図31に示したビットストリーム30000の構造によってポイントクラウドデータを送信することで、重要度に応じて異なる符号化動作を適用し、品質(quality)の良い符号化方法を重要な領域に使用する方法を提供できる。
実施例によるポイントクラウドデータ受信装置は、受信装置の処理能力(capacity)によって、全体のポイントクラウドデータに複雑な復号化(フィルタリング)方法の代わりに、領域別に(タイル又はスライスで分けられる領域)互いに異なるフィルタリング(復号化方法)を提供することで、ユーザにとって重要な領域にさらに良い画質及びシステム上の適宜な遅延(latency)を保障することができる。
SPS(Sequence Parameter Set)30001は、各々のスライスセグメントヘッダ(slice segment header)内の構文要素(syntax element)によって参照されるPPS内の構文要素のコンテンツによって決定される0又はそれ以上の全体のCVSに適用される構文要素を含む構文構造である。(a syntax structure containing syntax elements that apply to zero or more entire CVSs as determined by the content of a syntax element found in the PPS referred to by a syntax element found in each slice segment header.)SPSは、実施例によるポイントクラウドデータビットストリームのシーケンス情報を含む。
GPS(Geometry Parameter Set)30002は、0又はそれ以上の全体のジオメトリ(又は、符号化されたジオメトリ)が適用される構文要素(syntax elements)を含む構文構造(syntax structure)を意味する。実施例によるGPS30002は、1つ又はそれ以上のスライス30004に含まれたポイントクラウドデータの特質(属性)情報を符号化する方法に関する情報を含む。GPS30002は、いずれのSPS30001に関連したジオメトリパラメータを含むかを示すSPS識別子情報、該当GPSを識別するGPS識別子情報を含む。
APS(Attribute Parameter Set)30003は、0又はそれ以上の全体の特質(又は符号化された特質)が適用される構文要素(syntax elements)を含む構文構造(syntax structure)を意味する。実施例によるAPS30003は、1つ又はそれ以上のスライス30004に含まれたポイントクラウドデータの特質(属性)情報を符号化する方法に関する情報を含む。APS30003は、いずれのSPS30001に関連したジオメトリパラメータを含むかを示すSPS識別子情報、該当APSを識別するGPS識別子情報を含む。
TPS(Tile Parameter Set)30004は、0又はそれ以上の全体のタイル(又は符号化されたタイル)が適用される構文要素(syntax elements)を含む構文構造(syntax structure)を意味する。タイルインベントリは、実施例によるポイントクラウドデータビットストリームに含まれた0又はそれ以上のタイル(tile)に関する情報を含む。タイルインベントリは、実施例によってはTPS(Tile Parameter Set)とも呼ばれる。
TPS(Tile Parameter Set)30004は、1つ又はそれ以上のタイル(tile)を識別する識別子情報及び1つ又はそれ以上のタイル(tile)の範囲(即ち、タイルの境界ボックス)を示す情報を含む。1つ又はそれ以上のタイル(tile)の範囲(即ち、タイルの境界ボックス)を示す情報は、該当タイルが示す境界ボックスの基準となるポイントの座標情報(例えば、Tile(n).tile_bounding_box_xyz0)及び該当境界ボックスの幅、高さ及び深さに関する情報(例えば、Tile(n).tile_boudning_box_whd)を含む。複数のタイルが存在する場合、タイルインベントリ(Tile Inventory)33004は、各々のタイルに対する境界ボックスを示す情報を含む。例えば、各々のタイルがタイルの識別子情報によって0ないしnで表現される場合、各々のタイルの境界ボックスを示す情報は、Tile(0).tile_bounding_box_xyz0、Tile(0).tile_bounding_box_whd、Tile(1).tile_bounding_box_xyz0、Tile(1).tile_bounding_box_whd …などと示される。
スライス30004は、実施例によるポイントクラウドデータの送信装置がポイントクラウドデータを符号化するための単位を意味する。実施例によるスライス30004は、1つのジオメトリビットストリーム(Geom00)30004a及び1つ又はそれ以上の特質ビットストリーム(Attr00、Attr10、30004b、30004b)を含む単位を意味する。
スライス30004は、該当スライス内に含まれたポイントクラウドデータのジオメトリ情報を示すジオメトリスライス(Geometry Slice、Geom)30004a及び該当スライス内に含まれたポイントクラウドデータの特質情報を示す1つ又はそれ以上の特質スライス(Attribute Slice、Attr)30004b、30004cを含む。
ジオメトリスライス(Geometry Slice、Geom)30004aは、ポイントクラウドデータのジオメトリ情報を含むジオメトリスライスデータ(Geometry Slice Data、Geom_slice_data)30004a-2及びジオメトリスライスデータに関する情報を含むジオメトリスライスヘッダ(Geometry Slice Header、Geom_slice_header、GSH)30004a-1を含む。
ジオメトリスライスヘッダ30004a-1は、該当スライス内のジオメトリスライスデータ30004a-2に関する情報を含む。例えば、ジオメトリスライスヘッダ30004a-1は、いずれのGPS30002が該当スライスのジオメトリ情報を示すかを識別するためのジオメトリパラメータセット識別子(geom_geom_parameter_set_id)、該当ジオメトリスライスを識別するためのジオメトリスライス識別子(geom_slice_id)、該当ジオメトリスライスデータのボックス原点を示すジオメトリボックス原点情報(geomBoxOrigin)、ジオメトリスライスのログスケールを示す情報(geom_box_log2_scale)、該当ジオメトリスライスのポイント数に関連した情報(geom_num_points)などを含む。
実施例によるポイントクラウドデータビットストリームが1つ又はそれ以上のタイル(tile)を含む場合、実施例によるジオメトリビットストリームのヘッダは該当ジオメトリビットストリームを含むタイルを識別するための情報(geom_tile_id)をさらに含んでもよい。
特質スライス(Attribute Slice、Attr)30004b、30004cは、ポイントクラウドデータの特質情報を含む特質スライスデータ(Attribute Slice Data、Attr_slice_data)及び特質スライスデータに関する情報を含む特質スライスヘッダ(Attribute Slice Header、Attr_slice_header、ASH)33005cを含む。
実施例によれば、ポイントクラウド符号化に必要なパラメータは、ポイントクラウド(point cloud)のパラメータセット(parameter set)及びヘッダ(header)情報として新たに定義できる。例えば、属性情報符号化を行うときには、特質パラメータセット(attribute parameter set)RBSP構文(syntax)に、タイル基盤符号化を行うときには、タイルヘッダ構文(tile_header syntax)などに追加することができる。
実施例によれば、送信装置は、実施例による重畳スライスの構成をシグナルするために、タイル別に又はスライス別に異なるスライス構成ヘッダユニットを生成する。
実施例によるポイントクラウドデータ送受信方法は、このようなビットストリーム構造を提供することで、受信機においてポイントクラウドデータの属性情報の復号化性能を高めることができる。
図31は実施例によるビットストリームのSPS(Sequence Parameter Set)の一例を示す。
図31に示したパラメータは、図30に示したSPS(Sequence Parameter Set)に含まれる。実施例によるSPSは、実施例によるスライスの分割(スライス分割)、スライスタイルリング方法に関連したシグナル情報及び/又は関連したシグナル情報を含む。
プロファイル_idc(profile_idc)は、H.264標準文書のアネックスA(Annex A)を満たすビットストリームのプロファイル(profile)を示す情報を意味する。profile_idcの他の値は、ISO/IECによって今後使用してもよい。(indicates a profile to which the bitstream conforms as specified in Annex A。Bitstreams shall not contain values of profile_idc other than those specified in Annex A.Other values of profile_idc are reserved for future use by ISO/IEC.)
プロファイル互換性フラグ(profile_compatibility_flags)が1の場合、該当ビットストリームはprofile_idcがAnnex Aによりjであるプロファイル(profile)を満たすことを示す。profile_compatibility_flag「 j ]の値は、Annex Aにより定義された値ではなくjを有する場合には0である。(equal to 1、indicates that the bitstream conforms to the profile indicated by profile_idc equal to j as specified in Annex A.The value of profile_compatibility_flag「 j 」 shall be equal to 0 for any value of j that is not specified as an allowed value of profile_idc in Annex A.)
レベル_idc(level_idc)は、H.264標準文書のアネックスA(Annex A)を満たすビットストリームのレベルを示す。ビットストリームは、H.264標準文書のアネックスAに定義された情報と他の情報としてlevel_idcの値を有さない。Level_idcの他の値は、ISO/IECによって今後使用するために残す。(indicates a level to which the bitstream conforms as specified in Annex A.Bitstreams may not contain values of level_idc other than those specified in Annex A。Other values of level_idc are reserved for future use by ISO/IEC.)
SPS境界ボックス存在フラグ(sps_bounding_box_present_flag)は、境界ボックスオフセットとサイズ情報がシグナルされる場合には1である。(equal to 1 specifies the bounding box offset and size information is signalled。sps_bounding_box_present_flag equal to 0 specifies)
SPS境界ボックス存在フラグ(sps_bounding_box_present_flag)が「true」値を有する場合、実施例によるSPSはSPS境界ボックスxオフセット(sps_bounding_box_offset_x)、SPS境界ボックスyオフセット(sps_bounding_box_offset_y)、SPS境界ボックスzオフセット(sps_bounding_box_offset_z)、SPS境界ボックススケール因子(sps_bounding_box_scale_factor)、SPS境界ボックス幅サイズ(sps_bounding_box_size_width)、SPS境界ボックス高さサイズ(sps_bounding_box_size_height)及びSPS境界ボックス深さサイズ(sps_bounding_box_size_depth)をさらに含む。
SPS境界ボックスオフセットx(sps_bounding_box_offset_x)は、直交座標系のソース境界ボックスのxオフセットを示す。その情報が存在しない場合、本パラメータの値は0である。(indicates the x offset of the source bounding box in the cartesian coordinates.When not present、the value of sps_bounding_box_offset_x is inferred to be 0.)
SPS境界ボックスオフセットy(sps_bounding_box_offset_y)は、直交座標系のソース境界ボックスのyオフセットを示す。その情報が存在しない場合、本パラメータの値は0である。(indicates indicates the y offset of the source bounding box in the cartesian coordinates.When not present、the value of sps_bounding_box_offset_y is inferred to be 0.)
SPS境界ボックスオフセットz(sps_bounding_box_offset_z)は、直交座標系のソース境界ボックスのzオフセットを示す。その情報が存在しない場合、本パラメータの値は0である。(indicates indicates the z offset of the source bounding box in the Cartesian coordinates.When not present、the value of sps_bounding_box_offset_z is inferred to be 0.)
SPS境界ボックススケール因子(sps_bounding_box_scale_factor)は、直交座標系のソース境界ボックスのスケール因子を示す。その情報が存在しない場合、本パラメータの値は1又は0である。(indicates the scale factor the source bounding box in the Cartesian coordinates.When not present、the value of sps_bounding_box_scale_factor is inferred to be 1.Indicates.When not present、the value of sps_bounding_box_scale_factor is inferred to be 0.)
SPS境界ボックスサイズ幅(sps_bounding_box_size_width)は、直交座標系のソース境界ボックスの幅を示す。その情報が存在しない場合、sps_bounding_box_size_widthの値は10などの所定値である。(indicates the width of the source bounding box in the Cartesian coordinates. … When not present、the value of sps_bounding_box_size_width is inferred to be a specific value (such as 10).)
SPS境界ボックスサイズ高さ(sps_bounding_box_size_height)は、直交座標系のソース境界ボックスの高さを示す。その情報が存在しない場合、sps_bounding_box_size_heightの値は1又は0である。(indicates the height of the source bounding box in the Cartesian coordinates.When not present、the value of sps_bounding_box_size_height is inferred to be 1。When not present、the value of sps_bounding_box_size_hieght is inferred to be 0.)
SPS境界ボックスサイズ深さ(sps_bounding_box_size_depth)は、直交座標系のソース境界ボックスの深さを示す。その情報が存在しない場合、sps_bounding_box_size_heightの値は1又は0である。(indicates the depth of the source bounding box in the Cartesian coordinates.When not present、the value of sps_bounding_box_size_depth is inferred to bE 1.When not present、the value of sps_bounding_box_size_depth is inferred to be 0.)
SPSソーススケール因子(sps_source_scale_factor)は、ソースポイントクラウドのスケール因子を示す。(indicates the scale factor of the source point cloud.)
SPS連続パラメータセットID(sps_seq_parameter_set_id)は、他の構文要素によって参照されるSPSに対するid情報を示す。sps_seq_parameter_set_idは、該当バージョンの明細書内の条件を満たす範囲内で0~15の値に定められる。0ではない他の情報としてsps_seq_parameter_set_idは、ISO/IECによって今後使用される。(provides an identifier for the SPS for reference by other syntax elements.In The value of sps_seq_parameter_set_id may be in the range of 0 to 15、inclusive in bitstreams conforming to this version of this Specification.The value other than 0 for sps_seq_parameter_set_id is reserved for future use by ISO/IEC.)
SPS特質セット数(sps_num_attribute_sets)は、ビットストリーム内のコーディングされた属性の数を示す。sps_seq_parameter_set_idは0~64の範囲である。(indicates the number of coded attributes in the bitstream。The value of sps_num_attribute_sets may be in the range of 0 to 64.)
実施例によるSPSは、SPS特質セット数(sps_num_attribute_sets)だけの特質範囲(attribute_dimension[ i ])、特質インスタンス(attribute_instance_id[ i ])、特質ビット深さ(attribute_bitdepth[ i ])、特質CICP色プライマリ(attribute_cicp_colour_primaries[ i ])、特質CICP伝達特性(attribute_cicp_transfer_characteristics[ i ])、特質CICPマトリックス係数(attribute_cicp_matrix_coeffs[ i ])、特質CICPビデオプルレンジフラグ(attribute_cicp_video_full_range_flag[ i ])及び/又は既知の特質ラベルフラグ(known_attribute_label_flag[ i ])を含む。
特質範囲(attribute_dimension[ i ])は、i番目の属性のコンポーネントの数を示す。(specifies the number of components of the i-th attribute.)
特質インスタンス(attribute_instance_id[ i ])は、属性インスタンスidを示す。(specifies attribute instance id.)
特質ビット深さ(attribute_bitdepth[ i ])は、i番目の属性信号(ら)のビット深さ(bitdepth)情報を示す。(specifies the bitdepth of the i-th attribute signal(s).)
特質CICP色プライマリ(attribute_cicp_colour_primaries[ i ])は、色属性ソースプライマリの色度を示す。(indicates the chromaticity coordinates of the colour attribute source primaries.)
特質CICP伝達特性(attribute_cicp_transfer_characteristics[ i ])は、ソース入力線形視覚的強度(input linear optical intensity)であるLcと0から1の間の公称実際-値で構成された、色属性の参照光電子的伝達特性関数を示す。又は、本パラメータは、出力線形視覚的強度(output linear optical intensity)であるLoと0から1の範囲を有する公称実際-値で構成された、参照光電子的伝達特性関数の逆を示す。(either indicates the reference opto-electronic transfer characteristic function of the colour attribute as a function of a source input linear optical intensity Lc with a nominal real-valued range of 0 to 1 or indicates the inverse of the reference Electro-optical transfer characteristic function as a function of an output linear optical intensity Lo with a nominal real-valued range of 0 to 1.)
特質CICPマトリックス係数(attribute_cicp_matrix_coeffs[ i ])は、緑色、青色及び赤色(又は、Y、Z、Xの三原色)の輝度(luma)と彩度(chroma)信号の行列係数を示す。(describes the matrix coefficients used in deriving luma and chroma signals from the green、blue、and red、or Y、Z、and X primaries.)
特質CICPビデオプルレンジフラグ(attribute_cicp_video_full_range_flag[ i ])は、E′Y、E′PB及びE′PR又はE′R、E′G及びE′Bの実際-値コンポーネント信号から導き出すブラックレベルと輝度及び彩度信号の範囲を示す。(specifies indicates the black level and range of the luma and chroma signals as derived from E'Y、E'PB、and E'PR or E'E'nd E'real-valued component signals.)
既知の特質ラベル(known_attribute_label[ i ])が0である場合、属性が色であることを示す。本パラメータが1である場合、属性は反射率であることを示す。本パラメータが2である場合、属性はフレームインデックスであることを示す。(equal to 0 specifies the attribute is colour.known_attribute_label「 i 」 equal to 1 specifies the attribute is reflectance.known_attribute_label「 i 」 Equal to 2 specifies the attribute is farme index.)
実施例によるSPSは、分割イネーブルフラグ(partitioning_enabling_flag)をさらに含んでもよい。
分割イネーブルフラグ(partitioning_enabling_flag)は、実施例によるスライス分割(分割)動作を行うか否かを示す情報を示す。例えば、分割イネーブルフラグの値が0である場合、ポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを1つ又はそれ以上のスライスに分割しないことを示す。分割イネーブルフラグの値が1である場合、ポイントクラウドデータ送信装置は、実施例によるポイントクラウドデータを1つ又はそれ以上のスライスに分割することを示す。
分割イネーブルフラグの値が1である場合、実施例によるSPSは、分割方法(Partitioning_method)情報をさらに含んでもよい。
分割方法(Partitioning_method)は、実施例によるポイントクラウドデータ送信装置がポイントクラウドデータを分割する方法を示す情報である。
例えば、分割方法(Partitioning_method)情報の値が0である場合、本パラメータは送信装置が実施例による時間による分割方法(Timestamp_partitioning_method、時間属性を用いたスライス分割方法)に基づいて分割動作が行われることを示す。分割方法は、1つ以上を用いることができる(スライス別に使用した分割方法シグナリング)。
例えば、分割方法(Partitioning_method)情報の値が1である場合、本パラメータは、送信装置がモールトンコード順序分割方法(Morton_order_partitioning_method、モールトン順序を用いたスライス分割方法)に基づいてスライス分割が行われることを示す。
例えば、分割方法(Partitioning_method)情報の値が2である場合、本パラメータは、送信装置が均等四角形分割方法(Uniform_square_partitioning_method)に基づいてスライス分割が行われることを示す。
例えば、分割方法(Partitioning_method)情報の値が3である場合、図18ないし図27に示した他のスライス分割方法によって分割が行われることを示す。
精製スライス方法フラグ(refine_slice_method_flag)は、実施例によるポイントクラウドデータ送信装置が分割されたスライスを精製するか否かを示す情報である。例えば、精製スライス方法フラグ(refine_slice_method_flag)の値が0である場合、送信装置がスライスに対して実施例による精製動作を行わないことを示す。例えば、精製スライス方法フラグ(refine_slice_method_flag)の値が1である場合、送信装置がスライスに対して実施例による精製動作を行うことを示す。
例えば、精製スライス方法フラグ(refine_slice_method_flag)の値が1である場合、実施例によるSPSは精製方法(refine_method)情報をさらに含んでもよい。
精製方法(refine_method)情報は、送信装置が分割されたスライスをいずれの方法(又は形態)で精製するかを示す情報である。例えば、精製方法(refine_method)情報の値が0(又は第1の値)である場合、送信装置は実施例によるリスト基盤のスライス精製方法を使用することを意味する(list_refine_method:リスト基盤のスライス精製方法)。例えば、精製方法(refine_method)情報の値が1(又は第2の値)である場合、送信装置は実施例によるツリー基盤のスライス精製方法を使用することを意味する(tree_refine_method:ツリー基盤のスライス精製方法)。
精製方法状態(refine_method_condition)情報は、送信装置が行う精製方法が距離に基づく方法であるか、2/4/6方形に基づく精製方法であるか、及び/又はその他の精製方法であるかを示す。
例えば、精製方法状態(refine_method_condition)情報の値が0である場合、本パラメータは、送信装置が実施例による距離に基づく精製方法(distance_refine_method)を使用することを示す。精製方法状態(refine_method_condition)情報の値が0である場合、TPSは距離ポイント間位置(distance_point_to_point_location)情報をさらに含んでもよい。
例えば、精製方法状態(refine_method_condition)情報の値が1である場合、本パラメータは、送信装置が実施例による2/4/6方形に基づく隣接スライスによって精製を行う方法を使用することを示す(distance_refine_method)。精製方法状態(refine_method_condition)情報の値が1である場合、TPSは隣接スライス併合順序(neighbours_order_to_merge)情報をさらに含んでもよい(2way_neighbour_refine_mehod)。
例えば、精製方法状態(refine_method_condition)情報の値が2である場合、本パラメータは、送信装置がその他の精製方法(others)を使用することを示す。
距離ポイント間位置(distance_point_to_point_location)情報は、実施例による送信装置が、距離に基づく精製方法で精製を行う場合、各々のスライスの距離を測定する基準を示す。
例えば、送信装置は、距離ポイント間位置(distance_point_to_point_location)情報を用いて、境界ボックス内の最も近いスライス、中間値のスライス、最も遠いスライスを基準として距離測定を行う。
距離ポイント間位置(distance_point_to_point_location)情報の値が0である場合、送信装置は、スライスのうちの最も近いスライスを基準として距離測定を行うことを示す。距離ポイント間位置(distance_point_to_point_location)情報の値が1である場合、送信装置は、スライスのうちの距離が中間値に該当するスライスを基準として距離測定を行う。距離ポイント間位置(distance_point_to_point_location)情報の値が2である場合、送信装置は、スライスのうちの最も遠いスライスを基準として距離測定を行う。
隣接スライス併合順序(neighbours_order_to_merge)情報は、2つ/4つ/6つの隣接するスライス(該当スライスと上側に隣接、該当スライスと下側に隣接、該当スライスと左側に隣接、該当スライスと右側に隣接)のうち、以下に示した順に併合動作及び/又は分離動作を行う。
隣接スライス併合順序(neighbours_order_to_merge)情報の値が0である場合、該当スライスと隣接したスライスのうちの最小数のポイントを含むスライスを優先して併合及び/又は分離の動作を行うことを示す。隣接スライス併合順序(neighbours_order_to_merge)情報の値が1である場合、該当スライスと隣接したスライスのうちの最大数のポイントを含むスライスを優先して併合及び/又は分離の動作を行うことを示す。隣接スライス併合順序(neighbours_order_to_merge)情報の値が2である場合、該当スライスと隣接したスライスのうちの所定のスライスを優先して併合及び/又は分離の動作を行うことを示す。
SPS拡張存在フラグ(sps_extension_present_flag)が1である場合、sps_extension_dataがSPS RBSP構文構造内に存在することを示す。本パラメータが0である場合、その構文構造が存在しないことを示す。存在しない場合、sps_extension_present_flagの値が0である。(equal to 1 specifies that the sps_extension_data syntax structure is present in the SPS RBSP syntax structure.sps_extension_present_flag Equal to 0 specifies that this syntax structure is not present.When not present、the value of sps_extension_present_flag is inferred to be equal to 0.)
SPS拡張データフラグ(sps_extension_data_flag)はいずれの値でも有する。本パラメータの存在は、デコーダの該当標準文書のアネックスAに示されたプロファイルの動作に影響を及ぼさない。(may have any value。Its presence and value do not affect decoder conformance to profiles specified in Annex A Decoders conforming to a profile specified in Annex A.)
実施例によるSPSは、タイル内のシーケンス入力スライス構成フラグ(sequential_input_slice_configuration_in_tile_flag)、重畳スライス構成フラグ(overlapping_slice_compose_flag)、重畳スライス構成方法(overlapping_slice_compose_method[ i ])情報をさらに含んでもよい。
図32は実施例によるビットストリームのTPS(Tile Parameter Set)の一例を示す。
図32に示されたパラメータは、図30に示したTPS(Tile Parameter Set)に含まれる。実施例によるTPSは、実施例によるスライスの分割(スライス分割)、スライスタイルリング方法に関連したシグナル情報及び/又は関連したシグナル情報を含む。
タイル数(num_tiles)は、該当ビットストリーム内に存在するタイルの数を示す。(Represents the number of tiles signalled for the bitstream.)仮に、該当ビットストリーム内に存在するタイルがない場合は、num_tilesは0とシグナルされる。(When not present、num_tiles is inferred to be 0.)
実施例によるTPSは、タイル数(num_tiles)に示された値だけ以下のシグナル情報を含む。
タイル境界ボックスオフセットx[i](tile_bounding_box_offset_x[ i ])は、直交座標系内のi-番目のタイルのxオフセットを示す。(indicates the x offset of the i-th tile in the cartesian coordinates.)xオフセットが存在しない場合は、tile_bounding_box_offset_x[ 0 ]の値がsps_bounding_box_offset_xである。(When not present、the value of tile_bounding_box_offset_x「 0 」 is inferred to be sps_bounding_box_offset_x.)
タイル境界ボックスオフセットy[i](tile_bounding_box_offset_y[ i ])は、直交座標系内のi-番目のタイルのyオフセットを示す。(indicates the y offset of the i-th tile in the cartesian coordinates.)yオフセットが存在しない場合は、tile_bounding_box_offset_y[ 0 ]の値がsps_bounding_box_offset_yである。(When not present、the value of tile_bounding_box_offset_y「 0 」 is inferred to be sps_bounding_box_offset_y.)
タイル境界ボックスオフセットz[i](tile_bounding_box_offset_z[ i ])は、直交座標系内のi-番目のタイルのzオフセットを示す。(indicates indicates the z offset of the i-th tile in the Cartesian coordinates.)zオフセットが存在しない場合は、tile_bounding_box_offset_z[ 0 ]の値がsps_bounding_box_offset_zである。(When not present、the value of tile_bounding_box_offset_z「 0 」 is inferred to be sps_bounding_box_offset_z.)
タイル境界ボックススケール因子[i](tile_bounding_box_scale_factor[ i ])は、直交座標系内のi-番目のタイルに関連したスケール因子(scale factor)を示す。(indicates the scale factor the i-th tile in the Cartesian coordinates.)スケール因子が存在しない場合は、tile_bounding_box_scale_factor[ 0 ]がsps_bounding_box_scale_factorである。(When not present,the value of tile_bounding_box_scale_factor[ 0 ] is inferred to be sps_bounding_box_scale_factor.)
タイル境界ボックスサイズ幅[i](tile_bounding_box_size_width[ i ])は、直交座標系内のi-番目のタイルの幅(width)を示す。(indicates the width of the i-th tile in the Cartesian coordinates.)幅の値が存在しない場合は、tile_bounding_box_size_width[ 0 ]はsps_bounding_box_size_widthである。(When not present、the value of tile_bounding_box_size_width「 0 」 is inferred to be sps_bounding_box_size_width.)
タイル境界ボックスサイズ高さ[i](tile_bounding_box_size_height[ i ])は、直交座標系内のi-番目のタイルの高さ(height)を示す。(indicates the height of the i-th tile in the Cartesian coordinates.)高さ値が存在しない場合は、tile_bounding_box_size_height[ 0 ]はsps_bounding_box_size_heightである。(When not present、the value of tile_bounding_box_size_height[ 0 ] is inferred to be sps_bounding_box_size_height.)
タイル境界ボックスサイズ深さ[i](tile_bounding_box_size_depth[ i ])は、直交座標系内のi-番目のタイルの深さ(depth)を示す。(indicates the depth of the i-th tile in the Cartesian coordinates.)高さ値が存在しない場合は、tile_bounding_box_size_depth[ 0 ]はsps_bounding_box_size_depthである。(When not present、the value of tile_bounding_box_size_depth[ 0 ] is inferred to be sps_bounding_box_size_depth.)
実施例によるTPSは、分割イネーブルフラグ(partitioning_enable_flag)を含む。
分割イネーブルフラグ(partitioning_enabling_flag)は、図31に示したSPSに含まれた分割イネーブルフラグ(partitioning_enabling_flag)と同様な動作を意味するパラメータである。分割イネーブルフラグの値が1である場合、実施例によるTPSは、分割方法(Partitioning_method)情報をさらに含んでもよい。
分割方法(Partitioning_method)は、図31に示したSPSに含まれた分割方法(Partitioning_method)と同様な動作を意味する。
精製スライス方法フラグ(refine_slice_method_flag)は、図31に示したSPSに含まれた精製スライス方法フラグ(refine_slice_method_flag)と同様な動作を意味するパラメータである。例えば、精製スライス方法フラグ(refine_slice_method_flag)の値が1である場合、実施例によるTPSは、精製方法(refine_method)情報をさらに含んでもよい。
精製方法(refine_method)情報は、図31に示したSPSに含まれた精製方法(refine_method)情報と同様な動作を意味するパラメータである。
精製方法状態(refine_method_condition)情報は、図31に示したSPSに含まれた精製方法状態(refine_method_condition)情報と同様な動作を意味するパラメータである。
例えば、精製方法状態(refine_method_condition)情報の値が0である場合、本パラメータは、送信装置が実施例による距離に基づく精製方法(distance_refine_method)を使用することを示す。精製方法状態(refine_method_condition)情報の値が0である場合、TPSは距離ポイント間位置(distance_point_to_point_location)情報をさらに含んでもよい。
例えば、精製方法状態(refine_method_condition)情報の値が1である場合、本パラメータは、送信装置が実施例による2/4/6方形に基づく隣接スライスによって精製を行うことを示す。精製方法状態(refine_method_condition)情報の値が1である場合、TPSは隣接スライス併合順序(neighbours_order_to_merge)情報をさらに含んでもよい。
距離ポイント間位置(distance_point_to_point_location)情報、隣接スライス併合順序(neighbours_order_to_merge)情報は、図31に示したSPSに含まれた距離ポイント間位置(distance_point_to_point_location)情報、隣接スライス併合順序(neighbours_order_to_merge)情報と同様な動作を意味するパラメータである。
図33は実施例によるビットストリームのGPS(Geometry Parameter Set)の一例を示す。
図33に示したパラメータは、図30に示したGPS(Geometry Parameter Set)に含まれる。実施例によるGPSは、実施例によるスライス(slice)の分割(スライス分割)、スライスタイルリング方法に関連したシグナル情報及び/又は関連したシグナル情報を含む。
GPSパラメータセットID(gps_geom_parameter_set_id)は、他の構文要素によって参照されるGPSの識別子を示す。本パラメータの値は0~15である。(provides an identifier for the GPS for reference by other syntax elements.The value of gps_seq_parameter_set_id may be in the range of 0 to 15、inclusive.)
GPS連続パラメータセットID(gps_seq_parameter_set_id)は、動的SPSに対するsps_seq_parameter_set_idの値を示す。その値は0~15である。(specifies the value of sps_seq_parameter_set_id for the active SPS.The value of gps_seq_parameter_set_id shall be in the range of 0 to 15、inclusive.)
GPS境界ボックス存在フラグ(gps_box_present_flag)は、追加の境界ボックス情報がGPS内でジオメトリヘッダ(geometry header)に提供される場合には1である。本パラメータは、追加の境界ボックス情報がジオメトリヘッダに提供されない場合には0を示す。(equal to 1 specifies an additional bounding box information is provided in a geometry header that references the current GPS.gps_bounding_box_present_flag equal to 0 specifies that additional bounding box information is not signalled in the geometry header.)
ユニークジオメトリポイントフラグ(unique_geometry_points_flag)は、全ての出力されたポイントが固有の位置を有する場合は1である。本パラメータは、出力ポイントが同じ位置に存在する場合は0である。(equal to 1 indicates that all output points have unique positions. unique_geometry_points_flag equal to 0 indicates that the output points may have same positions.)
隣接コンテキスト制約フラグ(neighbour_context_restriction_flag)が0である場合、八分木占有コーディングが6つの隣接ノードに基づいて決定されたコンテキストを使用することを示す。その値が1である場合、八分木占有コーディングが兄弟ノードのみに基づいて決定されたコンテキストを使用することを示す。(equal to 0 indicates that octree occupancy coding uses contexts determined from six neighbouring parent nodes.neighbour_context_restriction_flag equal to 1 indicates that octree coding uses contexts determined from sibling nodes only.)
推論ダイレクトコーディングモード設定フラグ(inferred_direct_coding_mode_enabled_flag)が0である場合、八分木コーディングがinferred_direct_coding_modeを使用することを示す。その値が1である場合、兄弟隣接ノードから決定された複数のコンテキストを使用して八分木コーディングを行うことを示す。(equal to 0 indicates the octree coding uses inferred_direct_coding_mode。inferred_direct_coding_mode_enabled_flag equal to 1 indicates the octree coding uses multiple context determined from sibling neighbouring nodes.)
ログ2ネーバーアベイル境界(log2_neighbour_avail_boundary)は、復号プロセスが以下のように用いられるNeighbAvailBoundaryの値を示す。(specifies the value of the variable NeighbAvailBoundary that is used in the decoding process as follows:)
NeighbAvailBoundary = 2log2_neighbour_avail_boundary
ログ2trisoupノードサイズ(log2_trisoup_node_size)は、以下のように定められる三角形ノードのサイズであって、TrisoupNodeSizeを示す。(specifies the variable TrisoupNodeSize as the size of the triangle nodes as follows.)
TrisoupNodeSize = 2log2_trisoup_node_size
log2_trisoup_node_sizeの値は0より大きい。log2_trisoup_node_sizeの大きさが0である場合、ジオメトリビットストリームはもっぱら八分木コーディング構文のみを含むことを示す。(The value of log2_trisoup_node_size may be equal to or greater than 0。When log2_trisoup_node_size is equal to 0、the geometry bitstream includes only the octree coding syntax.)
実施例によるTPSは、分割イネーブルフラグ(partitioning_enable_flag)を含む。
分割イネーブルフラグ(partitioning_enabling_flag)は、図31に示したSPSに含まれた分割イネーブルフラグ(partitioning_enabling_flag)と同様な動作を意味するパラメータである。分割イネーブルフラグの値が1である場合、実施例によるGPSは、分割方法(Partitioning_method)情報をさらに含んでもよい。
分割方法(Partitioning_method)は、図31に示したSPSに含まれた分割方法(Partitioning_method)と同様な動作を意味するパラメータである。
精製スライス方法フラグ(refine_slice_method_flag)は、図31に示したSPSに含まれた精製スライス方法フラグ(refine_slice_method_flag)と同様な動作を意味するパラメータである。例えば、精製スライス方法フラグ(refine_slice_method_flag)の値が1である場合、実施例によるGPSは精製方法(refine_method)情報をさらに含んでもよい。
精製方法(refine_method)情報は、図31に示したSPSに含まれた精製方法(refine_method)情報と同様な動作を意味するパラメータである。
精製方法状態(refine_method_condition)情報は、図31に示したSPSに含まれた精製方法状態(refine_method_condition)情報と同様な動作を意味するパラメータである。
例えば、精製方法状態(refine_method_condition)情報の値が0である場合、本パラメータは、送信装置が実施例による距離に基づく精製方法(distance_refine_method)を使用することを示す。精製方法状態(refine_method_condition)情報の値が0である場合、TPSは距離ポイント間位置(distance_point_to_point_location)情報をさらに含んでもよい。
例えば、精製方法状態(refine_method_condition)情報の値が1である場合、本パラメータは、送信装置が実施例による2/4/6方形に基づく隣接スライスによって精製を行うことを示す。精製方法状態(refine_method_condition)情報の値が1である場合、TPSは、隣接スライス併合順序(neighbours_order_to_merge)情報をさらに含んでもよい。
距離ポイント間位置(distance_point_to_point_location)情報、隣接スライス併合順序(neighbours_order_to_merge)情報は、図31に示したSPSに含まれた距離ポイント間位置(distance_point_to_point_location)情報、隣接スライス併合順序(neighbours_order_to_merge)情報と同様な動作を意味するパラメータである。
GPS拡張存在フラグ(gps_extension_present_flag)が1である場合、gps_extension_data構文構造がGPS RBSP構文構造内に存在することを示す。0である場合、その構文構造が存在しないことを示す。(equal to 1 specifies that the gps_extension_data syntax structure is present in the GPS RBSP syntax structure.gps_extension_present_flag equal to 0 specifies that this syntax structure is not Present.When not present、the value of gps_ extension_present_flag is inferred to be equal to 0.)
GPS拡張存在フラグ(gps_extension_data_flag)は、いずれの値でも有する。該当値が存在する場合、値はデコーダに影響を及ぼさない。(may have any value.Its presence and value do not affect decoder conformance to profiles specified in Annex A.Decoders conforming to a profile specified in Annex A.)
図34は実施例によるビットストリームのSPS(Sequence Parameter Set)の一例を示す。
図34に示されたパラメータは、図30に示したSPS(Sequence Parameter Set)に含まれる。実施例によるSPSは、実施例によるスライス(slice)の分割(スライス分割)、スライスタイルリング方法に関連したシグナル情報及び/又は関連したシグナル情報を含む。
実施例によるSPSは、図31に示したプロファイル_idc(profile_idc)、プロファイル互換性フラグ(profile_compatibility_flags)、レベル_idc(level_idc)、SPS境界ボックス存在フラグ(sps_bounding_box_present_flag)、SPS境界ボックスオフセットx(sps_bounding_box_offset_x)、SPS境界ボックスオフセットy(sps_bounding_box_offset_y)、SPS境界ボックスオフセットz(sps_bounding_box_offset_z)、SPS境界ボックススケール因子(sps_bounding_box_scale_factor)、SPS境界ボックスサイズ幅(sps_bounding_box_size_width)、SPS境界ボックスサイズ高さ(sps_bounding_box_size_height)、SPS境界ボックスサイズ深さ(sps_bounding_box_size_depth)、SPSソーススケール因子(sps_source_scale_factor)、SPS連続パラメータセットID(sps_seq_parameter_set_id)、SPS特質セット数(sps_num_attribute_sets)、特質範囲(attribute_dimension[ i ])、特質インスタンス(attribute_instance_id[ i ])、特質ビット深さ(attribute_bitdepth[ i ])、特質CICP色プライマリ(attribute_cicp_colour_primaries[ i ])、特質CICP伝達特性(attribute_cicp_transfer_characteristics[ i ])、特質CICPマトリックス係数(attribute_cicp_matrix_coeffs[ i ])、特質CICPビデオプルレンジフラグ(attribute_cicp_video_full_range_flag[ i ])、既知の特質ラベル(known_attribute_label[ i ])、分割イネーブルフラグ(partitioning_enabling_flag)、分割方法(Partitioning_method)、精製スライス方法フラグ(refine_slice_method_flag)、精製方法(refine_method)、精製方法状態(refine_method_condition)、距離ポイント間位置(distance_point_to_point_location)、隣接スライス併合順序(neighbours_order_to_merge)、SPS拡張存在フラグ(sps_extension_present_flag)、SPS拡張データフラグ(sps_extension_data_flag)を含む。図31と重なり合う図34の要素の定義は、図31の説明を参照する。
実施例によるSPSは、精製方法状態の値が1である場合、隣接スライス数(neighbor_num)情報及び/又は隣接スライス探索方法(neighbor_search_method)情報をさらに含んでもよい。
隣接スライス数(neighbor_num)情報は、実施例による送信装置(精製部)が該当スライスと隣接するスライスの数をシグナルする。例えば、2方形精製方法の場合、所定のスライスは隣接スライス数情報の値が2である。
隣接スライス探索方法(neighbor_search_method)情報は、送信装置がN個(2方形/4方形/6方形)のスライスに基づいて精製を行う場合、隣接するスライスの選択方向を示す。
図35は実施例によるビットストリームのTPS(Tile Parameter Set)の一例を示す。
図35に示したパラメータは、図30に示したTPS(Tile Parameter Set)に含まれる。実施例によるTPSは、実施例によるスライスの分割(スライス分割)、スライスタイルリング方法に関連したシグナル情報及び/又は関連したシグナル情報を含む。
実施例によるTPSは、図32に示した実施例によるタイル数(num_tiles)情報、タイル境界ボックスオフセットx[i](tile_bounding_box_offset_x[ i ])情報、タイル境界ボックスオフセットy[i](tile_bounding_box_offset_y[ i ])情報、タイル境界ボックスオフセットz[i](tile_bounding_box_offset_z[ i ])情報、タイル境界ボックススケール因子[i](tile_bounding_box_scale_factor[ i ])情報、タイル境界ボックスサイズ幅[i](tile_bounding_box_size_width[ i ])情報、タイル境界ボックスサイズ高さ[i](tile_bounding_box_size_height[ i ])情報、タイル境界ボックスサイズ深さ[i](tile_bounding_box_size_depth[ i ])情報、分割イネーブルフラグ(partitioning_enabling_flag)情報、分割方法(Partitioning_method)情報、精製スライス方法フラグ(refine_slice_method_flag)情報、精製方法(refine_method)情報、精製方法状態(refine_method_condition)情報、距離ポイント間位置(distance_point_to_point_location)情報、隣接スライス併合順序(neighbours_order_to_merge)情報を含む。図32と重なり合う図35の要素の定義は、図32の説明を参照する。
実施例によるTPSは、精製方法状態の値が1である場合、隣接スライス数(neighbor_num)情報及び/又は隣接スライス探索方法(neighbor_search_method)情報をさらに含んでもよい。
隣接スライス数(neighbor_num)情報、隣接スライス探索方法(neighbor_search_method)情報は、図34に示した隣接スライス数(neighbor_num)情報、隣接スライス探索方法(neighbor_search_method)情報と同一又は類似する動作を行う。TPSは、タイル数(num_tiles)だけ各々のタイルに対する隣接スライス数(neighbor_num)情報及び/又は隣接スライス探索方法(neighbor_search_method)情報を含む。
図36は実施例によるビットストリームのGPS(Geometry Parameter Set)の一例を示す。
図36に示したパラメータは、図30に示したGPS(Geometry Parameter Set)に含まれる。実施例によるGPSは、実施例によるスライスの分割(スライス分割)、スライスタイルリング方法に関連したシグナル情報及び/又は関連したシグナル情報を含む。
実施例によるGPSは、図33に示した実施例によるGPSパラメータセットID(gps_geom_parameter_set_id)情報、GPS連続パラメータセットID(gps_seq_parameter_set_id)情報、GPS境界ボックス存在フラグ(gps_box_present_flag)情報、ユニークジオメトリポイントフラグ(unique_geometry_points_flag)情報、隣接コンテキスト制約フラグ(neighbour_context_restriction_flag)情報、推論ダイレクトコーディングモード設定フラグ(inferred_direct_coding_mode_enabled_flag)情報、ビット単位占有コーディングフラグ(bitwise_occupancy_coding_flag)情報、子隣接スライスイネーブルフラグ(child_neighbours_enabled_flag)情報、ジオメトリ占有CTX減少因子(geom_occupancy_ctx_reduction_factor)情報、ログ2ネーバーアベイル境界(log2_neighbour_avail_boundary)情報、ログ2イントラ予測最大ノードサイズ(log2_intra_pred_max_node_size)情報、ログ2trisoupノードサイズ(log2_trisoup_node_size)情報、分割イネーブルフラグ(partitioning_enabling_flag)情報、分割方法(Partitioning_method)情報、精製スライス方法フラグ(refine_slice_method_flag)情報、精製方法(refine_method)情報、精製方法状態(refine_method_condition)情報、距離ポイント間位置(distance_point_to_point_location)情報、隣接スライス併合順序(neighbours_order_to_merge)情報、GPS拡張存在フラグ(gps_extension_present_flag)情報、GPS拡張存在フラグ(gps_extension_data_flag)情報を含む。図33と重なり合う図36の要素の定義は、図33の説明を参照する。
実施例によるGPSは、精製方法状態情報の値が1である場合、隣接スライス数(neighbor_num)情報及び/又は隣接スライス探索方法(neighbor_search_method)情報をさらに含んでもよい。
隣接スライス数(neighbor_num)情報、隣接スライス探索方法(neighbor_search_method)情報は、図34に示した隣接スライス数(neighbor_num)情報、隣接スライス探索方法(neighbor_search_method)情報と同一又は類似する動作を行う。GPSは、タイル数(num_tiles)だけ各々のタイルに対する隣接スライス数(neighbor_num)情報及び/又は隣接スライス探索方法(neighbor_search_method)情報を含む。
図37は実施例によるビットストリームのGSH(Geometry Slice Header)の一例を示す。
図37に示したパラメータは、図30に示したジオメトリスライスヘッダ(GSH、Geometry Slice Header)30004a-1に含まれる。実施例によるGSHは、実施例によるスライスの分割(スライス分割)、スライスタイルリング方法に関連したシグナル情報及び/又は関連したシグナル情報を含む。
GSHジオメトリパラメータセットID(gsh_geometry_parameter_set_id)は、動的GPSのgps_geom_parameter_set_idの値を示す。(specifies the value of the gps_geom_parameter_set_id of the active GPS.)
GSHタイルID(gsh_tile_id)は、タイル(tile)のidを示す。(specifies id of tile.)
GSHスライスID(gsh_slice_id)は、スライス(slice)のidを示す。(specifies id of slice.)
実施例によるGPSボックス存在フラグ(GPS_box_present_flag)が1又は「true」の値を有する場合、GSHはGSHボックスログ2スケール(gsh_box_log2_scale)、GSHボックスソースx(gsh_box_origin_x)、GSHボックスソースy(gsh_box_origin_y)、GSHボックスソースz(gsh_box_origin_z)をさらに含んでもよい。
GSHボックスログ2スケール(gsh_box_log2_scale)は、スケール値を示す。(specifies scale value.)
GSHボックスソースx(gsh_box_origin_x)は、直交座標系内のソース境界ボックスのx座標情報を示す。(specifies the x of the source bounding box in the cartesian coordinates.)
GSHボックスソースy(gsh_box_origin_y)は、直交座標系内のソース境界ボックスのy座標情報を示す。(specifies the y of the source bounding box in the cartesian coordinates.)
GSHボックスソースz(gsh_box_origin_z)は、直交座標系内のソース境界ボックスのz座標情報を示す。(specifies the z of the source bounding box in the cartesian coordinates.)
GSHログ2最大ノードサイズ(gsh_log2_max_nodesize)は、復号プロセスが以下のように行われるMaxNodeSizeの値を示す。(specifies the value of the variable MaxNodeSize that is used in the decoding process as follows:)
MaxNodeSize = 2(gbh_log2_max_nodesize)
GSHポイント数(gsh_points_number)は、スライス内のコーディングされたポイントの数を示す。(specifies the number of coded points in the slice.)
実施例によるGSHは、図31ないし図36に示した実施例による分割イネーブルフラグ(partitioning_enabling_flag)情報、分割方法(Partitioning_method)情報、精製スライス方法フラグ(refine_slice_method_flag)情報、精製方法(refine_method)情報、精製方法状態(refine_method_condition)情報、距離ポイント間位置(distance_point_to_point_location)情報及び/又は隣接スライス併合順序(neighbours_order_to_merge)情報をさらに含んでもよい。
実施例によるGSHは、精製方法状態情報の値が1である場合、隣接スライス数(neighbor_num)情報及び/又は隣接スライス探索方法(neighbor_search_method)情報をさらに含んでもよい。
隣接スライス数(neighbor_num)情報、隣接スライス探索方法(neighbor_search_method)情報は、図34に示した隣接スライス数(neighbor_num)情報、隣接スライス探索方法(neighbor_search_method)情報と同一又は類似する動作を行う。
図38は実施例によるビットストリームのASH(Attribute Slice Header)の一例を示す。
図38に示したパラメータは、図30に示したAttr30004b、30004cに含まれる。実施例によるASHは、実施例によるスライスの分割(スライス分割)、スライスタイルリング方法に関連したシグナル情報及び/又は関連したシグナル情報を含む。
ASH特質パラメータセットID(abh_attr_parameter_set_id)は、現在の動的APSのaps_attr_parameter_set_idの値を示す。(specifies the value of the aps_attr_parameter_set_id of the active APS.)
ASH特質SPS特質インデックス(abh_attr_sps_attr_idx)は、現在の動的SPS内の特質セットを示す。abh_attr_sps_attr_idxの値は、0ないし現在の動的SPSのsps_num_attribute_setsdの値の範囲内である。(specifies the attribute set in the active SPS.The value of abh_attr_sps_attr_idx may be in the range of 0 to sps_num_attribute_sets in the active SPS.)
ASH特質ジオメトリスライスID(abh_attr_geom_slice_id)は、ジオメトリスライスidの値を示す。(specifies the value of geom slice id.)
実施例によるASHは、図31ないし図37に示した実施例による分割イネーブルフラグ(partitioning_enabling_flag)情報、分割方法(Partitioning_method)情報、精製スライス方法フラグ(refine_slice_method_flag)情報、精製方法(refine_method)情報、精製方法状態(refine_method_condition)情報、距離ポイント間位置(distance_point_to_point_location)情報及び/又は隣接スライス併合順序(neighbours_order_to_merge)情報をさらに含んでもよい。
実施例によるASHは、精製方法状態情報の値が1である場合、隣接スライス数(neighbor_num)情報及び/又は隣接スライス探索方法(neighbor_search_method)情報をさらに含んでもよい。
隣接スライス数(neighbor_num)情報、隣接スライス探索方法(neighbor_search_method)情報は、図34に示した隣接スライス数(neighbor_num)情報、隣接スライス探索方法(neighbor_search_method)情報と同一又は類似する動作を行う。
図39は実施例によるポイントクラウドデータ送信方法を示す流れ図である。
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化するステップ39000及び/又はポイントクラウドデータ及びポイントクラウドデータに関するシグナル情報を含むビットストリームを送信するステップ39001を含む。
図39に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
ポイントクラウドデータを符号化するステップ39000は、ポイントクラウドデータ送信装置がポイントクラウドデータを取得(acquire)し、取得したポイントクラウドデータを符号化(encoding)する。符号化は、図1のポイントクラウドビデオエンコーダ10002の動作、図2の符号化部18001の動作、図4に示した動作の一部又は全部、図5ないし図9に示した動作の一部又は全部、図12に示した動作の一部又は全部を意味する。
ポイントクラウドデータを符号化するステップ39000は、図15に示した空間分割部15001の動作、幾何情報符号化部15002の動作、属性情報符号化部15003の動作、図16ないし28に示した動作の一部又は全部を行う。
ポイントクラウドデータ及びポイントクラウドデータに関するシグナル情報を含むビットストリームを送信するステップ39001は、ポイントクラウドデータ送信装置が符号化されたポイントクラウドデータ及び/又はシグナル情報を送信する。ステップ39001は、図1の送信機10003、図2の送信部18002、図12の送信処理部12012の動作を意味する。ステップ39001は、図15の幾何情報ビットストリーム15000b、属性情報ビットストリーム15000cを送信する。ステップ39001は、幾何情報ビットストリーム15000b、属性情報ビットストリーム15000cを1つのビットストリームに結合して送信するステップである。
シグナル情報はメタデータ(metadata)とも呼ばれる。
ポイントクラウドデータは、例えば、図30に示したスライスに含まれたジオメトリスライスデータ(geometry slice data)及び/又は各々のAttrに含まれた特質スライスデータ(attribute slice data)を意味する。メタデータは、例えば、図30のSPS30001、GPS30002、APS30003、TPS30004を含む。メタデータは、例えば、スライスに含まれたジオメトリスライスヘッダ30004a-1及び/又は各々のAttrに含まれた特質スライスヘッダ(attribute slice header、ASH)を意味する。
即ち、メタデータは、例えば、図31ないし図37に示した実施例によるSPS、TPS、GPS、GSH及び/又はASHを含む。
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータをスライスに基づいて分割するステップをさらに含んでもよい。ポイントクラウドデータをスライスに基づいて分割するステップは、ポイントクラウドデータを符号化するステップ39000の以前に行われてもよい。実施例によるポイントクラウドデータ送信方法は、分割されたスライス別に独立して(independently)ポイントクラウドデータを符号化するステップ39000を行う。
実施例によるポイントクラウドデータ送信方法は、スライス内のポイント数がポイントの最小数より少ない場合、前記スライスを隣接したスライス(adjacent slice)と併合(merging)するステップをさらに含んでもよい。実施例による分割するステップは、実施例による均等-ジオメトリ分割(Uniform-Geometry partition using Octree)、実施例による最長エッジに対する均等-ジオメトリ分割(Uniform-Geometry partition along the longest edge)及び/又は実施例による均等四角形分割方法(Uniform square partitioning)のうちの少なくとも1つに基づいて行われる。
実施例による均等-ジオメトリ分割(Uniform-Geometry partition using Octree)は、図24に示した分割方法を意味する。実施例による均等-ジオメトリ分割(Uniform-Geometry partition along the longest edge)は、図25に示した分割方法を意味する。実施例による均等四角形分割方法(Uniform square partitioning)は、図21に示した分割方法を意味する。
実施例によるポイントクラウドデータ送信方法は、スライス内のポイント数がポイントの最大数より多い場合、前記スライスを2つ以上のスライスに分離(split)するステップをさらに含んでもよい。
実施例による隣接したスライスは、4方形精製方法に基づいて、前記スライスの左側スライス(left slice)、前記スライスの右側スライス(right slice)、前記スライスの上側スライス(top slice)又は前記スライスの下側スライス(bottom slice)のうちの1つである。実施例による隣接したスライスは、6方形精製方法に基づいて、前記スライスの左側スライス(left slice)、前記スライスの右側スライス(right slice)、前記スライスの上側スライス(top slice)、前記スライスの下側スライス(bottom slice)、前記スライスの前側スライス(front slice)及び/又は前記スライスの後側スライス(back slice)のうちの1つである。
図40は実施例によるポイントクラウドデータ受信方法を示す流れ図である。
実施例によるポイントクラウドデータ受信方法は、ポイントクラウドデータ及び/又は前記ポイントクラウドデータに関するシグナル情報を含むビットストリームを受信するステップ40000及び/又はビットストリーム内のポイントクラウドデータを復号するステップ40001を含む。
図40に示した動作の一部又は全部は、図14のXRデバイス1430などによって結合して行われる。
ビットストリームを受信するステップ40000は、図1の受信機10005の動作、図2の送信部で送信されたビットストリームを受信する動作、図10に示したビットストリーム(bitstream)を受信する動作、図12のデータ入力部12000、図13の受信部13000、受信処理部13001の動作を意味する。
ビットストリームは、図28の幾何情報ビットストリーム28000a、属性情報ビットストリーム28000bを含むビットストリームである。ビットストリームは、ポイントクラウドデータ及び/又は前記ポイントクラウドデータに関するシグナル情報を含む。シグナル情報はメタデータ(metadata)とも呼ばれる。
ポイントクラウドデータは、例えば、図30に示したスライス(slice)に含まれたジオメトリスライスデータ(geometry slice data)及び/又は各々のAttrに含まれた特質スライスデータ(attribute slice data)を意味する。メタデータは、例えば、図30のSPS30001、GPS30002、APS30003、TPS30004を含む。メタデータは、例えば、スライスに含まれたジオメトリスライスヘッダ30004a-1及び/又は各々のAttrに含まれた特質スライスヘッダ(attribute slice header、ASH)を意味する。
即ち、メタデータは、例えば、図31ないし図37に示した実施例によるSPS、TPS、GPS、GSH及び/又はASHを含む。
実施例によるビットストリーム(又は、ポイントクラウドデータ)は、1つ又はそれ以上のスライス又は1つ又はそれ以上のタイルによって伝達される。各々のスライスは、実施例によるポイントクラウドデータを分割する方法に基づいて分割(partitioning)されるか、実施例によるポイントクラウドデータを精製する方法に基づいて精製(refine)されたポイントクラウドデータを含む。
実施例は方法及び/又は装置の観点で説明しており、方法の説明及び装置の説明は互いに補完して適用できる。
説明の便宜のために、各図を区分して説明したが、各図に述べられている実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。実施例による装置及び方法は、上述したように説明された実施例の構成と方法が限られて適用されるのではなく、実施例は様々な変形が行われるように各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれ個々のチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のうちのいずれか一つ又はそれ以上の動作/方法を行わせるか、実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではない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ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限するものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」という表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味しない。実施例を説明するために使用される、「~である場合」、「~とき」などの条件表現は選択的な場合のみに制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。
また、この明細書で説明する実施例による動作は、実施例によってメモリ及び/又はプロセッサを含む送受信装置により行われる。メモリは実施例による動作を処理/制御するためのプログラムを格納し、プロセッサはこの明細で説明した様々な動作を制御する。プロセッサはコントローラなどとも称される。実施例の動作はファームウェア、ソフトウェア及び/又はこれらの組み合わせにより行われ、ファームウェア、ソフトウェア及び/又はこれらの組み合わせはプロセッサに格納されるか又はメモリに格納される。
なお、上述した実施例による動作は、実施例による送信装置及び/又は受信装置によって行われる。送受信装置はメディアデータを送受信する送受信部、実施例によるプロセスに対する指示(プログラムコード、アルゴリズム、フローチャート及び/又はデータ)を格納するメモリ、送/受信装置の動作を制御するプロセッサを含む。
プロセッサはコントローラーとも呼ばれ、例えば、ハードウェア、ソフトウェア、及び/又はそれらの組み合わせに対応する。上述した実施例による動作はプロセッサによって行われる。また、プロセッサは、上述した実施例の動作のためのエンコーダ/デコードなどで具現される。
発明を実施するための最善の形態について具体的に説明する。