Point group decoder, method for decoding point group, and program
Patent Information
- Application Number
- JP2023066201
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-04-14
- Publication Date
- 2025-06-13
- Estimated Expiration
- 2043-04-14
AI Technical Summary
Existing methods for determining the context in point cloud decoding, particularly in Angular mode and adaptive azimuth quantization mode of Predictive geometry coding, are not optimal, leading to inefficiencies in encoding efficiency.
A point cloud decoding device that determines the context for decoding the radius residual based on a threshold value regarding the number of azimuth steps and decoded azimuth steps, using a tree synthesis unit to select the appropriate predictor and perform dequantization.
Improves encoding efficiency by optimizing the context determination process in point cloud decoding, specifically in Angular mode and adaptive azimuth quantization mode.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a point group decoding device, a point group decoding method, and a program. [Background technology]
[0002] Non-Patent Document 2 discloses a method for determining a context to be used for decoding a radial residual in accordance with a decoded predictor index and a decoded azimuth angle step number in an angular mode and an adaptive azimuth angle quantization mode of predictive geometry coding. [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] G-PCC codec description, ISO / IEC JTC1 / SC29 / WG7 N00271 [Non-Patent Document 2] G-PCC 2nd Edition codec description, ISO / IEC JTC1 / SC29 / WG7 N00314 Summary of the Invention [Problem to be solved by the invention]
[0004] However, in the method of Non-Patent Document 2, when determining the context to be used for decoding the radial residual, one condition is whether or not the number of decoded azimuth angle steps is 0, but there is a problem in that this is not an optimal condition according to the data sequence to be decoded.
[0005] Therefore, the present invention has been made in consideration of the above-mentioned problems, and aims to provide a point cloud decoding device, a point cloud decoding method, and a program that can improve coding efficiency in the angular mode and adaptive azimuth angle quantization mode of predictive geometry coding. [Means for solving the problem]
[0006] A first feature of the present invention is summarized as a point cloud decoding device including a tree synthesis unit that, in an angular mode and an adaptive azimuth angle quantization mode of predictive geometry coding, makes a decision based on a threshold value for the number of azimuth angle steps and the number of decoded azimuth angle steps, and determines a context to be used for decoding a radial residual based on the result of the decision.
[0007] A second feature of the present invention is summarized as a point cloud decoding device including a tree synthesis unit that dequantizes a decoded radial residual.
[0008] A third feature of the present invention is summarized as a point cloud decoding device including a tree synthesis unit that selects whether a predictor with a predictor index 0 is to be a parent node or a correlation predictor.
[0009] A fourth feature of the present invention is summarized as a point cloud decoding device including a tree synthesis unit that calculates an optimal predictor in advance at a decoded node and performs prediction by referring to the optimal predictor.
[0010] A fifth aspect of the present invention is summarized as a point cloud decoding method, comprising the steps of: in an angular mode and an adaptive azimuth angle quantization mode of predictive geometry coding, making a decision based on a threshold for the number of azimuth angle steps and the number of decoded azimuth angle steps; and determining a context to be used for decoding a radial residual based on a result of the decision.
[0011] A sixth feature of the present invention is summarized as a program for causing a computer to function as a point cloud decoding device, the point cloud decoding device comprising a tree synthesis unit that performs a determination based on a threshold for the number of azimuth angle steps and the number of decoded azimuth angle steps in an angular mode and an adaptive azimuth angle quantization mode of predictive geometry coding, and determines a context to be used for decoding a radial residual based on a result of the determination. Effect of the Invention
[0012] According to the present invention, it is possible to provide a point cloud decoding device, a point cloud decoding method, and a program capable of improving coding efficiency in the angular mode and adaptive azimuth angle quantization mode of redictive geometry coding. [Brief description of the drawings]
[0013] [Figure 1] FIG. 1 is a diagram showing an example of the configuration of a point cloud processing system 10 according to an embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of functional blocks of a point group decoding device 200 according to an embodiment. [Diagram 3] FIG. 3 is a diagram showing an example of the configuration of encoded data (bit stream) received by the geometric information decoding unit 2010 of the point cloud decoding device 200 according to an embodiment. [Figure 4] FIG. 4 is a diagram showing an example of the syntax configuration of GPS2011. [Diagram 5] FIG. 5 is a flowchart showing an example of the operation of the tree synthesis unit 2020 of the point group decoding device 200 according to an embodiment. [Figure 6] FIG. 6 is a flowchart showing an example of the process of decoding the predictor information and the spherical coordinate residual in step S504. [Figure 7] FIG. 7 is a flowchart showing an example of the spherical coordinate residual decoding process in step S604. [Figure 8]FIG. 8 is a flowchart showing an example of the radius residual decoding process in step S702. [Figure 9] FIG. 9 is a flowchart showing an example of the process of predicting the position information in step S505. [Figure 10] FIG. 10 is a flowchart showing an example of the process of generating a predictor and calculating a predicted value using the predictor list in step S902. [Figure 11] FIG. 11 is a flowchart showing an example of the prediction process including the correlation predictor in step S1002. [Figure 12] FIG. 12 is a flowchart showing an example of the process of decoding the predictor information and the spherical coordinate residual in step S504. [Figure 13] FIG. 13 is a flowchart showing an example of the prediction of the position information in step S505. [Figure 14] FIG. 14 is a flowchart showing an example of the process of generating a predictor according to the optimal predictor of the reference node and calculating a predicted value in step S1304. [Figure 15] FIG. 15 is a diagram showing an example of functional blocks of the point group encoding device 100 according to this embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] Hereinafter, the embodiments of the present invention will be described with reference to the drawings. Note that the components in the following embodiments can be appropriately replaced with existing components, and various variations including combinations with other existing components are possible. Therefore, the description of the following embodiments does not limit the content of the invention described in the claims.
[0015] (First embodiment) A point cloud processing system 10 according to a first embodiment of the present invention will be described below with reference to Fig. 1 to Fig. 15. Fig. 1 is a diagram showing a point cloud processing system 10 according to the embodiment.
[0016] As shown in FIG. 1, a point cloud processing system 10 includes a point cloud encoding device 100 and a point cloud decoding device 200.
[0017] The point cloud encoding device 100 is configured to generate encoded data (bit stream) by encoding an input point cloud signal. The point cloud decoding device 200 is configured to generate an output point cloud signal by decoding the bit stream.
[0018] The input point cloud signal and the output point cloud signal are composed of position information and attribute information of each point in the point cloud, such as color information and reflectance of each point.
[0019] Here, such a bit stream may be transmitted from the point group encoding device 100 to the point group decoding device 200 via a transmission path. Also, the bit stream may be stored in a storage medium and then provided from the point group encoding device 100 to the point group decoding device 200.
[0020] (Point Cloud Decoding Device 200) Hereinafter, the point group decoding device 200 according to this embodiment will be described with reference to Fig. 2. Fig. 2 is a diagram showing an example of functional blocks of the point group decoding device 200 according to this embodiment.
[0021] As shown in FIG. 2, the point cloud decoding device 200 includes a geometric information decoding unit 2010, a tree synthesis unit 2020, an approximate surface synthesis unit 2030, a geometric information reconstruction unit 2040, an inverse coordinate transformation unit 2050, an attribute information decoding unit 2060, an inverse quantization unit 2070, a RAHT unit 2080, a LoD calculation unit 2090, an inverse lifting unit 2100, an inverse color transformation unit 2110, and a frame buffer 2120.
[0022] The geometric information decoding unit 2010 is configured to receive as input a bit stream relating to geometric information (geometric information bit stream) out of the bit streams output from the point group encoding device 100, and to decode the syntax.
[0023] The decoding process is, for example, a context-adaptive binary arithmetic decoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the position information.
[0024] The tree synthesis unit 2020 is configured to receive as input the control data decoded by the geometric information decoding unit 2010 and an occupancy code indicating which node in the tree described below the point group exists in, and generate tree information indicating in which area in the space to be decoded the point exists.
[0025] The tree synthesis unit 2020 may be configured to perform the decoding process of the occupancy code within itself.
[0026] This process divides the space to be decoded into rectangles, determines whether a point exists in each rectangle by referring to the occupancy code, divides the rectangle in which the point exists into multiple rectangles, and then generates tree information by recursively repeating the process of referring to the occupancy code.
[0027] Here, when decoding the occupancy code, inter prediction, which will be described later, may be used.
[0028] In this embodiment, a method called "Octree" can be used, which always treats the above-mentioned rectangular parallelepiped as a cube and performs octree division recursively, and a method called "QtBt" can be used, which performs quadtree division and binary tree division in addition to octree division. Whether or not to use "QtBt" is transmitted from the point cloud encoding device 100 as control data.
[0029] Alternatively, when the control data specifies that predictive geometry coding is to be used, the tree synthesis unit 2020 is configured to decode the coordinates of each point based on an arbitrary tree structure determined in the point cloud encoding device 100.
[0030] The approximate surface synthesis unit 2030 is configured to generate approximate surface information using the tree information generated by the tree synthesis unit 2020, and to decode the point cloud based on the approximate surface information.
[0031] Approximate surface information is used when, for example, decoding three-dimensional point cloud data of an object, in cases where the point cloud is densely distributed on the object surface, to approximate the area in which the point cloud exists using a small plane, rather than decoding each individual point cloud.
[0032] Specifically, the approximate surface synthesis unit 2030 can generate approximate surface information and decode the point cloud using a method called "Trisoup", for example. A specific processing example of "Trisoup" will be described later. In addition, when decoding a sparse point cloud acquired by Lidar or the like, this processing can be omitted.
[0033] The geometric information reconstruction unit 2040 is configured to reconstruct geometric information (position information in the coordinate system assumed by the decoding process) of each point of the point cloud data to be decoded, based on the tree information generated by the tree synthesis unit 2020 and the approximate surface information generated by the approximate surface synthesis unit 2030.
[0034] The inverse coordinate transformation unit 2050 is configured to receive the geometric information reconstructed by the geometric information reconstruction unit 2040 as input, transform the information from the coordinate system assumed by the decoding process to the coordinate system of the output point cloud signal, and output position information.
[0035] The frame buffer 2120 is configured to store, as an input, the geometric information reconstructed by the geometric information reconstruction unit 2040 as a reference frame. When the tree synthesis unit 2020 performs inter-prediction of temporally different frames, the stored reference frame is read out from the frame buffer 2130 and used as the reference frame.
[0036] Here, which reference frame at which time is to be used for each frame may be determined based on control data transmitted from the point group encoding device 100 as a bit stream, for example.
[0037] The attribute information decoding unit 2060 is configured to receive as input a bit stream relating to attribute information (attribute information bit stream) out of the bit streams output from the point group encoding device 100, and to decode the syntax.
[0038] The decoding process is, for example, a context-adaptive binary arithmetic decoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the attribute information.
[0039] Moreover, the attribute information decoding unit 2060 is configured to decode the quantized residual information from the decoded syntax.
[0040] The inverse quantization unit 2070 is configured to perform inverse quantization processing based on the quantized residual information decoded by the attribute information decoding unit 2060 and a quantization parameter, which is one of the control data decoded by the attribute information decoding unit 2060, to generate inverse quantized residual information.
[0041] The dequantized residual information is output to either the RAHT unit 2080 or the LoD calculation unit 2090 according to the features of the point group to be decoded. Control data decoded by the attribute information decoding unit 2060 specifies which unit the dequantized residual information is output to.
[0042] The RAHT unit 2080 is configured to receive the inverse quantized residual information generated by the inverse quantization unit 2070 and the geometric information generated by the geometric information reconstruction unit 2040 as input, and to decode the attribute information of each point using a type of Haar transform (inverse Haar transform in the decoding process) called RAHT (Region Adaptive Hierarchical Transform). As a specific process of RAHT, for example, the method described in Non-Patent Document 1 can be used.
[0043] The LoD calculation unit 2090 is configured to receive the geometric information generated by the geometric information reconstruction unit 2040 as an input and generate a Level of Detail (LoD).
[0044] LoD is information for defining a reference relationship (a referencing point and a referenced point) to realize predictive coding, such as predicting attribute information of a certain point from attribute information of another point and encoding or decoding the prediction residual.
[0045] In other words, LoD is information that defines a hierarchical structure in which each point contained in geometric information is classified into multiple levels, and attributes of points belonging to lower levels are encoded or decoded using attribute information of points belonging to higher levels.
[0046] As a specific method for determining the LoD, for example, the method described in Non-Patent Document 1 mentioned above may be used.
[0047] The inverse lifting unit 2100 is configured to decode attribute information of each point based on the hierarchical structure defined by the LoD, using the LoD generated by the LoD calculation unit 2090 and the inverse quantized residual information generated by the inverse quantization unit 2070. As a specific process of inverse lifting, for example, the method described in the above-mentioned Non-Patent Document 1 can be used.
[0048] The inverse color conversion unit 2110 is configured to perform inverse color conversion processing on the attribute information output from the RAHT unit 2080 or the inverse lifting unit 2100 when the attribute information to be decoded is color information and color conversion has been performed on the point cloud encoding device 100 side. Whether or not to perform such inverse color conversion processing is determined by the control data decoded by the attribute information decoding unit 2060.
[0049] The point group decoding device 200 is configured to decode and output the attribute information of each point in the point group through the above processing.
[0050] (Geometric Information Decoding Part 2010) The control data decoded by the geometric information decoding unit 2010 will be described below with reference to FIGS.
[0051] FIG. 3 shows an example of the structure of the coded data (bit stream) received by the geometric information decoding unit 2010. In FIG.
[0052] First, the bit stream may include a GPS 2011. The GPS 2011 is also called a geometry parameter set, and is a set of control data related to decoding of geometric information. A specific example will be described later. Each GPS 2011 includes at least GPS ID information for identifying each GPS 2011 when there are multiple GPS 2011s.
[0053] Secondly, the bit stream may include GSH2012A / 2012B. GSH2012A / 2012B is also called a geometry slice header or geometry data unit header, and is a set of control data corresponding to a slice described later. In the following description, the term "slice" is used, but slice can also be read as data unit. A specific example will be described later. GSH2012A / 2012B includes at least GPS id information for specifying GPS2011 corresponding to each GSH2012A / 2012B.
[0054] Thirdly, the bitstream may include slice data 2013A / 2013B following the GSH 2012A / 2012B. The slice data 2013A / 2013B includes data in which geometric information is encoded.
[0055] As described above, the bit stream is configured such that each slice data 2013A / 2013B corresponds to one GSH 2012A / 2012B and one GPS 2011.
[0056] As described above, since the GPS ID information is used to specify which GPS 2011 to refer to in the GSH 2012A / 2012B, a common GPS 2011 can be used for a plurality of slice data 2013A / 2013B.
[0057] In other words, it is not necessary to transmit the GPS 2011 for each slice. For example, as shown in Fig. 3, the bit stream may be configured such that the GPS 2011 is not coded immediately before the GSH 2012B and the slice data 2013B.
[0058] 3 is merely an example. As long as the slice data 2013A / 2013B corresponds to the GSH 2012A / 2012B and the GPS 2011, elements other than those described above may be added as components of the bit stream.
[0059] For example, as shown in Fig. 3, the bitstream may include a sequence parameter set (SPS) 2001. Similarly, when transmitted, the bitstream may be shaped into a configuration different from that shown in Fig. 3. Furthermore, the bitstream may be combined with a bitstream decoded by an attribute information decoding unit 2060 (described later) and transmitted as a single bitstream.
[0060] FIG. 4 is an example of the syntax configuration of GPS2011.
[0061] Note that the syntax names described below are merely examples. If the syntax functions described below are similar, the syntax names may be different.
[0062] The GPS 2011 may include GPS ID information (gps_geom_parameter_set_id) for identifying each GPS 2011.
[0063] The Descriptor column in Fig. 4 indicates how each syntax is coded. ue(v) indicates an unsigned zeroth-order exponential Golomb code, and u(1) indicates a 1-bit flag.
[0064] The GPS 2011 may include a flag (geom_tree_type) for controlling the tree type in the tree synthesis unit 2020 .
[0065] For example, if the value of geom_tree_type is "1", it may be defined that predictive geometry coding is used, and if the value of geom_tree_type is "0", it may be defined that Octree is used.
[0066] The GPS 2011 may include a flag (geom_angular_enabled) for controlling whether or not the tree synthesis unit 2020 performs processing in angular mode.
[0067] For example, when the value of geom_angular_enabled is “1”, it may be defined that predictive geometry coding processing is performed as angular mode, and when the value of geom_angular_enabled is “0”, it may be defined that predictive geometry coding processing is not performed as angular mode.
[0068] The GPS 2011 may include a flag (ptree_ang_azimuth_scaling_enabled) for controlling whether or not the adaptive azimuth angle quantization mode is in the angular mode in the tree synthesis unit 2020. The adaptive azimuth angle quantization mode is a mode in which adaptive quantization of the azimuth angle is performed according to the radius.
[0069] For example, if the value of ptree_ang_azimuth_scaling_enabled is "1", it is defined that adaptive quantization of the azimuth angle according to the radius is performed, and if the value of ptree_ang_azimuth_scaling_enabled is "0", it is defined that adaptive quantization of the azimuth angle according to the radius is not performed.
[0070] In addition, the predictor list may be used as a flag for controlling whether or not to use the predictor list in calculating (selecting) a predictor in the Angular mode. In this embodiment, the predictor is a concept that includes a linear predictor.
[0071] For example, if the value of ptree_azimuth_scaling_enabled is “1”, it may be defined that a predictor list is used in the calculation of the predictor, and if the value of ptree_ang_azimuth_scaling_enabled is “0”, it may be defined that a predictor list is not used in the calculation of the predictor.
[0072] The GPS 2011 may include a value (ptree_ang_azimuth_step_minus1) related to the laser rotation rate for use in calculating the predicted azimuth angle in the tree synthesis unit 2020 in angular mode.
[0073] The GPS 2011 may include a threshold (ptree_ang_radius_residual_cording_context_qphi_threshold) for the number of azimuth angle steps used when decoding the radius residual in the angular mode and adaptive azimuth angle quantization mode in the tree synthesis unit 2020.
[0074] The GPS 2011 may include a second threshold (ptree_ang_radius_residual_cording_context_qphi_threshold2) for the number of azimuth angle steps used when decoding the radius residual in the angular mode and adaptive azimuth angle quantization mode in the tree synthesis unit 2020.
[0075] The GPS 2011 may include a flag (ptree_ang_radius_residual_cording_context_qphi_threshold_calculation_enabled) for controlling whether or not the decoder derives a threshold for the number of azimuth angle steps in the angular mode and adaptive azimuth angle quantization mode in the tree synthesis unit 2020.
[0076] For example, if the value of ptree_ang_radius_residual_cording_context_qphi_threshold_calculation_enabled is "1", it may be defined that such threshold is derived by the decoder, and if the value of ptree_ang_radius_residual_cording_context_qphi_threshold_calculation_enabled is "0", it may be defined that such threshold is not derived by the decoder.
[0077] The GPS 2011 may include a flag (ptree_ang_relation_predictor_enabled_flag) for controlling whether or not to use a correlation predictor using correlations between multiple decoded nodes such as parent nodes in the tree synthesis unit 2020 in angular mode and adaptive azimuth angle quantization mode.
[0078] For example, when the value of ptree_ang_predictor_enabled_flag is "1", it may be defined that such a correlation predictor is used, and when the value of ptree_ang_predictor_enabled_flag is "0", it may be defined that such a correlation predictor is not used.
[0079] The GPS 2011 may include a flag (ptree_ang_reference_optimal_predictor_enabled_flag) for controlling whether or not to generate a predictor and perform prediction using the optimal predictor of the reference node in the tree synthesis unit 2020 in angular mode and adaptive azimuth angle quantization mode.
[0080] For example, when the value of ptree_ang_predictor_enabled_flag is “1”, it may be defined that a predictor is generated using the optimal predictor of the reference node, and when the value of ptree_ang_reference_optimal_predictor_enabled_flag is “0”, it may be defined that a predictor is not generated using the optimal predictor of the reference node. (Tree Synthesis Department 2020) An example of the operation of the tree synthesis unit 2020 will be described below with reference to FIGS.
[0081] 5 is a flowchart showing an example of processing in the tree synthesis unit 2020. Note that, below, an example will be described in which trees are synthesized using "Predictive geometry coding".
[0082] Predictive geometry coding is also called predictive tree coding. Predictive geometry coding is a method for decoding the residual of position information predicted based on an arbitrary tree structure determined by the point cloud encoding device 100 and the position information of the point cloud data, and adding the two together to decode the position information of the point cloud data.
[0083] As shown in FIG. 5, in step S501, the tree synthesis unit 2020 determines whether or not decoding of position information of all point cloud data included in the slice has been completed.
[0084] This process, for example, transmits information indicating the number of point cloud data contained in the slice to the GSH, and by comparing this number of point cloud data with the number of data already processed, it can be determined whether processing of all points has been completed.
[0085] If the decoding of the position information of all point cloud data is completed, the operation proceeds to step S513 and ends the process. If the decoding of the position information of all point cloud data is not completed, the operation proceeds to step S502.
[0086] In step S502, the tree merging unit 2020 sets a parent node of a node to be decoded (node to be processed) of the point cloud data.
[0087] For example, the tree synthesis unit 2020 decodes the number of child nodes of each node, and stores the node indexes for each node by the number of child nodes.
[0088] When the tree synthesis unit 2020 processes a node to be decoded after a certain node, it may refer to the array of indexes of the node, obtain one index stored at the end of the array, and set the node of the obtained index as the parent node of the node to be decoded.
[0089] After the parent node setting is completed, the operation proceeds to step S503.
[0090] In step S503, the tree synthesis unit 2020 determines whether to perform processing in the Angular mode.
[0091] For example, the tree synthesis unit 2020 can refer to the value of the above-mentioned geom_angular_enabled to determine whether to perform processing in Angular mode.
[0092] If the processing is to be performed in Angular mode, the operation proceeds to step S504, and if the processing is not to be performed in Angular mode, the operation proceeds to step S510.
[0093] In step S504, the tree synthesis unit 2020 decodes the predictor information and the spherical coordinate residual. Here, the spherical coordinate residual indicates the residual of the radius, the azimuth angle, and the laser ID. When the decoding is completed, the operation proceeds to step S505.
[0094] In step S505, the tree synthesis unit 2020 predicts the position information based on the predictor information, where the predictor information is a predictor index or a prediction mode.
[0095] In this process, the tree synthesis unit 2020 first determines the type of predictor to be used for prediction.
[0096] For example, the tree synthesis unit 2020 may determine whether or not to perform processing in adaptive azimuth angle quantization mode based on the value of ptree_ang_azimuth_scaling_enabled, and may determine the type of predictor to be used based on the result of this determination.
[0097] For example, when performing the decoding in adaptive azimuth angle quantization mode, the tree synthesis unit 2020 may select the type of predictor to use from among multiple predictors calculated using a tree structure based on the decoded predictor mode.
[0098] For example, in the case of an adaptive azimuth angle quantization mode, the tree synthesis unit 2020 may select a predictor to be used based on the decoded prediction mode from among a plurality of predictors calculated using a tree structure.
[0099] Alternatively, when performing processing in the adaptive azimuth angle quantization mode, the tree synthesis unit 2020 may store position information of the decoded nodes in a list as a predictor, and refer to the list for a predictor assigned to a decoded predictor index to select the predictor type to be used.
[0100] Once the type of predictor is determined, the tree synthesis unit 2020 sets the predictor as the predicted value of the position information. A specific example of the process will be described later.
[0101] After the prediction of the position information is completed, the operation proceeds to step S506.
[0102] In step S506, the tree synthesis unit 2020 reconstructs the spherical coordinates. In this process, the tree synthesis unit 2020 reconstructs the spherical coordinates by adding the decoded spherical coordinate residual and the predictor.
[0103] After the reconfiguration is completed, the operation proceeds to step S507.
[0104] In step S507, the tree synthesis unit 2020 reconstructs the orthogonal integer coordinates. In this process, the tree synthesis unit 2020 can convert the spherical coordinates into orthogonal integer coordinates based on the reconstructed spherical coordinates. A specific method for this can be realized by, for example, the method described in Non-Patent Document 1.
[0105] After the reconstruction of the orthogonal integer coordinates is completed, the operation proceeds to step S508.
[0106] In step S508, the tree synthesis unit 2020 decodes the orthogonal integer coordinate residual.
[0107] After the decoding of the orthogonal integer coordinate residual is completed, the operation proceeds to step S509.
[0108] In step S509, the tree synthesis unit 2020 reconstructs the original coordinates. In this process, the tree synthesis unit 2020 reconstructs the original coordinates by adding the decoded orthogonal integer coordinate residual and the reconstructed orthogonal integer coordinates.
[0109] After the reconstruction of the original coordinates is completed, the operation returns to step S501.
[0110] In step S510, the tree synthesis unit 2020 predicts the position information. Specifically, the tree synthesis unit 2020 selects a predictor and sets the predictor as the predicted value of the position information.
[0111] For example, the tree synthesis unit 2020 may select a predictor based on the decoded predictor mode from among a plurality of predictors calculated based on a tree structure.
[0112] After the prediction of the position information is completed, the operation proceeds to step S511.
[0113] In step S511, the tree synthesis unit 2020 decodes the orthogonal integer coordinate residual.
[0114] After the decoding of the orthogonal integer coordinate residual is completed, the operation proceeds to step S512.
[0115] In step S512, the tree synthesis unit 2020 reconstructs the original coordinates. In this process, the tree synthesis unit 2020 reconstructs the original coordinates by adding the residual of the orthogonal integer coordinates decoded in step S511 and the position information predicted in step S510.
[0116] After the reconstruction of the original coordinates is completed, the operation returns to step S501.
[0117] FIG. 6 is a flowchart showing an example of the process of decoding the predictor information and the spherical coordinate residual in step S504.
[0118] As shown in FIG. 6, in step S601, the tree synthesis unit 2020 determines whether or not the adaptive azimuth angle quantization mode is selected based on the value of ptree_ang_azimuth_scaling_enabled.
[0119] If the mode is the adaptive azimuth angle quantization mode, the operation proceeds to step S602, whereas if the mode is not the adaptive azimuth angle quantization mode, the operation proceeds to step S603.
[0120] In step S602, the tree synthesis unit 2020 decodes the predictor index. After the decoding of the predictor index is completed, the operation proceeds to step S604.
[0121] In step S603, the tree synthesis unit 2020 decodes the prediction mode. After the prediction mode has been decoded, the operation proceeds to step S604.
[0122] In step S604, the tree synthesis unit 2020 decodes the azimuth angle step number. After the azimuth angle step number has been decoded, the operation proceeds to step S605.
[0123] In step S605, the tree synthesis unit 2020 decodes the spherical coordinate residual. After the decoding is completed, the operation proceeds to step S606, where the process ends.
[0124] FIG. 7 is a flowchart showing an example of the spherical coordinate residual decoding process in step S604.
[0125] As shown in FIG. 7, in step S701, the tree synthesis unit 2020 determines whether or not the adaptive azimuth angle quantization mode is selected based on the value of ptree_ang_azimuth_scaling_enabled.
[0126] If the mode is the adaptive azimuth angle quantization mode, the operation proceeds to step S702, whereas if the mode is not the adaptive azimuth angle quantization mode, the operation proceeds to step S704.
[0127] In step S702, the tree synthesis unit 2020 decodes the radius residual. After the radius residual has been decoded, the operation proceeds to step S703.
[0128] In step S703, the tree synthesis unit 2020 decodes the azimuth angle residual. After the decoding of the azimuth angle residual is completed, the operation proceeds to step S706.
[0129] In step S704, the tree synthesis unit 2020 decodes the radius residual. After the radius residual has been decoded, the operation proceeds to step S705.
[0130] In step S705, the tree synthesis unit 2020 decodes the azimuth angle residual. After the decoding of the azimuth angle residual is completed, the operation proceeds to step S706.
[0131] In step S706, the tree synthesis unit 2020 decodes the laser ID residual. After the decoding of the laser ID residual is completed, the operation proceeds to step S707, and the process ends.
[0132] FIG. 8 is a flowchart showing an example of the radius residual decoding process in step S702.
[0133] As shown in FIG. 8, in step S801, the tree synthesis unit 2020 determines a context.
[0134] For example, the tree synthesis unit 2020 may use the decoded predictor index and the decoded azimuth angle step number to select one context index that satisfies a condition from among four context indexes ctxIdx using one threshold value for the azimuth angle step number as follows, and determine a context based on the selected context index.
[0135]
number
[0136] The tree compositing unit 2020 may use a specific hard-coded value as the threshold value x. For example, the tree compositing unit 2020 may use a specific hard-coded value such as 0 as the threshold value x.
[0137] Alternatively, the tree synthesis unit 2020 may use the value of ptree_ang_radius_residual_cording_context_qphi_threshold as the threshold value x.
[0138] Alternatively, the tree synthesis unit 2020 may refer to the value of ptree_ang_radius_residual_cording_context_qphi_threshold_calculation_enabled, and if it determines that the threshold value x is to be derived by the decoder, it may derive the threshold value x using a syntax held by GPS2011.
[0139] For example, the tree synthesis unit 2020 may derive the threshold value x based on the value of ptree_ang_azimuth_step_minus1, which is a value related to the rotational speed of the laser to be used in calculating the predicted value of the azimuth angle.
[0140] For example, the tree synthesis unit 2020 may calculate the threshold x as follows:
[0141]
number
[0142] For example, the tree synthesis unit 2020 may select a context index according to the following conditions using two thresholds related to the number of azimuth angle steps.
[0143]
number
[0144] For example, the tree synthesis unit 2020 may use a specific value, such as 0, as the threshold y.
[0145] Alternatively, the tree synthesis unit 2020 may use the value of ptree_ang_radius_residual_cording_context_qphi_threshold2 as the threshold y.
[0146] For example, when the tree synthesis unit 2020 refers to the value of ptree_ang_radius_residual_cording_context_qphi_threshold_calculation_enabled and determines that the threshold y is to be derived by the decoder, it may derive the threshold y using a syntax held by GPS2011.
[0147] As described above, the tree synthesis unit 2020 may determine the context to be used for decoding the radial residual based on the determination result by using the threshold value for the number of azimuth angle steps and the number of decoded azimuth angle steps. By using such a configuration, the amount of code for the radial residual can be reduced.
[0148] Once the context is determined, the operation proceeds to step S802.
[0149] In step S802, the tree synthesis unit 2020 decodes the radial residual.
[0150] In this process, the tree synthesis unit 2020 performs context-adaptive binary arithmetic decoding based on the context determined in step S801.
[0151] Further, in this process, the tree synthesis unit 2020 may dequantize the decoded radial residual.
[0152] Here, the tree synthesis unit 2020 may perform inverse quantization with a uniform value for all nodes to be decoded, or may perform inverse quantization with a non-uniform value.
[0153] For example, the tree synthesis unit 2020 may perform inverse quantization with a non-uniform value for all nodes to be decoded, depending on the magnitude of the decoded radius residual.
[0154] Furthermore, for example, the tree synthesis unit 2020 may perform inverse quantization on all nodes to be decoded using a value that changes linearly according to the magnitude of the radius residual, or may perform inverse quantization using an exponential function.
[0155] As described above, the tree synthesis unit 2020 may be configured to inversely quantize the radial residual. By using such a configuration, the amount of code for the radial residual can be reduced.
[0156] FIG. 9 is a flowchart showing an example of the process of predicting the position information in step S505.
[0157] As shown in FIG. 9, in step S901, the tree synthesis unit 2020 determines whether to use a predictor list for calculating a predictor.
[0158] For example, the tree synthesis unit 2020 may determine whether or not the adaptive azimuth angle quantization mode is selected based on the value of ptree_ang_azimuth_scaling_enabled, and may determine the type of predictor to be used in the calculation of the predictor.
[0159] If the predictor list is used, the operation proceeds to step S902, and if the predictor list is not used, the operation proceeds to step S903.
[0160] In step S902, the tree synthesis unit 2020 calculates a predictor using the predictor list, and predicts the position information.
[0161] In this process, the tree synthesis unit 2020 may obtain, from the position information of the decoded nodes held as a predictor list, information corresponding to the decoded predictor index from the list.
[0162] Alternatively, the tree synthesis unit 2020 may use the position information of the parent node as a predictor based on the decoded predictor index.
[0163] After the predictor is determined, the tree synthesis unit 2020 calculates a predicted value of the position information using the predictor. A specific example of the process of calculating the predicted value will be described later.
[0164] After the prediction of the location information is completed, the operation proceeds to step S904, and the process ends.
[0165] In step S903, the tree synthesis unit 2020 selects a predictor to be used based on the decoded predictor mode from among a plurality of predictors calculated using a tree structure, and sets the selected predictor as the predicted value of the position information.
[0166] For example, the tree synthesis unit 2020 may select a mode to be used based on a decoded predictor mode from among a no prediction mode, a prediction mode based only on a parent node, a prediction mode based on a parent node and its parent node, and a prediction mode based on a parent node of the parent node and its parent node.
[0167] Specifically, for example, the tree synthesis unit 2020 can be realized by the method described in Non-Patent Document 1.
[0168] After the prediction of the location information is completed, the operation proceeds to step S904, and the process ends.
[0169] FIG. 10 is a flowchart showing an example of the process of generating a predictor and calculating a predicted value using the predictor list in step S902.
[0170] 10, in step S1001, the tree synthesis unit 2020 determines whether to use a correlation predictor. A correlation predictor is a predictor that is generated using the correlation of decoded nodes such as a parent node.
[0171] For example, the tree synthesis unit 2020 can refer to ptree_ang_relation_predictor_enabled_flag to determine whether to use the correlation predictor.
[0172] If a correlation predictor is used, the operation proceeds to step S1002; if a correlation predictor is not used, the operation proceeds to step S1003.
[0173] In step S1002, the tree synthesis unit 2020 performs prediction using a correlation predictor.
[0174] In this process, the tree synthesis unit 2020 generates a correlation predictor or a predictor other than a correlation predictor based on the decoded predictor index, and predicts the position information of the node to be decoded. Specific details will be described later.
[0175] Once this prediction is complete, the operation proceeds to step S1004, where the process ends.
[0176] In step S1003, the tree synthesis unit 2020 performs prediction using a predictor other than the correlation predictor.
[0177] In this process, the tree synthesis unit 2020 generates a predictor other than the correlation predictor based on the decoded predictor index, and predicts the position information of the node to be decoded.
[0178] Once this prediction is complete, the operation proceeds to step S1004, where the process ends.
[0179] FIG. 11 is a flowchart showing an example of the prediction process including the correlation predictor in step S1002.
[0180] As shown in FIG. 11, in step S1101, the tree synthesis unit 2020 obtains the first optimal predictor of the reference node.
[0181] Here, the reference node is a node that has already been decoded and is used to determine a predictor to be used by the node to be decoded. In step S1105 described later, the tree synthesis unit 2020 decodes the position information in the reference node, and then calculates the radial residuals in the cases where the parent node is used as a predictor and where the correlation predictor is used as a predictor.
[0182] In addition, as described below, the first optimal predictor is a predictor used when the predictor index of the node to be decoded is 0, and is a predictor that produces a smaller radial residual among the calculated radial residuals.
[0183] That is, after decoding the position information at the reference node, the tree synthesis unit 2020 calculates which of the parent node and the correlation predictor should be used as the predictor that will reduce the radial residual, and selects the predictor that reduces the radial residual as the first optimal predictor.
[0184] Here, when the predictor index of the node to be decoded selected in step S1102 is 0, the tree synthesis unit 2020 uses the first optimal predictor of the reference node to determine whether to use the parent node or the correlation predictor as the predictor.
[0185] For example, if the first best predictor of the reference node is the parent node, predictor index 0 of the node to be decoded becomes the parent node, and if the first best predictor of the reference node is a correlation predictor, predictor index 0 of the node to be decoded becomes the correlation predictor.
[0186] The tree synthesis unit 2020 may, for example, select as the reference node the node with the smallest azimuth angle among the nodes with azimuth angles equal to or greater than the azimuth angle of the node decoded immediately before the node to be decoded, from among the laser IDs processed immediately before the laser ID of the node to be decoded.
[0187] Furthermore, if there is no laser ID processed immediately before the laser ID of the node to be decoded, the tree synthesis unit 2020 may set the node decoded immediately before the node to be decoded as the reference node.
[0188] Furthermore, when the node to be decoded is the leading node of each laser, the tree synthesis unit 2020 may set the node decoded immediately before the node to be decoded as the reference node.
[0189] After the reference node selection is completed, the tree synthesis unit 2020 obtains the first optimal predictor of the reference node.
[0190] After the first optimal predictor of the reference node has been obtained, the operation proceeds to step S1102.
[0191] In step S1102, the tree synthesis unit 2020 selects a predictor. Here, when the decoded predictor index is 0, the tree synthesis unit 2020 selects a predictor corresponding to the first optimal predictor of the acquired reference node.
[0192] For example, when the first optimal predictor of the reference node is the parent node, the tree synthesis unit 2020 sets the parent node as the predictor, and when the first optimal predictor of the reference node is a correlation predictor, the tree synthesis unit 2020 sets the correlation predictor as the predictor.
[0193] For example, the correlation predictor may be a linear predictor that is generated based on the correlation of parent nodes and parents of parents.
[0194] For the linear predictor P_(pred_linear)=(r_(pred_linear),φ(pred_linear)), the tree synthesis unit 2020 may calculate P_(pred_linear)=P_0+(P_0-P_1) using the parent node's position information P_0=(r_0,φ_0) and the parent node's parent node's position information P_1=(r_0,φ_1).
[0195] Here, r denotes the radius and φ denotes the azimuth angle.
[0196] Alternatively, the tree synthesis unit 2020 may calculate only the radius r_(pred_linear) of the linear predictor P_(pred_linear)=(r_(pred_linear),φ(pred_linear)) as r_(pred_linear)=r_0+(r_0-r_1), and set the azimuth angle φ_(pred_linear) as φ_(pred_linear)=φ_0.
[0197] When the decoded predictor index is other than 0, the tree synthesis unit 2020 obtains, from the position information of the decoded nodes held as a predictor list, the predictor list that corresponds to the decoded predictor index.
[0198] After the selection of the predictor is completed, the operation proceeds to step 1103 .
[0199] In step S1103, the tree synthesis unit 2020 calculates a predicted value. Specifically, the tree synthesis unit 2020 obtains a predictor corresponding to the decoded predictor index from the predictor list, and calculates the predicted value based on the obtained predictor.
[0200] The predictor already contains the azimuth and radius of the decoded node, and the tree synthesis unit 2020 can calculate the predictor based on this information plus the decoded laser ID of the parent node, for example, using the method described in non-patent document 2.
[0201] After the calculation of the predicted value is completed, the operation proceeds to step S1104.
[0202] In step S1104, the tree synthesis unit 2020 updates the predictor list, which stores the decoded radius and azimuth as predictors.
[0203] Specifically, the tree synthesis unit 2020 updates the predictor list by storing the currently decoded radius and azimuth angle at index 0 of the predictor list.
[0204] Alternatively, when the decoded prediction mode is a linear predictor, the tree synthesis unit 2020 may store the linear predictor used for the prediction at the 0th index.
[0205] For example, updating of the first and subsequent indexes can be achieved by the method described in Non-Patent Document 2.
[0206] After updating of the predictor list is completed, the operation proceeds to step S1105.
[0207] In step S1105, the tree synthesis unit 2020 calculates a first optimal predictor.
[0208] Here, the calculated first optimal predictor is referred to when the node to be decoded is selected as a reference node in the decoding of the node after the node to be decoded.
[0209] In this process, the tree synthesis unit 2020 calculates the radial residual for the node to be decoded when the parent node is used as the predictor and when the correlation predictor is used as the predictor, calculates which predictor would have resulted in a smaller radial residual if it had been selected originally, and designates the predictor resulting in the smaller radial residual as the first optimal predictor.
[0210] Specifically, the tree synthesis unit 2020 compares the difference between the radius decoded at the node to be decoded and the radius of the parent node with the difference between the radius decoded at the node to be decoded and the radius of the correlation predictor, and if the difference with the parent node is smaller, it sets the parent node as the first optimal predictor, and if the difference with the correlation predictor is smaller, it sets the correlation predictor as the first optimal predictor.
[0211] After the calculation of the first optimal predictor is completed, the operation proceeds to step S1106, where the process ends.
[0212] As described above, the tree synthesis unit 2020 may be configured to select whether the predictor with the 0th predictor index is to be a parent node or a correlation predictor. With this configuration, the 0th predictor index can be assigned to a more optimal predictor, thereby improving the coding efficiency.
[0213] FIG. 12 is a flowchart showing an example of the process of decoding the predictor information and the spherical coordinate residual in step S504.
[0214] As shown in FIG. 12, in step S1201, the tree synthesis unit 2020 determines whether or not the adaptive azimuth angle quantization mode is selected based on the value of ptree_ang_azimuth_scaling_enabled.
[0215] If the mode is the adaptive azimuth angle quantization mode, the operation proceeds to step S1202. On the other hand, if the mode is not the adaptive azimuth angle quantization mode, the operation proceeds to step S1203.
[0216] In step S1202, the tree synthesis unit 2020 determines whether or not to generate a predictor using the optimal predictor of the reference node to perform prediction.
[0217] For example, the tree synthesis unit 2020 may determine whether to generate a predictor using the optimal predictor of the reference node and perform prediction based on the value of ptree_ang_reference_optimal_predictor_enabled_flag.
[0218] If a predictor is to be generated using the optimal predictor of the reference node, the operation proceeds to step S1205, and if a predictor is not to be generated using the optimal predictor of the reference node, the operation proceeds to step S1204.
[0219] In step S1203, the tree synthesis unit 2020 decodes the prediction mode. After the decoding of the prediction mode is completed, the operation proceeds to step S604.
[0220] In step S1204, the tree synthesis unit 2020 decodes the predictor index. After the decoding of the predictor index is completed, the operation proceeds to step S1205.
[0221] In step S1205, the tree synthesis unit 2020 decodes the azimuth angle step number. After the azimuth angle step number has been decoded, the operation proceeds to step S1206.
[0222] In step S1206, the tree synthesis unit 2020 decodes the spherical coordinate residual.
[0223] In addition, if the tree synthesis unit 2020 determines not to generate a predictor using the optimal predictor of the reference node based on the value of ptree_ang_reference_optimal_predictor_enabled_flag, when decoding the radial residual, the context is selected based only on the number of azimuth angle steps.
[0224] After the decoding is completed, the operation proceeds to step S1207, where the process ends.
[0225] FIG. 13 is a flowchart showing an example of the prediction of the position information in step S505.
[0226] As shown in FIG. 13, in step S1301, the tree synthesis unit 2020 determines whether or not to use a predictor list for calculating a predictor.
[0227] For example, the tree synthesis unit 2020 may determine whether or not the adaptive azimuth angle quantization mode is selected based on the value of ptree_ang_azimuth_scaling_enabled, and may determine the type of predictor to be used in the calculation of the predictor.
[0228] If the predictor list is used, the operation proceeds to step S1202, and if the predictor list is not used, the operation proceeds to step S1303.
[0229] In step S1302, the tree synthesis unit 2020 determines whether or not to generate a predictor using the optimal predictor of the reference node to perform prediction.
[0230] For example, the tree synthesis unit 2020 may determine whether to generate a predictor using the optimal predictor of the reference node and perform prediction based on the value of ptree_ang_reference_optimal_predictor_enabled_flag.
[0231] If a predictor is to be generated using the optimal predictor of the reference node, the operation proceeds to step S1304, and if a predictor is not to be generated using the optimal predictor of the reference node, the operation proceeds to step S1305.
[0232] In step S1303, the tree synthesis unit 2020 selects a predictor to be used based on the decoded predictor mode from among a plurality of predictors calculated using a tree structure, and sets the selected predictor as the predicted value of the position information.
[0233] For example, the tree synthesis unit 2020 may select a mode to be used based on a decoded predictor mode from among a no prediction mode, a prediction mode based only on a parent node, a prediction mode based on a parent node and its parent node, and a prediction mode based on a parent node's parent node and its parent node. Specifically, such a selection can be realized by, for example, a method described in Non-Patent Document 1.
[0234] After the prediction of the location information is completed, the operation proceeds to step S1306, where the process ends.
[0235] In step S1304, the tree synthesis unit 2020 generates a predictor according to the optimal predictor of the reference node and calculates a predicted value.
[0236] Here, the reference node is a node that has already been decoded and is used to determine a predictor to be used by the node to be decoded.
[0237] In addition, the optimal predictor is the predictor that is calculated to obtain the smallest radial residual among the predictors in the predictor list after decoding the position information at the reference node, and is the predictor that obtains the smallest radial residual.
[0238] In this process, the tree synthesis unit 2020 obtains the optimal predictor of the reference node and calculates a predicted value based on the optimal predictor, as will be described in detail later.
[0239] After the calculation of the predicted value is completed, the operation proceeds to step S1306, where the process ends.
[0240] In step S1305, the tree synthesis unit 2020 calculates a predictor using the predictor list, and predicts the position information.
[0241] In this process, the tree synthesis unit 2020 may obtain, from the position information of the decoded nodes held as a predictor list, information corresponding to the decoded predictor index from the list.
[0242] Alternatively, the tree synthesis unit 2020 may use the position information of the parent node as a predictor based on the decoded predictor index.
[0243] Once the predictor is determined, the tree synthesis unit 2020 uses the predictor to calculate a predicted value of the position information.
[0244] Once the prediction is complete, the operation proceeds to step S1306, where the process ends.
[0245] FIG. 14 is a flowchart showing an example of the process of generating a predictor according to the optimal predictor of the reference node and calculating a predicted value in step S1304.
[0246] As shown in FIG. 14, in step S1401, the tree synthesis unit 2020 obtains an optimal predictor for the reference node.
[0247] For example, the tree synthesis unit 2020 may select as the reference node the node with the smallest azimuth angle among the nodes with azimuth angles equal to or greater than the azimuth angle of the node decoded immediately before the node to be decoded, among the laser IDs processed immediately before the laser ID of the node to be decoded.
[0248] Furthermore, if there is no laser ID processed immediately before the laser ID of the node to be decoded, the tree synthesis unit 2020 may set the node decoded immediately before the node to be decoded as the reference node.
[0249] Furthermore, when the node to be decoded is the leading node of each laser, the tree synthesis unit 2020 may set the node decoded immediately before the node to be decoded as the reference node.
[0250] After the reference node selection is completed, the tree synthesis unit 2020 obtains the optimal predictor of the reference node.
[0251] After the optimal predictor for the reference node has been obtained, the operation proceeds to step S1402.
[0252] In step S1402, the tree synthesis unit 2020 selects a predictor.
[0253] In this process, the tree synthesis unit 2020 selects a predictor according to the optimal predictor of the acquired reference node.
[0254] For example, the tree synthesis unit 2020 may use the optimal predictor of the reference node as the predictor as is, or may use a node of the same laser as the decoding target node and of the same azimuth as the optimal predictor of the reference node as the predictor.
[0255] After the predictor selection is completed, the operation proceeds to step 1403 .
[0256] In step S1403, the tree synthesis unit 2020 calculates a predicted value. The obtained predictor includes information on the radius and azimuth angle of the decoded node.
[0257] In this process, the tree synthesis unit 2020 can realize the calculation of the predictor based on the acquired predictor and information including the decoded laser ID of the parent node, for example, by the method described in Non-Patent Document 2.
[0258] After the calculation of the predicted value is completed, the operation proceeds to step S1404.
[0259] In step S1404, the tree synthesis unit 2020 updates the predictor list. In the predictor list, the decoded radius and azimuth angle are stored as predictors.
[0260] When updating the predictor list, the tree synthesis unit 2020 may, for example, store the predictor used for decoding at the end of the predictor list.
[0261] Furthermore, the tree synthesis unit 2020 may provide an independent predictor list for each laser ID.
[0262] For example, the tree synthesis unit 2020 may create a new predictor list if the decoded laser ID has changed from the previous laser ID.
[0263] When creating an independent predictor list for each laser ID, the tree synthesis unit 2020 selects a predictor in step S1402 by referring to the predictor list corresponding to the laser ID of the reference node.
[0264] After updating of the predictor list is completed, the operation proceeds to step S1405.
[0265] In step S1405, the tree synthesis unit 2020 calculates the optimal predictor.
[0266] The calculated optimal predictor is referred to when the node to be decoded is selected as a reference node in the decoding of the nodes subsequent to the node to be decoded.
[0267] In this process, the tree synthesis unit 2020 decodes the position information at the reference node, and then calculates which of the already decoded nodes will be used as a predictor to minimize the radial residual. As a result, the predictor that minimizes the radial residual is determined to be the optimal predictor.
[0268] After the calculation of the optimal predictor is completed, the operation proceeds to step S1406, where the process ends.
[0269] As described above, the tree synthesis unit 2020 may be configured to calculate an optimal predictor in advance for a decoded node and make predictions by referring to the predictor. With this configuration, it is not necessary to decode the predictor index, and the coding efficiency can be improved.
[0270] (Point cloud encoding device 100) Hereinafter, the point group encoding device 100 according to this embodiment will be described with reference to Fig. 15. Fig. 15 is a diagram showing an example of functional blocks of the point group encoding device 100 according to this embodiment.
[0271] As shown in FIG. 15, the point cloud encoding device 100 includes a coordinate transformation unit 1010, a geometric information quantization unit 1020, a tree analysis unit 1030, an approximate surface analysis unit 1040, a geometric information encoding unit 1050, a geometric information reconstruction unit 1060, a color conversion unit 1070, an attribute transfer unit 1080, a RAHT unit 1090, a LoD calculation unit 1100, a lifting unit 1110, an attribute information quantization unit 1120, an attribute information encoding unit 1130, and a frame buffer 1140.
[0272] The coordinate conversion unit 1010 is configured to convert the three-dimensional coordinate system of the input point cloud into any different coordinate system. The coordinate conversion may convert the x, y, and z coordinates of the input point cloud into any s, t, and u coordinates by rotating the input point cloud, for example. As a variation of the conversion, the coordinate system of the input point cloud may be used as it is.
[0273] The geometric information quantization unit 1020 is configured to quantize the position information of the input point group after the coordinate transformation and to remove points with overlapping coordinates. When the quantization step size is 1, the position information of the input point group and the position information after quantization match. In other words, when the quantization step size is 1, it is equivalent to the case where quantization is not performed.
[0274] The tree analysis unit 1030 is configured to receive position information of the quantized point group as input, and to generate an occupancy code indicating at which node in the encoding target space a point exists, based on a tree structure described below.
[0275] In this process, the tree analysis unit 1030 is configured to recursively divide the encoding target space into rectangular parallelepipeds to generate a tree structure.
[0276] If a point exists within a certain rectangular parallelepiped, a tree structure can be generated by recursively dividing the rectangular parallelepiped into multiple rectangular parallelepipeds until the rectangular parallelepiped reaches a specified size. Each such rectangular parallelepiped is called a node. Each rectangular parallelepiped generated by dividing a node is called a child node, and the occupancy code is expressed as 0 or 1 to indicate whether or not a point is included in the child node.
[0277] As described above, the tree analysis unit 1030 is configured to generate occupancy codes while recursively dividing nodes until a predetermined size is reached.
[0278] In this embodiment, a method called "Octree" can be used, which recursively performs octree division on the above-mentioned rectangular parallelepiped, always treating it as a cube, and a method called "QtBt" can be used, which performs quadtree division and binary tree division in addition to octree division.
[0279] Here, whether or not to use “QtBt” is transmitted to the point cloud decoding device 200 as control data.
[0280] Alternatively, predictive geometry coding using an arbitrary tree structure may be specified to be used. In this case, the tree analysis unit 1030 determines the tree structure, and the determined tree structure is transmitted to the point cloud decoding device 200 as control data.
[0281] For example, the tree-structured control data may be configured so as to be decoded according to the procedures described with reference to FIGS.
[0282] The approximate surface analyzer 1040 is configured to generate approximate surface information using the tree information generated by the tree analyzer 1030 .
[0283] Approximate surface information is used when, for example, decoding three-dimensional point cloud data of an object, in cases where the point cloud is densely distributed on the object surface, to approximate the area in which the point cloud exists using a small plane, rather than decoding each individual point cloud.
[0284] Specifically, the approximate surface analysis unit 1040 may be configured to generate approximate surface information using, for example, a method called "Trisoup." In addition, when decoding a sparse point cloud acquired by Lidar or the like, this process can be omitted.
[0285] The geometric information encoding unit 1050 is configured to generate a bit stream (geometric information bit stream) by encoding syntax such as the occupancy code generated by the tree analysis unit 1030 and the approximate surface information generated by the approximate surface analysis unit 1040. Here, the bit stream may include, for example, the syntax described in FIG. 4.
[0286] The encoding process is, for example, a context-adaptive binary arithmetic encoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the position information.
[0287] The geometric information reconstruction unit 1060 is configured to reconstruct geometric information (the coordinate system assumed by the encoding process, i.e., the position information after coordinate transformation in the coordinate transformation unit 1010) of each point of the point cloud data to be encoded, based on the tree information generated by the tree analysis unit 1030 and the approximate surface information generated by the approximate surface analysis unit 1040.
[0288] The frame buffer 1140 is configured to receive the geometric information reconstructed by the geometric information reconstruction unit 1060 as an input and store it as a reference frame.
[0289] The stored reference frame is read out from the frame buffer 1140 and used as a reference frame when inter-prediction of a temporally different frame is performed in the tree analysis unit 1030.
[0290] Here, which reference frame to use for each frame may be determined based on, for example, the value of a cost function representing encoding efficiency, and information on the reference frame to be used may be transmitted to the point cloud decoding device 200 as control data.
[0291] The color conversion unit 1070 is configured to perform color conversion when the input attribute information is color information. The color conversion does not necessarily have to be performed, and the presence or absence of the color conversion process is coded as part of the control data and transmitted to the point cloud decoding device 200.
[0292] The attribute transfer unit 1080 is configured to correct the attribute values so as to minimize distortion of the attribute information, based on the position information of the input point cloud, the position information of the point cloud after reconstruction in the geometric information reconstruction unit 1060, and the attribute information after color change in the color conversion unit 1070. As a specific correction method, for example, the method described in Non-Patent Document 1 can be applied.
[0293] The RAHT unit 1090 is configured to receive the attribute information transferred by the attribute transfer unit 1080 and the geometric information generated by the geometric information reconstruction unit 1060 as input, and to generate residual information for each point using a type of Haar transform called RAHT (Region Adaptive Hierarchical Transform). As a specific process of RAHT, for example, the method described in the above-mentioned Non-Patent Document 1 can be used.
[0294] The LoD calculation unit 1100 is configured to receive the geometric information generated by the geometric information reconstruction unit 1060 as an input and generate a Level of Detail (LoD).
[0295] LoD is information for defining a reference relationship (a referencing point and a referenced point) to realize predictive coding, such as predicting attribute information of a certain point from attribute information of another point and encoding or decoding the prediction residual.
[0296] In other words, LoD is information that defines a hierarchical structure in which each point contained in geometric information is classified into multiple levels, and attributes of points belonging to lower levels are encoded or decoded using attribute information of points belonging to higher levels.
[0297] As a specific method for determining the LoD, for example, the method described in Non-Patent Document 1 mentioned above may be used.
[0298] The lifting unit 1110 is configured to generate residual information by a lifting process using the LoD generated by the LoD calculation unit 1100 and the attribute information after attribute transfer by the attribute transfer unit 1080.
[0299] As a specific example of the lifting process, the method described in the above-mentioned non-patent document 1 may be used.
[0300] The attribute information quantization unit 1120 is configured to quantize the residual information output from the RAHT unit 1090 or the lifting unit 1110. Here, a quantization step size of 1 is equivalent to no quantization being performed.
[0301] The attribute information encoding unit 1130 is configured to perform encoding processing using the quantized residual information and the like output from the attribute information quantization unit 1120 as syntax, and to generate a bit stream related to the attribute information (attribute information bit stream).
[0302] The encoding process is, for example, a context-adaptive binary arithmetic encoding process. Here, for example, the syntax includes control data (flags and parameters) for controlling the decoding process of the attribute information.
[0303] Through the above processing, the point group encoding device 100 is configured to perform encoding processing using position information and attribute information of each point in a point group as input, and to output a geometric information bit stream and an attribute information bit stream.
[0304] Furthermore, the above-mentioned point group encoding device 100 and point group decoding device 200 may be realized as a program that causes a computer to execute each function (each process).
[0305] In each of the above embodiments, the present invention has been described using the point cloud encoding device 100 and the point cloud decoding device 200 as examples, but the present invention is not limited to such examples and can be similarly applied to a point cloud encoding / decoding system having the functions of the point cloud encoding device 100 and the point cloud decoding device 200. [Industrial Applicability]
[0306] According to this embodiment, for example, it is possible to improve the overall service quality in video communication, which makes it possible to contribute to Goal 9 of the Sustainable Development Goals (SDGs) led by the United Nations, which is to "build resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of symbols]
[0307] 10...Point cloud processing system 100...Point cloud encoding device 1010... Coordinate conversion section 1020...Geometric information quantization section 1030…Tree analysis section 1040…Approximate surface analysis section 1050...Geometric information encoding unit 1060...Geometric information reconstruction unit 1070…Color conversion section 1080…Attribute transfer section 1090…RAHT Section 1100…LoD calculation section 1110…Lifting section 1120...Attribute information quantization section 1130...Attribute information encoding unit 1140...Frame buffer 200...Point cloud decoding device 2010…Geometric Information Decoding Department 2020…Tree synthesis section 2030…Approximate surface synthesis part 2040...Geometric information reconstruction unit 2050…Inverse coordinate conversion section 2060…Attribute information decoding unit 2070...Inverse quantization section 2080…RAHT Division 2090…LoD calculation section 2100…Reverse lifting section 2110…Color inversion unit 2120...Frame buffer
Claims
1. A point cloud decoding device, In the Angular mode of Predictive geometry coding and the adaptive azimuth quantization mode, a tree synthesis unit is provided that determines a threshold related to the number of azimuth steps and makes a determination based on the decoded number of azimuth steps, and determines a context to be used for decoding the radius residual based on the result of the determination. A point cloud decoding device characterized by comprising:
2. The point cloud decoding device according to claim 1, wherein the tree synthesis unit sets the threshold to a value of a threshold related to the number of azimuth steps used when decoding the radius residual.
3. The point cloud decoding device according to claim 2, further comprising a geometric information decoding unit that decodes the threshold from a bit stream.
4. A point cloud decoding method, In the Angular mode of Predictive geometry coding and the adaptive azimuth quantization mode, a step of determining a threshold related to the number of azimuth steps and making a determination based on the decoded number of azimuth steps, and determining a context to be used for decoding the radius residual based on the result of the determination is provided. A point cloud decoding method characterized by comprising:
5. A program for causing a computer to function as a point cloud decoding device, The point cloud decoding device is In the Angular mode of Predictive geometry coding and the adaptive azimuth quantization mode, a tree synthesis unit is provided that determines a threshold related to the number of azimuth steps and makes a determination based on the decoded number of azimuth steps, and determines a context to be used for decoding the radius residual based on the result of the determination. A program characterized by comprising: