Patent ID: 12231684

MODE FOR CARRYING OUT THE INVENTION

Hereinafter, modes for carrying out the present disclosure (hereinafter referred to as embodiments) will be described. Note that the description will be made in the following order.1. Setting of Reference Point2. First Embodiment (Method 1)3. Second Embodiment (Method 2)4. Third Embodiment (Method 3)5. Fourth Embodiment (Method 4)6. Appendix

1. Setting of Reference Point

Documents and the Like that Support Technical Contents and Terms

The scope disclosed in the present technology includes not only the contents described in the embodiments but also the contents described in the following non-patent documents known at the time of filing.Non-Patent Document 1: (described above)Non-Patent Document 2: (described above)Non-Patent Document 3: (described above)Non-Patent Document 4: (described above)

That is, the contents described in the above-described non-patent documents, the contents of other documents referred to in the above-described non-patent documents, and the like are also grounds for determining the support requirement.

<Point Cloud>

Conventionally, there has been 3D data such as a point cloud representing a three-dimensional structure by position information, attribute information, and the like of points, and a mesh that is configured by vertices, edges, and surfaces and defines a three-dimensional shape using polygonal representation.

For example, in a case of the point cloud, a three-dimensional structure (three-dimensional object) is expressed as a set of a large number of points. Data of the point cloud (also referred to as point cloud data) includes position information (also referred to as geometry data) and attribute information (also referred to as attribute data) of each point. The attribute data can include any information. For example, color information, reflectance information, normal line information, and the like of each point may be included in the attribute data. As described above, the point cloud data has a relatively simple data structure, and can express any three-dimensional structure with sufficient accuracy by using a sufficiently large number of points.

<Quantization of Position Information Using Voxels>

Since such point cloud data has a relatively large data amount, an encoding method using voxels has been conceived in order to compress the data amount by encoding or the like. The voxel is a three-dimensional region for quantizing geometry data (position information).

That is, a three-dimensional region (also referred to as a bounding box) including the point cloud is divided into small three-dimensional regions called voxels, and whether or not a point is included is indicated for each of the voxels. In this manner, the position of each point is quantized in voxel units. Therefore, by converting point cloud data into such data of voxels (also referred to as voxel data), an increase in the amount of information can be suppressed (typically, the amount of information can be reduced).

<Octree>

Moreover, it has been conceived to construct an Octree using such voxel data for the geometry data. The Octree is obtained by converting the voxel data into a tree structure. The value of each bit of the lowest node in the Octree indicates the presence or absence of a point in each voxel. For example, a value “1” indicates a voxel containing a point, and a value “0” indicates a voxel not containing a point. In the Octree, one node corresponds to eight voxels. That is, each node of the Octree includes 8-bit data, and the 8-bit data indicates the presence or absence of points in eight voxels.

Then, a higher node of the Octree indicates the presence or absence of a point in a region in which the eight voxels corresponding to a lower node belonging to the node are combined into one. That is, the higher node is generated by collecting information of the voxels of the lower nodes. Note that in a case where a node having a value of “0”, that is, all the corresponding eight voxels do not include a point, the node is deleted.

In this manner, a tree structure (Octree) including nodes having values other than “0” is constructed. That is, the Octree can indicate the presence or absence of a point in a voxel at each resolution. By performing Octree conversion and encoding, the position information is decoded from the highest resolution (highest hierarchy) to a desired hierarchy (resolution), so that the point cloud data with that resolution can be restored. That is, information of unnecessary hierarchy (resolutions) can be easily decoded at an arbitrary resolution without being decoded. In other words, scalability of voxels (resolution) can be achieved.

Furthermore, as described above, by omitting the node having the value “0”, the resolution of the voxels in the region where the point does not exist can be reduced, so that it is possible to further suppress the increase in the information amount (typically, reduction in the amount of information).

<Lifting>

On the other hand, when the attribute data (attribute information) is encoded, it is assumed that the geometry data (position information) including degradation due to encoding is known, and encoding is performed using a positional relationship between points. As a method of encoding such attribute data, a method using region adaptive hierarchical transform (RAHT) or a transform called lifting as described in Non-Patent Document 2 has been considered. By applying these techniques, the attribute data can be hierarchized like the Octree for geometry data.

For example, in a case of the lifting described in Non-Patent Document 2, the attribute data is hierarchized by recursively repeating a process of setting a point as a reference point or a prediction point with respect to the reference point. Then, according to this hierarchical structure, a predicted value of the attribute data of the prediction point is derived using the attribute data of the reference point, and a difference value between the predicted value and the attribute data is encoded.

For example, it is assumed that a point P5is selected as the reference point inFIG.1. In this case, for the prediction point, a search is performed in a circular region with a radius R centered on the point P5. In this case, since a point P9is located in the region, the point P9is set as the prediction point (the prediction point using the point P5as the reference point) from which a predicted value is derived with reference to the point P5.

By such processing, for example, respective difference values of a point P7to the point P9indicated by white circles, respective difference values of a point P1, a point P3, and a point P6indicated by diagonal lines, and respective difference values of a point P0, a point P2, a point P4, and the point P5indicated by gray circles are derived as difference values of different hierarchies.

Note that while the point cloud is arranged in a three-dimensional space and the above-described processing is performed in the three-dimensional space in practice, inFIG.1, the three-dimensional space is schematically illustrated using a two-dimensional plane for convenience of description. That is, the description made with reference toFIG.1can be similarly applied to a process, a phenomenon, or the like in a three-dimensional space.

In the following description, the three-dimensional space is appropriately described using a two-dimensional plane. Unless otherwise specified, basically, the description can be similarly applied to a process, a phenomenon, or the like in the three-dimensional space.

The selection of the reference point in this hierarchization has been performed, for example, according to Morton order. For example, as in the tree structure illustrated inFIG.2, in a case where one reference point is selected from a plurality of nodes in a certain hierarchy and the selected reference point is set as a node that is one level higher, a search for the plurality of nodes is performed in the Morton order, and a node that appears first is selected as the reference point. InFIG.2, each circle represents a node, and a black circle represents a node selected as the reference point (that is, the node is selected as the node that is one level higher). InFIG.2, respective nodes are sorted in the Morton order from left to right. That is, in a case of the example ofFIG.2, the leftmost node is always selected.

On the other hand, in such hierarchization of the attribute data, Non-Patent Document 4 proposes a method of alternately selecting, as the reference point, the first point and the last point in the Morton order among candidates for the reference point for each hierarchy. That is, as in an example ofFIG.3, in the hierarchy of LoD N, the first node in the Morton order is selected as the reference point, and in the next hierarchy (LoD N−1), the last node in the Morton order is selected as the reference point.

FIG.4illustrates an example of how the reference point is selected in a three-dimensional space using a two-dimensional plane. Each square in A ofFIG.4indicates a voxel in a certain hierarchy. Furthermore, a circle indicates a candidate of a reference point as a processing target. In a case where the reference point is selected from the 2×2 points illustrated in A ofFIG.4, for example, the first point (gray point) of the Morton order is selected as the reference point. In the hierarchy that is one level higher, as illustrated in B ofFIG.4, the last point (gray point) in the Morton order among the 2×2 points is selected as the reference point. Moreover, in the hierarchy that is one level higher, as illustrated in C ofFIG.4, the first point (gray point) in the Morton order among the 2×2 points is selected as the reference point.

Respective arrows illustrated in A to C ofFIG.4indicate movement of the reference point. In this case, the movement range of the reference point is limited to a narrow range as indicated by a dotted line frame illustrated in C ofFIG.4, and thus a decrease in prediction accuracy is suppressed.

However, when the reference point is selected at a position illustrated inFIG.5as in a case ofFIG.4, the position of the reference point moves as in A to C ofFIG.5.FIG.4illustrates another example of how the reference point is selected in the three-dimensional space using the two-dimensional plane. That is, the movement range of the reference point is wider than that in the case ofFIG.4as indicated by a dotted line frame illustrated in C ofFIG.5, and the prediction accuracy may decrease.

As described above, in the method described in Non-Patent Document 4, prediction accuracy decreases depending on the position of the point, and encoding efficiency may decrease.

<Method of Setting Reference Point>

Accordingly, for example, as in Method 1 illustrated in the top row of a table ofFIG.6, in the hierarchization of the attribute data, a centroid of points may be obtained, and a reference point may be set on the basis of the centroid. For example, a point close to the derived centroid may be selected as the reference point.

Furthermore, for example, as in Method 2 illustrated in the second row from the top of the table inFIG.6, in the hierarchization of the attribute data, the reference point may be selected according to a distribution pattern (distribution mode) of points.

Moreover, for example, as in Method 3 illustrated in the third row from the top of the table inFIG.6, in the hierarchization of the attribute data, information regarding the setting of the reference point may be transmitted from the encoding side to the decoding side.

Furthermore, for example, as in Method 4 illustrated in the fourth row from the top of the table inFIG.6, in the hierarchization of the attribute data, a point close to and a point far from the center of a bounding box may be alternately selected for each hierarchy as the reference point.

By applying any of these methods, a decrease in encoding efficiency can be suppressed. Note that the above-described methods can be applied in any combination. Furthermore, each of the above-described methods can be applied to encoding or decoding of the attribute data compatible with scalable decoding, and can also be applied to encoding or decoding of the attribute data not compatible with scalable decoding.

2. First Embodiment

Method 1

A case where the above-described “Method 1” is applied will be described. In the case of “Method 1”, the centroid of points is derived, and the reference point is selected on the basis of the centroid. Any point may be set as the reference point with respect to the derived centroid. For example, a point close to the derived centroid (for example, a point located closer to the centroid) may be selected as the reference point.

A ofFIG.7illustrates an example of a target region in which the reference point is set. In A ofFIG.7, a square indicates a voxel, and a circle indicates a point. That is, A ofFIG.7is a diagram schematically illustrating an example of a voxel structure in a three-dimensional space using a two-dimensional plane. For example, when points A to C arranged as illustrated in A ofFIG.7are assumed as candidates for the reference point, the point B close to the centroid of these candidates may be selected as the reference point as illustrated in B ofFIG.7. B ofFIG.7illustrates a hierarchical structure of the attribute data similarly toFIG.2and the like, and a black circle indicates the reference point. That is, the point B is selected as the reference point from the points A to C.

By referring to a point close to the centroid in this manner, a point close to more other points can be set as the reference point. Therefore, in short, the reference point can be set so as to suppress a decrease in prediction accuracy for more prediction points, and a decrease in encoding efficiency can be suppressed.

<Method of Deriving Centroid>

A method of deriving the centroid is arbitrary. For example, the centroid for any point may be applied as the centroid used to select the reference point. For example, a centroid of points located within a predetermined range may be derived, and the centroid may be used to select the reference point. In this manner, it is possible to suppress an increase in the number of points used for deriving the centroid, and it is possible to suppress an increase in load.

The range of points used to derive the centroid (also referred to as a centroid derivation target range) may be any range. For example, the centroid of candidates for the reference point may be derived as in Method (1) illustrated in the second row from the top of a table of the “method of deriving the centroid” illustrated inFIG.8. That is, for example, as illustrated in A ofFIG.9, a voxel region including 2×2×2 voxels in which a point to be a candidate for the reference point exists may be set as the centroid derivation target range. In A ofFIG.9, a 2×2×2 voxel region in a three-dimensional space is schematically illustrated on a two-dimensional plane (as a 2×2 square). In this case, the centroid of three points indicated by circles in A ofFIG.9is derived, and the centroid is used for setting the reference point.

In this manner, since it is sufficient to derive the centroid of points (reference point candidates) as a processing target, a search for other points or the like is unnecessary, and the centroid can be easily derived.

Note that the voxel region to be set as the centroid derivation target range is arbitrary and is not limited to 2×2×2. For example, a centroid of points located in a voxel region formed by N×N×N (N>=2) voxels may be derived. That is, the voxel region of N×N×N may be set as the centroid derivation target range.

For example, as illustrated in A ofFIG.10, a voxel region (a voxel region indicated by a thick line in A ofFIG.10) to be set as the centroid derivation target range and a voxel region (a voxel region indicated in gray in A ofFIG.10) as the target from which the reference point is derived may be at the same position (both ranges may be perfectly matched). Note that, inFIG.10, a voxel region actually configured in the three-dimensional space is schematically illustrated on the two-dimensional plane. Furthermore, in A ofFIG.10, for convenience of description, the centroid derivation target range and the voxel region as the target from which the reference point is derived are illustrated as slightly shifted from each other, but are illustrated so that both the ranges perfectly matched in practice.

Furthermore, for example, as illustrated in B ofFIG.10, a voxel region (a voxel region indicated by a thick line in B ofFIG.10) to be set as the centroid derivation target range may be wider than a voxel region (a voxel region indicated in gray in B ofFIG.10) as the target from which the reference point is derived. In the example in B ofFIG.10, a voxel region of 4×4×4 is set as the centroid derivation target range.

Furthermore, for example, as illustrated in C ofFIG.10, the center of a voxel region (a voxel region indicated by a thick line in C ofFIG.10) to be set as the centroid derivation target range may not coincide with the center of a voxel region (a voxel region indicated in gray in C ofFIG.10) as the target from which the reference point is derived. That is, the centroid derivation target range may extend unevenly in a predetermined direction with respect to the voxel region as the target from which the reference point is derived. For example, in the vicinity of the end of the bounding box or the like, in order to prevent the centroid derivation target range from protruding from the bounding box, the spread of the centroid derivation target range may be biased in this manner.

Furthermore, for example, as in Method (2) illustrated in the third row from the top of the table of the “method of deriving the centroid” illustrated inFIG.8, the centroid of the N points in the vicinity may be obtained. That is, for example, as illustrated in B ofFIG.9, N points may be searched from a side closer to center coordinates of a voxel region including 2×2×2 voxels in which a point to be a candidate for the reference point exists, and the centroid of the N points may be derived. In B ofFIG.9, a distribution of points actually arranged in a three-dimensional space is schematically illustrated on the two-dimensional plane. Furthermore, a black circle indicates center coordinates of the voxel region as the target from which the reference point is derived. That is, N points (white circles) are selected in order from a side closer to the black circle, and the centroid thereof is derived.

In this manner, the number of points to be searched can be limited to N, and thus an increase in load due to the search can be suppressed.

Furthermore, for example, as in Method (3) illustrated in the fourth row from the top of the table of the “method of deriving the centroid” illustrated inFIG.8, candidates for a reference point (a point existing in a voxel region including 2×2×2 voxels) may be excluded from the N points in the vicinity derived by Method (2). That is, as illustrated in C ofFIG.9, the voxel region of 2×2×2 may be excluded from the centroid derivation target range, and the centroid of points located outside the voxel region of 2×2×2 may be derived. In C ofFIG.9, a distribution of points actually arranged in a three-dimensional space is schematically illustrated on the two-dimensional plane.

Moreover, for example, as in Method (4) illustrated in the fifth row from the top of the table of the “method of deriving the centroid” illustrated inFIG.8, the centroid of points in a region with a radius r centered on center coordinates of a voxel region including 2×2×2 voxels in which a candidate point for the reference point exists may be derived. That is, in this case, for example, as illustrated in D ofFIG.9, the centroid of points located in the region with the radius r centered on the center coordinates of the voxel region including the 2×2×2 voxels indicated by the dotted frame is derived. Note that in D ofFIG.9, a distribution of points actually arranged in a three-dimensional space is schematically illustrated on the two-dimensional plane. Furthermore, a black circle indicates center coordinates of a voxel region as a target from which the reference point is derived, and a white circle indicates a point in a region with a radius r centered on the center coordinates of the voxel region including 2×2×2 voxels.

In this manner, the present technology can also be applied to scalable non-compatible lifting that does not use a voxel structure.

<Method of Selecting Reference Point>

In the case of “Method 1” as described above, for example, a point close to the derived centroid can be set as the reference point. In a case where there is a plurality of “points close to the centroid”, any one of the points is selected as the reference point. A method of the selection is arbitrary. For example, the reference point may be set as in each method illustrated in the table of a “method of selecting the reference point from a plurality of candidates” inFIG.11.

For example, as illustrated in A ofFIG.12, there may be a plurality of points having equal distances to each other from the centroid. Furthermore, for example, as illustrated in B ofFIG.12, in order to suppress an increase in load due to calculation, for example, all points located sufficiently close may be assumed as “points close to the centroid”. In the case of B ofFIG.12, all points located within the range with a radius Dth from the centroid are regarded as “points close to the centroid”. In this case, there may be a plurality of “points close to the centroid”.

In such a case, for example, as in Method (1) illustrated in the second row from the top of the table of the “method of selecting the reference point from a plurality of candidates” illustrated inFIG.11, a first point to be the processing target in a predetermined search order may be selected.

Furthermore, for example, as in Method (2) illustrated in the third row from the top of the table of the “method of selecting the reference point from a plurality of candidates” illustrated inFIG.11, the first or last point to be the processing target may be selected in the predetermined search order. For example, whether to select the first point to be the processing target in the predetermined search order or to select the last point to be the processing target in the predetermined search order may be switched for each hierarchy.

Moreover, for example, as in Method (3) illustrated in the fourth row from the top of the table of the “method of selecting the reference point from a plurality of candidates” illustrated inFIG.11, the point to be the processing target may be selected in middle (number/2) in the predetermined search order.

Furthermore, for example, as in Method (4) illustrated in the fifth row from the top of the table of the “method of selecting the reference point from a plurality of candidates” illustrated inFIG.11, the point to be the processing target may be selected in the order designated in the predetermined search order. That is, an Nth point to be the processing target in the predetermined search order may be selected. This designation order (N) may be determined in advance or may be settable by a user, an application, or the like. Furthermore, in a case where the designated rank can be set, information regarding the designated order (N) may be signaled (transmitted).

As in the above Methods (1) to (4), in a case where there is a plurality of candidates of substantially the same condition with respect to the centroid, the reference point may be set on the basis of the predetermined search order from among the plurality of candidates.

Note that the search order is arbitrary. For example, the order may be the Morton order or may be other than the Morton order. Furthermore, this search order may be defined in advance by standards or the like, or may be settable by a user, an application, or the like. In a case where the search order can be set, information regarding the search order may be signaled (transmitted).

Moreover, for example, as in Method (5) illustrated in the sixth row from the top of the table of the “method of selecting the reference point from a plurality of candidates” illustrated inFIG.11, the centroid derivation target range may be set to a wider range, the centroid of points within the centroid derivation target range of the wide range may be derived, and the point may be selected using the newly derived centroid. That is, the centroid may be derived again by changing the condition.

<Encoding Device>

Next, a device to which the present technology is applied will be described.FIG.13is a block diagram illustrating an example of a configuration of an encoding device that is an aspect of an information processing device to which (“Method 1” of) the present technology is applied. An encoding device100illustrated inFIG.13is a device that encodes the point cloud (3D data). The encoding device100encodes the point cloud by applying the present technology described in the present embodiment.

Note that whileFIG.13illustrates main elements such as processing units and data flows, those illustrated inFIG.13do not necessarily include all elements. That is, in the encoding device100, a processing unit not illustrated as a block inFIG.13may exist, or a process or data flow not illustrated as an arrow or the like inFIG.13may exist.

As illustrated inFIG.13, the encoding device100includes a position information encoding unit101, a position information decoding unit102, a point cloud generation unit103, an attribute information encoding unit104, and a bit stream generation unit105.

The position information encoding unit101encodes the geometry data (position information) of the point cloud (3D data) input to the encoding device100. A method for the encoding is arbitrary as long as it is a method compatible with scalable decoding. For example, the position information encoding unit101hierarchizes the geometry data to generate the Octree, and encodes the Octree. Furthermore, for example, a process such as filtering or quantization for noise suppression (denoise) may be performed. The position information encoding unit101supplies coded data of the generated geometry data to the position information decoding unit102and the bit stream generation unit105.

The position information decoding unit102acquires the coded data of the geometry data supplied from the position information encoding unit101, and decodes the coded data. A method of the decoding is arbitrary as long as it is a method corresponding to encoding by the position information encoding unit101. For example, a process such as filtering or inverse quantization for denoise may be performed. The position information decoding unit102supplies the generated geometry data (decoding result) to the point cloud generation unit103.

The point cloud generation unit103acquires the attribute data (attribute information) of the point cloud input to the encoding device100and the geometry data (decoding result) supplied from the position information decoding unit102. The point cloud generation unit103performs a process (recoloring process) of matching the attribute data with the geometry data (decoding result). The point cloud generation unit103supplies the attribute data corresponding to the geometry data (decoding result) to the attribute information encoding unit104.

The attribute information encoding unit104acquires the geometry data (decoding result) and the attribute data supplied from the point cloud generation unit103. The attribute information encoding unit104encodes the attribute data using the geometry data (decoding result) and generates coded data of the attribute data.

At that time, the attribute information encoding unit104applies the above-described present technology (Method 1) to encode the attribute data. The attribute information encoding unit104supplies the coded data of the generated attribute data to the bit stream generation unit105.

The bit stream generation unit105acquires the coded data of the geometry data supplied from the position information encoding unit101. Furthermore, the bit stream generation unit105acquires the coded data of the attribute data supplied from the attribute information encoding unit104. The bit stream generation unit105generates a bit stream including the coded data. The bit stream generation unit105outputs the generated bitstream to an outside of the encoding device100.

With such a configuration, the encoding device100can obtain the centroid of points in the hierarchization of the attribute data and set the reference point on the basis of the centroid. By referring to a point close to the centroid in this manner, a point close to more other points can be set as the reference point. Therefore, in short, the reference point can be set so as to suppress a decrease in prediction accuracy for more prediction points, and a decrease in encoding efficiency can be suppressed.

Note that each of these processing units (the position information encoding unit101to the bit stream generation unit105) of the encoding device100has an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that achieves the above-described processing. Furthermore, each processing unit may include, for example, a central processing unit (CPU), a read only memory (ROM), a random access memory (RAM), and the like, and execute a program using them, to thereby implement the above-described processing. Of course, each processing unit may have both the configurations, and a part of the above-described processing may be implemented by a logic circuit and the other may be implemented by executing a program. The configurations of the processing units may be independent from each other, and for example, a part of the processing units may implement a part of the above-described processing by a logic circuit, another part of the processing units may implement the above-described processing by executing a program, and still another of the processing units may implement the above-described processing by both the logic circuit and the execution of the program.

<Attribute Information Encoding Unit>

FIG.14is a block diagram illustrating a main configuration example of the attribute information encoding unit104(FIG.13). Note that whileFIG.14illustrates main elements such as processing units and data flows, those illustrated inFIG.14do not necessarily include all elements. That is, in the attribute information encoding unit104, a processing unit not illustrated as a block inFIG.14may exist, or a process or data flow not illustrated as an arrow or the like inFIG.14may exist.

As illustrated inFIG.14, the attribute information encoding unit104includes a hierarchization processing unit111, a quantization unit112, and an encoding unit113.

The hierarchization processing unit111performs a process related to hierarchization of attribute data. For example, the hierarchization processing unit111acquires the attribute data and the geometry data (decoding result) supplied from the point cloud generation unit103. The hierarchization processing unit111hierarchizes the attribute data using the geometry data. At that time, the hierarchization processing unit111performs hierarchization by applying the above-described present technology (Method 1). That is, the hierarchization processing unit111derives the centroid of points in each hierarchy, and selects the reference point on the basis of the centroid. Then, the hierarchization processing unit111sets a reference relationship in each hierarchy of the hierarchical structure, derives a predicted value of the attribute data of each prediction point using the attribute data of the reference point on the basis of the reference relationship, and derives a difference value between the attribute data and the predicted value. The hierarchization processing unit111supplies the hierarchized attribute data (difference value) to the quantization unit112.

At that time, the hierarchization processing unit111can also generate control information regarding hierarchization. The hierarchization processing unit111can also supply the generated control information to the quantization unit112together with the attribute data (difference value).

The quantization unit112acquires the attribute data (difference value) and the control information supplied from the hierarchization processing unit111. The quantization unit112quantizes the attribute data (difference value). A method of the quantization is arbitrary. The quantization unit112supplies the quantized attribute data (difference value) and control information to the encoding unit113.

The encoding unit113acquires the quantized attribute data (difference value) and control information supplied from the quantization unit112. The encoding unit113encodes the quantized attribute data (difference value) and generates coded data of the attribute data. A method of the encoding is arbitrary. Furthermore, the encoding unit113includes control information in the generated coded data. In other words, the coded data of the attribute data including the control information is generated. The encoding unit113supplies the generated coded data to the bit stream generation unit105.

By performing the hierarchization as described above, the attribute information encoding unit104can set a point close to the centroid as the reference point, and thus can set a point close to more other points as the reference point. Therefore, in short, the reference point can be set so as to suppress a decrease in prediction accuracy for more prediction points, and a decrease in encoding efficiency can be suppressed.

Note that these processing units (the hierarchization processing unit111to the encoding unit113) have an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that achieves the above-described processing. Furthermore, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and execute a program using them, to thereby implement the above-described processing. Of course, each processing unit may have both the configurations, and a part of the above-described processing may be implemented by a logic circuit and the other may be implemented by executing a program. The configurations of the processing units may be independent from each other, and for example, a part of the processing units may implement a part of the above-described processing by a logic circuit, another part of the processing units may implement the above-described processing by executing a program, and still another of the processing units may implement the above-described processing by both the logic circuit and the execution of the program.

<Hierarchization Processing Unit>

FIG.15is a block diagram illustrating a main configuration example of the hierarchization processing unit111(FIG.14). Note that whileFIG.15illustrates main elements such as processing units and data flows, those illustrated inFIG.15do not necessarily include all elements. That is, in the hierarchization processing unit111, a processing unit not illustrated as a block inFIG.15may exist, or a process or data flow not illustrated as an arrow or the like inFIG.15may exist.

As illustrated inFIG.15, the hierarchization processing unit111includes a reference point setting unit121, a reference relationship setting unit122, an inversion unit123, and a weight value derivation unit124.

The reference point setting unit121performs a process related to setting of the reference point. For example, the reference point setting unit121classifies a group of points as the processing target into the reference point to which the attribute data is referred and the prediction point for deriving a predicted value of the attribute data on the basis of the geometry data of each point. That is, the reference point setting unit121sets the reference point and the prediction point. The reference point setting unit121recursively repeats this process with respect to the reference point. That is, the reference point setting unit121sets the reference point and the prediction point in the hierarchy as the processing target with the reference point set in the previous hierarchy as the processing target. In this manner, the hierarchical structure is constructed. That is, the attribute data is hierarchized. The reference point setting unit121supplies information indicating the set reference point and prediction point of each hierarchy to the reference relationship setting unit122.

The reference relationship setting unit122performs a process related to setting of the reference relationship of each hierarchy on the basis of the information supplied from the reference point setting unit121. That is, the reference relationship setting unit122sets, for each prediction point of each hierarchy, a reference point (that is, a reference destination) to be referred to for deriving the predicted value. Then, the reference relationship setting unit122derives the predicted value of the attribute data of each prediction point on the basis of the reference relationship. That is, the reference relationship setting unit122derives the predicted value of the attribute data of the prediction point using the attribute data of the reference point set as the reference destination. Moreover, the reference relationship setting unit122derives a difference value between the derived predicted value and the attribute data of the prediction point. The reference relationship setting unit122supplies the derived difference value (hierarchized attribute data) to the inversion unit123for each hierarchy.

Note that the reference point setting unit121can generate the control information and the like regarding the hierarchization of the attribute data as described above, supply the control information and the like to the quantization unit112, and transmit the control information and the like to the decoding side.

The inversion unit123performs a process related to inversion of hierarchies. For example, the inversion unit123acquires the hierarchized attribute data supplied from the reference relationship setting unit122. In the attribute data, information of each hierarchy is hierarchized in the order of generation. The inversion unit123inverts the hierarchy of the attribute data. For example, the inversion unit123assigns a hierarchy number (a number for identifying a hierarchy in which a value is incremented by one every time the highest hierarchy is lowered by zero or one, and the lowest hierarchy has the maximum value) to each hierarchy of the attribute data in the reverse order of the generation order, so that the generation order is the order from the lowest hierarchy to the highest hierarchy. The inversion unit123supplies the attribute data in which the hierarchy is inverted to the weight value derivation unit124.

The weight value derivation unit124performs a process related to weighting. For example, the weight value derivation unit124acquires the attribute data supplied from the inversion unit123. The weight value derivation unit124derives a weight value of the acquired attribute data. A method of deriving the weight value is arbitrary. The weight value derivation unit124supplies the attribute data (difference value) and the derived weight value to the quantization unit112(FIG.14). Furthermore, the weight value derivation unit124may supply the derived weight value to the quantization unit112as the control information and transmit the weight value to the decoding side.

In the above-described hierarchization processing unit111, the above-described present technology can be applied to the reference point setting unit121. That is, the reference relationship setting unit122can apply the above-described “Method 1”, derive the centroid of points, and set the reference point on the basis of the centroid. In this manner, it is possible to suppress a decrease in prediction accuracy and a decrease in encoding efficiency.

Note that this hierarchization procedure is arbitrary. For example, the processing of the reference point setting unit121and the processing of the reference relationship setting unit122may be executed in parallel. For example, the reference point setting unit121may set the reference point and the prediction point for each hierarchy, and the reference relationship setting unit122may set the reference relationship.

Note that these processing units (the reference point setting unit121to the weight value derivation unit124) have an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that achieves the above-described processing. Furthermore, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and execute a program using them, to thereby implement the above-described processing. Of course, each processing unit may have both the configurations, and a part of the above-described processing may be implemented by a logic circuit and the other may be implemented by executing a program. The configurations of the processing units may be independent from each other, and for example, a part of the processing units may implement a part of the above-described processing by a logic circuit, another part of the processing units may implement the above-described processing by executing a program, and still another of the processing units may implement the above-described processing by both the logic circuit and the execution of the program.

<Flow of Encoding Processing>

Next, processing executed by the encoding device100will be described. The encoding device100encodes the data of the point cloud by executing encoding processing. An example of a flow of this encoding processing will be described with reference to a flowchart ofFIG.16.

When the encoding processing is started, in step S101, the position information encoding unit101of the encoding device100encodes the geometry data (position information) of the input point cloud, and generates coded data of the geometry data.

In step S102, the position information decoding unit102decodes the coded data of the geometry data generated in step S101, and generates the position information.

In step S103, the point cloud generation unit103performs the recoloring process using the attribute data (attribute information) of the input point cloud and the geometry data (decoding result) generated in step S102, and associates the attribute data with the geometry data.

In step S104, the attribute information encoding unit104executes the attribute information encoding processing to thereby encode the attribute data subjected to the recoloring process in step S103and generate coded data of the attribute data. At that time, the attribute information encoding unit104performs processing by applying the above-described present technology (Method 1). For example, in the hierarchization of the attribute data, the attribute information encoding unit104derives the centroid of points and sets the reference point on the basis of the centroid. Details of the attribute information encoding processing will be described later.

In step S105, the bit stream generation unit105generates and outputs a bit stream including the coded data of the geometry data generated in step S101and the coded data of the attribute data generated in step S104.

When the processing of step S105ends, the encoding processing ends.

By performing the processing of each step in this manner, the encoding device100can suppress a decrease in prediction accuracy and can suppress a decrease in encoding efficiency.

<Flow of Attribute Information Encoding Processing>

Next, an example of a flow of the attribute information encoding processing executed in step S104ofFIG.16will be described with reference to a flowchart ofFIG.17.

When the attribute information encoding processing is started, the hierarchization processing unit111of the attribute information encoding unit104hierarchizes the attribute data by executing the hierarchization process in step S111. That is, the reference point and the prediction point of each hierarchy are set, and the reference relationship is further set. At that time, the hierarchization processing unit111performs hierarchization by applying the above-described present technology (Method 1). For example, in the hierarchization of the attribute data, the attribute information encoding unit104derives the centroid of points and sets the reference point on the basis of the centroid. Details of the hierarchization processing will be described later.

In step S112, the hierarchization processing unit111derives a predicted value of the attribute data for each prediction point in each hierarchy of the attribute data hierarchized in step S111, and derives a difference value between the attribute data of the prediction point and the predicted value.

In step S113, the quantization unit112quantizes each difference value derived in step S112.

In step S114, the encoding unit113encodes the difference value quantized in step S112, and generates the coded data of the attribute data.

When the processing of step S114ends, the attribute information encoding processing ends, and the processing returns toFIG.16.

By performing the processing of each step in this manner, the hierarchization processing unit111can apply the above-described “Method 1”, derive the centroid of points in the hierarchization of the attribute data, and set the reference point on the basis of the centroid. Therefore, the hierarchization processing unit111can hierarchize the attribute data so as to suppress a decrease in prediction accuracy, and thus it is possible to suppress a decrease in encoding efficiency.

<Flow of Hierarchization Processing>

Next, an example of a flow of the hierarchization processing executed in step S111ofFIG.17will be described with reference to a flowchart ofFIG.18.

When the hierarchization processing is started, in step S121, the reference point setting unit121of the hierarchization processing unit111sets the value of the variable LoD Index indicating the hierarchy as the processing target to an initial value (for example, “0”).

In step S122, the reference point setting unit121executes reference point setting processing, and sets the reference point in the hierarchy as the processing target (that is, the prediction point is also set). Details of the reference point setting processing will be described later.

In step S123, the reference relationship setting unit122sets a reference relationship (which reference point is referred to in deriving the predicted value of each prediction point) of the hierarchy as the processing target.

In step S124, the reference point setting unit121increments the LoD Index and sets the processing target to the next hierarchy.

In step S125, the reference point setting unit121determines whether or not all the points have been processed. In a case where it is determined that there is an unprocessed point, that is, in a case where it is determined that the hierarchization is not completed, the processing returns to step3122and the processing of step3122and subsequent steps is repeated. As described above, the processing of steps S122to S125is executed for each hierarchy, and in a case where it is determined in step S125that all the points have been processed, the processing proceeds to step S126.

In step S126, the inversion unit123inverts the hierarchy of the attribute data generated as described above, and assigns a hierarchy number to each hierarchy in a direction opposite to the generation order.

In step S127, the weight value derivation unit124derives a weight value for the attribute data of each hierarchy.

When the processing of step S127ends, the processing returns toFIG.14.

By performing the processing of each step in this manner, the hierarchization processing unit111can apply the above-described “Method 1”, derive the centroid of points in the hierarchization of the attribute data, and set the reference point on the basis of the centroid. Therefore, the hierarchization processing unit111can hierarchize the attribute data so as to suppress a decrease in prediction accuracy, and thus it is possible to suppress a decrease in encoding efficiency.

<Flow of Reference Relationship Setting Processing>

Next, an example of a flow of the reference point setting processing executed in step S122ofFIG.18will be described with reference to a flowchart ofFIG.19.

When the reference point setting processing is started, in step S141, the reference point setting unit121specifies a group of points used for deriving the centroid, and derives the centroid of the group of points as the processing target. A method of deriving the centroid is arbitrary as described above. For example, the centroid may be derived using any of the methods illustrated in the table ofFIG.8.

In step S142, the reference point setting unit121selects a point close to the centroid derived in step S141as the reference point. A method of selecting the reference point is arbitrary. For example, the centroid may be derived using any of the methods illustrated in the table ofFIG.11.

When the processing of step S142ends, the reference point setting processing ends, and the processing returns toFIG.18.

By performing the processing of each step in this manner, the reference point setting unit121can apply the above-described “Method 1”, derive the centroid of points in the hierarchization of the attribute data, and set the reference point on the basis of the centroid. Therefore, the hierarchization processing unit111can hierarchize the attribute data so as to suppress a decrease in prediction accuracy, and thus it is possible to suppress a decrease in encoding efficiency.

<Decoding Device>

Next, another example of a device to which the present technology is applied will be described.FIG.20is a block diagram illustrating an example of a configuration of a decoding device that is an aspect of an information processing device to which the present technology is applied. A decoding device200illustrated inFIG.20is a device that decodes coded data of the point cloud (3D data). The decoding device200decodes the coded data of the point cloud by applying the present technology (Method 1) described in the present embodiment.

Note that whileFIG.20illustrates main elements such as processing units and data flows, those illustrated inFIG.20do not necessarily include all elements. That is, in the decoding device200, a processing unit not illustrated as a block inFIG.20may exist, or a process or data flow not illustrated as an arrow or the like inFIG.20may exist.

As illustrated inFIG.20, the decoding device200includes a coded data extraction unit201, a position information decoding unit202, an attribute information decoding unit203, and a point cloud generation unit204.

The coded data extraction unit201acquires and holds a bit stream input to the decoding device200. The coded data extraction unit201extracts coded data of the geometry data (position information) and the attribute data (attribute information) from the held bit stream. The coded data extraction unit201supplies the coded data of the extracted geometry data to the position information decoding unit202. The coded data extraction unit201supplies the coded data of the extracted attribute data to the attribute information decoding unit203.

The position information decoding unit202acquires the coded data of the geometry data supplied from the coded data extraction unit201. The position information decoding unit202decodes the coded data of the geometry data, and generates the geometry data (decoding result). A method of the decoding is arbitrary as long as it is a method similar to that in the case of the position information decoding unit102of the encoding device100. The position information decoding unit202supplies the generated geometry data (decoding result) to the attribute information decoding unit203and the point cloud generation unit204.

The attribute information decoding unit203acquires the coded data of the attribute data supplied from the coded data extraction unit201. The attribute information decoding unit203acquires the geometry data (decoding result) supplied from the position information decoding unit202. The attribute information decoding unit203decodes the coded data of the attribute data by the method to which the above-described present technology (Method 1) is applied using the position information (decoding result) and generates the attribute data (decoding result). The attribute information decoding unit203supplies the generated attribute data (decoding result) to the point cloud generation unit204.

The point cloud generation unit204acquires the geometry data (decoding result) supplied from the position information decoding unit202. The point cloud generation unit204acquires the attribute data (decoding result) supplied from the attribute information decoding unit203. The point cloud generation unit204generates a point cloud (decoding result) using the geometry data (decoding result) and the attribute data (decoding result). The point cloud generation unit204outputs data of the generated point cloud (decoding result) to an outside of the decoding device200.

With such a configuration, the decoding device200can select a point close to the centroid of points as the reference point in the de-hierarchization. Therefore, the decoding device200can correctly decode the coded data of the attribute data encoded by the encoding device100described above, for example. Therefore, a decrease in prediction accuracy can be suppressed, and a decrease in encoding efficiency can be suppressed.

Note that these processing units (the coded data extraction unit201to the point cloud generation unit204) have an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that achieves the above-described processing. Furthermore, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and execute a program using them, to thereby implement the above-described processing. Of course, each processing unit may have both the configurations, and a part of the above-described processing may be implemented by a logic circuit and the other may be implemented by executing a program. The configurations of the processing units may be independent from each other, and for example, a part of the processing units may implement a part of the above-described processing by a logic circuit, another part of the processing units may implement the above-described processing by executing a program, and still another of the processing units may implement the above-described processing by both the logic circuit and the execution of the program.

<Attribute Information Decoding Unit>

FIG.21is a block diagram illustrating a main configuration example of the attribute information decoding unit203(FIG.20). Note that whileFIG.21illustrates main elements such as processing units and data flows, those illustrated inFIG.21do not necessarily include all elements. That is, in the attribute information decoding unit203, a processing unit not illustrated as a block inFIG.21may exist, or a process or data flow not illustrated as an arrow or the like inFIG.21may exist.

As illustrated inFIG.21, the attribute information decoding unit203includes a decoding unit211, an inverse quantization unit212, and a de-hierarchization processing unit213.

The decoding unit211performs processing related to decoding of the coded data of the attribute data. For example, the decoding unit211acquires the coded data of the attribute data supplied to the attribute information decoding unit203.

The decoding unit211decodes the coded data of the attribute data, and generates the attribute data (decoding result). A method of the decoding is arbitrary as long as it is a method corresponding to the encoding method by the encoding unit113(FIG.14) of the encoding device100. Furthermore, the generated attribute data (decoding result) corresponds to the attribute data before encoding, is a difference value between the attribute data and a predicted value thereof, and is quantized. The decoding unit211supplies the generated attribute data (decoding result) to the inverse quantization unit212.

Note that, in a case where the coded data of the attribute data includes the control information regarding the weight value and the control information regarding the hierarchization of the attribute data, the decoding unit211also supplies the control information to the inverse quantization unit212.

The inverse quantization unit212performs processing related to inverse quantization of the attribute data. For example, the inverse quantization unit212acquires the attribute data (decoding result) and the control information supplied from the decoding unit211.

The inverse quantization unit212inversely quantizes the attribute data (decoding result). At that time, in a case where the control information regarding the weight value is supplied from the decoding unit211, the inverse quantization unit212also acquires the control information and inversely quantizes the attribute data (decoding result) on the basis of the control information (using the weight value derived on the basis of the control information).

Furthermore, in a case where the control information regarding the hierarchization of the attribute data is supplied from the decoding unit211, the inverse quantization unit212also acquires the control information.

The inverse quantization unit212supplies the inversely quantized attribute data (decoding result) to the de-hierarchization processing unit213. Furthermore, in a case where the control information regarding the hierarchization of the attribute data is acquired from the decoding unit211, the inverse quantization unit212also supplies the control information to the de-hierarchization processing unit213.

The de-hierarchization processing unit213acquires the inversely quantized attribute data (decoding result) supplied from the inverse quantization unit212. As described above, the attribute data is a difference value. Furthermore, the de-hierarchization processing unit213acquires the geometry data (decoding result) supplied from the position information decoding unit202. Using the geometry data, the de-hierarchization processing unit213performs de-hierarchization, which is inverse processing of the hierarchization performed by the hierarchization processing unit111(FIG.14) of the encoding device100, on the acquired attribute data (difference value).

Here, the de-hierarchization will be described. For example, the de-hierarchization processing unit213hierarchizes the attribute data by a method similar to that of the encoding device100(hierarchization processing unit111) on the basis of the geometry data supplied from the position information decoding unit202. That is, the de-hierarchization processing unit213sets the reference point and the prediction point of each hierarchy on the basis of the decoded geometry data, and sets the hierarchical structure of the attribute data. The de-hierarchization processing unit213further uses the reference point and the prediction point to set a reference relationship (a reference destination for each prediction point) of each hierarchy of the hierarchical structure.

Then, the de-hierarchization processing unit213de-hierarchizes the acquired attribute data (difference value) using the hierarchical structure and the reference relationship of each hierarchy. That is, the de-hierarchization processing unit213derives the predicted value of the prediction point from the reference point according to the reference relationship, and restores the attribute data of each prediction point by adding the predicted value to the difference value. The de-hierarchization processing unit213performs this processing for each hierarchy from the higher hierarchy to the lower hierarchy. That is, the de-hierarchization processing unit213restores the attribute data of the prediction point of the hierarchy as the processing target as described above using the prediction point obtained by restoring the attribute data in a hierarchy higher than the hierarchy as the processing target as the reference point.

In the de-hierarchization performed in such a procedure, the de-hierarchization processing unit213sets the reference point by applying the above-described present technology (Method 1) when hierarchizing the attribute data on the basis of the decoded geometry data. That is, the de-hierarchization processing unit213derives the centroid of points and selects a point close to the centroid as the reference point. The de-hierarchization processing unit213supplies the de-hierarchized attribute data to the point cloud generation unit204(FIG.20) as a decoding result.

By performing the de-hierarchization as described above, the de-hierarchization processing unit213can set a point close to the centroid as the reference point, and thus can hierarchize the attribute data so as to suppress a decrease in prediction accuracy. That is, the attribute information decoding unit203can correctly decode coded data encoded by a similar method. For example, the attribute information decoding unit203can correctly decode the coded data of the attribute data encoded by the attribute information encoding unit104described above. Therefore, a decrease in encoding efficiency can be suppressed.

Note that these processing units (the decoding unit211to the de-hierarchization processing unit213) have an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that achieves the above-described processing. Furthermore, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and execute a program using them, to thereby implement the above-described processing. Of course, each processing unit may have both the configurations, and a part of the above-described processing may be implemented by a logic circuit and the other may be implemented by executing a program. The configurations of the processing units may be independent from each other, and for example, a part of the processing units may implement a part of the above-described processing by a logic circuit, another part of the processing units may implement the above-described processing by executing a program, and still another of the processing units may implement the above-described processing by both the logic circuit and the execution of the program.

<Flow of Decoding Processing>

Next, processing executed by the decoding device200will be described. The decoding device200decodes the coded data of the point cloud by executing decoding processing. An example of a flow of the decoding processing will be described with reference to a flowchart ofFIG.22.

When the decoding processing is started, in step S201, the coded data extraction unit201of the decoding device200acquires and holds a bit stream, and extracts the coded data of the geometry data and the coded data of the attribute data from the bit stream.

In step S202, the position information decoding unit202decodes the coded data of the extracted geometry data, and generates the geometry data (decoding result).

In step S203, the attribute information decoding unit203executes attribute information decoding processing, decodes the coded data of the attribute data extracted in step S201, and generates the attribute data (decoding result). At that time, the attribute information decoding unit203performs processing by applying the above-described present technology (Method 1). For example, in the hierarchization of the attribute data, the attribute information decoding unit203derives a centroid of points and sets a point close to the centroid as the reference point. Details of the attribute information decoding processing will be described later.

In step S204, the point cloud generation unit204generates and outputs the point cloud (decoding result) using the geometry data (decoding result) generated in step S202and the attribute data (decoding result) generated in step S203.

When the processing of step S204ends, the decoding processing ends.

By performing the processing of each step in this manner, the decoding device200can correctly decode the coded data of the attribute data encoded by a similar method. For example, the decoding device200can correctly decode the coded data of the attribute data encoded by the encoding device100described above. Therefore, a decrease in prediction accuracy can be suppressed, and a decrease in encoding efficiency can be suppressed.

<Flow of Attribute Information Decoding Processing>

Next, an example of a flow of the attribute information decoding processing executed in step S203ofFIG.22will be described with reference to a flowchart ofFIG.23.

When the attribute information decoding processing is started, the decoding unit211of the attribute information decoding unit203decodes the coded data of the attribute data and generates the attribute data (decoding result) in step S211. The attribute data (decoding result) is quantized as described above.

In step S212, the inverse quantization unit212inversely quantizes the attribute data (decoding result) generated in step S211by executing the inverse quantization processing.

In step S213, the de-hierarchization processing unit213executes the de-hierarchization processing to de-hierarchize the attribute data (difference value) inversely quantized in step S212and derive the attribute data of each point. At that time, the de-hierarchization processing unit213performs de-hierarchization by applying the above-described present technology (Method 1). For example, in the hierarchization of the attribute data, the de-hierarchization processing unit213derives a centroid of points and sets a point close to the centroid as the reference point. Details of the de-hierarchization processing will be described later.

When the processing of step S213ends, the attribute information decoding processing ends, and the processing returns toFIG.22.

By performing the processing of each step in this manner, the attribute information decoding unit203can apply the above-described “Method 1” and set a point close to the centroid of points as the reference point in the hierarchization of the attribute data. Therefore, the de-hierarchization processing unit213can hierarchize the attribute data so as to suppress a decrease in prediction accuracy. That is, the attribute information decoding unit203can correctly decode coded data encoded by a similar method. For example, the attribute information decoding unit203can correctly decode the coded data of the attribute data encoded by the attribute information encoding unit104described above. Therefore, a decrease in encoding efficiency can be suppressed.

<Flow of De-Hierarchization Processing>

Next, an example of a flow of the de-hierarchization processing executed in step S213ofFIG.23will be described with reference to a flowchart ofFIG.24.

When the de-hierarchization processing is started, in step S221, the de-hierarchization processing unit213performs the hierarchization processing of the attribute data (decoding result) using the geometry data (decoding result), restores the reference point and the prediction point of each hierarchy set on the encoding side, and further restores the reference relationship of each hierarchy. That is, the de-hierarchization processing unit213performs processing similar to the hierarchization processing performed by the hierarchization processing unit111, sets the reference point and the prediction point of each hierarchy, and further sets the reference relationship of each hierarchy.

For example, similarly to the hierarchization processing unit111, the de-hierarchization processing unit213applies the above-described “Method 1”, derives a centroid of points, and sets a point close to the centroid as the reference point.

In step S222, the de-hierarchization processing unit213de-hierarchizes the attribute data (decoding result) using the hierarchical structure and the reference relationship, and restores the attribute data of each point. That is, the de-hierarchization processing unit213derives the predicted value of the attribute data of the prediction point from the attribute data of the reference point on the basis of the reference relationship, and adds the predicted value to the difference value of the attribute data (decoding result) to restore the attribute data.

When the processing of step S222ends, the de-hierarchization processing ends, and the processing returns toFIG.23.

By performing the processing of each step in this manner, the de-hierarchization processing unit213can achieve hierarchization similar to that at the time of encoding. That is, the attribute information decoding unit203can correctly decode coded data encoded by a similar method. For example, the attribute information decoding unit203can correctly decode the coded data of the attribute data encoded by the attribute information encoding unit104described above. Therefore, a decrease in encoding efficiency can be suppressed.

3. Second Embodiment

Method 2

Next, a case of applying “Method 2” described above with reference toFIG.6will be described. In a case of “Method 2”, in the hierarchization of the attribute data, the reference point is selected according to the distribution pattern (distribution mode) of points.

For example, in a table (table information) illustrated inFIG.25, a distribution pattern (distribution mode) of points in a processing target region in which the reference point is set and information (index) indicating points selected in this case are associated with each other. For example, in the second row from the top of this table, it is illustrated that, in a case where the distribution pattern of points in a 2×2×2 voxel region in which the reference point is set is “10100001”, a point with an index of “2”, that is, a point that appears second is selected. Each bit value of the distribution pattern “10100001” indicates the presence or absence of a point in each voxel of 2×2>2, a value “1” indicates that a point exists in the voxel to which the bit is assigned, and a value “0” indicates that no point exists in the voxel to which the bit is assigned.

In this table, similarly, an index of a point to be selected is indicated for each distribution pattern. That is, in the hierarchization of the attribute data, the table is referred to, and the point of the index corresponding to the distribution pattern of points in the processing target region in which the reference point is set is selected as the reference point.

In this manner, the reference point can be more easily selected.

<Table Information>

The table information may be any information as long as it associates the distribution pattern of points with the information indicating points to be selected. For example, as in Method (1) illustrated in the second row from the top of the table of “Table” illustrated in A ofFIG.26, table information for selecting a point close to the centroid for each point distribution mode may be used. That is, an index of a point close to a centroid position in a case of the distribution pattern may be associated with each distribution pattern.

Furthermore, for example, as in Method (2) illustrated in the third row from the top of the table of “Table” illustrated in A ofFIG.26, table information for selecting an arbitrary point for each point distribution mode may be used. Moreover, for example, as in Method (3) illustrated in the fourth row from the top of the table of “Table”, a table to be used may be selected from a plurality of tables. For example, the table to be used may be switched according to the hierarchy (depth of LoD).

<Signaling of Table Information>

Note that this table information may be prepared in advance. For example, predetermined table information may be defined by standards. In this case, signaling (transmission from the encoding side to the decoding side) of the table information is unnecessary.

Further, the position information decoding unit102may derive the table information from the geometry data. Furthermore, the position information decoding unit202may also derive the table information from the geometry data (decoding result). In this case, signaling (transmission from the encoding side to the decoding side) of the table information is unnecessary.

Of course, the table information may be generated (or updatable) by a user, an application, or the like. In that case, the generated (or updated) table information may be signaled. That is, for example, the encoding unit113may perform encoding the information regarding the table information and including coded data thereof in the bit stream, or the like, so as to perform the signaling.

Furthermore, as described above, the table information may be switched according to the hierarchy (depth of LoD). In that case, it may be performed such that, as in Method (1) illustrated in the second row from the top of the table of “Table” illustrated in B ofFIG.26, the switching method is defined in advance by standards or the like, and information indicating the switching method is not signaled.

Furthermore, an index (identification information) indicating the selected table may be signaled as in Method (2) illustrated in the third row from the top of the table of “Table” illustrated in B ofFIG.26. For example, this index may be signaled in an attribute parameter set (AttributeParameterSet).

Moreover, for example, the selected table information itself may be signaled as in Method (3) illustrated in the fourth row from the top of the table of “Table” illustrated in B ofFIG.26. For example, the table information may be signaled in an attribute brick header (AttributeBrickHeader).

Furthermore, a part of the selected table information may be signaled as in Method (4) illustrated in the fifth row from the top of the table of “Table” illustrated in B ofFIG.26. That is, the table information may be capable of being partially updated. For example, the table information may be signaled in the attribute brick header (AttributeBrickHeader).

Also in a case of applying this Method 2, the configurations of the encoding device100and the decoding device200are basically similar to those in the case of applying Method 1 described above. Therefore, the encoding device100can execute each processing such as the encoding processing, the attribute information encoding processing, and the hierarchization processing in a similar flow to that in the case of the first embodiment.

<Flow of Reference Point Setting Processing>

An example of a flow of the reference point setting processing in this case will be described with reference to a flowchart ofFIG.27. When the reference point setting processing is started, the reference point setting unit121refers to the table information and selects the reference point according to the point distribution pattern in step S301.

In step S302, the reference point setting unit121determines whether or not to signal information regarding the used table. In a case where it is determined to signal, the processing proceeds to step S303.

In step S303, the reference point setting unit121signals information regarding the used table. When the processing of step S303ends, the reference point setting processing ends, and the processing returns toFIG.18.

As the encoding device100transmits the table information in this manner, the decoding device200can perform decoding using the table information.

Note that the decoding device200can execute each processing such as decoding processing, attribute information decoding processing, and de-hierarchization processing in a similar flow to that in the case of the first embodiment.

4. Third Embodiment

Method 3

Next, a case of applying “Method 3” described above with reference toFIG.6will be described. In the case of “Method 3”, the reference point set in the hierarchization of the attribute data may be signaled.

For example, as in Method (1) illustrated in the second row from the top of the table of “target of signaling” illustrated inFIG.28, information indicating whether or not to refer to for all nodes (all points), that is, whether to set the node as the reference point or the prediction point may be signaled. For example, as illustrated in A ofFIG.29, all the nodes in all the hierarchies may be sorted in the Morton order, and an index (index 0 to index K) may be assigned to each node. In other words, each node (and information given to each node) can be identified by the index 0 to the index K.

Furthermore, for example, as in Method (2) illustrated in the third row from the top of the table of the “target of signaling” illustrated inFIG.28, information indicating which node (point) is referred to and selected as the reference point for a part of hierarchies may be signaled. For example, as illustrated in B ofFIG.29, a hierarchy (LoD) to be the target of signaling may be designated, all the nodes of the hierarchy may be sorted in the Morton order, and an index may be assigned to each node.

For example, it is assumed that the attribute data has the hierarchical structure as illustrated in A ofFIG.30. That is, points are selected one by one as the reference point from a point of #0 of LoD2, a point of #1 of LoD2, and a point of #2 of LoD2, so as to form each point of #0 of LoD1. In this case, when the index is assigned to the point of LoD2 in the search order as illustrated in B ofFIG.30, each point of LoD1 #0 is indicated by the index of LoD2 as illustrated in C ofFIG.30. In other words, the distribution mode of the points of LoD1 #0 can be expressed by designating “LoD2 0, 1, 0”.

In this manner, the 2×2×2 voxel region of LoD N can be designated by the index of LoD N−1. That is, one voxel of 2×2×2 can be designated by LoD (hierarchy designation) and order (m-th). In this manner, by performing designation by the hierarchy and the index, signaling can be performed only for a part of hierarchies as necessary, and thus it is possible to suppress an increase in the code amount and to suppress a decrease in the encoding efficiency as compared with the case of Method (1).

Moreover, for example, as in Method (3) illustrated in the fourth row from the top of the table of the “target of signaling” illustrated inFIG.28, the points to be signaled may be limited by the number of points in the voxel region of N×N×N at the lower level. That is, the information regarding the setting of the reference point for the point satisfying the predetermined condition may be signaled. In this manner, as illustrated in C ofFIG.29, the number of nodes to be the target of signaling can be further reduced. Thus, a decrease in encoding efficiency can be suppressed.

For example, it is assumed that the attribute data has the hierarchical structure as illustrated in A ofFIG.31. In this case, the target of signaling is limited to a 2-2×2 voxel region including three or more points. When indexes are assigned to the points of LoD2 in the search order as illustrated in B ofFIG.31, the voxel region illustrated on the right side of LoD2 is excluded from the target of signaling. Therefore, no index is assigned to this voxel region. Therefore, as illustrated in C ofFIG.31, the data amount of the signaling can be reduced as compared with a case of C ofFIG.30, and an increase in the code amount can be suppressed.

Note that Method (2) and Method (3) may be applied in combination, for example, as in Method (4) illustrated in the fifth row from the top of the table of the “target of signaling” illustrated inFIG.28.

<Fixed-Length Signaling>

Signaling as described above may be performed for data of a fixed-length. For example, signaling may be performed with syntax as illustrated in A ofFIG.32. In the syntax of A ofFIG.32, num_Lod is a parameter indicating the number of LoDs to be signaled. lodNo[i] is a parameter indicating the Lod number. voxelType[i] is a parameter indicating the type of voxel to be signaled. By designating this parameter, the transmission target in the Lod can be limited. num_node is a parameter indicating a number to be actually signaled. This num_node can be derived from geometry data. node[k] represents information signaled for each voxel region of 2×2×2. k represents a number of the node in the Morton order.

Note that in a case where parsing needs to be performed before geometry data is obtained for parallel processing or the like, signaling may be performed with the syntax illustrated in B ofFIG.32. In a case where the parsing is required as described above, it is only required to signal num_node.

Furthermore, in a case where the signaling is performed with data of a fixed length, the syntax illustrated in A ofFIG.33may be applied. In this case, a flag Flag[k] for controlling the signal is signaled. Also in this case, when it is necessary to perform the parsing before the geometry data is obtained for parallel processing or the like, signaling may be performed with the syntax illustrated in B ofFIG.33. In a case where the parsing is required as described above, it is only required to signal num_node.

<Variable Length Signaling>

Furthermore, the signaling as described above may be performed with variable-length data. For example, as in the example ofFIG.34, the position of the node in the 2×2×2 voxel region may be signaled. In that case, the bit length of the signaling may be set according to the number of nodes in the 2×2×2 voxel region, for example, on the basis of the table information illustrated in A ofFIG.34.

On the decoding side, the number of nodes included in the 2×2×2 voxel region can be determined from the geometry data. Therefore, as in the example illustrated in B ofFIG.34, even if a bit string such as “10111010 . . . ” is input, since the number of nodes included in the 2×2×2 voxel region can be grasped from the geometry data, it is possible to correctly obtain information for each voxel region by performing division with an appropriate bit length.

Furthermore, as in the example ofFIG.35, an index of the table information to be used may be signaled. In this case, the bit length of the signaling may be made variable according to the number of nodes in the 2×2×2 voxel region, for example, as illustrated in A ofFIG.35.

For example, in a case where the number of nodes is five to eight on the basis of the table information illustrated in A ofFIG.35, two bits are allocated, and the table information in B ofFIG.35is selected. In this case, a bit string “00” indicates that the first node in the predetermined search order (for example, the Morton order) is selected. Furthermore, a bit string “01” indicates that the first node in a reverse order (reverce) of the predetermined search order (for example, the Morton order) is selected. Moreover, a bit string “10” indicates that the second node in the predetermined search order (no reverce) is selected. Furthermore, a bit string “11” indicates that the second node in the reverse order (reverce) of the predetermined search order is selected.

Furthermore, for example, in a case where the number of nodes is three or four on the basis of the table information illustrated in A ofFIG.35, one bit is allocated, and the table information in C ofFIG.35is selected. In this case, a bit string “0” indicates that the first node in the predetermined search order (for example, the Morton order) is selected. Furthermore, a bit string “1” indicates that the first node in a reverse order (reverce) of the predetermined search order (for example, the Morton order) is selected.

On the decoding side, the number of nodes included in the 2×2×2 voxel region can be determined from the geometry data. Therefore, as in an example illustrated in D ofFIG.35, even if a bit string such as “10111010 . . . ” is input, since the number of nodes included in the 2×2×2 voxel region can be grasped from the geometry data, it is possible to correctly obtain information for each voxel region by performing division with an appropriate bit length.

An example of syntax in the case of variable length is illustrated inFIG.36. In the syntax ofFIG.36, bitLength is a parameter indicating a bit length. Furthermore, signalType[i] is a parameter indicating a method of variable length coding for each LoD.

Note that, also in the case of this variable length, when the parsing needs to be performed before the geometry data is obtained for parallel processing or the like, num_node may be signaled or flag[j] may be signaled as in syntax illustrated inFIG.37.

<Flow of Reference Point Setting Processing>

An example of a flow of the reference point setting processing in this case will be described with reference to a flowchart ofFIG.38. When the reference point setting processing is started, the reference point setting unit121selects the reference point in step S321.

In step S322, the reference point setting unit121signals information regarding the reference point set in step S321. When the processing of step S322ends, the reference point setting processing ends, and the processing returns toFIG.18. As the encoding device100transmits the table information in this manner, the decoding device200can perform decoding using the table information.

5. Fourth Embodiment

Method 4

Next, a case of applying “Method 4” described above with reference toFIG.6will be described. In the case of “Method 4”, a point closer to the center of the bounding box and a point farther from the center of the bounding box among candidates for the reference point may be alternately selected for each hierarchy as the reference point.

For example, in a case where the reference point is selected at a position illustrated inFIG.39, a point closer to the center of the bounding box and a point farther from the center of the bounding box are alternately selected for each hierarchy as in A ofFIG.39to C ofFIG.39. In this manner, as illustrated in C ofFIG.39, the movement range of the reference point is limited to a narrow range as indicated by a dotted frame, and thus a decrease in prediction accuracy is suppressed.

In this manner, by using the selection direction of the point as a reference of the center of the bounding box, it is possible to suppress a decrease in prediction accuracy regardless of the position in the bounding box.

Note that such point selection may be achieved by changing the search order of points according to the position in the bounding box. For example, this search order may be the order of distances from the center of the bounding box. In this manner, the search order can be changed according to the position in the bounding box. Furthermore, for example, the search order may be changed for each of eight divided regions obtained by dividing the bounding box into eight (two in each direction of xyz).

<Flow of Reference Point Setting Processing>

An example of a flow of the reference point setting processing in this case will be described with reference to a flowchart ofFIG.40. When the reference point setting processing is started, in step3341, the reference point setting unit121determines whether or not a point closer to the center of the bounding box has been selected as the reference point in the previous hierarchy.

In a case where it is determined that the closer point has been selected, the processing proceeds to step3342.

In step S342, the reference point setting unit121selects, as the reference point, a point farthest from the center of the bounding box among the reference point candidates. When the processing of step S342ends, the reference point setting processing ends, and the processing returns toFIG.18.

Furthermore, in a case where it is determined in step3341that the closer point is not selected, the processing proceeds to step3343.

In step S343, the reference point setting unit121selects a point closest to the center of the bounding box among the reference point candidates as the reference point. When the processing of step S343ends, the reference point setting processing ends, and the processing returns toFIG.18.

By selecting the reference point in this manner, the encoding device100can suppress a decrease in prediction accuracy of the reference point. Thus, a decrease in encoding efficiency can be suppressed.

6. Appendix

Method of Hierarchization and De-Hierarchization

In the above description, the lifting has been described as an example of the method for hierarchizing and de-hierarchizing the attribute information, but the present technology can be applied to any technology for hierarchizing the attribute information. That is, the method of hierarchizing and de-hierarchizing the attribute information may be other than the lifting. Furthermore, the method of hierarchizing and de-hierarchizing the attribute information may be a scalable method as described in Non-Patent Document 3 or a non-scalable method.

Control Information

The control information regarding the present technology described in each of the above embodiments may be transmitted from the encoding side to the decoding side. For example, control information (for example, enabled_flag) that controls whether or not the application of the present technology described above is permitted (or prohibited) may be transmitted. Furthermore, for example, control information designating a range (for example, an upper limit or a lower limit of a block size or both thereof, a slice, a picture, a sequence, a component, a view, a layer, or the like) in which the application of the present technology described above is permitted (or prohibited) may be transmitted.

Periphery and Vicinity

Note that, in the present description, the positional relationship such as “vicinity” or “periphery” may include not only a spatial positional relationship but also a temporal positional relationship.

Computer

The series of processes described above can be executed by hardware or can be executed by software. In a case where the series of processes is executed by software, a program constituting the software is installed in a computer. Here, the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer for example that can execute various functions by installing various programs, and the like.

FIG.41is a block diagram illustrating a configuration example of hardware of a computer that executes the above-described series of processes by a program.

In a computer900illustrated inFIG.41, a central processing unit (CPU)901, a read only memory (ROM)902, and a random access memory (RAM)903are interconnected via a bus904.

An input-output interface910is also connected to the bus904. An input unit911, an output unit912, a storage unit913, a communication unit914, and a drive915are connected to the input-output interface910.

The input unit911includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, and the like. The output unit912includes, for example, a display, a speaker, an output terminal, and the like. The storage unit913includes, for example, a hard disk, a RAM disk, a nonvolatile memory, and the like. The communication unit914includes, for example, a network interface. The drive915drives a removable medium921such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.

In the computer configured as described above, the CPU901loads, for example, a program stored in the storage unit913into the RAM903via the input-output interface910and the bus904and executes the program, so as to perform the above-described series of processes. The RAM903also appropriately stores data and the like necessary for the CPU901to execute various processes.

The program executed by the computer can be applied by being recorded in the removable medium921as a package medium or the like, for example. In this case, the program can be installed in the storage unit913via the input-output interface910by attaching the removable medium921to the drive915.

Furthermore, this program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting. In this case, the program can be received by the communication unit914and installed in the storage unit913.

In addition, this program can be installed in the ROM902or the storage unit913in advance.

Applicable Target of the Present Technology

Although the case where the present technology is applied to encoding and decoding of point cloud data has been described above, the present technology is not limited to these examples, and can be applied to encoding and decoding of 3D data of any standard. That is, as long as there is no contradiction with the present technology described above, specifications of various types of processing such as encoding and decoding methods and various types of data such as 3D data and metadata are arbitrary. Furthermore, as long as there is no contradiction with the present technology, a part of processes and specifications described above may be omitted.

Furthermore, in the above description, the encoding device100and the decoding device200have been described as application examples of the present technology, but the present technology can be applied to any configuration.

For example, the present technology can be applied to various electronic devices such as a transmitter and a receiver (for example, a television receiver and a mobile phone) in satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to a terminal by cellular communication, or the like, or a device (for example, a hard disk recorder and a camera) that records an image on a medium such as an optical disk, a magnetic disk, and a flash memory, or reproduces an image from the storage medium.

Furthermore, for example, the present technology can also be implemented as a configuration of a part of the device, such as a processor (for example, a video processor) as a system large scale integration (LSI) or the like, a module (for example, a video module) using a plurality of processors or the like, a unit (for example, a video unit) using a plurality of modules or the like, or a set (for example, a video set) obtained by further adding other functions to a unit.

Furthermore, for example, the present technology can also be applied to a network system including a plurality of devices. For example, the present technology may be implemented as cloud computing shared and processed in cooperation by a plurality of devices via a network. For example, the present technology may be implemented in a cloud service that provides a service related to an image (moving image) to any terminal such as a computer, an audio visual (AV) device, a portable information processing terminal, or an Internet of Things (IoT) device.

Note that in the present description, the system means a set of a plurality of components (devices, modules (parts), and the like), and it does not matter whether or not all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and one device in which a plurality of modules is housed in one housing are all systems.

Field and Application to which Present Technology is Applicable

Note that the system, device, processing unit, and the like to which the present technology is applied can be used in any fields, for example, traffic, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factory, household appliance, weather, nature monitoring, and the like. Furthermore, its use is arbitrary.

Others

Note that in the present description, the “flag” is information for identifying a plurality of states, and includes not only information used for identifying two states of true (1) or false (0), but also information that can identify three or more states. Therefore, the value that this “flag” can take may be, for example, two values of 1 and 0, or three or more values. That is, the number of bits constituting this “flag” is arbitrary, and may be one bit or a plurality of bits. Furthermore, identification information (including the flag) is assumed to include not only identification information thereof in a bit stream but also difference information of the identification information with respect to a certain reference information in the bit stream, and thus, in the present description, the “flag” and “identification information” include not only the information thereof but also the difference information with respect to the reference information.

Furthermore, various types of information (metadata and the like) related to the coded data (bit stream) may be transmitted or recorded in any form as long as the information is associated with the coded data. Here, the term “associate” means, for example, that one piece of data can be used (linked) when the other piece of data is processed. That is, the data associated with each other may be combined as one piece of data or may be individual pieces of data. For example, information associated with coded data (image) may be transmitted on a transmission path different from that of the coded data (image). Furthermore, for example, the information associated with the coded data (image) may be recorded in a recording medium (or another recording area of the same recording medium) different from the coded data (image). Note that this “association” may be a part of data instead of the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of the frame.

Note that in the present description, terms such as “combine”, “multiplex”, “add”, “integrate”, “include”, “store”, “put in”, “plug in”, and “insert” mean to combine a plurality of items into one, for example, such as combining coded data and metadata into one piece of data, and mean one method of the above-described “association”.

Furthermore, the embodiments of the present technology are not limited to the above-described embodiments, and various modifications are possible without departing from the scope of the present technology.

For example, a configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units). Conversely, configurations described above as a plurality of devices (or processing units) may be combined and configured as one device (or processing unit). Furthermore, a configuration other than those described above may of course be added to the configuration of each device (or each processing unit). Moreover, if the configuration and operation of the entire system are substantially the same, a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or another processing unit).

Furthermore, for example, the above-described program may be executed in any device. In that case, it is sufficient if the device has necessary functions (functional blocks and the like) and can acquire necessary information.

Furthermore, for example, each step of one flowchart may be executed by one device, or may be shared and executed by a plurality of devices. Moreover, in a case where a plurality of processes is included in one step, the plurality of processes may be executed by one device, or may be shared and executed by a plurality of devices. In other words, a plurality of processes included in one step can be executed as processes of a plurality of steps. Conversely, a process described as a plurality of steps can be collectively executed as one step.

Furthermore, for example, in the program executed by the computer, processing of steps describing the program may be executed in time series in the order described in the present description, or may be executed in parallel or individually at necessary timing such as when a call is made. That is, as long as no contradiction occurs, the processes in the respective steps may be executed in an order different from the above-described orders. Moreover, the processes in steps for describing this program may be executed in parallel with processes in another program, or may be executed in combination with processes in another program.

Furthermore, for example, a plurality of technologies related to the present technology can be implemented independently as a single body as long as there is no contradiction. Of course, any plurality of the present technologies can also be used and implemented in combination. For example, part or all of the present technologies described in any of the embodiments can be implemented in combination with part or all of the present technologies described in other embodiments. Furthermore, part or all of any of the above-described present technologies can be implemented by using together with another technology that is not described above.

Note that the present technology can have configurations as follows.

(1) An information processing device including:a hierarchization unit that, for attribute information of each point of a point cloud that represents an object having a three-dimensional shape as a set of points, hierarchizes the attribute information by recursively repeating classification of a prediction point for deriving a difference value between the attribute information and a predicted value of the attribute information and a reference point used for deriving the predicted value with respect to the reference point, in whichthe hierarchization unit sets the reference point on the basis of a centroid of points.

(2) The information processing device according to (1), in whichthe hierarchization unit sets, as the reference point, a point closer to the centroid among candidate points.

(3) The information processing device according to (1) or (2), in whichthe hierarchization unit sets the reference point on the basis of a centroid of points located within a predetermined range.

(4) The information processing device according to any one of (1) to (3), in whichthe hierarchization unit sets the reference point on the basis of a predetermined search order from among a plurality of candidates under a substantially same condition with respect to the centroid.

(5) An information processing method including:when performing, for attribute information of each point of a point cloud that represents an object having a three-dimensional shape as a set of points, hierarchization of the attribute information by recursively repeating classification of a prediction point for deriving a difference value between the attribute information and a predicted value of the attribute information and a reference point used for deriving the predicted value with respect to the reference point, setting the reference point on the basis of a centroid of points.

(6) An information processing device including:a hierarchization unit that, for attribute information of each point of a point cloud that represents an object having a three-dimensional shape as a set of points, hierarchizes the attribute information by recursively repeating classification of a prediction point for deriving a difference value between the attribute information and a predicted value of the attribute information and a reference point used for deriving the predicted value with respect to the reference point, in whichthe hierarchization unit sets the reference point on the basis of a distribution mode of points.

(7) The information processing device according to (6), in whichthe hierarchization unit sets the reference point on the basis of table information designating a point close to a centroid of points for each distribution mode of the points.

(8) The information processing device according to (6) or (7), in whichthe hierarchization unit sets the reference point on the basis of table information designating a predetermined point for each distribution mode of the points.

(9) The information processing device according to (8), further includingan encoding unit that encodes information regarding the table information.

(10) An information processing method including:when performing, for attribute information of each point of a point cloud that represents an object having a three-dimensional shape as a set of points, hierarchization of the attribute information by recursively repeating classification of a prediction point for deriving a difference value between the attribute information and a predicted value of the attribute information and a reference point used for deriving the predicted value with respect to the reference point, setting the reference point on the basis of a distribution mode of points.

(11) An information processing device including:a hierarchization unit that, for attribute information of each point of a point cloud that represents an object having a three-dimensional shape as a set of points, hierarchizes the attribute information by recursively repeating classification of a prediction point for deriving a difference value between the attribute information and a predicted value of the attribute information and a reference point used for deriving the predicted value with respect to the reference point; andan encoding unit that encodes information regarding setting of the reference point by the hierarchization unit.

(12) The information processing device according to (11), in whichthe encoding unit encodes information regarding setting of the reference points for all points.

(13) The information processing device according to (11), in whichthe encoding unit encodes information regarding setting of the reference points for points of a part of hierarchies.

(14) The information processing device according to (13), in whichthe encoding unit further encodes information regarding setting of the reference point for a point that satisfies a predetermined condition.

(15) An information processing method including:hierarchizing, for attribute information of each point of a point cloud that represents an object having a three-dimensional shape as a set of points, the attribute information by recursively repeating classification of a prediction point for deriving a difference value between the attribute information and a predicted value of the attribute information and a reference point used for deriving the predicted value with respect to the reference point; andencoding information regarding setting of the reference point.

(16) An information processing device including:a hierarchization unit that, for attribute information of each point of a point cloud that represents an object having a three-dimensional shape as a set of points, hierarchizes the attribute information by recursively repeating classification of a prediction point for deriving a difference value between the attribute information and a predicted value of the attribute information and a reference point used for deriving the predicted value with respect to the reference point, in whichthe hierarchization unit alternately selects, as the reference point, a point closer to a center of a bounding box and a point farther from the center of the bounding box among candidates for the reference point for each hierarchy.

(17) The information processing device according to (16), in whichthe hierarchization unit selects a point closer to the center of the bounding box and a point farther from the center of the bounding box among the candidates on the basis of a search order according to a position in the bounding box.

(18) The information processing device according to (17), in whichthe search order is an order of distance from the center of the bounding box.

(19) The information processing device according to (17), in whichthe search order is set for each region obtained by dividing the bounding box into eight regions.

(20) An information processing method including:when performing, for attribute information of each point of a point cloud that represents an object having a three-dimensional shape as a set of points, hierarchization of the attribute information by recursively repeating classification of a prediction point for deriving a difference value between the attribute information and a predicted value of the attribute information and a reference point used for deriving the predicted value with respect to the reference point, alternately selecting, as the reference point, a point closer to a center of a bounding box and a point farther from the center of the bounding box among candidates for the reference point for each hierarchy.

REFERENCE SIGNS LIST

100Encoding device101Position information encoding unit102Position information decoding unit103Point cloud generation unit104Attribute information encoding unit105Bit stream generation unit111Hierarchization processing unit112Quantization unit113Encoding unit121Reference point setting unit122Reference relationship setting unit123Inversion unit124Weight value derivation unit200Decoding device201Coded data extraction unit202Position information decoding unit203Attribute information decoding unit204Point cloud generation unit211Decoding unit212Inverse quantization unit213De-hierarchization processing unit