JP2024058011A - Point group decoding device, point group decoding method and program - Google Patents

Point group decoding device, point group decoding method and program Download PDF

Info

Publication number
JP2024058011A
JP2024058011A JP2022165087A JP2022165087A JP2024058011A JP 2024058011 A JP2024058011 A JP 2024058011A JP 2022165087 A JP2022165087 A JP 2022165087A JP 2022165087 A JP2022165087 A JP 2022165087A JP 2024058011 A JP2024058011 A JP 2024058011A
Authority
JP
Japan
Prior art keywords
node
vertex
trisoup
synthesis unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022165087A
Other languages
Japanese (ja)
Inventor
恭平 海野
賢史 小森田
圭 河村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2022165087A priority Critical patent/JP2024058011A/en
Publication of JP2024058011A publication Critical patent/JP2024058011A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】符号化効率を向上させること。【解決手段】本発明に係る点群復号装置200は、互いに異なるサイズを持つノード同士の境界において、ノードサイズが大きい方のノードの頂点を用いて、頂点の内挿処理を行い、内挿処理が行われた頂点が、ノードサイズが小さい方のノードの辺上に存在するとき、記内挿処理が行われた頂点をノードサイズが小さい方のノードの辺の頂点としてTrisoup処理を実行する近似表面合成部2030を備える。【選択図】図2[Problem] To improve coding efficiency. [Solution] The point cloud decoding device 200 according to the present invention includes an approximate surface synthesis unit 2030 that performs vertex interpolation processing using vertices of a node with a larger node size at the boundary between nodes with different sizes, and, when the vertex that has undergone the interpolation processing exists on an edge of a node with a smaller node size, performs Trisoup processing with the vertex that has undergone the interpolation processing as a vertex of the edge of the node with the smaller node size. [Selected Figure] Figure 2

Description

本発明は、点群復号装置、点群復号方法及びプログラムに関する。 The present invention relates to a point cloud decoding device, a point cloud decoding method, and a program.

非特許文献1では、Trisoupと呼ばれる幾何情報の符号化技術が開示されている。 Non-Patent Document 1 discloses a geometry information encoding technique called Trisoup.

G-PCC Future Enhancement、ISO/IEC JTC1/SC29/WG11 N19328G-PCC Future Enhancement, ISO/IEC JTC1/SC29/WG11 N19328

しかしながら、非特許文献1の方法では、スライス毎に固定のノードサイズでしかTrisoupを実行できないという問題点があった。 However, the method in Non-Patent Document 1 has the problem that Trisoup can only be performed with a fixed node size for each slice.

そこで、本発明は、上述の課題に鑑みてなされたものであり、異なるノードサイズのノードの境界において、小さなノードサイズにおける頂点を復号する代わりに、大きなノードサイズの頂点から内挿した値を用いることで、符号化効率の向上が期待できる点群復号装置、点群復号方法及びプログラムを提供することを目的とする。 The present invention has been made in consideration of the above-mentioned problems, and aims to provide a point cloud decoding device, a point cloud decoding method, and a program that are expected to improve coding efficiency by using values interpolated from vertices of larger node sizes at the boundaries between nodes of different node sizes, instead of decoding vertices of smaller node sizes.

本発明の第1の特徴は、点群復号装置であって、互いに異なるサイズを持つノード同士の境界において、ノードサイズが大きい方のノードの頂点を用いて、頂点の内挿処理を行い、前記内挿処理が行われた頂点が、ノードサイズが小さい方のノードの辺上に存在するとき、前記内挿処理が行われた頂点を前記ノードサイズが小さい方のノードの辺の頂点としてTrisoup処理を実行する近似表面合成部を備えることを要旨とする。 The first feature of the present invention is a point cloud decoding device that includes an approximate surface synthesis unit that performs vertex interpolation processing at the boundary between nodes having different sizes, using the vertices of the node with the larger node size, and when the vertex that has undergone the interpolation processing exists on an edge of the node with the smaller node size, performs a Trisoup processing with the vertex that has undergone the interpolation processing as the vertex of the edge of the node with the smaller node size.

本発明の第2の特徴は、点群復号方法であって、互いに異なるサイズを持つノード同士の境界において、ノードサイズが大きい方のノードの頂点を用いて、頂点の内挿処理を行う工程と、前記内挿処理が行われた頂点が、ノードサイズが小さい方のノードの辺上に存在するとき、前記内挿処理が行われた頂点を前記ノードサイズが小さい方のノードの辺の頂点としてTrisoup処理を実行する工程とを有することを要旨とする。 The second feature of the present invention is a point cloud decoding method that includes the steps of: performing vertex interpolation processing at the boundary between nodes having different sizes, using the vertices of the node with the larger node size; and, when the vertex on which the interpolation processing has been performed is on an edge of the node with the smaller node size, performing a Trisoup processing with the vertex on which the interpolation processing has been performed as the vertex of the edge of the node with the smaller node size.

本発明の第3の特徴は、コンピュータを、点群復号装置として機能させるプログラムであって、前記点群復号装置は、互いに異なるサイズを持つノード同士の境界において、ノードサイズが大きい方のノードの頂点を用いて、頂点の内挿処理を行い、前記内挿処理が行われた頂点が、ノードサイズが小さい方のノードの辺上に存在するとき、前記内挿処理が行われた頂点を前記ノードサイズが小さい方のノードの辺の頂点としてTrisoup処理を実行する近似表面合成部を備えることを要旨とする。 The third feature of the present invention is a program that causes a computer to function as a point cloud decoding device, and the point cloud decoding device is provided with an approximate surface synthesis unit that performs vertex interpolation processing using vertices of a node with a larger node size at the boundary between nodes with different sizes, and when the vertex that has undergone the interpolation processing is on an edge of a node with a smaller node size, performs a Trisoup processing with the vertex that has undergone the interpolation processing as a vertex of the edge of the node with the smaller node size.

本発明によれば、異なるノードサイズのノードの境界において、小さなノードサイズにおける頂点を復号する代わりに、大きなノードサイズの頂点から内挿した値を用いることで、符号化効率の向上が期待できる点群復号装置、点群復号方法及びプログラムを提供することができる。 According to the present invention, it is possible to provide a point cloud decoding device, a point cloud decoding method, and a program that can be expected to improve coding efficiency by using values interpolated from vertices of a larger node size at the boundary between nodes of different node sizes instead of decoding vertices of a smaller node size.

図1は、一実施形態に係る点群処理システム10の構成の一例を示す図である。FIG. 1 is a diagram illustrating an example of the configuration of a point cloud processing system 10 according to an embodiment. 図2は、一実施形態に係る点群復号装置200の機能ブロックの一例を示す図である。FIG. 2 is a diagram illustrating an example of functional blocks of a point group decoding device 200 according to an embodiment. 図3は、一実施形態に係る点群復号装置200の幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例を示す図である。FIG. 3 is a diagram showing an example of the configuration of encoded data (bit stream) received by the geometric information decoding unit 2010 of the point cloud decoding device 200 according to an embodiment. 図4は、GPS2011のシンタックス構成の一例を示す図である。FIG. 4 is a diagram showing an example of the syntax configuration of GPS2011. 図5は、GSH2012のシンタックス構成の一例を示す図である。FIG. 5 is a diagram showing an example of the syntax configuration of GSH2012. 図6は、一実施形態に係る点群復号装置200のツリー合成部2020における処理の一例を示すフローチャートであるFIG. 6 is a flowchart illustrating an example of a process in the tree synthesis unit 2020 of the point group decoding device 200 according to an embodiment. 図7は、一実施形態に係る点群復号装置200の近似表面合成部2030の処理の一例を示すフローチャートである。FIG. 7 is a flowchart showing an example of processing by the approximate surface synthesis unit 2030 of the point cloud decoding device 200 according to an embodiment. 図8は、図7に示すステップS703の処理の一例を示すフローチャートである。FIG. 8 is a flowchart showing an example of the process of step S703 shown in FIG. 図9は、図7に示すステップS704の処理の一例を示すフローチャートである。FIG. 9 is a flowchart showing an example of the process of step S704 shown in FIG. 図10は、マスク情報の生成方法の具体例を示すフローチャートである。FIG. 10 is a flowchart showing a specific example of a method for generating mask information. 図11は、セグメント及びマスク値の生成例を示す図である。FIG. 11 is a diagram showing an example of generation of segments and mask values. 図12は、図7に示すステップS705の処理の一例を示すフローチャートである。FIG. 12 is a flowchart showing an example of the process of step S705 shown in FIG. 図13は、図7に示すステップS706の処理の一例を示すフローチャートである。FIG. 13 is a flowchart showing an example of the process of step S706 shown in FIG. 図14は、図7に示すステップS708の処理の一例を示すフローチャートである。FIG. 14 is a flowchart showing an example of the process of step S708 shown in FIG. 図15は、図13におけるステップS1302の処理の一例を説明するための図である。FIG. 15 is a diagram for explaining an example of the process of step S1302 in FIG. 図16は、図13におけるステップS1305の処理の一例を説明するための図である。FIG. 16 is a diagram for explaining an example of the process of step S1305 in FIG. 図17は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。FIG. 17 is a diagram showing an example of functional blocks of the point group encoding device 100 according to this embodiment.

以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。 The following describes embodiments of the present invention with reference to the drawings. Note that the components in the following embodiments can be replaced with existing components as appropriate, and various variations, including combinations with other existing components, are possible. Therefore, the description of the following embodiments does not limit the content of the invention described in the claims.

(第1実施形態)
以下、図1~図17を参照して、本発明の第1実施形態に係る点群処理システム10について説明する。図1は、本実施形態に係る実施形態に係る点群処理システム10を示す図である。
First Embodiment
A point cloud processing system 10 according to a first embodiment of the present invention will be described below with reference to Figures 1 to 17. Figure 1 is a diagram showing a point cloud processing system 10 according to the present embodiment.

図1に示すように、点群処理システム10は、点群符号化装置100及び点群復号装置200を有する。 As shown in FIG. 1, the point cloud processing system 10 has a point cloud encoding device 100 and a point cloud decoding device 200.

点群符号化装置100は、入力点群信号を符号化することによって符号化データ(ビットストリーム)を生成するように構成されている。点群復号装置200は、ビットストリームを復号することによって出力点群信号を生成するように構成されている。 The point cloud encoding device 100 is configured to generate encoded data (bit stream) by encoding an input point cloud signal. The point cloud decoding device 200 is configured to generate an output point cloud signal by decoding the bit stream.

なお、入力点群信号及び出力点群信号は、点群内の各点の位置情報と属性情報とから構成される。属性情報は、例えば、各点の色情報や反射率である。 The input point cloud signal and the output point cloud signal are composed of position information and attribute information of each point in the point cloud. The attribute information is, for example, color information and reflectance of each point.

ここで、かかるビットストリームは、点群符号化装置100から点群復号装置200に対して伝送路を介して送信されてもよい。また、ビットストリームは、記憶媒体に格納された上で、点群符号化装置100から点群復号装置200に提供されてもよい。 Here, such a bit stream may be transmitted from the point cloud encoding device 100 to the point cloud decoding device 200 via a transmission path. Also, the bit stream may be stored in a storage medium and then provided from the point cloud encoding device 100 to the point cloud decoding device 200.

(点群復号装置200)
以下、図2を参照して、本実施形態に係る点群復号装置200について説明する。図2は、本実施形態に係る点群復号装置200の機能ブロックの一例について示す図である。
(Point Cloud Decoding Device 200)
Hereinafter, the point group decoding device 200 according to this embodiment will be described with reference to Fig. 2. Fig. 2 is a diagram showing an example of functional blocks of the point group decoding device 200 according to this embodiment.

図2に示すように、点群復号装置200は、幾何情報復号部2010と、ツリー合成部2020と、近似表面合成部2030と、幾何情報再構成部2040と、逆座標変換部2050と、属性情報復号部2060と、逆量子化部2070と、RAHT部2080と、LoD算出部2090と、逆リフティング部2100と、逆色変換部2110とを有する。 As shown in FIG. 2, the point cloud decoding device 200 has a geometric information decoding unit 2010, a tree synthesis unit 2020, an approximate surface synthesis unit 2030, a geometric information reconstruction unit 2040, an inverse coordinate transformation unit 2050, an attribute information decoding unit 2060, an inverse quantization unit 2070, a RAHT unit 2080, an LoD calculation unit 2090, an inverse lifting unit 2100, and an inverse color transformation unit 2110.

幾何情報復号部2010は、点群符号化装置100から出力されるビットストリームのうち、幾何情報に関するビットストリーム(幾何情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。 The geometric information decoding unit 2010 is configured to receive as input a bit stream related to geometric information (geometric information bit stream) from the bit streams output from the point cloud encoding device 100, and to decode the syntax.

復号処理は、例えば、コンテクスト適応二値算術復号処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。 The decoding process is, for example, a context-adaptive binary arithmetic decoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the position information.

ツリー合成部2020は、幾何情報復号部2010によって復号された制御データ及び後述するツリー内のどのノードに点群が存在するかを示すoccupancy codeを入力として、復号対象空間内のどの領域に点が存在するかというツリー情報を生成するように構成されている。 The tree synthesis unit 2020 is configured to receive as input the control data decoded by the geometric information decoding unit 2010 and an occurrence code indicating at which node in the tree (described later) the point group exists, and generate tree information indicating in which area in the decoding target space the point exists.

なお、occupancy codeの復号処理をツリー合成部2020内部で行うよう構成されていてもよい。 The decoding process of the occasion code may be configured to be performed within the tree synthesis unit 2020.

本処理は、復号対象空間を直方体で区切り、occupancy codeを参照して各直方体内に点が存在するかを判断し、点が存在する直方体を複数の直方体に分割し、occupancy codeを参照するという処理を再帰的に繰り返すことで、ツリー情報を生成することができる。 This process divides the space to be decoded into rectangular parallelepipeds, refers to the occupancy code to determine whether a point exists in each rectangular parallelepiped, divides the rectangular parallelepiped in which the point exists into multiple rectangular parallelepipeds, and then refers to the occupancy code. This process is repeated recursively to generate tree information.

ここで、かかるoccupancy codeの復号に際して、後述するインター予測を用いてもよい。 Here, when decoding such an occasion code, inter prediction, which will be described later, may be used.

本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。QtBt」を使用するか否かは、制御データとして点群符号化装置100側から伝送される。 In this embodiment, a method called "Octree" can be used, which recursively performs octree division on the above-mentioned rectangular parallelepiped, always treating it as a cube, and a method called "QtBt" can be used, which performs quadtree division and binary tree division in addition to octree division. Whether or not to use "QtBt" is transmitted from the point cloud encoding device 100 as control data.

なお、本実施形態では、「Octree」によって上述の立方体が1×1×1のサイズになるまで分割を行うことで幾何情報を復号する方法を、特に「Octreeのみ」と呼ぶ。 In this embodiment, the method of decoding geometric information by dividing the above-mentioned cube using "Octree" until it becomes 1x1x1 in size is specifically referred to as "Octree only."

また、「Octree」に「QtBt」を組み合わせて使用した場合でも、上記同様に「Octree」及び「QtBt」のみで上述の直方体が1×1×1のサイズになるまで分割を行うことで幾何情報を復号する方法についても、「Octreeのみ」と呼んでもよい。 In addition, even if "Octree" is used in combination with "QtBt", the method of decrypting geometric information by dividing the above-mentioned rectangular parallelepiped until it becomes 1x1x1 size using only "Octree" and "QtBt" in the same manner as above may also be called "Octree only".

或いは、制御データによってPredictive codingを使用するように指定された場合、ツリー合成部2020は、点群符号化装置100において決定した任意のツリー構成に基づいて各点の座標を復号するように構成されている。 Alternatively, when the control data specifies that predictive coding is to be used, the tree synthesis unit 2020 is configured to decode the coordinates of each point based on an arbitrary tree configuration determined by the point cloud encoding device 100.

近似表面合成部2030は、ツリー合成部2020によって生成されたツリー情報を用いて近似表面情報を生成し、かかる近似表面情報に基づいて点群を復号するように構成されている。 The approximate surface synthesis unit 2030 is configured to generate approximate surface information using the tree information generated by the tree synthesis unit 2020, and to decode the point cloud based on the approximate surface information.

近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。 When decoding three-dimensional point cloud data of an object, for example, if the points are densely distributed on the object's surface, approximate surface information is used to represent the area in which the points exist by approximating the area using a small plane, rather than decoding each point individually.

具体的には、近似表面合成部2030は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成し、点群を復号することができる。「Trisoup」の具体的な処理例については後述する。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。 Specifically, the approximate surface synthesis unit 2030 can generate approximate surface information and decode the point cloud using a method called "Trisoup", for example. A specific processing example of "Trisoup" will be described later. In addition, when decoding a sparse point cloud acquired by Lidar or the like, this processing can be omitted.

幾何情報再構成部2040は、ツリー合成部2020によって生成されたツリー情報及び近似表面合成部2030によって生成された近似表面情報を元に、復号対象の点群データの各点の幾何情報(復号処理が仮定している座標系における位置情報)を再構成するように構成されている。 The geometric information reconstruction unit 2040 is configured to reconstruct the geometric information (position information in the coordinate system assumed by the decoding process) of each point of the point cloud data to be decoded based on the tree information generated by the tree synthesis unit 2020 and the approximate surface information generated by the approximate surface synthesis unit 2030.

逆座標変換部2050は、幾何情報再構成部2040によって再構成された幾何情報を入力として、復号処理が仮定している座標系から、出力点群信号の座標系に変換を行い、位置情報を出力するように構成されている。 The inverse coordinate transformation unit 2050 is configured to receive the geometric information reconstructed by the geometric information reconstruction unit 2040 as input, transform it from the coordinate system assumed by the decoding process to the coordinate system of the output point cloud signal, and output position information.

属性情報復号部2060は、点群符号化装置100から出力されるビットストリームのうち、属性情報に関するビットストリーム(属性情報ビットストリーム)を入力とし、シンタックスを復号するように構成されている。 The attribute information decoding unit 2060 is configured to receive as input a bit stream related to attribute information (attribute information bit stream) from the bit streams output from the point cloud encoding device 100, and to decode the syntax.

復号処理は、例えば、コンテクスト適応二値算術復号処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。 The decoding process is, for example, a context-adaptive binary arithmetic decoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the attribute information.

また、属性情報復号部2060は、復号したシンタックスから、量子化済み残差情報を復号するように構成されている。 The attribute information decoding unit 2060 is also configured to decode the quantized residual information from the decoded syntax.

逆量子化部2070は、属性情報復号部2060によって復号された量子化済み残差情報と、属性情報復号部2060によって復号された制御データの一つである量子化パラメータとを元に、逆量子化処理を行い、逆量子化済み残差情報を生成するように構成されている。 The inverse quantization unit 2070 is configured to perform an inverse quantization process based on the quantized residual information decoded by the attribute information decoding unit 2060 and the quantization parameter, which is one of the control data decoded by the attribute information decoding unit 2060, to generate inverse quantized residual information.

逆量子化済み残差情報は、復号対象の点群の特徴に応じて、RAHT部2080及びLoD算出部2090のいずれかに出力される。いずれに出力されるかは、属性情報復号部2060によって復号される制御データによって指定される。 The dequantized residual information is output to either the RAHT unit 2080 or the LoD calculation unit 2090 depending on the characteristics of the point group to be decoded. The control data decoded by the attribute information decoding unit 2060 specifies which unit the information is output to.

RAHT部2080は、逆量子化部2070によって生成された逆量子化済み残差情報及び幾何情報再構成部2040によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換(復号処理においては、逆Haar変換)の一種を用いて、各点の属性情報を復号するように構成されている。RAHTの具体的な処理としては、例えば、非特許文献1に記載の方法を用いることができる。 The RAHT unit 2080 is configured to receive the inverse quantized residual information generated by the inverse quantization unit 2070 and the geometric information generated by the geometric information reconstruction unit 2040 as input, and to decode the attribute information of each point using a type of Haar transform (inverse Haar transform in the decoding process) called RAHT (Region Adaptive Hierarchical Transform). As a specific example of the RAHT process, the method described in Non-Patent Document 1 can be used.

LoD算出部2090は、幾何情報再構成部2040によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。 The LoD calculation unit 2090 is configured to receive the geometric information generated by the geometric information reconstruction unit 2040 as input and generate the LoD (Level of Detail).

LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。 LoD is information for defining a reference relationship (a referencing point and a referenced point) to realize predictive coding, such as predicting attribute information of a certain point from attribute information of another point and encoding or decoding the prediction residual.

言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。 In other words, LoD is information that defines a hierarchical structure in which each point contained in the geometric information is classified into multiple levels, and the attributes of points belonging to lower levels are encoded or decoded using attribute information of points belonging to higher levels.

LoDの具体的な決定方法としては、例えば、上述の非特許文献1に記載の方法を用いてもよい。 As a specific method for determining LoD, for example, the method described in the above-mentioned non-patent document 1 may be used.

逆リフティング部2100は、LoD算出部2090によって生成されたLoD及び逆量子化部2070によって生成された逆量子化済み残差情報を用いて、LoDで規定した階層構造に基づいて各点の属性情報を復号するように構成されている。逆リフティングの具体的な処理としては、例えば、上述の非特許文献1に記載の方法を用いることができる。 The inverse lifting unit 2100 is configured to decode attribute information of each point based on the hierarchical structure defined by the LoD, using the LoD generated by the LoD calculation unit 2090 and the inverse quantized residual information generated by the inverse quantization unit 2070. As a specific example of the inverse lifting process, the method described in the above-mentioned non-patent document 1 can be used.

逆色変換部2110は、復号対象の属性情報が色情報であり且つ点群符号化装置100側で色変換が行われていた場合に、RAHT部2080又は逆リフティング部2100から出力される属性情報に逆色変換処理を行うように構成されている。かかる逆色変換処理の実行の有無については、属性情報復号部2060によって復号された制御データによって決定される。 The inverse color conversion unit 2110 is configured to perform inverse color conversion processing on the attribute information output from the RAHT unit 2080 or the inverse lifting unit 2100 when the attribute information to be decoded is color information and color conversion has been performed on the point cloud encoding device 100 side. Whether or not such inverse color conversion processing is performed is determined by the control data decoded by the attribute information decoding unit 2060.

点群復号装置200は、以上の処理により、点群内の各点の属性情報を復号して出力するように構成されている。 The point cloud decoding device 200 is configured to decode and output attribute information of each point in the point cloud through the above processing.

(幾何情報復号部2010)
以下、図3~図5を用いて幾何情報復号部2010で復号される制御データについて説明する。
(Geometric information decoding unit 2010)
The control data decoded by the geometric information decoding unit 2010 will be described below with reference to FIGS.

図3は、幾何情報復号部2010で受信する符号化データ(ビットストリーム)の構成の一例である。 Figure 3 shows an example of the structure of the encoded data (bit stream) received by the geometric information decoding unit 2010.

第1に、ビットストリームは、GPS2011を含んでいてもよい。GPS2011は、ジオメトリパラメータセットとも呼ばれ、幾何情報の復号に関する制御データの集合である。具体例については後述する。各GPS2011は、複数のGPS2011が存在する場合に個々を識別するためのGPS id情報を少なくとも含む。 First, the bit stream may include a GPS2011. A GPS2011 is also called a geometry parameter set, and is a collection of control data related to decoding of geometric information. A specific example will be described later. Each GPS2011 includes at least GPS id information for identifying each GPS2011 when multiple GPS2011 exist.

第2に、ビットストリームは、GSH2012A/2012Bを含んでいてもよい。GSH2012A/2012Bは、ジオメトリスライスヘッダ或いはジオメトリデータユニットヘッダとも呼ばれ、後述するスライスに対応する制御データの集合である。以降では、スライスという呼称を用いて説明するが、スライスをデータユニットと読み替えることもできる。具体例については後述する。GSH2012A/2012Bは、各GSH2012A/2012Bに対応するGPS2011を指定するためのGPS id情報を少なくとも含む。 Secondly, the bit stream may include GSH2012A/2012B. GSH2012A/2012B is also called a geometry slice header or geometry data unit header, and is a collection of control data corresponding to a slice, which will be described later. In the following description, the term "slice" will be used, but slice can also be interpreted as a data unit. Specific examples will be described later. GSH2012A/2012B includes at least GPS id information for specifying the GPS2011 corresponding to each GSH2012A/2012B.

第3に、ビットストリームは、GSH2012A/2012Bの次に、スライスデータ2013A/2013Bを含んでいてもよい。スライスデータ2013A/2013Bには、幾何情報を符号化したデータが含まれている。スライスデータ2013A/2013Bの一例としては、後述するoccupancy codeが挙げられる。 Thirdly, the bit stream may include slice data 2013A/2013B following GSH 2012A/2012B. Slice data 2013A/2013B includes data that encodes geometric information. An example of slice data 2013A/2013B is an occasion code, which will be described later.

以上のように、ビットストリームは、各スライスデータ2013A/2013Bに、1つずつGSH2012A/2012B及びGPS2011が対応する構成となる。 As described above, the bit stream is structured so that each slice data 2013A/2013B corresponds to one GSH 2012A/2012B and one GPS 2011.

上述のように、GSH2012A/2012Bにて、どのGPS2011を参照するかをGPS id情報で指定するため、複数のスライスデータ2013A/2013Bに対して共通のGPS2011を用いることができる。 As described above, the GPS ID information is used to specify which GPS 2011 to refer to in GSH 2012A/2012B, so a common GPS 2011 can be used for multiple slice data 2013A/2013B.

言い換えると、GPS2011は、スライスごとに必ずしも伝送する必要がない。例えば、図3のように、GSH2012B及びスライスデータ2013Bの直前では、GPS2011を符号化しないようなビットストリームの構成とすることもできる。 In other words, GPS2011 does not necessarily have to be transmitted for each slice. For example, as shown in FIG. 3, the bit stream may be configured so that GPS2011 is not encoded immediately before GSH2012B and slice data 2013B.

なお、図3の構成は、あくまで一例である。各スライスデータ2013A/2013Bに、GSH2012A/2012B及びGPS2011が対応する構成となっていれば、ビットストリームの構成要素として、上述以外の要素が追加されてもよい。 Note that the configuration in FIG. 3 is merely an example. As long as GSH 2012A/2012B and GPS 2011 correspond to each slice data 2013A/2013B, elements other than those described above may be added as components of the bit stream.

例えば、図3に示すように、ビットストリームは、シーケンスパラメータセット(SPS)2001を含んでいてもよい。また、同様に、伝送に際して、図3と異なる構成に整形されてもよい。更に、後述する属性情報復号部2060で復号されるビットストリームと合成して単一のビットストリームとして伝送されてもよい。 For example, as shown in FIG. 3, the bitstream may include a sequence parameter set (SPS) 2001. Similarly, when transmitted, the bitstream may be shaped into a configuration different from that shown in FIG. 3. Furthermore, the bitstream may be combined with a bitstream decoded by an attribute information decoding unit 2060 (described later) and transmitted as a single bitstream.

図4は、GPS2011のシンタックス構成の一例である。 Figure 4 is an example of the syntax configuration of GPS2011.

なお、以下で説明するシンタックス名は、あくまで一例である。以下で説明したシンタックスの機能が同様であれば、シンタックス名は異なっていても差し支えない。 Note that the syntax names explained below are merely examples. If the syntax functions explained below are similar, the syntax names may be different.

GPS2011は、各GPS2011を識別するためのGPS id情報(gps_geom_parameter_set_id)を含んでもよい。 GPS2011 may include GPS ID information (gsps_geom_parameter_set_id) for identifying each GPS2011.

なお、図4のDescriptor欄は、各シンタックスが、どのように符号化されているかを意味している。ue(v)は、符号無し0次指数ゴロム符号であることを意味し、u(1)は、1ビットのフラグであることを意味する。 The Descriptor column in Figure 4 indicates how each syntax is coded. ue(v) means that it is an unsigned zeroth-order exponential Golomb code, and u(1) means that it is a 1-bit flag.

GPS2011は、近似表面合成部2030でTrisoupを使用するか否かを制御するフラグ(trisoup_enabled_flag)を含んでもよい。 GPS2011 may include a flag (trisoup_enabled_flag) that controls whether or not Trisoup is used in the approximate surface synthesis unit 2030.

例えば、trisoup_enabled_flagの値が「0」の時はTrisoupを使用しないと定義し、trisoup_enabled_flagの値が「1」の時はTrisoupを使用すると定義してもよい。 For example, it may be defined that Trisoup is not used when the value of trisoup_enabled_flag is "0", and that Trisoup is used when the value of trisoup_enabled_flag is "1".

幾何情報復号部2020は、Trisoupを使用するとき、すなわち、trisoup_enabled_flagの値が「1」の時、追加で以下のシンタックスを復号するように構成されていてもよい。 The geometric information decoding unit 2020 may be configured to additionally decode the following syntax when Trisoup is used, i.e., when the value of trisoup_enabled_flag is "1".

なお、trisoup_enabled_flagは、GPS2011ではなくSPS2001に含まれていてもよい。 Note that trisoup_enabled_flag may be included in SPS2001 instead of GPS2011.

GPS2011は、複数レベルでのTrisoupを許可するか否かを制御するフラグ(trisoup_multilevel_enabled_flag、第1フラグ)を含んでもよい。 GPS2011 may include a flag (trisoup_multilevel_enabled_flag, first flag) that controls whether or not trisoup is allowed at multiple levels.

例えば、trisoup_multilevel_enabled_flagの値が「0」の時は複数レベルでのTrisoupを許可しない、すなわち、単一のレベルでのTrisoupを行うと定義し、trisoup_multilevel_enabled_flagの値が「1」の時は複数レベルでのTrisoupを許可すると定義してもよい。 For example, when the value of trisoup_multilevel_enabled_flag is "0", multi-level trisoup is not allowed, i.e., trisoup is performed at a single level, and when the value of trisoup_multilevel_enabled_flag is "1", multi-level trisoup is allowed.

なお、当該シンタックスがGPS2011に含まれない場合、当該シンタックスの値を単一のレベルでのTrisoupを行う場合の値、すなわち、「0」とみなしてよい。 If this syntax is not included in GPS2011, the value of this syntax may be considered to be the value when performing a trisoup at a single level, i.e., "0".

なお、trisoup_multilevel_enabled_flagは、GPS2011ではなくSPS2001に含まれるよう定義してもよい。この場合、SPS2001にtrisoup_multilevel_enabled_flagが含まれていない場合、当該シンタックスの値を単一のレベルでのTrisoupを行う場合の値、すなわち、「0」とみなしてよい。 Note that trisoup_multilevel_enabled_flag may be defined to be included in SPS2001 instead of GPS2011. In this case, if trisoup_multilevel_enabled_flag is not included in SPS2001, the value of the syntax may be regarded as the value for performing trisoup at a single level, i.e., "0".

図5は、GSH2012のシンタックス構成の一例である。なお、前述の通り、GSHは、GDUH(Geometry Data Unit Header)とも呼ばれる。 Figure 5 shows an example of the syntax configuration of GSH2012. As mentioned above, GSH is also called GDUH (Geometry Data Unit Header).

幾何情報復号部2020は、複数レベルでのTrisoupを許可するとき、すなわち、trisoup_multilevel_enabled_flagの値が「1」の時、追加で以下のシンタックスを復号するように構成されていてもよい。 The geometric information decoding unit 2020 may be configured to additionally decode the following syntax when Trisoup at multiple levels is permitted, i.e., when the value of trisoup_multilevel_enabled_flag is "1".

GSH2012は、複数レベルでのTrisoupを許可するとき、Trisoupノードサイズの最大値を規定するシンタックス(log2_trisoup_max_node_size_minus2)を含んでもよい。 GSH2012 may include syntax (log2_trisoup_max_node_size_minus2) to specify the maximum Trisoup node size when allowing multi-level Trisoup.

当該シンタックスは、実際のTrisoupノードサイズの最大値について、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズの最大値について、2を底とする対数に変換した後に2を引いた後の値として表現されていてもよい。 The syntax may be expressed as a value obtained by converting the maximum actual Trisoup node size to a logarithm with base 2. Furthermore, the syntax may be expressed as a value obtained by subtracting 2 from the logarithm with base 2, for the maximum actual Trisoup node size.

GSH2012は、複数レベルでのTrisoupを許可するとき、Trisoupノードサイズの最小値を規定するシンタックス(log2_trisoup_min_node_size_minus2)を含んでもよい。 GSH2012 may include syntax (log2_trisoup_min_node_size_minus2) to specify a minimum Trisoup node size when multi-level Trisoup is allowed.

当該シンタックスは、実際のTrisoupノードサイズの最小値について、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズの最小値を4(=2)とし、2を底とする対数に変換した後に2を引いた後の値として表現されていてもよい。 This syntax may be expressed as a value obtained by converting the minimum value of the actual Trisoup node size to a logarithm with the base 2. Furthermore, this syntax may be expressed as a value obtained by subtracting 2 from the logarithm obtained by converting the minimum value of the actual Trisoup node size to 4 (=2 2 ) and converting it to a logarithm with the base 2.

また、当該シンタックスの値は、必ず0以上且つlog2_trisoup_max_node_size_minus2以下となるように制約されていてもよい。 The value of this syntax may also be constrained to be greater than or equal to 0 and less than or equal to log2_trisoup_max_node_size_minus2.

また、この時、図5に示すようにtrisoup_depthをtrisoup_depth=log2_trisoup_max_node_size_minus2-log2_trisoup_min_node_size_minus2+1と定義してもよい。 In this case, trisoup_depth may be defined as trisoup_depth = log2_trisoup_max_node_size_minus2 - log2_trisoup_min_node_size_minus2 + 1, as shown in Figure 5.

また、最小Trisoupノードサイズ及び最大Trisoupノードサイズを直接復号する代わりに、後述のOctree処理における最大Trisoupノードサイズ及び最小Trisoupノードサイズに対応するDepth値を復号してもよい。 In addition, instead of directly decoding the minimum and maximum Trisoup node sizes, the Depth values corresponding to the maximum and minimum Trisoup node sizes in the Octree processing described below may be decoded.

例えば、最大Depth(全ノードが1×1×1のサイズになるDepth)が10の場合、最小Trisoupノードサイズを4(=2)、最大Trisoupノードサイズを16(=2)としたい場合は、最小Trisoupノードサイズに対応するDepth値として8、最大Trisoupノードサイズに対応するDepth値として6をそれぞれ復号してもよい。 For example, if the maximum Depth (the Depth at which all nodes are 1x1x1 in size) is 10, and you want the minimum Trisoup node size to be 4 (= 22 ) and the maximum Trisoup node size to be 16 (= 24 ), you may decode the Depth value corresponding to the minimum Trisoup node size as 8 and the Depth value corresponding to the maximum Trisoup node size as 6.

幾何情報復号部2020は、複数レベルでのTrisoupを許可しないとき、すなわち、trisoup_multilevel_enabled_flagの値が「0」の時、追加で以下のシンタックスを復号するように構成されていてもよい。 The geometric information decoding unit 2020 may be configured to additionally decode the following syntax when multi-level Trisoup is not permitted, i.e., when the value of trisoup_multilevel_enabled_flag is "0".

GSH2012は、複数レベルでのTrisoupを許可しないとき、かつ、Trisoupを使用するとき、Trisoupノードサイズを規定するシンタックス(log2_trisoup_node_size_minus2)を含んでもよい。 GSH2012 may include syntax (log2_trisoup_node_size_minus2) to specify the Trisoup node size when multi-level Trisoup is not allowed and when Trisoup is used.

当該シンタックスは、実際のTrisoupノードサイズについて、2を底とする対数に変換した値として表現されていてもよい。更に、当該シンタックスは、実際のTrisoupノードサイズについて、2を底とする対数に変換した後に2を引いた後の値として表現されていてもよい。 The syntax may be expressed as a value obtained by converting the actual Trisoup node size to a logarithm with base 2. Furthermore, the syntax may be expressed as a value obtained by subtracting 2 from the logarithm with base 2 with respect to the actual Trisoup node size.

また、この時、図5に示すようにtrisoup_depthをtrisoup_depth=1と定義してもよい。 In this case, trisoup_depth may be defined as trisoup_depth = 1, as shown in Figure 5.

GSH2012は、Trisoupを使用するとき、復号点のサンプリング間隔を制御するシンタックス(trisoup_sampling_value_minus1)を含んでもよい。当該シンタックスの具体的な定義は、例えば、上述の非特許文献1に記載の定義と同様とすることができる。 When using Trisoup, GSH2012 may include a syntax (trisoup_sampling_value_minus1) that controls the sampling interval of the decoding point. The specific definition of the syntax may be the same as that described in the above-mentioned non-patent document 1, for example.

GSH2012は、後述するTrisoupの頂点位置の精度(bit数)を指定するシンタックス(trisoup_vertex_number_bits)を含んでもよい。例えば、当該シンタックスの値が2である場合、頂点位置は、2bitであること、すなわち、0、1、2、3の4種類の値を取り得ることを意味する。 GSH2012 may include a syntax (trisoup_vertex_number_bits) that specifies the precision (number of bits) of the vertex position of Trisoup, which will be described later. For example, if the value of this syntax is 2, this means that the vertex position is 2 bits, meaning that it can take on four values: 0, 1, 2, and 3.

ここで、trisoup_vertex_number_bitsは、上述記のように、trisoup_depthの値に関わらず常に1つの値だけを伝送してもよいし、trisoup_depthの値に応じて復号する数を変化させてもよい。 Here, as described above, trisoup_vertex_number_bits may always transmit only one value regardless of the value of trisoup_depth, or the number to be decoded may be changed depending on the value of trisoup_depth.

例えば、各trisoup_depthに対応するtrisoup_vertex_number_bitsがそれぞれ復号されてもよい。言い換えると、trisoup_depthと同じ数だけ、trisoup_vertex_number_bitsが復号されてもよい。具体的には、例えば、trisoup_depthが2の場合、trisoup_vertex_number_bitsの値が2種類伝送されてもよい。 For example, trisoup_vertex_number_bits corresponding to each trisoup_depth may be decoded. In other words, the same number of trisoup_vertex_number_bits as trisoup_depth may be decoded. Specifically, for example, when trisoup_depth is 2, two types of values of trisoup_vertex_number_bits may be transmitted.

GSH2012は、後述するTrisoupの頂点のセントロイドの残差を復号するか否かを示すフラグ(trisoup_centroid_vertex_residual_flag)を含んでもよい。例えば、当該フラグの値が1の場合は、セントロイドの残差を復号することを意味し、当該フラグの値が0の場合は、セントロイドの残差を復号しないことを意味するように定義されていてもよい。 GSH2012 may include a flag (trisoup_centroid_vertex_residual_flag) indicating whether or not to decode the centroid residuals of the vertices of Trisoup, which will be described later. For example, the flag may be defined so that a value of 1 indicates that the centroid residuals are decoded, and a value of 0 indicates that the centroid residuals are not decoded.

ここで、trisoup_centroid_vertex_residual_flagは、上述のように、trisoup_depthの値に関わらず常に1つの値だけを伝送してもよいし、trisoup_depthの値に応じて復号する数を変化させてもよい。 Here, as described above, trisoup_centroid_vertex_residual_flag may always transmit only one value regardless of the value of trisoup_depth, or the number of decoded bits may be changed depending on the value of trisoup_depth.

例えば、各trisoup_depthに対応するtrisoup_centroid_vertex_residual_flagがそれぞれ復号されてもよい。言い換えると、trisoup_depthと同じ数だけ、trisoup_centroid_vertex_residual_flagが復号されてもよい。具体的には、例えば、trisoup_depthが2の場合、trisoup_centroid_vertex_residual_flagの値が2種類伝送されてもよい。 For example, trisoup_centroid_vertex_residual_flag corresponding to each trisoup_depth may be decoded. In other words, the same number of trisoup_centroid_vertex_residual_flag as trisoup_depth may be decoded. Specifically, for example, when trisoup_depth is 2, two types of values of trisoup_centroid_vertex_residual_flag may be transmitted.

GSH2012は、Trisoupを使用するとき、かつ、複数レベルでのTrisoupを許可するとき、階層i(i=0,...,trisoup_depth-1)ごとにユニークセグメントが対象階層に存在するか否かを示すフラグ(unique_segments_exist_flag[i])を含んでもよい。 When GSH2012 uses Trisoup and allows Trisoup at multiple levels, it may include a flag (unique_segments_exist_flag[i]) for each hierarchical level i (i=0,..., trisoup_depth-1) indicating whether a unique segment exists in the target hierarchical level.

例えば、unique_segments_exist_flag[i]の値が「1」の場合は、階層iに少なくとも1つ以上のユニークセグメントが存在することを意味する。また、unique_segments_exist_flag[i]の値が「0」の場合は、階層iにユニークセグメントが1つも存在しないことを意味する。 For example, if the value of unique_segments_exist_flag[i] is "1", it means that at least one unique segment exists in hierarchical layer i. Also, if the value of unique_segments_exist_flag[i] is "0", it means that no unique segments exist in hierarchical layer i.

GSH2012は、階層i(i=0,...,trisoup_depth-1)ごとにユニークセグメントが対象階層に存在する場合、すなわち、unique_segments_exist_flag[i]の値が「1」の場合、追加で対象階層のユニークセグメント数を示すシンタックスのビット数を示すシンタックス(num_unique_segments_bits_minus1[i])及び対象階層のユニークセグメント数を示すシンタックス(num_unique_segments_minus1[i])を含んでもよい。 For each hierarchical layer i (i = 0, ..., trisoup_depth-1), if a unique segment exists in the target hierarchical layer, i.e., if the value of unique_segments_exist_flag[i] is "1", GSH2012 may additionally include syntax (num_unique_segments_bits_minus1[i]) indicating the number of bits of the syntax indicating the number of unique segments in the target hierarchical layer and syntax (num_unique_segments_minus1[i]) indicating the number of unique segments in the target hierarchical layer.

ここで、num_unique_segments_bits_minus1[i]及びnum_unique_segments_minus1[i]の両方について、それぞれ本来の値から「1」を引いた値をシンタックスの値として符号化してもよい。 Here, for both num_unique_segments_bits_minus1[i] and num_unique_segments_minus1[i], the original value minus "1" may be encoded as the syntax value.

(ツリー合成部2020)
以下、図6を用いてツリー合成部2020の処理について説明する。図6は、ツリー合成部2020における処理の一例を示すフローチャートである。なお、以下では「Octree」を使用してツリーを合成する場合の例について説明する。
(Tree synthesis unit 2020)
The processing of the tree merging unit 2020 will be described below with reference to Fig. 6. Fig. 6 is a flowchart showing an example of the processing in the tree merging unit 2020. Note that, below, an example of merging trees using "Octree" will be described.

ステップS601において、ツリー合成部2020は、全てのDepthの処理が完了したかどうかを確認する。なお、Depth数は、点群符号化装置100から点群復号装置200に伝送するビットストリーム内に制御データとして含まれていてもよい。 In step S601, the tree synthesis unit 2020 checks whether processing for all depths has been completed. Note that the depth number may be included as control data in the bit stream transmitted from the point cloud encoding device 100 to the point cloud decoding device 200.

ツリー合成部2020は、対象Depthのノードサイズを算出する。「Octree」の場合、最初のDepthのノードサイズは、「2のDepth数乗」と定義されてもよい。すなわち、Depth数をNとする場合、最初のDepthのノードサイズは、2のN乗と定義されてもよい。 The tree synthesis unit 2020 calculates the node size of the target depth. In the case of an "Octree", the node size of the first depth may be defined as "2 to the power of the depth number". In other words, if the depth number is N, the node size of the first depth may be defined as 2 to the power of N.

また、2番目以降のDepthでのノードサイズは、Nの数を1つずつ減じていくことで定義されてもよい。すなわち、2番目のDepthのノードサイズは、「2の(N-1)乗」として定義され、3番目のDepthのノードサイズは、「2の(N-2)乗」として定義され、・・・と定義されてもよい。 In addition, the node size at the second and subsequent depths may be defined by decrementing the number N by one. That is, the node size at the second depth may be defined as "2 to the power of (N-1)", the node size at the third depth may be defined as "2 to the power of (N-2)", and so on.

或いは、ノードサイズは、常に2のべき乗で定義されるため、単純に指数部分(N、N-1、N-2、等)の値をノードサイズと考えてもよい。以降の説明では、ノードサイズとは、ノードの1辺の長さの指数部分の値を指すこととする。 Alternatively, because node sizes are always defined as powers of 2, you can simply think of the exponent part (N, N-1, N-2, etc.) as the node size. In the following explanation, node size refers to the exponent part of the length of one side of the node.

なお、以降では簡単のため、ノード形状が立方体の場合、すなわち、ノードの全ての辺の長さが等しい場合を例に説明する。 For simplicity's sake, we'll use the example below where the node shape is a cube, i.e. where all edges of the node are the same length.

QtBtを用いる場合、すなわち、ノード形状が直方体になり、ノードの各辺の長さが軸方向(x、y、z)毎に異なる場合、3方向のうち最も短い辺の長さをノードサイズと考えてもよい。同様に、3方向のうち最も長い辺の長さをノードサイズと考えてもよい。 When using QtBt, that is, when the node shape is a rectangular prism and the length of each side of the node varies in each axial direction (x, y, z), the length of the shortest side of the three directions may be considered to be the node size. Similarly, the length of the longest side of the three directions may be considered to be the node size.

ここで、Trisoupを使用するか否かを制御するフラグ(trisoup_enabled_flag)がTrisoupを使用することを示している場合、すなわち、trisoup_enabled_flagの値が「1」の時は、ツリー合成部2020は、処理するDepth数を、Trisoupノードサイズの最小値を規定するシンタックス(log2_trisoup_min_node_size_minus2)又はTrisoupノードサイズを規定するシンタックス(log2_trisoup_node_size_minus2)の値に基づいて変化させてもよい。かかる場合、例えば、以下のように定義してもよい。 Here, when the flag (trisoup_enabled_flag) that controls whether or not to use Trisoup indicates that Trisoup is to be used, that is, when the value of trisoup_enabled_flag is "1", the tree synthesis unit 2020 may change the number of Depths to be processed based on the value of the syntax (log2_trisoup_min_node_size_minus2) that specifies the minimum value of the Trisoup node size or the syntax (log2_trisoup_node_size_minus2) that specifies the Trisoup node size. In such a case, for example, it may be defined as follows.

処理Depth数=全Depth数-(最小の)Trisoupノードサイズ
ここで、最小のTrisoupノードサイズについては、例えば、(log2_trisoup_min_node_size_minus2+2)で定義できる。同様に、Trisoupノードサイズについては、(log2_trisoup_node_size_minus2+2)で定義できる。
Processing Depth Number=Total Depth Number−(Minimum) Trisoup Node Size Here, the minimum Trisoup node size can be defined as, for example, (log2_trisoup_min_node_size_minus2+2). Similarly, the Trisoup node size can be defined as (log2_trisoup_node_size_minus2+2).

この場合、全ての処理Depth数の処理が完了した場合は、ツリー合成部2020は、ステップS609へ進み、そうでない場合は、ツリー合成部2020は、ステップS602へ進む。 In this case, if processing for all processing depth numbers is completed, the tree synthesis unit 2020 proceeds to step S609, otherwise, the tree synthesis unit 2020 proceeds to step S602.

言い換えると、(処理Depth数-n)=0の場合は、ツリー合成部2020は、ステップS609へ進み、(処理Depth数-n)>0の場合は、ツリー合成部2020は、ステップS602へ進む。 In other words, if (processing depth number - n) = 0, the tree synthesis unit 2020 proceeds to step S609, and if (processing depth number - n) > 0, the tree synthesis unit 2020 proceeds to step S602.

また、ツリー合成部2020は、ステップS609へ進む際のノードサイズ(N-処理Depth数)を持つ全てのノードには、Trisoupが適用されると判定してもよい。 The tree synthesis unit 2020 may also determine that Trisoup is applied to all nodes having the node size (N-processing depth number) when proceeding to step S609.

ステップS602において、ツリー合成部2020は、対象Depthにて後述するTrisoup_applied_flagを復号する必要があるか否かを判定する。 In step S602, the tree synthesis unit 2020 determines whether or not it is necessary to decode the Trisoup_applied_flag described below at the target depth.

例えば、「複数レベルでのTrisoupが許可(trisoup_multilevel_enabled_flagの値が「1」)」で、且つ、「対象Depthのノードサイズ(N-n)が最大のTrisoupノードサイズ以下」の場合に、ツリー合成部2020は、「Trisoup_applied_flagの復号が必要である」と判定してもよい。 For example, if "Trisoups at multiple levels are permitted (the value of trisoup_multilevel_enabled_flag is "1")" and "the node size (N-n) of the target depth is equal to or smaller than the maximum trisoup node size," the tree synthesis unit 2020 may determine that "decoding of trisoup_applied_flag is necessary."

例えば、「複数レベルでのTrisoupが許可(trisoup_multilevel_enabled_flagの値が「1」)」で、且つ、「対象Depthのノードサイズ(N-n)が最大のTrisoupノードサイズ以下」で、且つ、「対象Depthのノードサイズ(N-n)が最小のTrisoupノードサイズ以上」の場合に、ツリー合成部2020は、「Trisoup_applied_flagの復号が必要である」と判定してもよい。 For example, if "multiple levels of Trisoup are allowed (the value of trisoup_multilevel_enabled_flag is "1")," and "the node size (N-n) of the target depth is equal to or smaller than the maximum Trisoup node size," and "the node size (N-n) of the target depth is equal to or larger than the minimum Trisoup node size," the tree synthesis unit 2020 may determine that "decoding of Trisoup_applied_flag is necessary."

また、ツリー合成部2020は、上述の条件が満たされない場合、「Trisoup_applied_flagの復号が必要ない」と判定してもよい。 In addition, if the above conditions are not met, the tree synthesis unit 2020 may determine that "decoding of Trisoup_applied_flag is not necessary."

ここで、最大のTrisoupノードサイズについては、例えば、(log2_trisoup_max_node_size_minus2+2)で定義できる。同様に、最小のTrisoupノードサイズについては、例えば、(log2_trisoup_min_node_size_minus2+2)で定義できる。 Here, the maximum Trisoup node size can be defined, for example, as (log2_trisoup_max_node_size_minus2 + 2). Similarly, the minimum Trisoup node size can be defined, for example, as (log2_trisoup_min_node_size_minus2 + 2).

上述の判定が完了したら、ツリー合成部2020は、ステップS603へ移る。 Once the above-mentioned determination is completed, the tree synthesis unit 2020 proceeds to step S603.

ステップS803において、ツリー合成部2020は、対象Depthに含まれる全てのノードの処理が完了したかどうかを判定する。 In step S803, the tree synthesis unit 2020 determines whether processing of all nodes included in the target Depth has been completed.

対象Depthの全てのノードの処理が完了したと判定した場合、ツリー合成部2020は、ステップS601へ移り、次のDepthの処理を行う。 If it is determined that processing of all nodes at the target Depth has been completed, the tree synthesis unit 2020 proceeds to step S601 and processes the next Depth.

一方、対象Depthの全てのノードの処理が完了していない場合、ツリー合成部2020は、ステップS604へ移る。 On the other hand, if processing of all nodes at the target depth has not been completed, the tree synthesis unit 2020 proceeds to step S604.

ステップS604において、ツリー合成部2020は、ステップS602で判定したTrisoup_applied_flagの復号の要否について確認する。 In step S604, the tree synthesis unit 2020 checks whether or not it is necessary to decode the Trisoup_applied_flag determined in step S602.

Trisoup_applied_flagの復号が必要であると判定されている場合は、ツリー合成部2020は、ステップS605へ進み、Trisoup_applied_flagの復号が必要でないと判定されている場合は、ツリー合成部2020は、ステップS608へ移る。 If it is determined that decoding of Trisoup_applied_flag is necessary, the tree synthesis unit 2020 proceeds to step S605, and if it is determined that decoding of Trisoup_applied_flag is not necessary, the tree synthesis unit 2020 proceeds to step S608.

ステップS605において、ツリー合成部2020は、Trisoup_applied_flagを復号する。 In step S605, the tree synthesis unit 2020 decodes Trisoup_applied_flag.

Trisoup_applied_flagは、対象ノードにTrisoupを適用するか否かを示す1ビットのフラグ(第2フラグ)である。例えば、かかるフラグの値が「1」の時に対象ノードにTrisoupを適用すると定義し、かかるフラグの値が「0」の時に対象ノードにTrisoupを適用しないと定義してもよい。 Trisoup_applied_flag is a 1-bit flag (second flag) that indicates whether Trisoup is applied to the target node. For example, it may be defined that Trisoup is applied to the target node when the value of this flag is "1", and that Trisoup is not applied to the target node when the value of this flag is "0".

ツリー合成部2020は、Trisoup_applied_flagを復号した後、ステップS606へ移る。 After the tree synthesis unit 2020 decodes Trisoup_applied_flag, it proceeds to step S606.

ステップS606において、ツリー合成部2020は、ステップS605で復号したTrisoup_applied_flagの値を確認する。 In step S606, the tree synthesis unit 2020 checks the value of Trisoup_applied_flag decoded in step S605.

対象ノードにTrisoupを適用する場合、すなわち、Trisoup_applied_flagの値が「1」の場合は、ツリー合成部2020は、ステップS607へ移る。 If Trisoup is to be applied to the target node, i.e., if the value of Trisoup_applied_flag is "1", the tree synthesis unit 2020 proceeds to step S607.

対象ノードにTrisoupを適用しない場合、すなわち、Trisoup_applied_flagの値が「0」の場合は、ツリー合成部2020は、ステップS608へ移る。 If Trisoup is not applied to the target node, i.e., if the value of Trisoup_applied_flag is "0", the tree synthesis unit 2020 proceeds to step S608.

ステップS607において、ツリー合成部2020は、対象ノードを、Trisoupを適用するノード、すなわち、Trisoupノードとして記憶する。かかる対象ノードに対しては、これ以上、「Octree」によるノードの分割を適用しないこととする。その後、ツリー合成部2020は、ステップS603に進み、次のノードの処理へ移る。 In step S607, the tree synthesis unit 2020 stores the target node as a node to which Trisoup is applied, i.e., as a Trisoup node. No further node splitting by "Octree" is applied to the target node. The tree synthesis unit 2020 then proceeds to step S603 and moves on to processing the next node.

ステップS608において、ツリー合成部2020は、occpancy codeと呼ばれる情報を復号する。 In step S608, the tree synthesis unit 2020 decodes information called the occupancy code.

occpancy codeは、「Octree」の場合は、対象ノードをx、y、z軸方向にそれぞれ半分に分割して、8つのノード(子ノードと呼ぶ)に分割した際に、それぞれの子ノード内に復号対象の点が含まれているか否かを示す情報である。 In the case of "Octree", the occupancy code is information that indicates whether the point to be decoded is contained in each of the child nodes when the target node is divided in half in each of the x, y, and z axis directions and divided into eight nodes (called child nodes).

例えば、occpancy codeは、各子ノードに対して1ビットの情報を割り当て、かかる1ビットの情報が「1」の場合は、かかる子ノード内に復号対象の点が含まれると定義され、かかる1ビットの情報が「0」の場合は、かかる子ノード内に復号対象の点が含まれないと定義されてもよい。 For example, the occupancy code may assign one bit of information to each child node, and if the one bit of information is "1", it may be defined that the point to be decoded is included in the child node, and if the one bit of information is "0", it may be defined that the point to be decoded is not included in the child node.

ツリー合成部2020は、かかるoccpancy codeを復号する際に、各子ノードに復号対象の点が存在する確率を予め推定し、その確率に基づいて各子ノードに対応するビットをエントロピー復号してもよい。 When decoding such an occurrence code, the tree synthesis unit 2020 may estimate in advance the probability that the point to be decoded exists in each child node, and entropy decode the bits corresponding to each child node based on that probability.

また、ステップS608では、ツリー合成部2020は、後述するS901で使用するために、Trisoupを適用しなかったノードの位置情報をDepthごとに一次元配列等に保存するようにしてもよい。 In addition, in step S608, the tree synthesis unit 2020 may store the position information of nodes to which Trisoup was not applied in a one-dimensional array or the like for each Depth, for use in S901 described below.

具体的には、ツリー合成部2020は、ステップS608における対象ノード(分割する前のノード)の位置情報を保存するようにしてもよい。例えば、ツリー合成部2020は、対象ノード(直方体)の頂点のうち、一番原点に近い点の座標値をDepthごとに一次元配列に保存し、この情報が、後述する近似表面合成部2030で使用されてもよい。 Specifically, the tree synthesis unit 2020 may store position information of the target node (node before division) in step S608. For example, the tree synthesis unit 2020 may store the coordinate values of the vertices of the target node (rectangular parallelepiped) that are closest to the origin in a one-dimensional array for each Depth, and this information may be used by the approximate surface synthesis unit 2030 described later.

直方体のサイズ(x軸、y軸、z軸方向の辺の長さ)がDepthごとに決定している場合、上記のようにノード内の一番原点に近い点の座標値とDepthが特定できれば、当該ノードの位置情報を復元することができる。 If the size of the rectangular parallelepiped (the lengths of the sides in the x-, y-, and z-directions) is determined for each Depth, then if the coordinates and Depth of the point closest to the origin within the node can be identified as described above, the position information of the node can be restored.

同様に、点群符号化装置100においては、エントロピー符号化してもよい。 Similarly, entropy coding may be performed in the point cloud coding device 100.

(近似表面合成部2030)
近似表面合成部2030は、図10及び図14で説明するように、ツリー合成部2020にて、Trisoupノードと判定された各ノードについて、復号処理を行うように構成されている。
(Approximate Surface Synthesis Unit 2030)
The approximate surface synthesis unit 2030 is configured to perform a decoding process for each node determined to be a Trisoup node by the tree synthesis unit 2020, as will be described with reference to Figs.

以下、図7~図16を用いて近似表面合成部2030の処理の例について説明する。 Below, an example of the processing performed by the approximate surface synthesis unit 2030 is explained using Figures 7 to 16.

図7は、近似表面合成部2030の処理の一例を示すフローチャートである。 Figure 7 is a flowchart showing an example of processing by the approximate surface synthesis unit 2030.

図7に示すように、ステップS701において、近似表面合成部2030は、全てのtrisoup_depthでの処理が完了したかどうかを判定する。 As shown in FIG. 7, in step S701, the approximate surface synthesis unit 2030 determines whether processing has been completed for all trisoup_depths.

全てのtrisoup_depthについて処理が完了した場合、ステップS709へ進み、処理を終了する。全てのtrisoup_depthの処理が完了していない場合、ステップS702へ進む。 If processing has been completed for all trisoup_depths, proceed to step S709 and end processing. If processing has not been completed for all trisoup_depths, proceed to step S702.

ステップS702において、近似表面合成部2030は、当該trisoup_depthに対応するTrisoupノードサイズが、最大Trisoupノードサイズと等しいかどうかを判定する。 In step S702, the approximate surface synthesis unit 2030 determines whether the Trisoup node size corresponding to the trisoup_depth is equal to the maximum Trisoup node size.

両者が等しい場合は、本動作は、ステップS704へ進み、両者が等しくない場合、すなわち、当該trisoup_depthに対応するTrisoupノードサイズが、最大Trisoupノードサイズより小さい場合、本動作は、ステップS703へ進む。 If the two are equal, the operation proceeds to step S704; if the two are not equal, i.e., if the Trisoup node size corresponding to the trisoup_depth is smaller than the maximum Trisoup node size, the operation proceeds to step S703.

ステップS702において、近似表面合成部2030は、ノード毎の頂点位置の取得及び統合を行う。 In step S702, the approximate surface synthesis unit 2030 obtains and integrates the vertex positions for each node.

ステップS703において、近似表面合成部2030は、後述するステップS708によって生成される「内挿された頂点(内挿処理が行われた頂点)」に対応するセグメントを生成する。図8は、ステップS703の処理の一例を示すフローチャートである。 In step S703, the approximate surface synthesis unit 2030 generates segments corresponding to the "interpolated vertices (vertices on which the interpolation process has been performed)" generated in step S708, which will be described later. FIG. 8 is a flowchart showing an example of the process in step S703.

以下、図8を用いて、ステップS703の処理の一例について説明する。 An example of the processing in step S703 is described below with reference to FIG.

図8に示すように、ステップS801において、近似表面合成部2030は、後述するステップS708で生成した全ての「内挿された頂点」について処理が完了したか否かを判定する。 As shown in FIG. 8, in step S801, the approximate surface synthesis unit 2030 determines whether processing has been completed for all of the "interpolated vertices" generated in step S708, which will be described later.

完了した場合、本動作は、ステップS805へ進み、処理を終了する。完了していない場合、本動作は、次の「内挿された頂点」について処理するため、ステップS802へ進む。 If completed, the operation proceeds to step S805 and ends processing. If not completed, the operation proceeds to step S802 to process the next "interpolated vertex."

ステップS802において、近似表面合成部2030は、「内挿された頂点」がどの方向(x、y、z方向のいずれか)のセグメント上に存在する点なのかを判定する。 In step S802, the approximate surface synthesis unit 2030 determines on which segment (x, y, or z direction) the "interpolated vertex" exists.

例えば、後述するようにセグメント及びTrisoupの頂点が、整数座標位置から0.5ずれた位置に存在する場合、x方向のセグメントでは、「内挿された頂点」のx座標のみが、整数値(x.0)になり、y座標及びz座標は、小数値(x.5)となる。 For example, as described below, if the vertices of a segment and Trisoup are located at a position that is 0.5 offset from the integer coordinate position, then in the x-direction segment, only the x-coordinate of the "interpolated vertex" will be an integer value (x.0), and the y-coordinate and z-coordinate will be decimal values (x.5).

同様に、y方向のセグメントでは、y座標のみが整数値となり、z方向のセグメントでは、z座標のみが整数値となるため、近似表面合成部2030は、いずれの軸方向の座標が整数であるについて確認することで、当該「内挿された頂点」が存在すべきセグメントの方向を判定することができる。 Similarly, in a segment in the y direction, only the y coordinate is an integer value, and in a segment in the z direction, only the z coordinate is an integer value, so the approximate surface synthesis unit 2030 can determine the direction of the segment in which the "interpolated vertex" should exist by checking which axis coordinate is an integer.

なお、座標値を整数形式で保存している場合、例えば、0.5を表現するために、真の座標値を2倍した上で整数値として保持している場合は、近似表面合成部2030は、各軸方向の座標値の最下位ビットが1であるかどうかで、整数か小数(x.5)かを判定することができる。 When coordinate values are stored in integer format, for example when the true coordinate values are doubled and stored as integer values to represent 0.5, the approximate surface synthesis unit 2030 can determine whether the coordinate values in each axis direction are integers or decimals (x.5) depending on whether the least significant bit is 1.

近似表面合成部2030は、このように判定した結果を保存し、次のステップS803へ進む。 The approximate surface synthesis unit 2030 stores the results of this determination and proceeds to the next step S803.

ステップS803において、近似表面合成部2030は、当該「内挿された頂点」が、現在のTrisoupノードサイズにおける辺上に存在するか否かを判定する。例えば、近似表面合成部2030は、以下の方法で、かかる判定を行うことができる。
(1)第1に、近似表面合成部2030は、「内挿された頂点」のx、y、z軸のそれぞれの座標値を整数に量子化する。
In step S803, the approximate surface synthesis unit 2030 determines whether the "interpolated vertex" exists on an edge in the current Trisoup node size. For example, the approximate surface synthesis unit 2030 can perform such a determination in the following manner.
(1) First, the approximate surface synthesis unit 2030 quantizes the x-, y-, and z-axis coordinate values of the “interpolated vertex” to integers.

具体的には、近似表面合成部2030は、各座標値に0.5を足した後に小数点以下を切り捨てする。 Specifically, the approximate surface synthesis unit 2030 adds 0.5 to each coordinate value and then rounds down to an integer.

ここで、近似表面合成部2030は、座標値が真の値の2倍の整数値で保存されている場合、1を加えた後に2で除算し小数点以下を切り捨てする。 Here, if the coordinate values are stored as integer values that are twice the true value, the approximate surface synthesis unit 2030 adds 1, divides by 2, and truncates to the nearest integer.

或いは、近似表面合成部2030は、座標値が真の値の2倍の整数値で保存されている場合、1を加えた後に右に1ビットシフトする。 Alternatively, if the coordinate values are stored as integer values that are twice the true values, the approximate surface synthesis unit 2030 adds 1 and then shifts them one bit to the right.

なお、ここでは、x、y、z軸の全ての軸方向について整数化する場合を説明したが、近似表面合成部2030は、ステップS802で判定した「方向」以外の軸のみを整数化するようにしてもよい。 Note that, although the case where all of the x, y, and z axial directions are converted to integers has been described here, the approximate surface synthesis unit 2030 may convert only the axes other than the "direction" determined in step S802 into integers.

例えば、近似表面合成部2030は、上述の「方向」がx軸の場合、y座標及びz座標のみ整数化すればよい。
(2)第2に、近似表面合成部2030は、ステップS802で判定した「方向」以外の軸の整数化後の座標値が、当該Trisoupノードサイズの倍数になっているか否かを確認する。
For example, when the above-mentioned "direction" is the x-axis, the approximate surface synthesis unit 2030 needs to convert only the y-coordinate and the z-coordinate into integers.
(2) Secondly, the approximate surface synthesis unit 2030 checks whether the coordinate values after integer conversion of the axes other than the "direction" determined in step S802 are multiples of the Trisoup node size.

例えば、近似表面合成部2030は、上述の「方向」がx軸方向で、当該Trisoupノードサイズの値が8(=2)の場合、当該整数化されたy座標及びz座標が、それぞれ8の倍数になっているかどうかを確認する。 For example, when the above-mentioned "direction" is the x-axis direction and the value of the Trisoup node size is 8 (=2 3 ), the approximate surface synthesis unit 2030 checks whether the integer-converted y coordinate and z coordinate are each a multiple of 8.

上述の(2)の処理において、「方向」以外の軸の整数化後の座標値が、いずれも当該Trisoupノードサイズの倍数になっている場合、近似表面合成部2030は、当該「内挿された頂点」が現在のTrisoupノードサイズにおける辺上に存在すると判定し、ステップS804へ進む。 In the above process (2), if the coordinate values after integer conversion of the axes other than the "direction" are all multiples of the Trisoup node size, the approximate surface synthesis unit 2030 determines that the "interpolated vertex" exists on an edge of the current Trisoup node size, and proceeds to step S804.

そうでない場合、すなわち、少なくとも1つの軸方向の座標値が当該Trisoupノードサイズの倍数になっていない場合、近似表面合成部2030は、当該「内挿された頂点」が現在のTrisoupノードサイズにおける辺上に存在しないと判定し、ステップS801へ進み、次の「内挿された頂点」の処理に移る。 If this is not the case, that is, if the coordinate value in at least one axis direction is not a multiple of the Trisoup node size, the approximate surface synthesis unit 2030 determines that the "interpolated vertex" does not exist on an edge in the current Trisoup node size, and proceeds to step S801 to process the next "interpolated vertex."

ステップS804において、近似表面合成部2030は、ステップS803で整数化した「内挿された頂点」の座標を用いて、「内挿された頂点」に対応するセグメントを生成する。 In step S804, the approximate surface synthesis unit 2030 generates a segment corresponding to the "interpolated vertex" using the coordinates of the "interpolated vertex" that were converted to integers in step S803.

ここで、セグメントは、始点の座標(x、y、z)、終点の座標(x、y、z)、及びセグメント上における頂点位置(0~Trisoupノードサイズー1)の3つの要素から構成されていてもよい。 Here, a segment may consist of three elements: the coordinates of the start point (x, y, z), the coordinates of the end point (x, y, z), and the vertex position on the segment (0 to Trisoup node size - 1).

上述の始点は、例えば、前記の整数化した「内挿された頂点」の座標値を、Trisoupノードサイズで量子化することにより得られる。 The above-mentioned starting point is obtained, for example, by quantizing the coordinate value of the "interpolated vertex" converted to an integer by the Trisoup node size.

具体的には、例えば、Trisoupノードサイズの2を底とする対数をとった値をTrisoupNodeSizeLog2とすると、「内挿された頂点」の座標値にそれぞれ下記の演算を行うことで導出できる。 Specifically, for example, if the logarithm of the base 2 of the Trisoup node size is TrisoupNodeSizeLog2, it can be derived by performing the following calculations on the coordinate values of the "interpolated vertices".

量子化後の座標値 = (座標値>>TrisoupNodeSizeLog2)<<TrisoupNodeSizeLog2
ここで、>>は、右ビットシフト、<<は、左ビットシフトをそれぞれ意味している。
Quantized coordinate value = (coordinate value >> TrisoupNodeSizeLog2) << TrisoupNodeSizeLog2
Here, >> means a right bit shift, and << means a left bit shift.

なお、ステップS804の処理に進む場合、ステップS802で判定した「方向」以外の軸の座標値は、既にTrisoupノードサイズの倍数であることが明らかであるので、ステップS804では、近似表面合成部2030は、ステップS802で判定した「方向」に対応する軸の座標値のみ上記の量子化処理を行うこととしてもよい。 When proceeding to the processing of step S804, it is clear that the coordinate values of the axes other than the "direction" determined in step S802 are already multiples of the Trisoup node size, so in step S804, the approximate surface synthesis unit 2030 may perform the above-mentioned quantization processing only on the coordinate values of the axis corresponding to the "direction" determined in step S802.

次に、終点の座標は、始点の座標に対して、ステップS802で判定した「方向」に対応する軸の座標値に、当該Trisoupノードサイズの値を加算することで算出できる。 Next, the coordinates of the end point can be calculated by adding the value of the Trisoup node size to the coordinate value of the axis corresponding to the "direction" determined in step S802 for the coordinates of the start point.

最後に、セグメント上における頂点位置は、ステップS802で判定した「方向」に対応する軸における整数化された「内挿された頂点」の座標値から、上述の「方向」に対応する軸における始点の座標値を減ずることで導出できる。 Finally, the vertex position on the segment can be derived by subtracting the coordinate value of the starting point on the axis corresponding to the above-mentioned "direction" from the coordinate value of the "interpolated vertex" that has been converted to an integer on the axis corresponding to the "direction" determined in step S802.

以上の処理を行った後に、本動作は、ステップS801へ進み、次の「内挿された頂点」の処理に進む。 After performing the above processing, the operation proceeds to step S801 and proceeds to processing the next "interpolated vertex."

以上のように、近似表面合成部2030は、図7のステップS703において「内挿された頂点」からセグメントを生成した後、ステップS704へ進む。 As described above, the approximate surface synthesis unit 2030 generates segments from the "interpolated vertices" in step S703 of FIG. 7, and then proceeds to step S704.

ステップS704において、近似表面合成部2030は、次のステップS705における頂点の復号に用いるための隣接情報を収集する。 In step S704, the approximate surface synthesis unit 2030 collects adjacent information to be used for decoding the vertices in the next step S705.

図9は、ステップS704の処理の一例を示すフローチャートである。以下、図9を用いて、ステップS704の処理の一例について説明する。 Figure 9 is a flowchart showing an example of the processing of step S704. Below, an example of the processing of step S704 is described using Figure 9.

図9に示すように、ステップS901において、近似表面合成部2030は、マスク情報を生成する。図10に、マスク情報の生成方法の具体例を示す。 As shown in FIG. 9, in step S901, the approximate surface synthesis unit 2030 generates mask information. FIG. 10 shows a specific example of a method for generating mask information.

マスク情報を生成する場合、図10に示すように、近似表面合成部2030は、ステップS1001において、当該Trisoupノードサイズにおける全Trisoupノードについて処理が完了したか否かを判定する。 When generating mask information, as shown in FIG. 10, in step S1001, the approximate surface synthesis unit 2030 determines whether processing has been completed for all Trisoup nodes for the Trisoup node size.

完了した場合は、本動作は、ステップS1003へ進み、完了していない場合は、本動作は、ステップS1002へ進む。 If completed, the operation proceeds to step S1003; if not completed, the operation proceeds to step S1002.

ステップS1002において、近似表面合成部2030は、当該Trisoupノードについて、36本のセグメント及び各セグメントに対応するマスク値を生成する。 In step S1002, the approximate surface synthesis unit 2030 generates 36 segments and mask values corresponding to each segment for the Trisoup node.

図11に、セグメント及びマスク値の生成例を示す。図11の網掛け部分が、当該Trisoupノードの例を示し、各線分が、セグメントの例を示し、セグメント上に記載されている数字が、マスク値の例を示している。 Figure 11 shows an example of segment and mask value generation. The shaded areas in Figure 11 show examples of the Trisoup node, each line segment shows an example of a segment, and the numbers written on the segments show examples of mask values.

なお、全てのセグメントについてマスク値の例を記載するのが困難であるため、マスク値の例は、一部のセグメントにのみ記載しているが、実際は、全てのセグメントについて、以下の通り、マスク値を設定する。 Note that because it is difficult to provide examples of mask values for all segments, examples of mask values are provided only for some segments, but in reality, mask values are set for all segments as follows.

まず、近似表面合成部2030は、セグメントについては、当該Trisoupノードの12本の辺、x方向、y方向、z方向のそれぞれについて当該ノードより座標値の大きな隣接位置、及び、座標値の小さな隣接位置にそれぞれ4本ずつのセグメントを生成し、図11に示すように、計36本のセグメントを生成する。 First, the approximate surface synthesis unit 2030 generates four segments each at adjacent positions with larger coordinate values than the node and adjacent positions with smaller coordinate values for each of the 12 sides of the Trisoup node in the x, y, and z directions, generating a total of 36 segments as shown in Figure 11.

ここで、各セグメントは、始点及び終点の情報を持ち、頂点は存在しないため、頂点位置の情報は保持しない。 Here, each segment has information about its start and end points, but since there are no vertices, no information about the vertex positions is stored.

次に、各セグメントのマスク値の設定例について説明する。 Next, we will explain examples of setting mask values for each segment.

近似表面合成部2030は、当該Trisoupノードの12本の辺に対応するセグメントに対して、それぞれマスク値の下位4ビットのいずれかのビットのみが1で、それ以外が0のマスク値を設定する。 The approximate surface synthesis unit 2030 sets a mask value for each segment corresponding to the 12 edges of the Trisoup node such that only one of the lowest 4 bits of the mask value is 1 and the rest are 0.

例えば、図11に示すように、近似表面合成部2030は、x軸方向のセグメントには、1、2、4、8のマスク値を設定してもよい。 For example, as shown in FIG. 11, the approximate surface synthesis unit 2030 may set mask values of 1, 2, 4, and 8 for segments in the x-axis direction.

同様に、近似表面合成部2030は、y軸方向のセグメントには、1+(1<<13)、2+(1<<13)、4+(1<<13)、8+(1<<13)のマスク値を設定してもよい。 Similarly, the approximate surface synthesis unit 2030 may set mask values of 1+(1<<13), 2+(1<<13), 4+(1<<13), and 8+(1<<13) for segments in the y-axis direction.

同様に、近似表面合成部2030は、z軸方向のセグメントには、1+(1<<14)、2+(1<<14)、4+(1<<14)、8+(1<<14)のマスク値を設定してもよい。 Similarly, the approximate surface synthesis unit 2030 may set mask values of 1+(1<<14), 2+(1<<14), 4+(1<<14), and 8+(1<<14) for segments in the z-axis direction.

このように設定した場合、マスク値の1ビット目~4ビット目のいずれかのビットが1の場合、当該セグメントに対応するノードがTrisoupノードであることが判別できる。 When set in this way, if any of the first through fourth bits of the mask value is 1, it can be determined that the node corresponding to the segment is a Trisoup node.

次に、近似表面合成部2030は、当該Trisoupノードよりx方向、y方向、z方向にそれぞれ座標値が大きくなる方向の隣接ノードに対応するセグメント(x、y、z方向のそれぞれで4本ずつ計12本)には、図11に示すように、それぞれ16、32、64、128のマスク値を設定してもよい。 Next, the approximate surface synthesis unit 2030 may set mask values of 16, 32, 64, and 128, respectively, for the segments (four in each of the x, y, and z directions, totaling 12) corresponding to adjacent nodes whose coordinate values increase from the Trisoup node in the x, y, and z directions, as shown in FIG. 11.

このように設定した場合、マスク値の5ビット目~8ビット目のいずれかのビットが1の場合、当該セグメントに対して座標値が小さくなる方の隣接ノードが、Trisoupノードであることが判別できる。 When set in this way, if any of the 5th to 8th bits of the mask value is 1, it can be determined that the adjacent node with the smaller coordinate value for the segment is a Trisoup node.

次に、近似表面合成部2030は、当該Trisoupノードよりx方向、y方向、z方向にそれぞれ座標値が小さくなる方向の隣接ノードに対応するセグメント(x、y、z方向のそれぞれで4本ずつ計12本)には、図11に示すように、それぞれ256、512、1024、2048のマスク値を設定してもよい。 Next, the approximate surface synthesis unit 2030 may set mask values of 256, 512, 1024, and 2048, respectively, as shown in FIG. 11, for the segments (four in each of the x, y, and z directions, totaling 12) corresponding to adjacent nodes whose coordinate values are smaller than the Trisoup node in the x, y, and z directions.

このように設定した場合、マスク値の9ビット目~12ビット目のいずれかのビットが1の場合、当該セグメントに対して座標値が大きくなる方の隣接ノードが、Trisoupノードであることが判別できる。 When set in this way, if any of the 9th to 12th bits of the mask value is 1, it can be determined that the adjacent node with the larger coordinate value for the segment is a Trisoup node.

上述のように、近似表面合成部2030は、セグメント及びそれに対応するマスク値を生成した後、ステップS1001へ進み、次のTrisoupノードの処理に移る。 As described above, after generating the segments and their corresponding mask values, the approximate surface synthesis unit 2030 proceeds to step S1001 and moves on to processing the next Trisoup node.

ここで、ステップS1001での処理対象のノードに、上述のステップS608で保存した、当該DepthにおいてTrisoupを適用しなかったノードを、本ステップの処理対象として加えてもよい。 Here, the nodes to be processed in step S1001 that were saved in step S608 above and to which Trisoup was not applied at that Depth may be added as the nodes to be processed in this step.

「当該DepthにおいてTrisoupを適用しなかったノード」には、当該Depthにおいては、Trisoupが適用されないため、当該ノード自体にTrisoupの頂点等は生成されないが、当該Depthより大きなDepthにおいてTrisoupが適用されるはずの領域である。よって、ステップS1002で「当該DepthにおいてTrisoupを適用しなかったノード」のマスクを生成する際は、上述の「マスク値の1ビット目~4ビット目のいずれかのビットが1」になるマスクは設定せず、「マスク値の5ビット目~8ビット目のいずれかのビットが1」になるマスクと、「マスク値の9ビット目~12ビット目のいずれかのビットが1」になるマスクのみを設定する。 For "nodes to which Trisoup has not been applied at the relevant depth", Trisoup is not applied at the relevant depth, so no Trisoup vertices are generated for the node itself, but it is an area where Trisoup should be applied at a depth greater than the relevant depth. Therefore, when generating a mask for "nodes to which Trisoup has not been applied at the relevant depth" in step S1002, a mask in which "any bit in the 1st to 4th bits of the mask value is 1" as described above is not set, and only a mask in which "any bit in the 5th to 8th bits of the mask value is 1" and a mask in which "any bit in the 9th to 12th bits of the mask value is 1" are set.

ステップS1003において、近似表面合成部2030は、ステップS703で生成した「内挿された頂点」に対応するセグメントについて、全てのセグメントの処理を完了したかどうかを判定する。 In step S1003, the approximate surface synthesis unit 2030 determines whether processing of all segments corresponding to the "interpolated vertices" generated in step S703 has been completed.

完了した場合は、本動作は、ステップS1005へ進み、ステップS901のマスク生成処理を終了する。完了していない場合、本動作は、ステップS1004へ進む。 If completed, the operation proceeds to step S1005, and the mask generation process of step S901 ends. If not completed, the operation proceeds to step S1004.

ステップS1004において、近似表面合成部2030は、当該「内挿された頂点」に対応するセグメントについて、当該セグメントに「内挿された頂点」が存在することを意味するマスク値を生成する。 In step S1004, the approximate surface synthesis unit 2030 generates a mask value for the segment corresponding to the "interpolated vertex," which indicates that the "interpolated vertex" exists in the segment.

近似表面合成部2030は、このマスク値について、例えば、1<<15の値を設定しても良い。このような値を設定した場合、マスク値の16ビット目が1の場合、当該セグメントには「内挿された頂点」が存在すると判定することができる。 The approximate surface synthesis unit 2030 may set this mask value to, for example, a value of 1<<15. When such a value is set, if the 16th bit of the mask value is 1, it can be determined that an "interpolated vertex" exists in the segment.

近似表面合成部2030は、マスク値を生成した後、ステップS1003へ進み、次のセグメントの処理に進む。 After generating the mask value, the approximate surface synthesis unit 2030 proceeds to step S1003 and proceeds to process the next segment.

なお、ステップS1002及びステップS1004で生成したマスク値のそれぞれは、いずれも2のべき乗の値である。このようにすることで、後述するステップS905において、同一位置に存在するセグメントのマスク値を合成する際に、ビット演算(論理和)をとることで容易にマスク値を合成できる。 Note that the mask values generated in steps S1002 and S1004 are both powers of 2. This makes it easy to combine mask values by performing a bit operation (logical sum) when combining mask values of segments that exist in the same position in step S905, which will be described later.

また、このように合成したマスク値の各ビットが1か0かで、上述したように、当該セグメントの情報(Trisoupノードか否か、隣接にTrisoupノードが存在するか、当該セグメントに「内挿された頂点」が存在するか等)を得ることができる。 In addition, depending on whether each bit of the mask value synthesized in this way is 1 or 0, as described above, information about the segment (whether it is a Trisoup node, whether there is an adjacent Trisoup node, whether there is an "interpolated vertex" in the segment, etc.) can be obtained.

近似表面合成部2030は、以上のようにマスク情報を生成した後、ステップS902へ進む。 After generating the mask information as described above, the approximate surface synthesis unit 2030 proceeds to step S902.

ステップS902において、近似表面合成部2030は、ステップS901で生成したセグメント、及び、「内挿された頂点」に対応するセグメントを全てまとめた上で、ソートする。 In step S902, the approximate surface synthesis unit 2030 collects and sorts all of the segments generated in step S901 and the segments corresponding to the "interpolated vertices."

近似表面合成部2030は、例えば、各セグメントの始点座標及び終点座標に基づいてソートする。かかる処理を行うことで、同一の始点と終点を持つセグメントが連続するように並べ替えることができる。 The approximate surface synthesis unit 2030 sorts, for example, based on the start and end coordinates of each segment. By performing such processing, it is possible to rearrange the segments so that segments having the same start and end points are consecutive.

近似表面合成部2030は、かかるソートが完了した後に、ステップS903へ進む。 After completing this sorting, the approximate surface synthesis unit 2030 proceeds to step S903.

ステップS903において、近似表面合成部2030は、ステップS902でソートした後のセグメントについて、全てのセグメントの処理が完了したか否かを判定する。 In step S903, the approximate surface synthesis unit 2030 determines whether processing of all segments after sorting in step S902 has been completed.

完了した場合は、本動作は、ステップS909へ進み、ステップS704の隣接情報の収集処理を終了する。完了していない場合は、本動作は、ステップS904へ進む。 If completed, the operation proceeds to step S909, and the neighbor information collection process of step S704 ends. If not completed, the operation proceeds to step S904.

ステップS904において、近似表面合成部2030は、当該セグメントが、直前に処理したセグメントと同一位置であるかどうかを判定する。 In step S904, the approximate surface synthesis unit 2030 determines whether the segment is in the same position as the previously processed segment.

具体的には、近似表面合成部2030は、例えば、セグメントの始点の座標及び終点の座標の両方が、直前に処理したセグメントと同一か否かを判定する。 Specifically, the approximate surface synthesis unit 2030 determines, for example, whether or not both the coordinates of the start point and the coordinates of the end point of the segment are the same as those of the segment processed immediately before.

直前に処理したセグメントと同一位置である場合は、本動作は、ステップS905へ進む。直前に処理したセグメントと同一位置ではない場合は、本動作は、ステップS906へ進む。 If the position is the same as the previously processed segment, the operation proceeds to step S905. If the position is not the same as the previously processed segment, the operation proceeds to step S906.

ステップS905において、近似表面合成部2030は、ステップS901で生成した当該セグメントに対応するマスク値と、直前までに処理した同一位置の各セグメントのマスク値とを統合する。 In step S905, the approximate surface synthesis unit 2030 integrates the mask value corresponding to the segment generated in step S901 with the mask values of each segment at the same position that was processed up to that point.

例えば、近似表面合成部2030は、ステップS901で説明したように各セグメントに対応するマスク値が2のべき乗で構成される場合、それぞれのセグメントのマスク値の論理和をとることでマスクを統合することができる。 For example, when the mask values corresponding to each segment are composed of powers of 2 as described in step S901, the approximate surface synthesis unit 2030 can integrate the masks by taking the logical sum of the mask values of each segment.

近似表面合成部2030は、マスクを統合した後、ステップS907へ進む。 After integrating the masks, the approximate surface synthesis unit 2030 proceeds to step S907.

ステップS906において、近似表面合成部2030は、当該セグメントの直前に処理したセグメントを、所定条件Aを満たす場合、ユニークセグメントとして保存する。 In step S906, the approximate surface synthesis unit 2030 stores the segment processed immediately before the segment in question as a unique segment if it satisfies a predetermined condition A.

例えば、所定条件Aは、直前に処理したセグメントがTrisoupノードに対応するセグメントである場合、としてもよい。 For example, the specified condition A may be when the previously processed segment is a segment corresponding to a Trisoup node.

例えば、ステップS905で統合したマスク値の下位4ビットの少なくともいずれか1ビットが1である場合、直前に処理したセグメントはTrisoupノードに対応するセグメントであることが分かる。 For example, if at least one of the lowest four bits of the mask value integrated in step S905 is 1, it can be determined that the previously processed segment is a segment corresponding to the Trisoup node.

近似表面合成部2030は、ユニークセグメントに関する情報として、例えば、当該ユニークセグメントに関する、始点の座標、終点の座標、後述するステップS907で説明する内挿点の情報、後述するステップS908で説明する隣接セグメントの情報、及び、ステップS905で統合したマスク値を、それぞれ保存することとしてもよい。これらの情報は、ステップS705の頂点の復号処理において使用される。 The approximate surface synthesis unit 2030 may store, as information about a unique segment, for example, the coordinates of the start point, the coordinates of the end point, information about the interpolation points described in step S907 below, information about adjacent segments described in step S908 below, and the mask value integrated in step S905. This information is used in the vertex decoding process in step S705.

近似表面合成部2030は、ユニークセグメントに関する情報を保存した後、各種情報(内挿点の情報、隣接セグメントの情報、統合したマスク値等)を初期化する。 After saving information about the unique segments, the approximate surface synthesis unit 2030 initializes various information (interpolation point information, adjacent segment information, integrated mask values, etc.).

また、近似表面合成部2030は、所定条件を満たさなかった場合、初期化のみを実施する。以上の処理が完了後、本動作は、ステップS907へ進む。 If the predetermined conditions are not met, the approximate surface synthesis unit 2030 performs only initialization. After the above processing is completed, the operation proceeds to step S907.

ステップS907において、近似表面合成部2030は、所定条件Bを満たす場合、内挿点に関する情報を保存する。 In step S907, if the predetermined condition B is satisfied, the approximate surface synthesis unit 2030 stores information about the interpolation points.

例えば、所定条件Bは、当該セグメントのマスク値が、当該セグメントに「内挿された頂点」が存在することを示している場合としてもよい。具体的には、例えば、所定条件Bは、マスク値の16ビット目が1であること、としてもよい。 For example, the predetermined condition B may be that the mask value of the segment indicates that an "interpolated vertex" exists in the segment. Specifically, the predetermined condition B may be that the 16th bit of the mask value is 1.

近似表面合成部2030は、所定条件Bを満たす場合、「内挿された頂点」の座標を保存する。具体的には、近似表面合成部2030は、ステップS804で生成した「セグメント上における頂点位置」の値を保存する。ここで保存された値は、ステップS906においてユニークセグメントに関する情報として保存される。 If the predetermined condition B is satisfied, the approximate surface synthesis unit 2030 stores the coordinates of the "interpolated vertex." Specifically, the approximate surface synthesis unit 2030 stores the value of the "vertex position on the segment" generated in step S804. The value stored here is stored as information about the unique segment in step S906.

当該セグメントが、ステップS906においてユニークセグメントであると判定されなかった場合(ステップS906の所定条件Aが満たされなかった場合)は、ステップS907で保存された当該セグメントの内挿点に関する情報は、破棄される。 If the segment is not determined to be a unique segment in step S906 (if the specified condition A in step S906 is not satisfied), the information about the interpolation points of the segment stored in step S907 is discarded.

なお、近似表面合成部2030は、「セグメント上における頂点位置」の値を保存する配列を別途準備しておき、当該ステップではその配列における当該セグメントに対応する値を特定するためのindex値を、座標値そのものの代わりに保存するようにしてもよい。 The approximate surface synthesis unit 2030 may prepare a separate array to store the values of "vertex positions on a segment", and in this step store an index value for identifying the value corresponding to the segment in the array instead of the coordinate value itself.

以上の処理が完了した後、本動作は、ステップS908へ進む。 After the above processing is completed, the operation proceeds to step S908.

ステップS908において、近似表面合成部2030は、隣接セグメントの情報を保存する。 In step S908, the approximate surface synthesis unit 2030 stores information about adjacent segments.

具体的には、例えば、近似表面合成部2030は、当該セグメントの始点座標、及び、始点座標或いは終点座標が同一のセグメントを特定するための情報(例えば、セグメントのインデックス等)を保存する。 Specifically, for example, the approximate surface synthesis unit 2030 stores the start coordinates of the segment, and information for identifying segments with the same start coordinates or end coordinates (for example, a segment index, etc.).

例えば、当該セグメントの始点座標、及び、始点座標或いは終点座標が同一のセグメントは、具体的には、当該セグメントと同一の軸方向で、終点座標が当該セグメントの始点座標と同一になるセグメントが1つと、当該セグメントと直交する軸方向のセグメントが4つ存在する。ここで保存された情報は、ステップS906においてユニークセグメントに関する情報として保存される。 For example, there are segments with the same start coordinates as the segment, and start coordinates or end coordinates, specifically, one segment in the same axial direction as the segment, whose end coordinates are the same as the start coordinates of the segment, and four segments in the axial direction perpendicular to the segment. The information saved here is saved as information about unique segments in step S906.

当該セグメントが、ステップS906においてユニークセグメントであると判定されなかった場合(ステップS906の所定条件Aが満たされなかった場合)は、ステップS908で生成された当該セグメントの隣接セグメントの情報は、破棄される。 If the segment is not determined to be a unique segment in step S906 (if the specified condition A in step S906 is not satisfied), the information on the adjacent segments of the segment generated in step S908 is discarded.

上述の処理が完了後、本動作は、ステップS903へ進み、次のセグメントの処理へ進む。 After the above processing is completed, the operation proceeds to step S903 and proceeds to processing the next segment.

以上のように、近似表面合成部2030は、ステップS704における隣接情報の収集を行った後、ステップS705へ進む。 As described above, after collecting adjacent information in step S704, the approximate surface synthesis unit 2030 proceeds to step S705.

ステップS705において、近似表面合成部2030は、当該trisoup_depthにおけるTrisoupの頂点を復号する。 In step S705, the approximate surface synthesis unit 2030 decodes the vertices of Trisoup at the trisoup_depth.

図12は、ステップS705における頂点の復号方法の一例を示すフローチャートである。以下、図12を用いて、ステップS705の処理の一例を説明する。 Figure 12 is a flowchart showing an example of a method for decoding vertices in step S705. Below, an example of the processing in step S705 is described using Figure 12.

図12に示すように、ステップS1201において、近似表面合成部2030は、ステップS703で生成した全てのユニークセグメントについて処理が終了したか否かを判定する。 As shown in FIG. 12, in step S1201, the approximate surface synthesis unit 2030 determines whether processing has been completed for all unique segments generated in step S703.

全てのユニークセグメントについて処理が完了した場合、本動作は、ステップS1207へ進み、ステップS703の処理を終了する。全てのユニークセグメントについて処理が完了していない場合、本動作は、ステップS1202へ進む。 If processing has been completed for all unique segments, the operation proceeds to step S1207, and processing of step S703 ends. If processing has not been completed for all unique segments, the operation proceeds to step S1202.

ステップS1202において、近似表面合成部2030は、当該ユニークセグメントに「内挿された頂点」が存在するか否かを判定する。 In step S1202, the approximate surface synthesis unit 2030 determines whether or not an "interpolated vertex" exists in the unique segment.

「内挿された頂点」が存在するか否かは、ステップS906で保存された統合されたマスク値に基づいて判定できる。「内挿された頂点」が存在する場合、本動作は、ステップS1203へ進む。「内挿された頂点」が存在しない場合、本動作は、ステップS1204へ進む。 Whether or not an "interpolated vertex" exists can be determined based on the integrated mask value saved in step S906. If an "interpolated vertex" exists, the operation proceeds to step S1203. If an "interpolated vertex" does not exist, the operation proceeds to step S1204.

ステップS1203において、近似表面合成部2030は、ステップS906で保存した「セグメント上における頂点位置」を、当該ユニークセグメントにおける頂点位置として保存する。 In step S1203, the approximate surface synthesis unit 2030 saves the "vertex positions on the segment" saved in step S906 as the vertex positions in the unique segment.

言い換えると、近似表面合成部2030は、ステップS906で保存した「セグメント上における頂点位置」を、当該ユニークセグメントにおける頂点位置の復号値とする。 In other words, the approximate surface synthesis unit 2030 sets the "vertex position on the segment" saved in step S906 as the decoded value of the vertex position in the unique segment.

更に、近似表面合成部2030は、当該ユニークセグメントにおける「頂点有無」の復号値を、「頂点あり」とする。 Furthermore, the approximate surface synthesis unit 2030 sets the decoded value of "vertex presence/absence" in the unique segment to "vertex present."

すなわち、ステップS1203は、ビットストリームから頂点位置及び頂点の有無を示す情報を復号する代わりに、内挿された値を用いて頂点位置及び頂点有無を示す情報を暗黙的に決定する処理である。 In other words, step S1203 is a process in which, instead of decoding information indicating the vertex positions and the presence or absence of vertices from the bitstream, the vertex positions and the information indicating the presence or absence of vertices are implicitly determined using the interpolated values.

上述の処理が完了した後、本動作は、ステップS1201へ進み、次のユニークセグメントの処理へ進む。 After the above processing is completed, the operation proceeds to step S1201 and proceeds to process the next unique segment.

ステップS1204において、近似表面合成部2030は、ビットストリームから当該ユニークセグメントに頂点が存在するか否かを示す、頂点の有無を示す情報を復号する。 In step S1204, the approximate surface synthesis unit 2030 decodes information indicating the presence or absence of a vertex from the bit stream, indicating whether or not a vertex exists in the unique segment.

頂点の有無を示す情報は、1ビットのフラグであり、点群符号化装置100においてエントロピー符号化されていてもよい。近似表面合成部2030は、エントロピー符号化(符号化装置)/復号(復号装置)に際して、複数の確率モデルを用意しておき、コンテクストに応じて選択してもよい。コンテクストは、例えば、ステップS906で保存されて統合されたマスク値に基づいて設定されてもよい。 The information indicating the presence or absence of a vertex is a one-bit flag, and may be entropy coded in the point cloud coding device 100. The approximate surface synthesis unit 2030 may prepare multiple probability models for entropy coding (coding device)/decoding (decoding device) and select one according to the context. The context may be set, for example, based on the mask value saved and integrated in step S906.

近似表面合成部2030は、頂点の有無を示す情報を復号した後、ステップS1205へ進む。 After the approximate surface synthesis unit 2030 decodes the information indicating the presence or absence of a vertex, it proceeds to step S1205.

ステップS1205において、近似表面合成部2030は、当該ユニークセグメントに頂点が存在するか否かを判定する。 In step S1205, the approximate surface synthesis unit 2030 determines whether a vertex exists in the unique segment.

近似表面合成部2030は、ステップS1204で復号した頂点の有無を示す情報に基づき、頂点が存在する場合、ステップS1206へ進む。かかる頂点が存在しない場合は、近似表面合成部2030は、ステップS1201へ進み、次のユニークセグメントの処理へ進む。 If a vertex is present based on the information indicating the presence or absence of a vertex decoded in step S1204, the approximate surface synthesis unit 2030 proceeds to step S1206. If such a vertex is not present, the approximate surface synthesis unit 2030 proceeds to step S1201 and proceeds to processing the next unique segment.

ステップS1206において、近似表面合成部2030は、頂点が存在すると判定されたユニークセグメントにおいて、「セグメント上における頂点位置」を復号する。ここで、頂点位置は、エントロピー符号化されていてもよい。エントロピー符号化(符号化装置)/復号(復号装置)に際して、近似表面合成部2030は、複数の確率モデルを用意しておき、コンテクストに応じて選択してもよい。コンテクストは、例えば、ステップS906で保存された隣接セグメントの情報に基づいて設定されてもよい。 In step S1206, the approximate surface synthesis unit 2030 decodes the "vertex position on the segment" in the unique segment in which it is determined that a vertex exists. Here, the vertex position may be entropy coded. When performing entropy coding (coding device)/decoding (decoding device), the approximate surface synthesis unit 2030 may prepare multiple probability models and select one according to the context. The context may be set, for example, based on the information of the adjacent segment saved in step S906.

ここで、頂点位置は、上述のTrisoupの頂点位置の精度(bit数)を指定するシンタックス(trisoup_vertex_number_bits)で指定されたビット精度で復号されてもよい。 Here, the vertex positions may be decoded with the bit precision specified by the syntax (trisoup_vertex_number_bits) that specifies the precision (number of bits) of the vertex positions of the above-mentioned Trisoup.

例えば、trisoup_vertex_number_bitsが2の場合、0、1、2、3の4種類の値をとるように復号されてもよい。更に、trisoup_vertex_number_bitsがDepth毎に復号されている場合、当該Depthに対応するビット精度で復号されてもよい。 For example, if trisoup_vertex_number_bits is 2, it may be decoded to take four values: 0, 1, 2, and 3. Furthermore, if trisoup_vertex_number_bits is decoded for each depth, it may be decoded with the bit precision corresponding to that depth.

また、trisoup_vertex_number_bitsで指定するビット精度は最小Trisoupノードサイズに対応するDepth(一番大きなDepth)でのみ使用し、以降、ノードサイズが1大きくなる(Depthが1小さくなる)に従って、ビット精度を1ずつ増やしてもよい。 In addition, the bit precision specified by trisoup_vertex_number_bits may be used only at the Depth corresponding to the minimum Trisoup node size (the largest Depth), and thereafter the bit precision may be increased by 1 for each node size that increases by 1 (Depth that decreases by 1).

例えば、ノードサイズが2種類(最小と最大の2段階)の場合、最小Trisoupノードサイズに対応するDepthでは、trisoup_vertex_number_bitsの値、最大Trisoupノードサイズに対応するDepthでは、trisoup_vertex_number_bitsに1を加えた値を、それぞれ当該Depthのビット精度として、頂点位置を復号してもよい。 For example, if there are two types of node sizes (two levels: minimum and maximum), the vertex position may be decoded using the value of trisoup_vertex_number_bits for the Depth corresponding to the minimum Trisoup node size, and the value of trisoup_vertex_number_bits plus 1 for the Depth corresponding to the maximum Trisoup node size, as the bit precision of the Depth.

近似表面合成部2030は、頂点位置を復号した後、ステップS1201へ進み、次のユニークセグメントの処理へ進む。 After decoding the vertex positions, the approximate surface synthesis unit 2030 proceeds to step S1201 and proceeds to process the next unique segment.

以上のように、近似表面合成部2030は、ステップS705において頂点を復号した後、ステップS706へ進む。 As described above, after the approximate surface synthesis unit 2030 decodes the vertices in step S705, it proceeds to step S706.

ステップS706において、近似表面合成部2030は、ステップS705で復号した頂点に基づいて、復号点群(再構成点群)を生成する。図13は、復号点群の生成方法の一例を示すフローチャートである。以下、図13を用いて、ステップS706の処理の一例について説明する。 In step S706, the approximate surface synthesis unit 2030 generates a decoded point group (reconstructed point group) based on the vertices decoded in step S705. FIG. 13 is a flowchart showing an example of a method for generating a decoded point group. An example of the processing in step S706 will be described below with reference to FIG. 13.

図13に示すように、ステップS1301において、近似表面合成部2030は、当該trisoup_depthにおける全てのTrisoupノードについて処理が完了したか否かを判定する。 As shown in FIG. 13, in step S1301, the approximate surface synthesis unit 2030 determines whether processing has been completed for all Trisoup nodes at the trisoup_depth.

全てのTrisoupノードについて処理が完了した場合、本動作は、ステップS1306へ進み、処理を終了する。全てのTrisoupノードについて処理が完了していない場合、本動作は、ステップS1302へ進む。 If processing has been completed for all Trisoup nodes, the operation proceeds to step S1306 and ends. If processing has not been completed for all Trisoup nodes, the operation proceeds to step S1302.

ステップS1302において、第1に、近似表面合成部2030は、当該Trisoupノードの各辺(セグメント)に対応するユニークセグメントを特定する。例えば、近似表面合成部2030は、ステップS705で処理した各ユニークセグメントの中から、当該Trisoupノードの各辺(セグメント)の始点座標と終点座標とが同一ユニークセグメントを探すことで、特定することができる。 In step S1302, first, the approximate surface synthesis unit 2030 identifies unique segments corresponding to each side (segment) of the Trisoup node. For example, the approximate surface synthesis unit 2030 can identify unique segments whose start point coordinates and end point coordinates of each side (segment) of the Trisoup node are the same, from among the unique segments processed in step S705.

第2に、近似表面合成部2030は、特定したユニークセグメントに頂点が存在する場合、以下の手順で、頂点を再構成点群に追加する。
(1)近似表面合成部2030は、セグメントの位置を、-0.5だけずらす。具体的には、近似表面合成部2030は、セグメントの始点座標及び終点座標のそれぞれについて、セグメントの方向に沿った軸以外の座標値から0.5を減ずる。
Second, if a vertex exists in the identified unique segment, the approximate surface synthesis unit 2030 adds the vertex to the reconstructed point group in the following procedure.
(1) The approximate surface synthesis unit 2030 shifts the position of the segment by −0.5. Specifically, the approximate surface synthesis unit 2030 subtracts 0.5 from the coordinate values of the start point and end point of the segment other than the axis along the direction of the segment.

例えば、セグメントの始点座標が(x、y、z)=(12、100、32)で、ノードサイズが4で、且つ、当該セグメントの方向がx軸であった場合、終点座標は、始点のx座標にノードサイズを加えて(16、100、32)となる。 For example, if the start coordinates of a segment are (x, y, z) = (12, 100, 32), the node size is 4, and the direction of the segment is the x-axis, the end coordinates will be (16, 100, 32), calculated by adding the node size to the x-coordinate of the start point.

これに対して、x軸以外、すなわち、かかる例では、y座標及びz座標を、それぞれ0.5だけ減ずる。よって、始点座標及び終点座標は、それぞれ(12、99.5、31.5)及び(16、99.5、31.5)となる。
(2)近似表面合成部2030は、上述の始点座標に、当該セグメントの「セグメント上における頂点位置」を加算する。例えば、上述の例において、「セグメント上における頂点位置」が2である場合、(14、99.5、31.5)となる。
(3)近似表面合成部2030は、上述の(2)で求めた座標に対して、セグメントの方向に沿った軸以外の座標値に0.5を加える。例えば、上述の例においては、(14、100、32)となる。この値は、上述の(1)の手順を実行する前の当該ユニークセグメントの始点座標(12、100、32)に、当該ユニークセグメント上の頂点位置2を加算することでも同一の結果を得ることができるので、近似表面合成部2030は、そのように計算してもよい。
(4)上述の(3)で算出した座標が、当該Trisoupノードの内部に存在する場合、近似表面合成部2030は、上述の(3)で算出した座標に点を生成し、再構成点群に追加する。
On the other hand, the coordinates other than the x-axis, that is, in this example, the y-coordinate and the z-coordinate are each decreased by 0.5, so that the start point coordinates and the end point coordinates become (12, 99.5, 31.5) and (16, 99.5, 31.5), respectively.
(2) The approximate surface synthesis unit 2030 adds the "vertex position on the segment" of the segment to the above-mentioned starting point coordinates. For example, in the above example, if the "vertex position on the segment" is 2, the result is (14, 99.5, 31.5).
(3) The approximate surface synthesis unit 2030 adds 0.5 to the coordinate values of the axes other than those along the segment direction for the coordinates calculated in (2) above. For example, in the above example, the result is (14, 100, 32). The same result can be obtained by adding 2, the vertex position on the unique segment, to the start coordinates (12, 100, 32) of the unique segment before executing the above procedure (1), so the approximate surface synthesis unit 2030 may perform the calculation in this manner.
(4) If the coordinates calculated in (3) above exist inside the Trisoup node, the approximate surface synthesis unit 2030 generates a point at the coordinates calculated in (3) above and adds it to the reconstructed point group.

ここで、当該Trisoupノードの内部とは、x、y、z座標の値が、それぞれ当該Trisoupノードの始点(x座標、y座標、z座標のそれぞれが一番小さい点)+Trisoupノードサイズ-1の範囲に存在する点である。 Here, inside the Trisoup node is a point whose x, y, and z coordinate values are in the range of the start point of the Trisoup node (the point with the smallest x, y, and z coordinates) + Trisoup node size - 1.

例えば、当該Trisoupノードの始点座標が(x、y、z)=(12、100、32)で、Trisoupノードサイズが4の場合、(12~15、100~103、32~35)の範囲に存在する点は、当該Trisoupノードの内部とみなす。 For example, if the start coordinates of the Trisoup node are (x, y, z) = (12, 100, 32) and the Trisoup node size is 4, points that are in the ranges (12 to 15, 100 to 103, 32 to 35) are considered to be inside the Trisoup node.

この場合、上述の(3)で算出した座標が(14、100、32)とすると、この座標は、当該Trisoupノードの内部であると判定され、近似表面合成部2030は、この座標の点を再構成点群に追加する。図15(a)に、かかる結果を、x-y平面に投影したケースについて示す。 In this case, if the coordinates calculated in (3) above are (14, 100, 32), these coordinates are determined to be inside the Trisoup node, and the approximate surface synthesis unit 2030 adds the point with these coordinates to the reconstructed point cloud. Figure 15(a) shows such results when projected onto the x-y plane.

一方、例えば、当該Trisoupノードの始点座標が(x、y、z)=(12、96、32)の場合、(12~15、96~99、32~35)の範囲にある点が、Trisoupノードの内部となるため、この場合は、(14、100、32)は、Trisoupノードの内部には存在しないと判定され、上述の(3)で算出された座標は、再構成点群に追加させずに、本動作は、処理を終了する。図15(b)に、かかるケースの例について示す。 On the other hand, for example, if the start coordinates of the Trisoup node are (x, y, z) = (12, 96, 32), points in the ranges (12 to 15, 96 to 99, 32 to 35) are inside the Trisoup node, so in this case, it is determined that (14, 100, 32) does not exist inside the Trisoup node, and the coordinates calculated in (3) above are not added to the reconstructed point group, and this operation ends the process. Figure 15(b) shows an example of such a case.

上記の処理を終了した後、本動作は、ステップS1303へ進む。 After completing the above process, the operation proceeds to step S1303.

ステップS1303において、近似表面合成部2030は、当該Trisoupノードに対応する頂点から、セントロイドの初期座標を算出する。 In step S1303, the approximate surface synthesis unit 2030 calculates the initial coordinates of the centroid from the vertices corresponding to the Trisoup node.

例えば、セントロイドの初期座標は、当該Trisoupノードの全ての頂点位置のx、y、z成分をそれぞれ平均することで算出され得る。なお、当該Trisoupノードの頂点が3点以下の場合、セントロイド処理の算出を省略してもよい。 For example, the initial coordinates of the centroid can be calculated by averaging the x, y, and z components of all vertex positions of the Trisoup node. Note that if the Trisoup node has three or fewer vertices, the calculation of the centroid process may be omitted.

かかる処理が完了した後、本動作は、ステップS1304へ進む。 After this process is completed, the operation proceeds to step S1304.

ステップS1304において、近似表面合成部2030は、頂点のソート及び投影面の決定処理を行う。具体的には、例えば、近似表面合成部2030は、以下の手順で、頂点のソート及び投影面を決定できる。
(1)近似表面合成部2030は、頂点をx-y平面に投影する。かかる処理は、各頂点座標からx座標、y座標の値を抽出することと等価である。
In step S1304, the approximate surface synthesis unit 2030 performs a process of sorting the vertices and determining the projection surface. Specifically, for example, the approximate surface synthesis unit 2030 can sort the vertices and determine the projection surface in the following procedure.
(1) The approximate surface synthesis unit 2030 projects the vertices onto the xy plane. This process is equivalent to extracting the x and y coordinate values from the coordinates of each vertex.

頂点は、もともとノードの辺上に存在するため、投影した平面状では、各頂点は、ノードを平面に投影した正方形或いは長方形の辺上に存在することになる。正方形も、長方形の一種であるため、以降の説明では、投影後のノードの形状を長方形として説明する。
(2)近似表面合成部2030は、ノードを投影した長方形の辺上にある点を、時計回り或いは反時計回りの順になるようにソートする。
Since the vertices are originally on the sides of the nodes, in the projected plane, each vertex will be on the side of a square or rectangle that the nodes are projected onto the plane. Since a square is also a type of rectangle, the following explanation will be given assuming that the shape of the nodes after projection is a rectangle.
(2) The approximate surface synthesis unit 2030 sorts the points on the sides of the rectangle onto which the nodes are projected in clockwise or counterclockwise order.

また、近似表面合成部2030は、ソートした順に、各頂点に仮のIndex値(0、1、2、・・・)を与える。
(3)近似表面合成部2030は、ソート順で隣接する2つの頂点及びセントロイドの3点で定義される三角形を定義し、この三角形の面積を算出する。三角形の面積は、例えば、セントロイドを始点としてそれぞれ2つの頂点座標に向かうベクトルを生成し、それらの外積を用いることで算出できる。
Furthermore, the approximate surface synthesis unit 2030 assigns a tentative index value (0, 1, 2, . . . ) to each vertex in the sorted order.
(3) The approximate surface synthesis unit 2030 defines a triangle defined by two adjacent vertices in the sorted order and the centroid, and calculates the area of the triangle. The area of the triangle can be calculated, for example, by generating vectors starting from the centroid and pointing to the coordinates of the two vertices, and using the cross product of these vectors.

近似表面合成部2030は、このように、三角形の面積をソート順で隣接する2つの頂点の全ての組み合わせ(0、1)、(1、2)、・・・(N、0)について算出し、合算する。 In this way, the approximate surface synthesis unit 2030 calculates and sums the areas of triangles for all combinations of two adjacent vertices in sorted order: (0, 1), (1, 2), ... (N, 0).

なお、近似表面合成部2030は、頂点が3点しかない場合、セントロイドを用いず、3つの頂点で構成される三角形の面積を算出する。また、この面積は、投影した平面状での面積である。
(4)近似表面合成部2030は、上述の(1)~(3)の手順を、x-z平面及びy-z平面についても同様に行い、上述の(3)で算出した面積が最大になる平面を投影面とし、その際に、上述の(2)でソートした順及び付与した仮のIndexを、最終的なソート順及びIndexとして採用する。
When there are only three vertices, the approximate surface synthesis unit 2030 calculates the area of a triangle formed by the three vertices without using a centroid. This area is the area on the projected plane.
(4) The approximate surface synthesis unit 2030 performs the above steps (1) to (3) on the x-z plane and the y-z plane in the same manner, and selects the plane with the largest area calculated in the above step (3) as the projection plane. At this time, the sorting order and the provisional index assigned in the above step (2) are adopted as the final sorting order and index.

以上のように、近似表面合成部2030は、頂点のソート及び投影面を決定した後に、ステップS1305に進む。 After sorting the vertices and determining the projection surface as described above, the approximate surface synthesis unit 2030 proceeds to step S1305.

ステップS1305において、近似表面合成部2030は、ステップS1304で生成した三角形及びレイトレーシングによって再構成点群を生成する。 In step S1305, the approximate surface synthesis unit 2030 generates a reconstructed point cloud using the triangles generated in step S1304 and ray tracing.

具体的には、近似表面合成部2030は、以下の手順で、再構成点群を生成する。
(1)第1に、近似表面合成部2030は、ステップS1304で決定したIndexとセントロイドとに基づいて、ステップS1304と同様に、三角形を生成する。但し、近似表面合成部2030は、ステップS1304では、2次元平面上で三角形を生成したが、ステップS1305では、各頂点のx、y、z座標の全てを使用して、3次元空間上で三角形を生成する。
(2)第2に、近似表面合成部2030は、投影面の法線ベクトル(投影面がx-y平面であれば、z方向のベクトル)を定義し、投影面上に配置する。
Specifically, the approximate surface synthesis unit 2030 generates the reconstructed point group in the following procedure.
(1) First, the approximate surface synthesis unit 2030 generates triangles based on the index and centroid determined in step S1304, similarly to step S1304. However, whereas the approximate surface synthesis unit 2030 generated triangles on a two-dimensional plane in step S1304, in step S1305 it generates triangles in three-dimensional space using all of the x, y, and z coordinates of each vertex.
(2) Secondly, the approximate surface synthesis unit 2030 defines a normal vector of the projection surface (if the projection surface is an xy plane, a vector in the z direction) and places it on the projection surface.

例えば、近似表面合成部2030は、初期位置を、投影面上での当該ノード形状(すなわち、長方形)の最も原点に近い点とする。
(3)第3に、近似表面合成部2030は、法線ベクトルのノルムを大きくしていった際に、上述の(1)で生成した三角形と交差するか否か、交差する場合は、その座標を算出する。
For example, the approximate surface synthesis unit 2030 sets the initial position to the point on the projection surface that is closest to the origin of the node shape (i.e., a rectangle).
(3) Thirdly, the approximate surface synthesis unit 2030 determines whether or not the normal vector intersects with the triangle generated in (1) above as the norm of the normal vector is increased, and if so, calculates the coordinates of the intersecting point.

例えば、近似表面合成部2030は、一般的なレイトレーシングの手法等を用いることで、かかる処理を実現できる。図16Aに、三角形の構成の一例をについて示す。
(4)第4に、近似表面合成部2030は、上述の(3)で算出した法線ベクトルと三角形とが交差する座標が、当該Trisoupノードの内部に存在する場合、かかる座標位置に点を生成し、再構成点群に加える。
(5)第5に、近似表面合成部2030は、投影面上の当該ノード(長方形)内の各整数座標位置にそれぞれ配置した場合について、上述の(3)及び(4)の手順を繰り返す。
For example, the approximate surface synthesis unit 2030 can realize such processing by using a general ray tracing method, etc. Fig. 16A shows an example of a configuration of triangles.
(4) Fourth, if the coordinates where the normal vector calculated in (3) above intersects with the triangle exist inside the Trisoup node, the approximate surface synthesis unit 2030 generates a point at such coordinate position and adds it to the reconstructed point group.
(5) Fifth, the approximate surface synthesis unit 2030 repeats the above steps (3) and (4) for each integer coordinate position within the node (rectangle) on the projection surface.

この時、法線ベクトルを配置する間隔は、1(すなわち、全ての整数座標位置)でなくてもよい。例えば、近似表面合成部2030は、幾何情報復号部2010で復号されたtrisoup_sampling_value_minus1の値に1を加えた数を配置する間隔としてもよい。 In this case, the interval at which the normal vectors are placed does not have to be 1 (i.e., all integer coordinate positions). For example, the approximate surface synthesis unit 2030 may place the normal vectors at an interval equal to the value of trisoup_sampling_value_minus1 decoded by the geometric information decoding unit 2010 plus 1.

例えば、かかる間隔が2であり且つx-y平面が投影面である場合、近似表面合成部2030は、x座標及びy座標の両方が2の倍数になる整数位置のみに法線ベクトルを配置するようにしてもよい。図16Aの三角形から生成した再構成点群の例について、図16Bに示す。 For example, if the interval is 2 and the x-y plane is the projection surface, the approximate surface synthesis unit 2030 may place normal vectors only at integer positions where both the x and y coordinates are multiples of 2. An example of a reconstructed point cloud generated from the triangle in FIG. 16A is shown in FIG. 16B.

近似表面合成部2030は、以上のようにして、当該Trisoupノードに対する再構成点を生成した後、ステップS1301へ進み、次のTrisoupノードの処理に進む。 After generating the reconstruction points for the Trisoup node in the above manner, the approximate surface synthesis unit 2030 proceeds to step S1301 and proceeds to process the next Trisoup node.

以上のように、ステップS706において、近似表面合成部2030は、復号点群(再構成点群)を生成した後、ステップS707へ進む。 As described above, in step S706, the approximate surface synthesis unit 2030 generates the decoded point group (reconstructed point group), and then proceeds to step S707.

ステップS707において、近似表面合成部2030は、当該trisoup_depthにおけるTrisoupノードサイズが、最小Trisoupノードサイズであるか否かを判定する。 In step S707, the approximate surface synthesis unit 2030 determines whether the Trisoup node size at the trisoup_depth is the minimum Trisoup node size.

最小Trisoupノードサイズである場合は、本動作は、ステップS701へ進む。そうでない場合、すなわち、当該trisoup_depthにおけるTrisoupノードサイズが、最小Trisoupノードサイズより大きい場合、本動作は、ステップS708へ進む。 If it is the minimum Trisoup node size, the operation proceeds to step S701. If not, that is, if the Trisoup node size at the trisoup_depth is greater than the minimum Trisoup node size, the operation proceeds to step S708.

ステップS708において、近似表面合成部2030は、ステップS705で復号したtrisoup_depthにおけるTrisoupノードサイズに対応する頂点に基づいて、最小Trisoupノードサイズにおけるノードのセグメント上に頂点を内挿する。 In step S708, the approximate surface synthesis unit 2030 interpolates vertices onto the segments of the nodes at the minimum Trisoup node size based on the vertices corresponding to the Trisoup node size in trisoup_depth decoded in step S705.

図14は、ステップS708の処理の一例を示すフローチャートである。以下、図14を用いて、ステップS708の処理例を説明する。なお、図14の処理は、図13の処理とほとんど共通しており、同一の処理には、同一の符号を付している。以下、図13との差異のみを説明する。 Figure 14 is a flow chart showing an example of the processing of step S708. Below, an example of the processing of step S708 will be described using Figure 14. Note that the processing of Figure 14 is almost the same as the processing of Figure 13, and the same processing is denoted by the same reference numerals. Below, only the differences with Figure 13 will be described.

図14に示すように、ステップS1402において、近似表面合成部2030は、当該Trisoupノードの頂点を、「内挿された頂点」として保存する。 As shown in FIG. 14, in step S1402, the approximate surface synthesis unit 2030 stores the vertices of the Trisoup node as "interpolated vertices."

具体的には、近似表面合成部2030は、ステップS1302で説明した手順(1)及び(2)まで実施した後の座標値をそのまま「内挿された頂点」として保存する。 Specifically, the approximate surface synthesis unit 2030 stores the coordinate values obtained after steps (1) and (2) described in step S1302 as "interpolated vertices".

例えば、ステップS1302の例では、近似表面合成部2030は、(14、99.5、31.5)という座標値を「内挿された頂点」として保存する。これは、セグメントの位置が整数座標位置から0.5ずれた位置にあるように定義しているためである。 For example, in the example of step S1302, the approximate surface synthesis unit 2030 saves the coordinate values (14, 99.5, 31.5) as the "interpolated vertex." This is because the position of the segment is defined to be 0.5 away from the integer coordinate position.

また、この値を整数として保持するために、近似表面合成部2030は、真の座標値を2倍にした値として保持してもよい。上述の例では、近似表面合成部2030は、(28、199、63)という値を「内挿された頂点」として保存してもよい。 Also, to store this value as an integer, the approximate surface synthesis unit 2030 may store it as a value that is twice the true coordinate value. In the above example, the approximate surface synthesis unit 2030 may save the value (28, 199, 63) as the "interpolated vertex."

ステップS1405において、近似表面合成部2030は、ステップS1305の手順(2)において、法線ベクトルを配置する位置を、当該Trisoupノードを最小Trisoupノードサイズで分割した時のセグメントが存在する位置に配置するように変更する。 In step S1405, the approximate surface synthesis unit 2030 changes the position at which the normal vector is placed in procedure (2) of step S1305 so that it is placed at the position where a segment exists when the Trisoup node is divided by the minimum Trisoup node size.

ステップS1305の手順(3)と同様にして算出した交差する座標が、当該Trisoupノードを最小Trisoupノードサイズで分割した時のセグメント上にある場合、近似表面合成部2030は、かかる座標値を「内挿された頂点」として保存する。 If the intersecting coordinates calculated in the same manner as in step (3) of step S1305 are on a segment obtained by dividing the Trisoup node by the minimum Trisoup node size, the approximate surface synthesis unit 2030 stores the coordinate values as "interpolated vertices."

ステップS1402で座標値を2倍することで整数化した値を保存した場合は、近似表面合成部2030は、ステップS1405においても、上述の座標値を2倍した値を保存する。 If the coordinate values are doubled to convert them into integers and stored in step S1402, the approximate surface synthesis unit 2030 also stores the doubled coordinate values in step S1405.

近似表面合成部2030は、以上の処理で生成した「内挿された頂点」を保存し、次のtrisoup_depthにおけるステップS703で使用する。 The approximate surface synthesis unit 2030 saves the "interpolated vertices" generated by the above process and uses them in step S703 in the next trisoup_depth.

また、当該trisoup_depthが0より大きい場合、すなわち、当該trisoup_depthにおけるTrisoupノードサイズが最大Trisoupノードサイズではない場合、より大きなノードサイズに生成した「内挿された頂点」が存在するが、近似表面合成部2030は、これらの「内挿された頂点」の集合については削除せず、ステップS1402で新たに生成した「内挿された頂点」を、上述の集合に追加していく形で保存する。 In addition, if the trisoup_depth is greater than 0, i.e., if the trisoup node size at the trisoup_depth is not the maximum trisoup node size, there are "interpolated vertices" generated at a larger node size, but the approximate surface synthesis unit 2030 does not delete the set of these "interpolated vertices," but rather saves the newly generated "interpolated vertices" in step S1402 by adding them to the above set.

なお、図16Cに示すように、近似表面合成部2030は、「内挿された頂点」については、当該Trisoupノードの表面に存在するもののみを保存するようにしてもよい。 As shown in FIG. 16C, the approximate surface synthesis unit 2030 may store only those "interpolated vertices" that exist on the surface of the Trisoup node.

なお、ここでは、便宜上、ステップS706及びステップS708について別々の処理として説明したが、両者は、共通部分が多いため、同時に実施されてもよい。 Note that, for convenience, steps S706 and S708 have been described here as separate processes, but since the two have much in common, they may be performed simultaneously.

例えば、近似表面合成部2030は、ステップS1302において、ステップS707の条件が満たされる場合は、ステップS1402も実施し、同様に、ステップS1305において、ステップS707の条件が満たされる場合は、ステップS1405も実施するようにしてもよい。 For example, if the condition of step S707 is satisfied in step S1302, the approximate surface synthesis unit 2030 may also perform step S1402, and similarly, if the condition of step S707 is satisfied in step S1305, the approximate surface synthesis unit 2030 may also perform step S1405.

(点群符号化装置100)
以下、図17を参照して、本実施形態に係る点群符号化装置100について説明する。図17は、本実施形態に係る点群符号化装置100の機能ブロックの一例について示す図である。
(Point group encoding device 100)
Hereinafter, the point cloud encoding device 100 according to this embodiment will be described with reference to Fig. 17. Fig. 17 is a diagram showing an example of functional blocks of the point cloud encoding device 100 according to this embodiment.

図17に示すように、点群符号化装置100は、座標変換部1010と、幾何情報量子化部1020と、ツリー解析部1030と、近似表面解析部1040と、幾何情報符号化部1050と、幾何情報再構成部1060と、色変換部1070と、属性転移部1080と、RAHT部1090と、LoD算出部1100と、リフティング部1110と、属性情報量子化部1120と、属性情報符号化部1130とを有する。 As shown in FIG. 17, the point cloud encoding device 100 has a coordinate transformation unit 1010, a geometric information quantization unit 1020, a tree analysis unit 1030, an approximate surface analysis unit 1040, a geometric information encoding unit 1050, a geometric information reconstruction unit 1060, a color conversion unit 1070, an attribute transfer unit 1080, a RAHT unit 1090, an LoD calculation unit 1100, a lifting unit 1110, an attribute information quantization unit 1120, and an attribute information encoding unit 1130.

座標変換部1010は、入力点群の3次元座標系から、任意の異なる座標系への変換処理を行うよう構成されている。座標変換は、例えば、入力点群を回転することにより、入力点群のx、y、z座標を任意のs、t、u座標に変換してもよい。また、変換のバリエーションの1つとして、入力点群の座標系をそのまま使用してもよい。 The coordinate conversion unit 1010 is configured to perform a conversion process from the three-dimensional coordinate system of the input point cloud to any different coordinate system. The coordinate conversion may, for example, convert the x, y, and z coordinates of the input point cloud into any s, t, and u coordinates by rotating the input point cloud. In addition, as one variation of the conversion, the coordinate system of the input point cloud may be used as is.

幾何情報量子化部1020は、座標変換後の入力点群の位置情報の量子化及び座標が重複する点の除去を行うように構成されている。なお、量子化ステップサイズが1の場合は、入力点群の位置情報と量子化後の位置情報とが一致する。すなわち、量子化ステップサイズが1の場合は、量子化を行わない場合と等価になる。 The geometric information quantization unit 1020 is configured to quantize the position information of the input point group after coordinate transformation and remove points with overlapping coordinates. Note that when the quantization step size is 1, the position information of the input point group and the position information after quantization match. In other words, when the quantization step size is 1, it is equivalent to not performing quantization.

ツリー解析部1030は、量子化後の点群の位置情報を入力として、後述のツリー構造に基づいて、符号化対象空間のどのノードに点が存在するかについて示すoccupancy codeを生成するように構成されている。 The tree analysis unit 1030 is configured to receive position information of the quantized point group as input, and generate an occurrence code that indicates at which node in the encoding target space the point exists, based on the tree structure described below.

ツリー解析部1030は、本処理において、符号化対象空間を再帰的に直方体で区切ることにより、ツリー構造を生成するように構成されている。 In this process, the tree analysis unit 1030 is configured to generate a tree structure by recursively dividing the encoding target space into rectangular parallelepipeds.

ここで、ある直方体内に点が存在する場合、かかる直方体を複数の直方体に分割する処理を、直方体が所定のサイズになるまで再帰的に実行することでツリー構造を生成することができる。なお、かかる各直方体をノードと呼ぶ。また、ノードを分割して生成される各直方体を子ノードと呼び、子ノード内に点が含まれるか否かについて0又は1で表現したものがoccupancy codeである。 If a point exists within a certain rectangular parallelepiped, a tree structure can be generated by recursively dividing the rectangular parallelepiped into multiple rectangular parallelepipeds until the rectangular parallelepiped reaches a specified size. Each such rectangular parallelepiped is called a node. Each rectangular parallelepiped generated by dividing a node is called a child node, and the occurrence code is expressed as 0 or 1 to indicate whether or not a point is included in the child node.

以上のように、ツリー解析部1030は、所定のサイズになるまでノードを再帰的に分割しながら、occupancy codeを生成するように構成されている。 As described above, the tree analysis unit 1030 is configured to generate an occupancy code while recursively splitting the node until it reaches a predetermined size.

本実施形態では、上述の直方体を常に立方体として8分木分割を再帰的に行う「Octree」と呼ばれる手法、及び、8分木分割に加え、4分木分割及び2分木分割を行う「QtBt」と呼ばれる手法を使用することができる。 In this embodiment, a method called "Octree" can be used that recursively performs octree division on the above-mentioned rectangular parallelepiped, always treating it as a cube, and a method called "QtBt" can be used that performs quadtree division and binary tree division in addition to octree division.

ここで、「QtBt」を使用するか否かについては、制御データとして点群復号装置200に伝送される。 Here, whether or not to use "QtBt" is transmitted to the point cloud decoding device 200 as control data.

或いは、任意のツリー構成を用いるPredicitive codingを使用するように指定されてもよい。かかる場合、ツリー解析部1030が、ツリー構造を決定し、決定されたツリー構造は、制御データとして点群復号装置200へ伝送される。 Alternatively, predictive coding using an arbitrary tree structure may be specified. In such a case, the tree analysis unit 1030 determines the tree structure, and the determined tree structure is transmitted to the point cloud decoding device 200 as control data.

例えば、ツリー構造の制御データは、図6で説明した手順で復号できるよう構成されていてもよい。 For example, the tree-structured control data may be configured so that it can be decoded using the procedure described in FIG. 6.

近似表面解析部1040は、ツリー解析部1030によって生成されたツリー情報を用いて、近似表面情報を生成するように構成されている。 The approximate surface analysis unit 1040 is configured to generate approximate surface information using the tree information generated by the tree analysis unit 1030.

近似表面情報は、例えば、物体の3次元点群データを復号する際等において、点群が物体表面に密に分布しているような場合に、個々の点群を復号するのではなく、点群の存在領域を小さな平面で近似して表現したものである。 When decoding three-dimensional point cloud data of an object, for example, if the points are densely distributed on the object's surface, approximate surface information is used to represent the area in which the points exist by approximating the area using a small plane, rather than decoding each point individually.

具体的には、近似表面解析部1040は、例えば、「Trisoup」と呼ばれる手法で、近似表面情報を生成するように構成されていてもよい。また、Lidar等で取得した疎な点群を復号する場合は、本処理を省略することができる。 Specifically, the approximate surface analysis unit 1040 may be configured to generate approximate surface information using, for example, a method called "Trisoup." In addition, when decoding a sparse point cloud acquired by Lidar or the like, this process can be omitted.

幾何情報符号化部1050は、ツリー解析部1030によって生成されたoccupancy code及び近似表面解析部1040によって生成された近似表面情報等のシンタックスを符号化してビットストリーム(幾何情報ビットストリーム)を生成するように構成されている。ここで、ビットストリームには、例えば、図4及び図5で説明したシンタックスを含まれていてもよい。 The geometric information encoding unit 1050 is configured to generate a bit stream (geometric information bit stream) by encoding syntax such as the occupancy code generated by the tree analysis unit 1030 and the approximate surface information generated by the approximate surface analysis unit 1040. Here, the bit stream may include, for example, the syntax described in Figures 4 and 5.

符号化処理は、例えば、コンテクスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、位置情報の復号処理を制御するための制御データ(フラグやパラメータ)を含む。 The encoding process is, for example, a context-adaptive binary arithmetic encoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the position information.

幾何情報再構成部1060は、ツリー解析部1030によって生成されたツリー情報及び近似表面解析部1040によって生成された近似表面情報に基づいて、符号化対象の点群データの各点の幾何情報(符号化処理が仮定している座標系、すなわち、座標変換部1010における座標変換後の位置情報)を再構成するように構成されている。 The geometric information reconstruction unit 1060 is configured to reconstruct the geometric information of each point of the point cloud data to be encoded (the coordinate system assumed by the encoding process, i.e., the position information after the coordinate transformation in the coordinate transformation unit 1010) based on the tree information generated by the tree analysis unit 1030 and the approximate surface information generated by the approximate surface analysis unit 1040.

色変換部1070は、入力の属性情報が色情報であった場合に、色変換を行うように構成されている。色変換は、必ずしも実行する必要は無く、色変換処理の実行の有無については、制御データの一部として符号化され、点群復号装置200へ伝送される。 The color conversion unit 1070 is configured to perform color conversion when the input attribute information is color information. Color conversion does not necessarily have to be performed, and whether or not the color conversion process is performed is coded as part of the control data and transmitted to the point cloud decoding device 200.

属性転移部1080は、入力点群の位置情報、幾何情報再構成部1060における再構成後の点群の位置情報及び色変換部1070での色変化後の属性情報に基づいて、属性情報の歪みが最小となるように属性値を補正するように構成されている。 The attribute transfer unit 1080 is configured to correct the attribute values based on the position information of the input point cloud, the position information of the point cloud after reconstruction in the geometric information reconstruction unit 1060, and the attribute information after color change in the color conversion unit 1070, so as to minimize distortion of the attribute information.

RAHT部1090は、属性転移部1080による転移後の属性情報及び幾何情報再構成部1060によって生成された幾何情報を入力とし、RAHT(Region Adaptive Hierarchical Transform)と呼ばれるHaar変換の一種を用いて、各点の残差情報を生成するように構成されている。RAHTの具体的な処理としては、例えば、上述の文献2に記載の方法を用いることができる。 The RAHT unit 1090 is configured to receive the attribute information transferred by the attribute transfer unit 1080 and the geometric information generated by the geometric information reconstruction unit 1060 as input, and to generate residual information for each point using a type of Haar transform called RAHT (Region Adaptive Hierarchical Transform). As a specific example of the RAHT process, the method described in the above-mentioned literature 2 can be used.

LoD算出部1100は、幾何情報再構成部1060によって生成された幾何情報を入力とし、LoD(Level of Detail)を生成するように構成されている。 The LoD calculation unit 1100 is configured to receive the geometric information generated by the geometric information reconstruction unit 1060 as input and generate the LoD (Level of Detail).

LoDは、ある点の属性情報から、他のある点の属性情報を予測し、予測残差を符号化或いは復号するといった予測符号化を実現するための参照関係(参照する点及び参照される点)を定義するための情報である。 LoD is information for defining a reference relationship (a referencing point and a referenced point) to realize predictive coding, such as predicting attribute information of a certain point from attribute information of another point and encoding or decoding the prediction residual.

言い換えると、LoDは、幾何情報に含まれる各点を複数のレベルに分類し、下位のレベルに属する点については上位のレベルに属する点の属性情報を用いて属性を符号化或いは復号するといった階層構造を定義した情報である。 In other words, LoD is information that defines a hierarchical structure in which each point contained in the geometric information is classified into multiple levels, and the attributes of points belonging to lower levels are encoded or decoded using attribute information of points belonging to higher levels.

LoDの具体的な決定方法としては、例えば、上述の文献2に記載の方法を用いてもよい。 As a specific method for determining LoD, for example, the method described in the above-mentioned literature 2 may be used.

リフティング部1110は、LoD算出部1100によって生成されたLoD及び属性転移部1080での属性転移後の属性情報を用いて、リフティング処理により残差情報を生成するように構成されている。 The lifting unit 1110 is configured to generate residual information by a lifting process using the LoD generated by the LoD calculation unit 1100 and the attribute information after attribute transfer in the attribute transfer unit 1080.

リフティングの具体的な処理としては、例えば、文献(Text of ISO/IEC 23090-9 DIS Geometry-based PCC、ISO/IEC JTC1/SC29/WG11 N19088)に記載の方法を用いてもよい。 Specific lifting processing may be, for example, the method described in the literature (Text of ISO/IEC 23090-9 DIS Geometry-based PCC, ISO/IEC JTC1/SC29/WG11 N19088).

属性情報量子化部1120は、RAHT部1090又はリフティング部1110から出力される残差情報を量子化するように構成されている。ここで、量子化ステップサイズが1の場合は、量子化を行わない場合と等価である。 The attribute information quantization unit 1120 is configured to quantize the residual information output from the RAHT unit 1090 or the lifting unit 1110. Here, a quantization step size of 1 is equivalent to no quantization being performed.

属性情報符号化部1130は、属性情報量子化部1120から出力される量子化後の残差情報等をシンタックスとして符号化処理を行い、属性情報に関するビットストリーム(属性情報ビットストリーム)を生成するように構成されている。 The attribute information encoding unit 1130 is configured to perform encoding processing using the quantized residual information, etc. output from the attribute information quantization unit 1120 as syntax, and generate a bit stream related to the attribute information (attribute information bit stream).

符号化処理は、例えば、コンテクスト適応二値算術符号化処理である。ここで、例えば、シンタックスは、属性情報の復号処理を制御するための制御データ(フラグ及びパラメータ)を含む。 The encoding process is, for example, a context-adaptive binary arithmetic encoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the attribute information.

点群符号化装置100は、以上の処理により、点群内の各点の位置情報及び属性情報を入力として符号化処理を行い、幾何情報ビットストリーム及び属性情報ビットストリームを出力するように構成されている。 The point cloud encoding device 100 is configured to perform encoding processing using the position information and attribute information of each point in the point cloud as input, and to output a geometric information bit stream and an attribute information bit stream through the above processing.

また、上述の点群符号化装置100及び点群復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。 Furthermore, the above-mentioned point cloud encoding device 100 and point cloud decoding device 200 may be realized as a program that causes a computer to execute each function (each process).

なお、上記の各実施形態では、本発明を点群符号化装置100及び点群復号装置200への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、点群符号化装置100及び点群復号装置200の各機能を備えた点群符号化/復号システムにも同様に適用できる。 In each of the above embodiments, the present invention has been described using the point cloud encoding device 100 and the point cloud decoding device 200 as examples, but the present invention is not limited to such examples and can be similarly applied to a point cloud encoding/decoding system having the functions of the point cloud encoding device 100 and the point cloud decoding device 200.

なお、本実施形態によれば、例えば、動画像通信において総合的なサービス品質の向上を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。 In addition, according to this embodiment, for example, it is possible to improve the overall service quality in video communication, which makes it possible to contribute to Goal 9 of the Sustainable Development Goals (SDGs) led by the United Nations, which is to "build resilient infrastructure, promote sustainable industrialization and foster innovation."

10…点群処理システム
100…点群符号化装置
1010…座標変換部
1020…幾何情報量子化部
1030…ツリー解析部
1040…近似表面解析部
1050…幾何情報符号化部
1060…幾何情報再構成部
1070…色変換部
1080…属性転移部
1090…RAHT部
1100…LoD算出部
1110…リフティング部
1120…属性情報量子化部
1130…属性情報符号化部
200…点群復号装置
2010…幾何情報復号部
2020…ツリー合成部
2030…近似表面合成部
2040…幾何情報再構成部
2050…逆座標変換部
2060…属性情報復号部
2070…逆量子化部
2080…RAHT部
2090…LoD算出部
2100…逆リフティング部
2110…逆色変換部

10...Point cloud processing system 100...Point cloud encoding device 1010...Coordinate transformation unit 1020...Geometric information quantization unit 1030...Tree analysis unit 1040...Approximate surface analysis unit 1050...Geometric information encoding unit 1060...Geometric information reconstruction unit 1070...Color conversion unit 1080...Attribute transfer unit 1090...RAHT unit 1100...LoD calculation unit 1110...Lifting unit 1120...Attribute information quantization unit 1130...Attribute information encoding unit 200...Point cloud decoding device 2010...Geometric information decoding unit 2020...Tree synthesis unit 2030...Approximate surface synthesis unit 2040...Geometric information reconstruction unit 2050...Inverse coordinate transformation unit 2060...Attribute information decoding unit 2070...Inverse quantization unit 2080...RAHT unit 2090...LoD calculation unit 2100...Inverse lifting unit 2110...Inverse color conversion unit

Claims (7)

点群復号装置であって、
互いに異なるサイズを持つノード同士の境界において、ノードサイズが大きい方のノードの頂点を用いて、頂点の内挿処理を行い、前記内挿処理が行われた頂点が、ノードサイズが小さい方のノードの辺上に存在するとき、前記内挿処理が行われた頂点を前記ノードサイズが小さい方のノードの辺の頂点としてTrisoup処理を実行する近似表面合成部を備えることを特徴とする点群復号装置。
A point cloud decoding device, comprising:
A point cloud decoding device characterized by comprising an approximate surface synthesis unit that performs vertex interpolation processing using the vertices of the node with the larger node size at the boundary between nodes having different sizes, and when the vertex that has been subjected to the interpolation processing exists on an edge of the node with the smaller node size, performs Trisoup processing with the vertex that has been subjected to the interpolation processing as the vertex of the edge of the node with the smaller node size.
前記近似表面合成部は、
ノードの各辺について前記内挿処理が行われた頂点が、前記ノードの辺上にない場合は、頂点情報を復号し、
ノードの各辺について前記内挿処理が行われた頂点が、前記ノードの辺上にある場合は、前記内挿処理が行われた頂点に基づいて、頂点情報を設定することを特徴とする請求項1に記載の点群復号装置。
The approximate surface synthesis unit includes:
If the vertex for which the interpolation process has been performed for each edge of the node is not on the edge of the node, decode the vertex information;
The point cloud decoding device according to claim 1, characterized in that, when the vertex on which the interpolation process is performed for each side of a node is on an edge of the node, vertex information is set based on the vertex on which the interpolation process is performed.
前記近似表面合成部は、
前記頂点情報の復号処理に先立って、前記ノードの各辺のマスク情報を生成し、
前記マスク情報に基づいて、前記ノードの辺上に前記内挿処理が行われた頂点があるか否かを判定することを特徴とする請求項2に記載の点群復号装置。
The approximate surface synthesis unit includes:
generating mask information for each edge of the node prior to decoding the vertex information;
The point cloud decoding device according to claim 2 , wherein it is determined whether or not the vertex on which the interpolation process is performed is present on the edge of the node based on the mask information.
前記頂点情報は、頂点の有無を示す情報及び辺上における頂点位置の2つの情報から構成されていることを特徴とする請求項2又は3に記載の点群復号装置。 The point cloud decoding device according to claim 2 or 3, characterized in that the vertex information is composed of two pieces of information: information indicating the presence or absence of a vertex and the position of the vertex on an edge. 前記内挿処理が行われた頂点が、前記ノードの辺上にある場合は、前記頂点の有無を示す情報は、前記頂点が有ることを示し、前記辺上における頂点位置は、前記内挿処理が行われた頂点位置を示すと暗黙的にみなすことを特徴とする請求項4に記載の点群復号装置。 The point cloud decoding device according to claim 4, characterized in that, if the vertex on which the interpolation process is performed is on an edge of the node, the information indicating the presence or absence of the vertex indicates that the vertex is present, and the vertex position on the edge is implicitly regarded as indicating the vertex position on which the interpolation process is performed. 点群復号方法であって、
互いに異なるサイズを持つノード同士の境界において、ノードサイズが大きい方のノードの頂点を用いて、頂点の内挿処理を行う工程と、
前記内挿処理が行われた頂点が、ノードサイズが小さい方のノードの辺上に存在するとき、前記内挿処理が行われた頂点を前記ノードサイズが小さい方のノードの辺の頂点としてTrisoup処理を実行する工程とを有することを特徴とする点群復号方法。
A point cloud decoding method, comprising:
performing vertex interpolation processing at the boundary between nodes having different sizes using the vertices of the node having a larger node size;
and when the vertex on which the interpolation process has been performed is on an edge of a node having a smaller node size, performing a Trisoup process with the vertex on which the interpolation process has been performed as a vertex of the edge of the node having a smaller node size.
コンピュータを、点群復号装置として機能させるプログラムであって、
前記点群復号装置は、
互いに異なるサイズを持つノード同士の境界において、ノードサイズが大きい方のノードの頂点を用いて、頂点の内挿処理を行い、前記内挿処理が行われた頂点が、ノードサイズが小さい方のノードの辺上に存在するとき、前記内挿処理が行われた頂点を前記ノードサイズが小さい方のノードの辺の頂点としてTrisoup処理を実行する近似表面合成部を備えることを特徴とするプログラム。
A program for causing a computer to function as a point group decoding device,
The point group decoding device comprises:
A program comprising an approximate surface synthesis unit that performs vertex interpolation processing using a vertex of a node having a larger node size at a boundary between nodes having different sizes, and when the vertex that has been subjected to the interpolation processing is on an edge of a node having a smaller node size, performs a Trisoup processing with the vertex that has been subjected to the interpolation processing as a vertex of the edge of the node having the smaller node size.
JP2022165087A 2022-10-13 2022-10-13 Point group decoding device, point group decoding method and program Pending JP2024058011A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022165087A JP2024058011A (en) 2022-10-13 2022-10-13 Point group decoding device, point group decoding method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022165087A JP2024058011A (en) 2022-10-13 2022-10-13 Point group decoding device, point group decoding method and program

Publications (1)

Publication Number Publication Date
JP2024058011A true JP2024058011A (en) 2024-04-25

Family

ID=90789931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022165087A Pending JP2024058011A (en) 2022-10-13 2022-10-13 Point group decoding device, point group decoding method and program

Country Status (1)

Country Link
JP (1) JP2024058011A (en)

Similar Documents

Publication Publication Date Title
CN113615181B (en) Method and device for point cloud encoding and decoding
JP7495185B2 (en) Point group decoding device, point group decoding method and program
CN113632142A (en) Method and device for point cloud compression
WO2021199781A1 (en) Point group decoding device, point group decoding method, and program
WO2022070469A1 (en) Point group decoding device, point group decoding method, and program
US20230117998A1 (en) Point-cloud decoding device, point-cloud decoding method, and program
CN113179411A (en) Point cloud attribute coding and decoding method and device, computer equipment and storage medium
WO2022071284A1 (en) Point group decoding device, point group decoding method, and program
JP7505954B2 (en) Point group decoding device, point group decoding method and program
JP2024058011A (en) Point group decoding device, point group decoding method and program
JP2024058012A (en) Point group decoding device, point group decoding method and program
JP2024093896A (en) Point group decoding device, point group decoding method and program
JP2024093897A (en) Point group decoding device, point group decoding method and program
WO2023132331A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2023132329A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2023132330A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2024009561A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2024009675A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2024009676A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2024009562A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2023277128A1 (en) Point cloud decoding device, point cloud decoding method, and program
RU2778864C1 (en) Implicit geometric division based on a quad-tree or binary tree for encoding a point cloud
JP2023053827A (en) Point group decoding device, point group decoding method and program
WO2024044082A2 (en) Decoding method, encoding method, decoder and endoder
WO2024123568A1 (en) Geometry point cloud coding method, encoder and decoder