Decoding device, decoding method, and decoding program

The decoding device and method address the computational inefficiencies of sequential decoding by allowing partial access to point cloud data through hierarchical decoding and bit-shifting, enhancing decoding efficiency.

JP2026020320APending Publication Date: 2026-02-06NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025203896
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-11-26
Publication Date
2026-02-06

AI Technical Summary

Technical Problem

Existing point cloud data decoding technologies require sequential decoding of all higher layers to access attribute information of a given point, leading to increased computational load and preventing partial access.

Method used

A decoding device and method that decodes point cloud data by encoding point color information in a hierarchical structure, allowing partial access through decoding each data unit and bit-shifting the code according to the depth of the node, enabling independent decoding of the highest hierarchy.

Benefits of technology

Enables partial access to point cloud data, reducing computational load and facilitating efficient decoding of attribute information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026020320000001_ABST
    Figure 2026020320000001_ABST
Patent Text Reader

Abstract

To provide a decoding device, a decoding method, and a decoding program capable of partial access.SOLUTION: A decoding device for decoding point cloud data includes a decoder configured to perform decoding for each data unit that is a set of point color information, the point color information being encoded in a hierarchical structure, and an acquisition unit configured to acquire point color information belonging to a highest hierarchy of the data unit by referring to predetermined color information, wherein the acquisition unit bit-shifts a code of the point color information according to a depth of a node.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a decoding device, a decoding method, and a decoding program. [Background technology]

[0002] In recent years, applications that display city photos, maps, aerial photographs, etc. on smartphone displays have become widely used. Furthermore, point cloud data, which includes multiple points with location information and attribute information acquired using LiDAR (Light Detection and Ranging) or the like, contains a huge amount of information and is often encoded and saved. For example, G.pcc (Geometry-based Point Coding Compression), disclosed in Non-Patent Document 1, is used to encode point cloud data. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] INTERNATIONAL ORGANIZATION FOR STANDARDIZATION ORGANISATION INTERNATIONALE DE NORMALISATION ISO / IEC JTC 1 / SC 29 / WG 7 MPEG 3D GRAPHICS CODING

[0004] In the technology described in Non-Patent Document 1, point cloud data is encoded using an octree structure called an octet, which determines the presence or absence of points in each unit called a voxel. This octree structure is hierarchical, with lower levels representing the presence or absence of points in greater detail. Here, to decode the attribute information of a given point, all of the information referenced to decode that attribute information must be decoded. The referenced information may exist, for example, in a layer higher than the given point. In other words, to decode the attribute information of a given point, decoding must be performed in order, starting from the next higher layer, then the layer above that, etc. This prevents partial access and results in an increased computational load. The same applies to the LoD designed to correspond to the above-mentioned octree. In other words, to decode the attribute information of a given point, attribute information in layers higher than the layer to which the point belongs must be decoded. Summary of the Invention [Problem to be solved by the invention]

[0005] The present invention has been made in view of the above circumstances, and has as its object to provide a decoding device, a decoding method, and a decoding program that can enable partial access. [Means for solving the problem]

[0006] One aspect of the present invention is a decoding device that decodes point cloud data, in which point color information is coded in a hierarchical structure, and includes a decoding unit that decodes each data unit, which is a collection of the point color information, and an acquisition unit that acquires the point color information belonging to the highest hierarchy of the data unit by referencing specified color information, and the acquisition unit bit-shifts the code of the point color information according to the depth of the node.

[0007] One aspect of the present invention is a decoding method for decoding point cloud data, in which point color information is encoded in a hierarchical structure, and the decoding is performed for each data unit which is a collection of the point color information, and the point color information belonging to the highest hierarchy of the data unit is obtained by referring to specified color information, and the code of the point color information is bit-shifted according to the depth of the node. [Effects of the Invention]

[0008] According to the present invention, partial access can be made possible. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 2 is a diagram illustrating an example of a hardware configuration of an encoding device according to the first embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of a software configuration of the encoding device according to the first embodiment. [Figure 3] FIG. 3 is a diagram illustrating an example of layer groups and subgroups according to the first embodiment. [Figure 4] 10A and 10B are diagrams illustrating an example of a process for determining a prediction reference point performed by the encoding device according to the first embodiment. [Figure 5] 10A and 10B are diagrams illustrating an example of a process for determining a prediction reference point performed by the encoding device according to the first embodiment. [Figure 6] 10 is a flowchart illustrating an example of processing executed by the encoding device according to the first embodiment. [Figure 7] FIG. 10 is a diagram illustrating an example of a hardware configuration of an encoding device according to a second embodiment. [Figure 8] FIG. 10 is a diagram illustrating an example of a software configuration of an encoding device according to a second embodiment. [Figure 9] 10 is a flowchart illustrating an example of processing executed by an encoding device according to a second embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0010] [First embodiment] The encoding device, encoding program, and encoding method according to the first embodiment will be described with reference to FIGS.

[0011] Fig. 1 is a diagram illustrating an example of the hardware configuration of an encoding device according to the first embodiment. As shown in Fig. 1, an encoding device 10a includes a processor 11a, a main storage device 12a, a communication interface 13a, an auxiliary storage device 14a, an input / output device 15a, and a bus 16a.

[0012] The processor 11a is, for example, a CPU (Central Processing Unit), which reads and executes an encoding program to realize each function of the encoding device 10a. The processor 11a may also read and execute a program other than the encoding program to realize a function required to realize each function of the encoding device 10a.

[0013] The main storage device 12a is, for example, a RAM (Random Access Memory), and stores in advance an encoding program and other programs that are read and executed by the processor 11a.

[0014] The communication interface 13a is an interface circuit for communicating with other devices via a network. The network may be, for example, a wide area network (WAN), a local area network (LAN), the internet, or an intranet. The other devices referred to here may be, for example, a rider.

[0015] The auxiliary storage device 14a is, for example, a hard disk drive (HDD), a solid state drive (SSD), a flash memory, or a read-only memory (ROM).

[0016] The input / output device 15a is, for example, an input / output port. For example, an input device and an output device are connected to the input / output device 15a. The input device is, for example, a display, a touch panel display, a mouse, or a keyboard, and is used to operate the encoding device 10a and input data to the encoding device 10a. The output device is, for example, a display, a touch panel display, or a speaker, and is used by the encoding device 10a to present information to a user.

[0017] The bus 16a connects the processor 11a, the main storage device 12a, the communication interface 13a, the auxiliary storage device 14a, and the input / output device 15a so that data can be transmitted and received among them.

[0018] Fig. 2 is a diagram showing an example of the software configuration of the encoding device according to the first embodiment. As shown in Fig. 2, the encoding device 10a includes a point cloud acquisition unit 101a, a position information encoding unit 102a, a detail level structure generation unit 103a, a prediction reference point determination unit 104a, a prediction conversion unit 105a, and a coefficient encoding unit 106a. The point cloud acquisition unit 101a, the position information encoding unit 102a, the detail level structure generation unit 103a, the prediction reference point determination unit 104a, the prediction conversion unit 105a, and the coefficient encoding unit 106a are all realized by the processor 11a reading and executing an encoding program stored in the main storage device 12a.

[0019] The point cloud acquisition unit 101a acquires point cloud data. For example, the point cloud acquisition unit 101a acquires point cloud data obtained by scanning a three-dimensional space with a lidar. Alternatively, the point cloud acquisition unit 101a acquires point cloud data obtained by capturing an image of the three-dimensional space with a camera.

[0020] The position information encoding unit 102a converts position information indicating the positions of points included in the point cloud data into a tree structure. The position information here is, for example, information indicating the positions of points in a three-dimensional space. The tree structure here is, for example, an octree.

[0021] Next, the position information encoding unit 102a divides the tree structure in the depth direction to generate layer groups. Each layer group includes at least one layer of the tree structure. FIG. 3 is a diagram showing an example of layer groups and subgroups according to the first embodiment. For example, as shown in FIG. 3, the position information encoding unit 102a divides the octree in the depth direction to generate layer group 0, layer group 1, and layer group 2.

[0022] An overview of the present invention will be described. As described above, in order to perform partial access, i.e., to decode attributes corresponding to a desired point with a small amount of calculation, the system is configured to divide the data into multiple subgroups as shown in FIG. 3, and encode and decode the data in subgroup units. With the exception of the following exceptions, the system is configured to perform prediction by referencing attributes within the target subgroup, thereby reducing dependency on other subgroups. Furthermore, the system is configured to predict the attributes at the highest level of the target subgroup by referencing attributes at a higher level, for example, the lowest level of the adjacent subgroup one level above. With this configuration, the attributes of the target subgroup can be predicted simply by having the attributes at the lowest level of the higher-level and adjacent subgroups.

[0023] For example, when trying to decode subgroup 21 in Fig. 3, all that is needed is the attribute of the lowest layer of subgroup 11, and all that is needed is the lowest layer of subgroup 01 to obtain the attribute of the lowest layer of subgroup 11. In other words, to decode subgroup 21, it is necessary to decode only subgroup 11 and subgroup 01, which reduces the amount of calculation compared to the technology shown in Non-Patent Document 1.

[0024] Furthermore, the rootmost layer group can be encoded and decoded independently. Meanwhile, layer groups other than the rootmost layer group can be encoded using the results of encoding the layer group immediately above it. Furthermore, layer groups other than the rootmost layer group can be decoded using the results of decoding the layer group immediately above it. Note that the point cloud obtained by decoding the layer groups from the rootmost layer group to the layer groups other than the leafmost layer group is a point cloud obtained by quantizing the point cloud obtained by decoding the entire tree structure.

[0025] Next, the position information encoding unit 102a divides at least one of the layer groups based on the position information to generate subgroups. For example, the position information encoding unit 102a classifies a set of points included in the point cloud data whose X coordinate value exceeds a predetermined threshold into one subgroup, and classifies a set of points among these points whose X coordinate value is equal to or less than the predetermined threshold into another subgroup.

[0026] 3, the position information encoding unit 102a divides layer group 1 into subgroups 11 and 12. Also, the position information encoding unit 102a divides layer group 2 into subgroups 21, 22, 23, and 24, as shown in FIG.

[0027] Then, the position information encoder 102a encodes the subgroup to generate a position data unit corresponding to a part of the position information. For example, the position information encoder 102a encodes one subgroup to generate one position data unit. Alternatively, the position information encoder 102a encodes at least two subgroups to generate one position data unit.

[0028] The position data unit includes a header and a body. The header is part of a syntax element and includes data necessary for decoding the position data unit. Examples of such data include data identifying a subgroup and data identifying a parent subgroup of the subgroup. These pieces of data may be included in a syntax table separate from the header. The body includes data related to position information and data related to attribute information. The attribute information here refers to information indicating the intensity, color, etc. of the reflected light of the laser light emitted by the lidar, and is associated with points included in the point cloud data.

[0029] Furthermore, one or more position data units are arranged to form position information code data, which can be processed to extract a specific position data unit using data included in the header, etc.

[0030] The level of detail structure generation unit 103a generates, for each attribute data unit, a level of detail structure (Levels of Detail) for points decoded from the corresponding position data unit. The level of detail structure consists of N level of detail lists and N level of refinement point lists. Hereinafter, the upper layers are referred to as the root side, and the lower layers are referred to as the leaf side. The level of detail lists are lists of points included in each level. The leafmost level of detail list contains all points corresponding to this attribute data unit. The refinement point list is a list of points included in the level of detail list of a certain level but not included in the other level of detail list on the root side. The leafmost refinement point list is empty. The number of levels N of the level of detail structure may be unrelated to the number of layers, which is the depth of the tree structure representing the position information. However, if the tree structure is the same for layer M, decoding up to layer M level N allows quantized points equivalent to layer M to be decoded with attribute information. In this embodiment, for corresponding position data units and attribute data units, the number of points represented in the leafmost layer of the tree structure is assumed to be the same as the number of points included in the leafmost detail level list of the detail level structure. The detail level structure generation unit 103a generates detail level lists in order from the leaf side toward the root side, up to the level that overlaps with the parent attribute data unit in the depth direction. The attribute data unit corresponds to part of the attribute information indicating the attributes of the points included in the point cloud data. The parent attribute data unit is the parent attribute data unit of the attribute data unit for which a detail level is generated.

[0031] For example, the detail level structure generating unit 103a generates a detail level list for each attribute data unit in order from the leaf side toward the root side up to a level that overlaps with the parent attribute data unit by one level in the depth direction.

[0032] Specifically, the level of detail structure generation unit 103a obtains a point cloud obtained by decoding the rootmost position data unit. These points correspond to the finest level of the level of detail structure. The level of detail structure generation unit 103a then performs subsampling in order from this level toward the root of the attribute data unit for which the level of detail is to be generated, thereby generating the level of detail of the attribute data unit. Any subsampling method may be used. For example, a method may be used in which block division according to the level is performed and the point closest to the center of each block is selected. In this sampling method, if block division is performed using octree division, the level of detail of the attribute data unit and the layer of the tree structure of the position data unit have a one-to-one correspondence, and the number of points included in the level of detail list of each level is equal to the number of nodes at the corresponding depth in the tree structure.

[0033] The level of detail structure generation unit 103a also obtains a point cloud obtained by decoding a position data unit that is neither the rootmost nor the leafmost. The level of detail structure generation unit 103a then performs subsampling on this point cloud, sequentially from the leafmost to the rootmost, to generate levels of detail for attribute data units up to a level that overlaps with the parent attribute data unit. For example, when the aforementioned block division method is used as the subsampling method, an overlap between the level of detail structure of a parent attribute data unit and a level of detail of a child attribute data unit means that the block size corresponding to the leafmost level of the parent attribute data unit is the same as the block size corresponding to the rootmost level of the child attribute data unit. In this case, a node corresponding to a point included in the rootmost level of detail list of the child attribute data unit has a one-to-one parent-child relationship with a portion of the leaf nodes in the tree structure corresponding to a point included in the leafmost level of detail list of the parent attribute data unit.

[0034] The detail level structure generating unit 103a executes the same process to generate detail levels for attribute data units corresponding to all position data units.

[0035] For each point included in the refinement point list at each level for each attribute data unit, the predicted reference point determination unit 104a determines a predicted reference point from among the points included in the detail level list at the level rooter than this level or the points included in the detail level list at the leafmost level of the parent attribute data unit.

[0036] 4 and 5 are diagrams illustrating an example of a process for determining a prediction reference point performed by the encoding device according to the first embodiment. In FIG. 4, the root-side level point of subgroup 11 shown in FIG. 3 and the root-side level point of subgroup 12 shown in FIG. 3 are indicated by white circles. The dotted arrows in FIG. 5 represent prediction references. The solid arrows in FIG. 5 represent subsampling. In other words, points connected by solid lines are the same point. For example, as shown in FIG. 5, when determining a prediction reference point for an attribute data unit of subgroup 11 shown in FIG. 3, the prediction reference point determination unit 104a can select a prediction reference point from the leaf-side detail level list of the attribute data unit of subgroup 01, which is the parent of subgroup 11.

[0037] The prediction reference point determination unit 104a selects a prediction reference point from the reference candidate list for each point included in the refinement point list from the level one leaf closer to the root to the level closest to the leaf. As the reference candidate list, for example, a detail level list one level closer to the root than each level is used. The prediction reference point is selected, for example, by neighborhood search based on the spatial distance from the prediction target point.

[0038] Furthermore, for attribute data units other than the rootmost, the prediction reference point determination unit 104a may use the detailed level list of the leafmost level of the parent attribute data unit as the reference candidate list at all levels. The prediction reference point selection method may be the same as the method described above, or a different method. For example, it may assume that the node in the tree structure corresponding to the prediction target point has a parent-child or ancestor-descendant relationship with a node in the tree structure corresponding to a point in the reference candidate list, and select the point in such a relationship as the prediction reference point. Specific search methods may include searching using the tree structure used when encoding the position data unit, or matching using Morton codes. For example, if the three-dimensional position coordinates of a node in the tree structure and the three-dimensional position coordinates of its ancestor node are expressed using octal-tree Morton codes, the codes will match if they are shifted to the right by the number of bits corresponding to the depth of the ancestor node. Using this method, the parent point of the prediction target point can be quickly selected from the reference candidate list. For example, a high-speed search can be performed by creating a table using the shifted Morton codes and hash values ​​generated therefrom as keys for all points in the reference candidate list.

[0039] If the reference candidate lists are created so that the prediction target point and the prediction reference point have a completely one-to-one ancestor-descendant relationship, then by sorting each list using the Morton code corresponding to the position coordinates of the points, the positions of corresponding points in each list will match, and this can be used to determine the prediction reference point. When generating a level of detail structure by performing subsampling through block division as described above, this relationship is established if the reference candidate list is a list of points included in the level of detail list on the leafmost side of the parent attribute data block that are within the range of the three-dimensional space occupied by the subgroup corresponding to the child attribute data block.

[0040] In addition, the predicted reference point determination unit 104a may use, as the reference candidate list, a detail level list of an attribute data unit that belongs to the same layer group as the attribute data unit for which the predicted reference point is to be determined, has already been coded by the position information coding unit 102a, and belongs to a subgroup different from that of the attribute data unit.

[0041] Furthermore, in this case, the predicted reference point determination unit 104a may use, as a reference candidate list, a detail level list of attribute data units that have already been coded by the position information coding unit 102a and belong to a different subgroup from the attribute data unit, the detail level list being at the same level as the attribute data unit for which the predicted reference point is to be determined.

[0042] Alternatively, in this case, the predicted reference point determination unit 104a may use the leafmost detail level list of the detail level lists of attribute data units that have already been coded by the position information coding unit 102a and belong to a different subgroup from the attribute data unit in question as the reference candidate list.

[0043] After determining the prediction reference points, the prediction reference point determination unit 104a lists these prediction reference points to generate a prediction reference list.

[0044] The predictive conversion unit 105a performs predictive conversion for each attribute data unit using the predicted reference points to generate predicted values, which are values ​​related to attribute information of points included in the point cloud data.

[0045] The predictive conversion method referred to here is not particularly limited. For example, the predictive conversion unit 105a may employ a lifting transform as the predictive conversion method. In this case, the predictive conversion unit 105a generates a predicted value of attribute information of the attribute data unit by calculating a weighted sum of points included in the prediction reference list, starting from the leafmost level among the detail levels of the attribute data unit for which a predicted value is to be generated, and performs predictive conversion by updating the attribute information of each point using the predicted value. Furthermore, these weights are determined, for example, based on the distance between each point and the prediction reference point.

[0046] The coefficient coding unit 106a performs coefficient coding using predicted values ​​generated by predictive transformation as transform coefficients to code the attribute data units. The coefficient coding method referred to here is not particularly limited.

[0047] Next, an example of processing executed by the encoding device 10a will be described with reference to Fig. 6. Fig. 6 is a flowchart showing an example of processing executed by the encoding device according to the first embodiment.

[0048] In step S11, the point cloud acquisition unit 101a acquires point cloud data.

[0049] In step S12, the position information encoding unit 102a generates a layer group, generates a subgroup, and generates a position data unit.

[0050] In step S13, the detail level structure generation unit 103a generates detail levels for each attribute data unit in order from the leaf side of the tree structure toward the root side, up to the layer that overlaps with the parent attribute data unit in the depth direction.

[0051] In step S14, the predicted reference point determination unit 104a determines predicted reference points for each attribute data unit in order from the leaf side of the tree structure toward the root side.

[0052] In step S15, the predictive conversion unit 105a performs predictive conversion for each attribute data unit using the predicted reference point to generate a predicted value.

[0053] In step S16, the coefficient encoding unit 106a encodes the attribute data unit using the predicted value generated by the predictive transformation as a transformation coefficient.

[0054] The encoding device 10a according to the first embodiment has been described above. The encoding device 10a includes a position information encoding unit 102a, a detail level structure generating unit 103a, and a predicted reference point determining unit 104a.

[0055] The position information encoding unit 102a converts position information indicating the positions of points included in the point cloud data into a tree structure, divides the tree structure in the depth direction to generate layer groups, divides at least one of the layer groups based on the position information to generate subgroups, and encodes the subgroups to generate position data units corresponding to part of the position information.

[0056] The detail level structure generating unit 103a generates detail levels for each attribute data unit in order from the leaf side of the tree structure toward the root side, up to the level where the detail levels overlap with the parent attribute data unit in the depth direction.

[0057] The predicted reference point determination unit 104a determines, for each attribute data unit, in order from the root side of the tree structure to the leaf side, for each point that was not subsampled when the level of detail was generated, a predicted reference point from the same layer as the layer containing these points or from a layer closer to the root than the layer containing these points.

[0058] This allows the encoding device 10a to enable partial access.

[0059] Furthermore, the encoding device 10a determines the prediction reference point by referring to the detail level list of the parent attribute data unit in all layers, thereby enabling the encoding device 10a to perform predictive conversion at each level in parallel.

[0060] Furthermore, the encoding device 10a determines the predicted reference point by referring to the detail level of an attribute data unit that belongs to the same layer group as the attribute data unit for which the prediction reference point is determined, has already been encoded by the position information encoding unit 102a, and belongs to a subgroup different from that of the attribute data unit for which the prediction reference point is determined. This allows the encoding device 10a to predict attribute information more accurately by referring to data of another subgroup when predicting attribute information.

[0061] [Second embodiment] An encoding device, an encoding program, and an encoding method according to the second embodiment will be described with reference to Figures 7 to 9. The encoding device according to the second embodiment differs from the encoding device according to the first embodiment in the process of generating detail levels. Therefore, the description of the second embodiment will focus on the differences from the first embodiment, and will omit descriptions of the same content as in the first embodiment as appropriate.

[0062] Fig. 7 is a diagram showing an example of the hardware configuration of an encoding device according to the second embodiment. As shown in Fig. 7, an encoding device 10b includes a processor 11b, a main storage device 12b, a communication interface 13b, an auxiliary storage device 14b, an input / output device 15b, and a bus 16b.

[0063] The processor 11b is, for example, a CPU, which reads and executes the encoding program to realize each function of the encoding device 10b. The processor 11b may also read and execute a program other than the encoding program to realize a function required to realize each function of the encoding device 10b.

[0064] The main storage device 12b is, for example, a RAM, and stores in advance an encoding program and other programs that are read and executed by the processor 11b.

[0065] The communication interface 13b is an interface circuit for communicating with other devices via a network, such as a lidar.

[0066] The auxiliary storage device 14b is, for example, a hard disk drive, a solid state drive, a flash memory, or a ROM.

[0067] The input / output device 15b is, for example, an input / output port, to which, for example, an input device and an output device are connected.

[0068] The bus 16b connects the processor 11b, the main storage device 12b, the communication interface 13b, the auxiliary storage device 14b, and the input / output device 15b so that data can be transmitted and received among them.

[0069] Fig. 8 is a diagram showing an example of the software configuration of an encoding device according to the second embodiment. As shown in Fig. 8, an encoding device 10b includes a point cloud acquisition unit 101b, a position information encoding unit 102b, a detail level structure generation unit 103b, a prediction reference point determination unit 104b, a prediction conversion unit 105b, and a coefficient encoding unit 106b. The point cloud acquisition unit 101b, the position information encoding unit 102b, the detail level structure generation unit 103b, the prediction reference point determination unit 104b, the prediction conversion unit 105b, and the coefficient encoding unit 106b are all realized by the processor 11b reading and executing an encoding program stored in the main storage device 12b.

[0070] The point cloud acquisition unit 101b acquires point cloud data.

[0071] The position information encoding unit 102b converts position information indicating the positions of points included in the point cloud data into a tree structure. The tree structure referred to here is, for example, an octree. Next, the position information encoding unit 102b divides the tree structure in the depth direction to generate layer groups, and divides at least one of the layer groups based on the position information to generate subgroups. The position information encoding unit 102b then encodes the subgroups to generate position data units corresponding to portions of the position information.

[0072] The detail level structure generation unit 103b generates a detail level list for each attribute data unit in order from the leaf side toward the root side, up to a level that does not overlap with the parent attribute data unit in the depth direction. The detail level structure generation unit 103b executes the same process to generate detail level lists for attribute data units corresponding to all position data units.

[0073] For each attribute data unit, the predicted reference point determination unit 104b determines a predicted reference point for each point in the refinement point list at each level from a detail level list at the same level as the level containing these points or at a level closer to the root than the level containing these points.

[0074] For the rootmost attribute data unit, the predicted reference point determiner 104b determines a predicted reference point for each refinement point from the level one level below the rootmost to the leafmost level, and for attribute data units other than the rootmost, the predicted reference point determiner 104b determines a predicted reference point for each refinement point from the rootmost level to the leafmost level.

[0075] Furthermore, for attribute data units other than the rootmost one, the predicted reference point determination unit 104b may use the detailed level list of the leafmost level of the parent attribute data unit as the reference candidate list at all levels.

[0076] In addition, the predicted reference point determination unit 104b may determine the predicted reference point by referring to the detail level list of an attribute data unit that belongs to the same layer group as the attribute data unit for which the predicted reference point is to be determined, has already been coded by the position information coding unit 102b, and belongs to a different subgroup from the attribute data unit.

[0077] Furthermore, in this case, the predicted reference point determination unit 104b may refer to a detail level list of attribute data units that have already been coded by the position information coding unit 102b and that belong to a different subgroup from the attribute data unit, and that are at the same level as the attribute data unit for which the predicted reference point is to be determined.

[0078] Alternatively, in this case, the prediction reference point determination unit 104b may refer to the detail level list of the finest layer among the levels of attribute data units that have already been encoded by the position information encoding unit 102b and belong to a different subgroup from the attribute data unit in question.

[0079] After determining the prediction reference points, the prediction reference point determination unit 104b lists these prediction reference points to generate a prediction reference list.

[0080] The predictive conversion unit 105b performs predictive conversion for each attribute data unit using the predicted reference point to generate a predicted value. The predictive conversion method referred to here is not particularly limited.

[0081] The coefficient coding unit 106b codes the attribute data unit by performing coefficient coding using the predicted values ​​generated by the predictive transformation as transform coefficients. The coefficient coding method referred to here is not particularly limited.

[0082] Next, an example of processing executed by the encoding device 10b will be described with reference to Fig. 9. Fig. 9 is a flowchart showing an example of processing executed by the encoding device according to the second embodiment.

[0083] In step S21, the point cloud acquisition unit 101b acquires point cloud data.

[0084] In step S22, the position information encoding unit 102b generates a layer group, generates a subgroup, and generates a position data unit.

[0085] In step S23, the detail level structure generation unit 103b generates detail levels for each attribute data unit in order from the leaf side of the tree structure toward the root side, up to layers that do not overlap with the parent attribute data unit in the depth direction.

[0086] In step S24, the predicted reference point determination unit 104b determines predicted reference points for each attribute data unit in order from the leaf side of the tree structure toward the root side.

[0087] In step S25, the predictive conversion unit 105b performs predictive conversion for each attribute data unit using the predicted reference point to generate a predicted value.

[0088] In step S26, the coefficient encoding unit 106b encodes the attribute data unit using the predicted value generated by the predictive transformation as a transformation coefficient.

[0089] The encoding device 10b according to the second embodiment has been described above. The encoding device 10b includes a position information encoding unit 102b, a detail level structure generating unit 103b, and a predicted reference point determining unit 104b.

[0090] The position information encoding unit 102b converts position information indicating the positions of points included in the point cloud data into a tree structure, divides the tree structure in the depth direction to generate layer groups, divides at least one of the layer groups based on the position information to generate subgroups, and encodes the subgroups to generate position data units corresponding to part of the position information.

[0091] The detail level structure generating unit 103b generates detail levels for each attribute data unit in order from the leaf side of the tree structure toward the root side, up to layers that do not overlap with the parent attribute data unit in the depth direction.

[0092] The predicted reference point determination unit 104b determines, for each attribute data unit, in order from the root side of the tree structure to the leaf side, for each point that was not subsampled when the level of detail was generated, a predicted reference point from the same layer as the layer containing these points or from a layer closer to the root than the layer containing these points.

[0093] This allows the encoding device 10b to enable partial access. Note that it is also possible not to generate any level of detail lists for data units other than the rootmost attribute data unit, and to select predicted reference points from the level of detail list of the parent attribute data unit for all points included in this unit and perform encoding.

[0094] Next, a decoding device, a decoding program, and a decoding method for decoding a point group encoded by the encoding device 10a or the encoding device 10b will be described.

[0095] The decoding device is a device that decodes coded data obtained by coding point cloud data, which is a set of points including attribute information, and performs the reverse process of the coding device 10a or the coding device 10b. The decoding device includes a decoding unit and a prediction unit. The point cloud data has attribute information coded in a hierarchical structure. The decoding unit decodes each decoding unit, which is a set of attribute information of multiple points belonging to successive layers. The prediction unit predicts the attribute information of a point belonging to the highest layer of a first decoding unit by referring to any of the attribute information of a point belonging to the lowest layer of a second decoding unit, which includes attribute information belonging to a layer higher than the layer to which the attribute information included in the first decoding unit belongs. Furthermore, the highest layer of the first decoding unit is one layer below the lowest layer of the second decoding unit. Furthermore, the first decoding unit has at least one or more decoding units of the same layer.

[0096] At least a portion of the functions of the encoding device 10a and at least a portion of the functions of the encoding device 10b may be implemented by hardware including circuitry such as a large-scale integration (LSI), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a graphics processing unit (GPU). Alternatively, at least a portion of the functions of the encoding device 10a and at least a portion of the functions of the encoding device 10b may be implemented by a combination of software and hardware. These pieces of hardware may be integrated into one or may be separated into multiple pieces.

[0097] Although the embodiments of the present invention have been described above with reference to the drawings, the encoding device, encoding program, and encoding method are not limited to the above-described embodiments, and various modifications, substitutions, combinations, and / or design changes can be made without departing from the spirit and scope of the present invention.

[0098] Furthermore, the effects of the above-described embodiments of the present invention are described as examples. Therefore, the embodiments of the present invention may also achieve other effects that a person skilled in the art can recognize from the description of the above-described embodiments in addition to the above-described effects. [Explanation of symbols]

[0099] 10a, 10b... Encoding device, 11a, 11b... Processor, 12a, 12b... Main memory device, 13a, 13b... Communication interface, 14a, 14b... Auxiliary memory device, 15a, 15b... Input / output device, 16a, 16b... Bus, 101a, 101b... Point cloud acquisition unit, 102a, 102b... Position information encoding unit, 103a, 103b... Level of detail structure generation unit, 104a, 104b... Prediction reference point determination unit, 105a, 105b... Prediction conversion unit, 106a, 106b... Coefficient encoding unit

Claims

1. A decoding device for decoding point cloud data, comprising: Point color information is coded in a hierarchical structure, a decoding unit that decodes each data unit that is a set of the point color information; an acquisition unit that acquires the point color information belonging to the highest layer of the data unit by referring to predetermined color information; and The acquisition unit is a decoding device that bit-shifts the code of the point color information according to the depth of the node.

2. the predetermined color information is one of the point color information of the lowest hierarchy of another data unit; The decoding device according to claim 1 .

3. A decoding method for decoding point cloud data, comprising: Point color information is coded in a hierarchical structure, Decoding each data unit that is a set of the point color information, By referring to predetermined color information, the point color information belonging to the highest layer of the data unit is acquired; The sign of the point color information is bit-shifted according to the depth of the node. Decryption method.

4. A decoding program that causes a computer to implement the decoding method according to claim 3.