Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
Patent Information
- Application Number
- JP2023527915
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-11
- Filing Date
- 2022-06-09
- Publication Date
- 2026-09-08
- Estimated Expiration
- 2042-06-09
AI Technical Summary
【0010】 本開示は、符号化効率を向上しうる三次元データ符号化方法などを提供できる。
Smart Images

Figure 0007917520000001 
Figure 0007917520000002 
Figure 0007917520000003
Abstract
Description
[[Technical Field]]
[0001] The present disclosure relates to a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding apparatus, and a three-dimensional data decoding apparatus. [[Background Art]]
[0002] In a wide range of fields such as computer vision for autonomous operation of automobiles or robots, map information, monitoring, infrastructure inspection, and video distribution, devices or services utilizing three-dimensional data are expected to become widespread in the future. Three-dimensional data is acquired by various methods such as distance sensors including range finders, stereo cameras, and a combination of a plurality of monocular cameras.
[0003] As one method for representing three-dimensional data, there is a representation method called point cloud, which represents the shape of a three-dimensional structure by a point group in a three-dimensional space. In a point cloud, the positions and colors of the point group are stored. Point cloud is expected to become mainstream as a representation method for three-dimensional data, but the data amount of a point group is extremely large. Therefore, in the accumulation or transmission of three-dimensional data, compression of the data amount by encoding is essential, similar to two-dimensional moving images (for example, MPEG-4 AVC or HEVC standardized by MPEG).
[0004] Additionally, compression of point clouds is partially supported by public libraries that perform point cloud-related processing (Point Cloud Library) and the like.
[0005] Further, a technique for searching for and displaying facilities located around a vehicle using three-dimensional map data is known (see, for example, Patent Document 1). [[Prior Art Literature]] [[Patent Literature]]
[0006] [[Patent Document 1]] International Publication No. 2014 / 020663 [Overview of the project] [Problems that the invention aims to solve]
[0007] In the encoding and decoding processes of three-dimensional data, it is desirable to be able to improve encoding efficiency.
[0008] The purpose of this disclosure is to provide a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, or a three-dimensional data decoding device that can improve encoding efficiency. [Means for solving the problem]
[0009] A three-dimensional data encoding method according to one aspect of the present disclosure calculates a first residual between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and a predicted value of the angular component of the first three-dimensional point calculated by interpretation, and quantizes the first residual using a first quantization step, the first quantization step being calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points included in the plurality of three-dimensional points and located around the first three-dimensional point. [Effects of the Invention]
[0010] This disclosure provides a three-dimensional data encoding method that can improve encoding efficiency. [Brief explanation of the drawing]
[0011] [Figure 1] Figure 1 is a block diagram of a three-dimensional data encoding device according to an embodiment. [Figure 2] Figure 2 shows an example of a prediction tree according to the embodiment. [Figure 3] Figure 3 is a block diagram of a three-dimensional data decoding device according to an embodiment. [Figure 4]Figure 4 is a flowchart showing an example of the procedure for encoding each three-dimensional point of a prediction tree (Predtree) in a three-dimensional data encoding device. [Figure 5] Figure 5 is a flowchart showing an example of adaptive quantization processing for residual signals in the encoding process. [Figure 6] Figure 6 is a flowchart showing an example of the adaptive inverse quantization process applied to quantized values generated by adaptive quantization during the encoding process. [Figure 7] Figure 7 is a flowchart illustrating an example of the procedure for decoding each three-dimensional point of a prediction tree (Predtree) in a three-dimensional data decoding device. [Figure 8] Figure 8 is a flowchart showing an example of adaptive inverse quantization processing for quantized values during the decoding process. [Figure 9] Figure 9 is a block diagram of a three-dimensional data encoding device according to a modified embodiment. [Figure 10] Figure 10 is a block diagram of a three-dimensional data decoding device according to a modified embodiment. [Figure 11] Figure 11 is a flowchart showing an example of a three-dimensional data encoding process according to an embodiment. [Figure 12] Figure 12 is a flowchart showing an example of a three-dimensional data decoding process according to an embodiment. [Figure 13] Figure 13 is a flowchart showing an example of a three-dimensional data encoding process related to a modified example. [Figure 14] Figure 14 is a flowchart showing an example of a three-dimensional data decoding process related to a modified example. [Modes for carrying out the invention]
[0012] A three-dimensional data encoding method according to an aspect of the present disclosure calculates a first residual between an angular component of a first three-dimensional point among a plurality of three-dimensional points each represented by a distance component and an angular component, and a predicted value of the angular component of the first three-dimensional point calculated by inter prediction, and quantizes the first residual using a first quantization step, wherein the first quantization step is calculated according to at least one of a distance component of the first three-dimensional point and a distance component of one or more second three-dimensional points that are included in the plurality of three-dimensional points and located around the first three-dimensional point.
[0013] Depending on the three-dimensional point, the accuracy of inter prediction for the angular component may vary depending on at least one of the distance component of the three-dimensional point and the distance components of surrounding three-dimensional points. For example, in inter prediction, prediction of an angular component tends to be accurate at distant positions (or close positions), which may result in a small residual. In other words, prediction of an angular component tends to be inaccurate at close positions (or distant positions), which may result in a large residual. Therefore, performing quantization using the first quantization step calculated according to at least one of the distance component of the first three-dimensional point and the distance components of one or more surrounding second three-dimensional points can reduce an increase in quantization error and redundancy of quantized values. Accordingly, encoding efficiency can be improved.
[0014] Further, the one or more second three-dimensional points may be encoded before the first three-dimensional point in the encoding order of the plurality of three-dimensional points.
[0015] Further, the method may further calculate a second residual between an angular component of a third three-dimensional point among the plurality of three-dimensional points and a predicted value of the angular component of the third three-dimensional point calculated by intra prediction, and quantize the second residual using a second quantization step different from the first quantization step.
[0016] Depending on the three-dimensional point, the residual of the angular component may be large or small depending on the prediction method. Therefore, when the residual of the angular component changes depending on the prediction method in addition to the distance component, encoding efficiency can be improved by quantizing the residual using a quantization step that is adaptively calculated according to the distance component and the prediction method.
[0017] Furthermore, the second quantization step may be calculated according to at least one of the distance component of the third three-dimensional point and the distance component of one or more fourth three-dimensional points that are included in the plurality of three-dimensional points and located around the third three-dimensional point.
[0018] In intra-prediction, coding efficiency can be improved by adaptively quantizing according to the distance component.
[0019] Furthermore, the first quantization step may be calculated such that it increases as the first prediction accuracy of the predicted value of the angular component of the first three-dimensional point decreases.
[0020] The higher the first prediction accuracy, the more accurate the predicted value generated, resulting in a smaller residual. Conversely, the lower the first prediction accuracy, the more inaccurate the predicted value generated, resulting in a larger residual. Therefore, by calculating the first quantization step to be larger as the first prediction accuracy decreases, it is possible to reduce the increase in quantization error and the redundancy of the quantized values. Thus, coding efficiency can be improved.
[0021] Furthermore, the first quantization step is calculated according to at least one of the distance component of the first three-dimensional point and the distance component of the one or more second three-dimensional points and a first reference value, wherein the first reference value is a reference value for calculating the first quantization step such that it increases as the first prediction accuracy decreases, and the three-dimensional data coding method may further generate a bitstream including the quantized first residual and the first reference value.
[0022] The first reference value is a reference value used to calculate the first quantization step so that it increases as the first prediction accuracy decreases. Therefore, the first quantization step can be calculated so that it increases as the first prediction accuracy decreases. This can reduce the increase in quantization error and the redundancy of quantized values. Thus, encoding efficiency can be improved. In addition, by including the first reference value in the bitstream, the decoding side can perform the same adaptive quantization as the encoding side.
[0023] Furthermore, a second residual is calculated between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual is quantized using a second quantization step different from the first quantization step, the second quantization step being calculated according to at least one of the distance component of the third three-dimensional point and the distance component of the one or more fourth three-dimensional points, and a second reference value, the second reference value being a reference value for which the second quantization step is calculated to be larger as the second prediction accuracy of the predicted value of the angular component of the third three-dimensional point decreases, and the bitstream may further include the quantized second residual and the second reference value.
[0024] The second reference value is a reference value used to calculate the second quantization step so that it increases as the second prediction accuracy decreases. Therefore, the second quantization step can be calculated so that it increases as the second prediction accuracy decreases. This can reduce the increase in quantization error and the redundancy of quantized values. Thus, coding efficiency can be improved.
[0025] Furthermore, the first quantization step may be calculated such that it becomes smaller as the distance component of the first three-dimensional point and the distance component of the one or more second three-dimensional points become larger.
[0026] For some three-dimensional points, the larger at least one of the distance component of the point itself and the distance components of surrounding three-dimensional points, the less accurate the interpretation of the angular component may be. Therefore, by quantizing the first residual using a first quantization step adaptively calculated according to the distance component, it is possible to effectively reduce the quantization error and the redundancy of the quantized values. Thus, coding efficiency can be improved.
[0027] Furthermore, a second residual may be calculated between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual may then be quantized using a second quantization step different from the first quantization step, wherein the second quantization step may be calculated to become smaller as at least one of the distance component of the third three-dimensional point and the distance component of the one or more fourth three-dimensional points increases.
[0028] For some three-dimensional points, the greater the distance component of the point itself and the distance components of surrounding three-dimensional points, the less accurate the interpretation of the angular component may be. In this case as well, adaptive quantization according to the distance component can effectively reduce the increase in quantization error and the redundancy of the quantized values. Therefore, coding efficiency can be improved.
[0029] Furthermore, a three-dimensional data encoding method according to another aspect of the present disclosure calculates a predicted value of the position of a three-dimensional point using one of two prediction methods, interpretation or intraprediction, calculates the residual between the predicted value and the position, and quantizes the residual using a quantization step corresponding to the prediction method.
[0030] For some three-dimensional points, the positional residual may be large or small depending on the prediction method. Therefore, when the positional residual changes depending on the prediction method, encoding efficiency can be improved by quantizing the residual using the quantization step calculated according to the prediction method.
[0031] A three-dimensional data decoding method according to one aspect of the present disclosure obtains a first residual between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and a predicted value of the angular component of the first three-dimensional point calculated by interpretation; inversely quantizes the first residual using a first quantization step, the first quantization step is calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points included in the plurality of three-dimensional points and located around the first three-dimensional point.
[0032] For some three-dimensional points, the likelihood of accurate interpretation of the angular component may vary depending on at least one of its distance component and the distance components of surrounding three-dimensional points. For example, in interpretation, the prediction of the angular component may be more accurate and the residual smaller at farther (or closer) locations. Conversely, the prediction of the angular component may be less accurate and the residual larger at closer (or farther) locations. Therefore, the first residual, which may have been quantized using a first quantization step calculated according to at least one of the distance component of the first three-dimensional point and the distance components of one or more surrounding second three-dimensional points, can be appropriately decoded to improve coding efficiency.
[0033] Furthermore, the one or more second three-dimensional points may be decoded before the first three-dimensional point in the decoding order of the plurality of three-dimensional points.
[0034] Furthermore, a second residual may be obtained between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intra-prediction, and the second residual may be inversely quantized using a second quantization step different from the first quantization step.
[0035] Depending on the three-dimensional point, the residual of the angular component may be large or small depending on the prediction method. Therefore, when the residual of the angular component changes according to the prediction method in addition to the distance component, the first residual, which may have improved coding efficiency by being quantized using a quantization step adaptively calculated according to the distance component and the prediction method, can be appropriately decoded.
[0036] Furthermore, the second quantization step may be calculated according to at least one of the distance component of the third three-dimensional point and the distance component of one or more fourth three-dimensional points that are included in the plurality of three-dimensional points and located around the third three-dimensional point.
[0037] Even in intra-prediction, the second residual, which may have been adaptively quantized according to the distance component to improve coding efficiency, can be appropriately decoded.
[0038] Furthermore, the first quantization step may be calculated such that it increases as the first prediction accuracy of the predicted value of the angular component of the first three-dimensional point decreases.
[0039] The higher the first prediction accuracy, the more accurate the predicted value is generated, resulting in a smaller residual. Conversely, the lower the first prediction accuracy, the more inaccurate the predicted value is generated, resulting in a larger residual. Therefore, by calculating the first quantization step to be larger as the first prediction accuracy decreases, it is possible to appropriately decode the first residual, which may have reduced the large quantization error and the redundancy of the quantized values.
[0040] Furthermore, a first reference value is obtained, and the first quantization step is calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points and the first reference value, wherein the first reference value is calculated such that the smaller the first prediction accuracy, the larger the first quantization step.
[0041] The first reference value is a reference value for calculating the first quantization step so that it increases as the first prediction accuracy decreases. By calculating the first quantization step so that it increases as the first prediction accuracy decreases, the first residual can be appropriately decoded, which may reduce the large quantization error and the redundancy of the quantized values.
[0042] Furthermore, the second residual and second reference value are obtained between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual is inversely quantized using a second quantization step different from the first quantization step. The second quantization step is calculated according to the distance component of the third three-dimensional point and at least one of the distance components of the one or more fourth three-dimensional points and the second reference value. The second reference value may be a reference value such that the second quantization step is calculated to increase as the second prediction accuracy of the angular component of the third three-dimensional point decreases.
[0043] The second reference value is a reference value for calculating the second quantization step so that it increases as the second prediction accuracy decreases. Therefore, the second quantization step can be calculated so that it increases as the second prediction accuracy decreases. As a result, the second residual, which may have reduced the large quantization error and the redundancy of the quantized values, can be appropriately decoded.
[0044] Furthermore, the first quantization step may be calculated such that it becomes smaller as the distance component of the first three-dimensional point and the distance component of the one or more second three-dimensional points become larger.
[0045] For some three-dimensional points, the larger at least one of its distance component and the distance components of surrounding three-dimensional points, the less accurate the interpretation of the angular component may be. Therefore, the first residual, which may have been quantized and whose coding efficiency improved by using a first quantization step adaptively calculated according to the distance component, can be appropriately decoded.
[0046] Furthermore, a second residual may be obtained between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction, and the second residual may be inversely quantized using a second quantization step different from the first quantization step, wherein the second quantization step is calculated to become smaller as at least one of the distance component of the third three-dimensional point and the distance component of the one or more fourth three-dimensional points becomes larger.
[0047] For some three-dimensional points, the larger at least one of its distance component and the distance components of surrounding three-dimensional points, the less accurate the interpretation of the angular component may be. Even in this case, the second residual, which may have been adaptively quantized according to the distance component and thus have improved coding efficiency, can be appropriately decoded.
[0048] A three-dimensional data decoding method according to another aspect of the present disclosure obtains the residual between the position of a three-dimensional point and a predicted value calculated by one of the prediction methods, interpretation or intraprediction, and dequantizes the residual using a quantization step corresponding to the prediction method.
[0049] Depending on the prediction method, the positional residual may be large or small for some three-dimensional points. Therefore, when the positional residual changes according to the prediction method, the residual, which may have been quantized and whose coding efficiency improved by using the quantization step calculated according to the prediction method, can be appropriately decoded.
[0050] A three-dimensional data encoding device according to one aspect of the present disclosure comprises a processor and a memory, wherein the processor uses the memory to calculate a first residual between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and a predicted value of the angular component of the first three-dimensional point calculated by interpretation, and quantizes the first residual using a first quantization step, the first quantization step being calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points included in the plurality of three-dimensional points and located around the first three-dimensional point.
[0051] For some three-dimensional points, the likelihood of accurate interpretation of the angular component may vary depending on at least one of its distance component and the distance components of surrounding three-dimensional points. For example, in interpretation, the prediction of the angular component may be more accurate and the residual smaller at farther (or closer) locations. Conversely, the prediction of the angular component may be less accurate and the residual larger at closer (or farther) locations. Therefore, quantization using a first quantization step calculated according to at least one of the distance component of the first three-dimensional point and the distance components of one or more surrounding second three-dimensional points can reduce the quantization error and the redundancy of the quantized values. Thus, coding efficiency can be improved.
[0052] A three-dimensional data encoding device according to another aspect of the present disclosure comprises a processor and a memory, wherein the processor uses the memory to calculate a predicted value of the position of a three-dimensional point using one of two prediction methods: interpretation and intrapretation, calculates the residual between the predicted value and the position, and quantizes the residual using a quantization step corresponding to the prediction method.
[0053] For some three-dimensional points, the positional residual may be large or small depending on the prediction method. Therefore, when the positional residual changes depending on the prediction method, encoding efficiency can be improved by quantizing the residual using the quantization step calculated according to the prediction method.
[0054] A three-dimensional data decoding device according to one aspect of the present disclosure comprises a processor and a memory, wherein the processor uses the memory to obtain a first residual between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and a predicted value of the angular component of the first three-dimensional point calculated by interpretation, and dequantizes the first residual using a first quantization step, the first quantization step being calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points included in the plurality of three-dimensional points and located around the first three-dimensional point.
[0055] For some three-dimensional points, the likelihood of accurate interpretation of the angular component may vary depending on at least one of its distance component and the distance components of surrounding three-dimensional points. For example, in interpretation, the prediction of the angular component may be more accurate and the residual smaller at farther (or closer) locations. Conversely, the prediction of the angular component may be less accurate and the residual larger at closer (or farther) locations. Therefore, the first residual, which may have been quantized using a first quantization step calculated according to at least one of the distance component of the first three-dimensional point and the distance components of one or more surrounding second three-dimensional points, can be appropriately decoded to improve coding efficiency.
[0056] A three-dimensional data decoding device according to another aspect of the present disclosure comprises a processor and a memory, wherein the processor uses the memory to obtain the residual between the position of a three-dimensional point and a predicted value calculated by one of two prediction methods, interpretation and intraprediction, and dequantizes the residual using a quantization step corresponding to the prediction method.
[0057] Depending on the prediction method, the positional residual may be large or small for some three-dimensional points. Therefore, when the positional residual changes according to the prediction method, the residual, which may have been quantized and whose coding efficiency improved by using the quantization step calculated according to the prediction method, can be appropriately decoded.
[0058] These comprehensive or specific embodiments may be implemented as a system, method, integrated circuit, computer program, or recording medium such as a computer-readable CD-ROM, or as any combination of a system, method, integrated circuit, computer program, and recording medium.
[0059] The embodiments will be described in detail below with reference to the drawings. Note that the embodiments described below are all specific examples of this disclosure. The numerical values, shapes, materials, components, arrangement and connection configurations of components, steps, and the order of steps shown in the following embodiments are examples only and are not intended to limit this disclosure. Furthermore, components in the following embodiments that are not described in an independent claim will be described as optional components.
[0060] (Embodiment) This embodiment describes a case where either interpretation or intraprediction is performed on the positional information of a point cloud.
[0061] Figure 1 is a block diagram of the three-dimensional data encoding device 100 according to this embodiment. Although Figure 1 shows the processing unit for encoding the positional information (geometry) of the point cloud, the three-dimensional data encoding device 100 may also include other processing units, such as a processing unit for encoding the attribute information of the point cloud. In interpretation and intraprediction, the point cloud to be encoded is encoded while referring to the already encoded point cloud.
[0062] Here, interpretation is a prediction method that calculates predicted values using a second reference three-dimensional point belonging to a second three-dimensional point cloud (second frame) that is different from the first three-dimensional point cloud (first frame) to which the three-dimensional point to be encoded or decoded belongs. Intrapretation is a prediction method that calculates predicted values using a first reference three-dimensional point belonging to the first three-dimensional point cloud (first frame) to which the three-dimensional point to be encoded or decoded belongs.
[0063] The three-dimensional data encoding device 100 includes a grouping unit 101, a buffer 102, an adaptive quantization unit 103, an adaptive inverse quantization unit 104, a buffer 105, an intra prediction unit 106, a buffer 107, a motion compensation unit 108, an inter-prediction unit 109, a switching unit 110, and an entropy encoding unit 111.
[0064] The grouping unit 101 extracts points from the input target point cloud, which is the data of the point cloud to be encoded, to be used as a prediction tree (Predtree), which is one unit of encoding, and sets them as a single group. In the input target point cloud, the positions of the points are represented, for example, in three-dimensional polar coordinates.
[0065] Figure 2 shows an example of a prediction tree according to this embodiment.
[0066] The prediction tree 200 shows the reference relationships in predicting the positions of multiple three-dimensional points that make up a point cloud set up as a single group. The prediction tree 200 includes, for example, a first node 201, second nodes 211 and third nodes 212 which are child nodes of the first node, and a fourth node 221 which is a child node of the second node 211. The first node 201, second node 211, third node 212, and fourth node 221 represent different three-dimensional points. The first node 201 is a higher-level node than the second node 211 and third node 212, and the second node 211 is a higher-level node than the fourth node 221. The first node 201 is a node referenced in calculating the predicted value of the second node 211 and the predicted value of the third node 212. The first node 201 may also be referenced in calculating the predicted value of the fourth node 221. The second node 211 is a node referenced in the calculation of the predicted value of the fourth node 221. In this way, one or more nodes higher than the lower node are referenced in the calculation of the predicted value of the lower node. Which nodes are used and how the predicted value is calculated may be determined according to the prediction mode.
[0067] The coding and decoding order of the prediction tree 200 may be depth-first or breadth-first. The prediction tree 200 may be generated by processing a plurality of three-dimensional points arranged in Morton order, starting from the first three-dimensional point. For example, the prediction tree 200 may be generated such that the nearest three-dimensional point to the three-dimensional point being processed in the generation process becomes a child node of that three-dimensional point.
[0068] Depth priority is the order in which nodes are arranged starting with the root node, followed by the leaf nodes in order of the lower-level nodes (child nodes) of the previous node, then the highest-level node among the remaining nodes in order of increasing depth, followed by the leaf nodes in order of the lower-level nodes (child nodes) of the previous node, and so on. This process is repeated until the order is determined. In Figure 2, the depth priority is, for example, the order of the first node 201, the second node 211, the fourth node 221, and the third node 212.
[0069] Breadth-first order is determined by arranging the nodes in each level of the prediction tree in ascending order, starting with the root node. In Figure 2, the breadth-first order is, for example, the first node 201, the second node 211, the third node 212, and the fourth node 221.
[0070] The polar coordinates of the point cloud to be encoded can be obtained by converting the Cartesian coordinates of the input point cloud to polar coordinates, or the input point cloud itself can be in polar coordinates. For example, if the polar coordinates are the distance d from the sensor position to the target point, the horizontal angle Φ, and the elevation angle θ, then these three elements can be used to express the polar coordinates as (d, Φ, θ). Alternatively, sensor information such as the Lidar's laser_id can be used instead of the elevation angle θ. For example, the laser_id with the scan angle closest to the elevation angle θ can be used as a substitute for the elevation angle, so the polar coordinates can be expressed as (d, Φ, laser_id). In other words, the laser_id can be used in polar coordinates as a value indicating the elevation angle θ. Using the laser_id instead of the elevation angle θ can reduce the amount of information and improve encoding efficiency.
[0071] Buffer 102 holds the generated prediction trees. For example, buffer 102 may be initialized with data to hold for each prediction tree. For each of the multiple three-dimensional points contained in the prediction tree (Predtree) held in buffer 102, the encoding process is performed sequentially.
[0072] Then, the difference (first residual signal) between each of the multiple three-dimensional points included in the prediction tree and the selected prediction point is calculated. This first residual signal is also called the prediction residual. The first residual signal is an example of the first residual.
[0073] The adaptive quantization unit 103 adaptively quantizes the first residual signal. The entropy coding unit 111 entropy codes the adaptively quantized first residual signal to generate coded data and outputs (generates) a bitstream containing the coded data.
[0074] The adaptive inverse quantization unit 104 adaptively inversely quantizes the first residual signal adaptively quantized by the adaptive quantization unit 103. The adaptively inversely quantized first residual signal is added to the predicted value based on the selected prediction point (one or more candidate points) and decoded as a three-dimensional point (reference point) used for intra-prediction and inter-prediction. The predicted value is calculated based on the position information of one or more candidate points. Buffer 105 holds the set of reference points for the decoded intra-prediction. For example, buffer 105 may be initialized with data to be held for each prediction tree (set of target points). Buffer 107 holds the set of reference points for inter-prediction. For example, buffer 107 may be initialized with data to be held for each prediction tree (set of target points).
[0075] The intra-prediction unit 106 determines the intra-prediction points to be used for prediction by referring to information within the prediction tree (Predtree), such as multiple three-dimensional points (a group of reference points for intra-prediction) contained in the prediction tree (Predtree) that contains the three-dimensional points to be encoded, using a predetermined method. For example, the intra-prediction unit 106 may determine the intra-prediction points by extrapolating using two three-dimensional points (decoded points) that have been adaptively dequantized immediately before the three-dimensional point to be encoded (for example, an ancestor node such as the parent node of the prediction tree).
[0076] The motion compensation unit 108 reconstructs the encoded point cloud based on multiple three-dimensional points (multiple decoded points) included in the prediction tree (Predtree) which contains the three-dimensional points to be encoded, detects the displacement between the encoded point cloud and the point cloud to be encoded (motion detection), and corrects the encoded point cloud based on the detected displacement (motion compensation) to generate an inter-prediction point cloud, which is a reference point cloud for inter-prediction after alignment.
[0077] The interpretation unit 109 determines the interpretation points to be used for prediction by a predetermined method based on the motion-compensated interpretation point set. For example, the interpretation unit 109 may select the point closest to the intrapretation point from the interpretation point set as the interpretation point, or it may select a three-dimensional point in the vicinity of the most recently encoded three-dimensional point (for example, the three-dimensional point closest to the most recently encoded three-dimensional point) without referring to the intrapretation point.
[0078] Furthermore, the interpretation unit 109 may determine interpretation points using the decoded horizontal angle Φp and laser_idp of the parent node of the prediction tree (Predtree). For example, the interpretation unit 109 may select as an interpretation point a three-dimensional point from the interpretation point group that has the same laser_id as the decoded laser_idp of the parent node and has a value of Φ that is close to the value obtained by adding an offset to the decoded horizontal angle Φp of the parent node (Φp + offset). Here, the offset is a value of 0 or greater, and its value may be determined according to, for example, the angular velocity of the horizontal scan of the lidar. As a result, the three-dimensional data encoding device 100 can generate prediction values from the interpretation point group that are close to each value of the polar coordinates (d, Φ, laser_id) of the point to be encoded, thereby improving encoding efficiency. The point to be encoded is an example of a first three-dimensional point. The point to be encoded may also be an example of a second three-dimensional point.
[0079] The switching unit 110 determines the prediction point to be used for prediction by selecting either an intra-prediction point or an inter-prediction point. In this way, the three-dimensional data encoding device 100 determines the position information of one or more candidate points from among multiple encoded three-dimensional points as the prediction point, and calculates the prediction value based on the prediction point. The intra-prediction unit 106 and the inter-prediction unit 109 determine the prediction point (intra-prediction point or inter-prediction point) based on the three-dimensional point encoded immediately before the three-dimensional point to be encoded. In other words, the three-dimensional data encoding device 100 determines one or more candidate points for calculating the prediction value based on one or more reference points from among multiple encoded three-dimensional points. The one or more reference points are three-dimensional points encoded immediately before the three-dimensional point to be encoded, and may, for example, be a three-dimensional point corresponding to the parent node (ancestor node) of one of the three-dimensional points to be encoded in the prediction tree.
[0080] Furthermore, the three-dimensional data encoding device 100 may select one of the intra-prediction points and the inter-prediction points as a prediction point by following the procedure in the flowchart of Figure 4, which will be described later. In addition, the prediction information (prediction information) for selecting whether to use an intra-prediction point or an inter-prediction point as a prediction point may be entropy encoded and written in the header of each three-dimensional point, or it may be written interleaved with each three-dimensional point. In addition, motion compensation information such as motion vectors may be written in the header of a frame or prediction tree (Predtree), or it may be entropy encoded and written in the header of each three-dimensional point, or it may be written interleaved with each three-dimensional point.
[0081] For example, when the three-dimensional data encoding device 100 switches the frame of the inter-prediction point cloud referenced for each node of the prediction tree (Predtree) and encodes it, it may add the identification number of the reference frame selected as the inter-prediction (hereinafter referred to as the reference frame number) to each node of the prediction tree (Predtree). This allows the three-dimensional data encoding device 100 to improve encoding efficiency by selecting the optimal reference frame number for each node and performing inter-prediction. Furthermore, the three-dimensional data decoding device 120 (see below) can determine which reference frame to generate inter-prediction points from by decoding the reference frame number added to each node of the bitstream, and can appropriately decode the bitstream with improved encoding efficiency by selecting the optimal reference frame number for each node and performing inter-prediction.
[0082] Furthermore, the reference point cloud for interpretation may be a point cloud included in a different encoded frame than the frame to be encoded, or it may be a encoded point cloud included in the same frame as the frame to be encoded.
[0083] Thus, the three-dimensional data encoding device 100 can reduce the amount of information in the first residual signal to be entropy encoded by using interpretation in addition to intraprediction to predict the points to be encoded, and potentially improve encoding efficiency.
[0084] Furthermore, the three-dimensional data encoding device 100 does not always need to refer to the interpretation prediction points. It may initialize the buffer 107 storing the interpretation reference point set at predetermined time intervals (e.g., every second), predetermined frame intervals (e.g., every 30 frames), or at any timing notified to the three-dimensional data decoding device, thereby encoding based only on the information of the point cloud to be encoded. This allows the corresponding three-dimensional data decoding device to start playback from a point cloud that is not the beginning of the bitstream and does not refer to the interpretation prediction points, potentially improving the random accessibility or error tolerance of the bitstream.
[0085] The three-dimensional data encoding device 100 encodes the position information expressed in Cartesian coordinates if the input point cloud to be encoded has position information expressed in Cartesian coordinates. The three-dimensional data encoding device 100 encodes the position information expressed in polar coordinates if the input point cloud to be encoded has position information expressed in polar coordinates.
[0086] Figure 3 is a block diagram of the three-dimensional data decoding device 120 according to this embodiment. Although Figure 3 shows the processing unit for decoding the positional information (geometry) of the point cloud, the three-dimensional data decoding device 120 may also include other processing units, such as a processing unit for decoding the attribute information of the point cloud. The three-dimensional data decoding device 120 performs interpredictive decoding, decoding the point cloud to be decoded while referring to the decoded point cloud. For example, the three-dimensional data decoding device 120 decodes the bitstream generated by the three-dimensional data encoding device 100 shown in Figure 1.
[0087] The three-dimensional data decoding device 120 includes an entropy decoding unit 121, an adaptive inverse quantization unit 122, a buffer 123, an intra prediction unit 124, a buffer 125, a motion compensation unit 126, an inter-prediction unit 127, and a switching unit 128.
[0088] The three-dimensional data decoding device 120 acquires the bitstream generated by the three-dimensional data encoding device 100.
[0089] The entropy decoding unit 121 generates an adaptively quantized first residual signal by entropy decoding the input bitstream for each three-dimensional point of the prediction tree (Predtree). The adaptive inverse quantization unit 122 reconstructs the first residual signal by adaptively inverse quantization of the adaptively quantized first residual signal. The first residual signal for each three-dimensional point is added to the predicted value based on the prediction point corresponding to each three-dimensional point, and then generated (output) as the decoded point. In other words, the three-dimensional data decoding device 120 calculates the position information of one three-dimensional point to be decoded by adding the predicted value and the predicted residual.
[0090] Buffer 123 holds the generated decoded points as a reference point set for intra-prediction. For example, buffer 123 may initialize the data it holds for each prediction tree (target point set). Similarly, buffer 125 holds the generated decoded points as a reference point set for inter-prediction. For example, buffer 125 may initialize the data it holds for each prediction tree (target point set).
[0091] The intra-prediction unit 124 determines the intra-prediction points to be used for prediction by referring to information within the prediction tree (Predtree), such as multiple three-dimensional points (a group of reference points for intra-prediction) contained in the prediction tree (Predtree) that contains the three-dimensional points to be decoded, using a predetermined method. For example, the intra-prediction unit 124 may determine the intra-prediction points by extrapolating using two three-dimensional points (decoded points) that have been adaptively dequantized immediately before the three-dimensional point to be decoded (for example, an ancestor node such as the parent node of the prediction tree).
[0092] The motion compensation unit 126 reconstructs the decoded point cloud based on multiple three-dimensional points (multiple decoded points) included in the prediction tree (Predtree) which contains the three-dimensional points to be decoded, and corrects (compensates for motion) the displacement between the decoded point cloud and the point cloud to be decoded, thereby generating an inter-predicted point cloud, which is a reference point cloud for inter-prediction after alignment.
[0093] The interpretation unit 127 determines the interpretation points to be used for prediction by a predetermined method based on the motion-compensated interpretation point set. For example, the interpretation unit 127 may select the point closest to the intrapretation point from the interpretation point set as the interpretation point, or it may select a three-dimensional point in the vicinity of the three-dimensional point that was decoded immediately before (for example, a three-dimensional point corresponding to an ancestor node such as the parent node of the prediction tree) as the interpretation point without referring to the intrapretation point (for example, the three-dimensional point closest to the three-dimensional point that was decoded immediately before).
[0094] Furthermore, the interpretation unit 127 may determine interpretation prediction points using the decoded horizontal angle Φp and laser_idp of the parent node of the prediction tree (Predtree). For example, the interpretation unit 127 may select as an interpretation prediction point a three-dimensional point from the interpretation prediction point group that has the same laser_id as the decoded laser_idp of the parent node and has a value of Φ that is close to the value obtained by adding an offset to the decoded horizontal angle Φp of the parent node (Φp + offset). Here, the offset is a value of 0 or greater, and its value may be determined, for example, according to the angular velocity of the horizontal scan of the lidar. As a result, the three-dimensional data decoding device 120 can appropriately decode a bitstream with improved encoding efficiency by generating prediction values from the interpretation prediction point group that are close to each value of the polar coordinates (d, Φ, laser_id) of the point to be decoded. The point to be decoded is an example of a first three-dimensional point. The point to be decoded may also be an example of a second three-dimensional point.
[0095] The switching unit 128 determines the prediction point to be used for prediction by selecting either an intra-prediction point or an inter-prediction point. In this way, the three-dimensional data decoding device 120 determines the position information of one or more candidate points from among the multiple decoded three-dimensional points as the prediction point, and calculates the prediction value based on the prediction point. The intra-prediction unit 124 and the inter-prediction unit 127 determine the prediction point (intra-prediction point or inter-prediction point) based on the three-dimensional point decoded immediately before the three-dimensional point to be decoded. In other words, the three-dimensional data decoding device 120 determines one or more candidate points for calculating the prediction value based on one or more reference points from among the multiple decoded three-dimensional points. The one or more reference points are three-dimensional points encoded immediately before the three-dimensional point to be decoded, and may, for example, be three-dimensional points corresponding to the parent node (ancestor node) of one of the three-dimensional points to be decoded in the prediction tree.
[0096] The three-dimensional data decoder 120 may select one of the intra-prediction points and inter-prediction points as a prediction point by following the procedure in the flowchart of Figure 5, which will be described later. Alternatively, the three-dimensional data decoder 120 may select one of the intra-prediction points and inter-prediction points as a prediction point based on prediction information (prediction information) for selecting which of the intra-prediction points and inter-prediction points to use as a prediction point. The prediction information may be entropy encoded and written in the header of each three-dimensional point, or it may be written interleaved with each three-dimensional point. Furthermore, information regarding motion compensation, such as motion vectors, may be written in the header of the frame or prediction tree (Predtree), or it may be entropy encoded and written in the header of each point, or it may be written interleaved with each three-dimensional point. In this way, the prediction information or information regarding motion compensation may be notified to the three-dimensional data decoder 120 from the corresponding three-dimensional data encoder 100. Furthermore, the reference point cloud for interpretation may be a point cloud included in a different encoded frame than the frame to be encoded, or it may be a encoded point cloud included in the same frame as the frame to be encoded.
[0097] In this way, the three-dimensional data decoding device 120 uses both intra-prediction and inter-prediction to predict the points to be decoded, and can decode the point cloud from the encoded bitstream (for example, the bitstream output from the three-dimensional data encoding device 100 in Figure 1) while referring to the decoded point cloud.
[0098] Furthermore, the three-dimensional data decoding device 120 does not always need to refer to the inter-prediction points. It may initialize the buffer 125 storing the inter-prediction reference point set at predetermined time intervals (e.g., every second), predetermined frame intervals (e.g., every 30 frames), or at any timing notified by the corresponding three-dimensional data encoding device 100, and decode based only on the information of the point cloud to be decoded. This allows the three-dimensional data decoding device 120 to start playback from a point cloud that is not the beginning of the bitstream and does not refer to the inter-prediction points, potentially improving the random accessibility and error tolerance of the bitstream.
[0099] The three-dimensional data decoding device 120 decodes the position information expressed in Cartesian coordinates if the bitstream contains encoded data in which position information expressed in Cartesian coordinates is encoded. The three-dimensional data decoding device 120 decodes the position information expressed in polar coordinates if the bitstream contains encoded data in which position information expressed in polar coordinates is encoded.
[0100] Figure 4 is a flowchart showing an example of the procedure for encoding each three-dimensional point of a prediction tree (Predtree) in the three-dimensional data encoding device 100.
[0101] In this example, the three-dimensional data encoding device 100 first determines intra-prediction points from the reference point group of intra-predictions (S101). The three-dimensional data encoding device 100 may determine intra-prediction points using, for example, a method of determining prediction points using a prediction tree, as disclosed in an embodiment already described. For example, the three-dimensional data encoding device 100 may generate a prediction tree using a plurality of encoded three-dimensional points and select one or more candidate points from the plurality of encoded three-dimensional points based on the prediction tree. The three-dimensional data encoding device 100 may determine as the intra-prediction point the prediction point with the smallest coding amount among the at least one intra-prediction point determined by at least one of the above methods. Alternatively, the three-dimensional data encoding device 100 may determine as the intra-prediction point the prediction point with the smallest sum of absolute values (or sum of squares) of coordinate residuals among the at least one intra-prediction point determined by at least one of the above methods.
[0102] Next, the three-dimensional data encoding device 100 outputs intra-prediction-related parameters (S102). If there are two or more candidate methods for determining the intra-prediction points determined in step S101, the three-dimensional data encoding device 100 may output information indicating the selected candidate determination method as intra-prediction-related parameters to the bitstream.
[0103] Next, the three-dimensional data encoding device 100 determines the inter-prediction point by referring to at least one candidate point extracted from the inter-prediction point group. For example, the three-dimensional data encoding device 100 may determine one candidate point as the inter-prediction point, or it may determine a prediction point whose coordinates are the average of the coordinates of multiple candidate points as the inter-prediction point. Alternatively, the three-dimensional data encoding device 100 may determine a prediction point as the inter-prediction point whose coordinates are the average of the coordinates of an intra-prediction point and at least one candidate point.
[0104] Here, the three-dimensional data encoding device 100 may search for at least one candidate point located near the intra-prediction point (S103).
[0105] Next, the three-dimensional data encoding device 100 may assign an index value to each of the at least one determined inter-prediction point, in order of proximity to the intra-prediction point (S104).
[0106] Next, the three-dimensional data encoding device 100 determines whether the search is complete or not (S105). If the search is complete (Yes in S105), it proceeds to the next step S106. If the search is not complete (No in S105), it returns to step S103. The completion of the search may be determined by finding a predetermined number of intersection prediction points, by searching all of the point cloud within a predetermined range, or by satisfying either finding a predetermined number of intersection prediction points or searching all of the point cloud within a predetermined range.
[0107] Next, the three-dimensional data encoding device 100 determines the prediction method (S106). Specifically, the three-dimensional data encoding device 100 determines whether to use intra-prediction or inter-prediction to determine the prediction points. In other words, the three-dimensional data encoding device 100 determines whether to determine intra-prediction points as prediction points or inter-prediction points as prediction points. For example, the three-dimensional data encoding device 100 may determine the prediction method for the prediction point that has the smallest coding amount among the intra-prediction points and inter-prediction points. Alternatively, the three-dimensional data encoding device 100 may determine the prediction method for the prediction point that has the smallest sum of absolute values (or sum of squares) of coordinate residuals among the intra-prediction points and inter-prediction points.
[0108] The three-dimensional data coding device 100 determines whether the mode of the determined prediction method is an inter-mode indicating that the prediction method is inter-prediction, or an intra-prediction mode indicating that the prediction method is intra-prediction (S107).
[0109] If the determined prediction method is inter-prediction (inter-mode in S107), the three-dimensional data encoding device 100 outputs identification information (e.g., a flag) to the bitstream indicating that the inter-prediction point has been determined as the prediction point (S108).
[0110] Next, the three-dimensional data encoding device 100 outputs information regarding the number of candidate points used to determine the coordinates of the interprediction points, and the index value of each candidate point used, to the bitstream as interprediction-related parameters (S109). The index values may be assigned to one or more candidate points used to determine the predicted values.
[0111] Furthermore, if the determined prediction method is intra-prediction (intra-mode in S107), the three-dimensional data encoding device 100 outputs identification information (e.g., a flag) to the bitstream indicating that intra-prediction points have been determined as prediction points (S111). The identification information in steps S108 and S111 indicates whether inter-prediction points or intra-prediction points have been determined as prediction points.
[0112] After step S109 or step S111, the three-dimensional data encoding device 100 encodes the coordinate information of the three-dimensional point to be encoded by referring to the predicted point obtained by the determined prediction method (S110).
[0113] In this way, the three-dimensional data encoding device 100 determines at least one inter-prediction point by referring to the inter-prediction point cloud and intra-prediction points, determines a method for obtaining prediction points from these intra-prediction points and inter-prediction points, and encodes the positional information (coordinate information) of the three-dimensional point to be encoded by referring to the prediction points.
[0114] In step S103, instead of referring to the intra-prediction point, the inter-prediction point may be searched for in the neighborhood of a three-dimensional point that is uniquely determined regardless of the intra-prediction-related parameters, such as the three-dimensional point encoded immediately before (for example, a three-dimensional point corresponding to an ancestor node such as the parent node of the prediction tree). In this case, step S102 may not be performed immediately after step S101, but rather immediately after step S111.
[0115] Figure 5 is a flowchart showing an example of adaptive quantization processing for residual signals in the encoding process.
[0116] Adaptive quantization is performed in step S110.
[0117] The adaptive quantization unit 103 determines whether the residual of the coordinate component of the three-dimensional point to be encoded next is the residual of the horizontal angle Φ (S121).
[0118] The adaptive quantization unit 103 obtains the distance d in polar coordinates of the three-dimensional point to be encoded (S122) if the residual of the coordinate component of the three-dimensional point to be encoded next is the residual of the horizontal angle Φ (Yes in S121).
[0119] Next, the adaptive quantization unit 103 calculates the quantization step QS for the residual of the horizontal angle Φ using the acquired distance d (S123). Specifically, the quantization step QS is the quantization step (i.e., the quantization width).
[0120] Next, the adaptive quantization unit 103 quantizes the residual of the horizontal angle Φ in the quantization step QS and calculates the quantized value of the horizontal angle Φ (S124). The quantized value of the horizontal angle Φ may also be calculated using the following equation 1.
[0121] Quantized value of residual signal of horizontal angle Φ = Residual signal of horizontal angle Φ / QS (Equation 1)
[0122] Furthermore, if the residual of the coordinate component of the three-dimensional point to be encoded next is not the residual of the horizontal angle Φ (No in S121), that is, if the residual of the coordinate component of the three-dimensional point to be encoded is the residual of the distance d or the residual of the elevation angle θ, the adaptive quantization unit 103 quantizes the residual of the distance d or the residual of the elevation angle θ (S125). For example, the adaptive quantization unit 103 may perform adaptive quantization on the residual of the distance d or the residual of the elevation angle θ in the same way as quantization on the residual of the horizontal angle Φ, or it may perform quantization in a fixed value quantization step.
[0123] Furthermore, the quantization step QS may be calculated such that it becomes smaller as the distance d increases (i.e., it becomes larger as the distance d decreases). Specifically, the quantization step QS may be calculated using the following equation 2.
[0124] QS = Φprecision / d (Equation 2)
[0125] As shown in Equation 2, the quantization step QS may be calculated by dividing a predetermined reference value Φprecision by the distance d. The distance d used in Equation 2 is assumed to be the distance in polar coordinates of the three-dimensional point to be encoded, but is not limited to this. The distance d may also be the distance in polar coordinates of three-dimensional points encoded in an earlier encoding order than the three-dimensional point to be encoded. Alternatively, the distance d may be calculated using the distances in polar coordinates of multiple three-dimensional points encoded in an earlier encoding order than the three-dimensional point to be encoded, for example, the average, median, maximum, or minimum value of the distances in polar coordinates of multiple three-dimensional points encoded in an earlier encoding order than the three-dimensional point to be encoded. Furthermore, the distance d may be calculated using the distance of the three-dimensional point to be encoded and the distances in polar coordinates of one or more three-dimensional points encoded in an earlier encoding order than the three-dimensional point to be encoded, for example, the average, median, maximum, or minimum value of the distance of the three-dimensional point to be encoded and the distances in polar coordinates of one or more three-dimensional points encoded in an earlier encoding order than the three-dimensional point to be encoded.
[0126] Furthermore, distance d may be a distance calculated using the polar coordinate distances of multiple three-dimensional points encoded in a later encoding order than the three-dimensional point to be encoded. For example, it may be the average, median, maximum, or minimum value of the polar coordinate distances of multiple three-dimensional points encoded in a later encoding order than the three-dimensional point to be encoded. Also, distance d may be a distance calculated using the distance of the three-dimensional point to be encoded and the polar coordinate distances of one or more three-dimensional points encoded in a later encoding order than the three-dimensional point to be encoded. For example, it may be the average, median, maximum, or minimum value of the distance of the three-dimensional point to be encoded and the polar coordinate distances of one or more three-dimensional points encoded in a later encoding order than the three-dimensional point to be encoded.
[0127] One or more three-dimensional points encoded in an encoding order prior to the three-dimensional point to be encoded are examples of one or more second three-dimensional points or one or more fourth three-dimensional points. One or more three-dimensional points encoded in an encoding order later than the three-dimensional point to be encoded are other examples of one or more second three-dimensional points or one or more fourth three-dimensional points. One or more second three-dimensional points are three-dimensional points that are included in multiple three-dimensional points and are located around the three-dimensional point to be encoded. A three-dimensional point located around the point means that its spatial position is close to the three-dimensional point to be encoded, or that its temporal position is close to the three-dimensional point to be encoded. A spatial position close to the three-dimensional point to be encoded means that the distance between the three-dimensional point and the three-dimensional point to be encoded is less than a predetermined distance, or that the difference in the encoding order from the three-dimensional point to be encoded is less than a predetermined difference. A temporal position close to the three-dimensional point to be encoded means that, in the generation order of multiple frames, the three-dimensional point is included in frames where the difference in generation order is less than a predetermined difference. Note that the quantization step QS is not limited to being calculated by Equation 2. For example, the quantization step QS may be calculated by referring to a table that associates multiple distances d with values. That is, the quantization step QS may be determined to a first value if the distance d falls within a first distance range, and to a second value smaller than the first value if the distance d falls within a second distance range that is greater than the maximum value of the first distance range. In other words, the quantization step QS may be determined to a large first value in the first distance range where the distance is close, and to a small second value in the second distance range where the distance is far. The relationship between the quantization step QS and the distance d does not need to be linear; it is sufficient that it satisfies a monotonically decreasing relationship where the quantization step QS decreases as the distance d increases. In this case, the table may associate a first distance range with a first value, and a second distance range with a second value. Furthermore, the table is not limited to dividing the distance range into two stages, but may divide it into three or more stages, and even in this case, it is sufficient that the quantization step QS associated with a smaller value corresponds to a larger distance represented by the divided distance range.
[0128] Thus, the quantization step QS is calculated such that as the distance d increases, the value of the quantization step QS decreases, and as the distance d decreases, the value of the quantization step QS increases. As a result, as the distance d increases, the quantization step QS decreases, thus suppressing quantization errors, and as the distance d decreases, the quantization step QS increases, thus reducing more information.
[0129] This is because the greater the distance to the subject, the less accurate the prediction of the horizontal angle Φ of a three-dimensional point on the subject becomes, resulting in a larger residual signal value. Therefore, by decreasing the quantization step QS as the distance d increases, the quantization error when quantizing the residual signal can be suppressed, thereby improving coding efficiency. Conversely, the closer the distance to the subject, the easier it is to predict the Φ of a three-dimensional point on the subject, resulting in a smaller residual signal value. Therefore, by increasing the quantization step QS as the distance d decreases, coding efficiency can be improved when quantizing the residual signal.
[0130] Note that Φprecision used in Equation 2 is a parameter representing the bit precision of the horizontal angle Φ. The larger the bit precision, the more accurate the predicted value can be generated, resulting in a smaller residual. Conversely, the smaller the bit precision value, the less accurate the predicted value will be, resulting in a larger residual. Therefore, a smaller bit precision allows for a smaller quantization step to suppress quantization errors, while a larger bit precision allows for a larger quantization step to improve the code efficiency.
[0131] Furthermore, Φprecision may be a parameter representing the prediction accuracy of the horizontal angle Φ. A larger prediction accuracy value for the horizontal angle Φ allows for the generation of more accurate predicted values, resulting in smaller residuals. Conversely, a smaller prediction accuracy value results in less accurate predicted values, leading to larger residuals. Therefore, a smaller prediction accuracy allows for larger quantization steps to improve coding efficiency. Prediction accuracy can be, for example, the bit precision of the predicted values or the bit precision of the interpolation.
[0132] The three-dimensional data encoding device 100 may include Φprecision in the bitstream by adding it to the headers of the GPS (Geometry Parameter Set), slices, etc. Here, bit precision refers to the number of bits used to represent the horizontal angle Φ. For example, a bit precision of 32 bits means that the horizontal angle Φ is represented by a 32-bit numerical value. The three-dimensional data encoding device 100 may also add parameters for calculating Φprecision to the headers of the GPS, slices, etc. By adding Φprecision to the bitstream, the three-dimensional data decoding device 120 can determine the bit precision of the horizontal angle Φ used by the three-dimensional data encoding device 100 by decoding the bitstream, and can decode the bitstream appropriately.
[0133] Note that different values for Φprecision may be used for intra-prediction and inter-prediction. For example, ΦprecisionIntra may be prepared for intra-prediction and ΦprecisionInter for inter-prediction, and the value of Φprecision may be switched depending on whether it is intra-prediction or inter-prediction. This allows the quantization step QS to be switched depending on whether it is intra-prediction or inter-prediction, thereby improving coding efficiency. For example, if the residual signal after prediction of Φ tends to be larger in intra-prediction compared to inter-prediction, then by making ΦprecisionIntra smaller than ΦprecisionInter, the quantization step QS for intra-prediction can be made smaller than the quantization step QS for inter-prediction, thereby suppressing the quantization error of the residual signal of intra-prediction and improving coding efficiency.
[0134] Thus, since different Φprecisions are used for interpretation and intrapretation, the calculated quantization step QS may also be calculated to a different value for interpretation and intrapretation. In other words, in quantization, the first residual between the horizontal angle Φ and the interpretation predicted value predicted by interpretation is calculated using the first quantization step QS1. Also, in quantization, the second residual between the horizontal angle Φ and the intrapredicted value predicted by intrapretation is calculated using a second quantization step QS2 that is different from the first quantization step QS1. Specifically, the first quantization step QS1 and the second quantization step QS2 may be calculated using equations 3 and 4 below, respectively.
[0135] QS1 = ΦprecisionInter / d (Equation 3)
[0136] QS² = ΦprecisionIntra / d (Equation 4)
[0137] Thus, the first quantization step QS1 may be calculated using ΦprecisionInter as the first reference value and the distance d. Furthermore, the second quantization step QS2 may be calculated using ΦprecisionIntra as the second reference value and the distance d.
[0138] The three-dimensional data encoding device 100 may also include ΦprecisionIntra and ΦprecisionInter in the bitstream by adding them to a header such as GPS or slice. In other words, the three-dimensional data encoding device 100 may generate a bitstream that includes a first reference value and a second reference value. ΦprecisionIntra is an example of a second reference value in intra prediction. ΦprecisionIntra may be a parameter representing the bit precision of the horizontal angle Φ, or a parameter representing the prediction precision of the horizontal angle Φ. Similarly, ΦprecisionInter is an example of a first reference value in inter prediction. ΦprecisionInter may be a parameter representing the bit precision of the horizontal angle Φ, or a parameter representing the prediction precision of the horizontal angle Φ. Thus, the reference value may be a value that indicates the accuracy of the prediction values that can be generated in intra prediction and inter prediction, respectively. The three-dimensional data encoding device 100 can improve encoding efficiency while suppressing quantization errors by switching the quantization step according to the reference value.
[0139] Furthermore, the three-dimensional data encoding device 100 may add parameters for calculating ΦprecisionIntra and ΦprecisionInter to the header, such as GPS or slice. By adding ΦprecisionIntra and ΦprecisionInter to the bitstream, the three-dimensional data decoding device 120 can determine the bit precision of the horizontal angle Φ of the intra-prediction and inter-prediction used by the three-dimensional data encoding device 100 by decoding the bitstream, and can appropriately decode the bitstream.
[0140] The example shown involves switching the bit precision of the horizontal angle Φ, Φprecision, between intra-prediction and inter-prediction. However, this is not the only option; for example, the bit precision of the horizontal angle Φ may be switched between frames or slices used in intra-prediction and frames or slices used in inter-prediction. Furthermore, Φprecision may be switched on a frame-by-frame, slice-by-slice, or stream-by-stream basis. In other words, Φprecision may be switched in intra-prediction when the frame or slice of the three-dimensional points to be encoded changes, even if intra-prediction is continuing. Similarly, Φprecision may be switched in inter-prediction when the frame or slice of the three-dimensional points to be encoded changes, even if inter-prediction is continuing. In this case, the three-dimensional data encoding device 100 may add the bit precision of the horizontal angle Φ or information for generating it to the header on a frame or slice basis. Thus, the same value may be used for Φprecision on a predetermined point cloud unit containing one or more three-dimensional points, i.e., on a frame-by-frame, slice-by-slice, or stream-by-stream basis. Similarly, the same value may be used for ΦprecisionInter in predetermined point cloud units containing one or more three-dimensional points, i.e., in frame units, slice units, stream units, etc.
[0141] Figure 6 is a flowchart showing an example of the adaptive inverse quantization process applied to quantized values generated by adaptive quantization during the encoding process.
[0142] Adaptive inverse quantization is performed, for example, in step S110, after the adaptive quantization described in Figure 5.
[0143] The adaptive inverse quantization unit 104 determines whether the quantized value of the residual of the coordinate component of the three-dimensional point to be encoded next is the quantized value of the residual of the horizontal angle Φ (S131).
[0144] The adaptive inverse quantization unit 104 obtains the distance d in polar coordinates of the three-dimensional point to be encoded (S132) if the quantized value of the residual of the coordinate component of the three-dimensional point to be encoded is the quantized value of the residual of the horizontal angle Φ (Yes in S131).
[0145] Next, the adaptive inverse quantization unit 104 calculates the inverse quantization step iQS for the quantized value of the residual of the horizontal angle Φ using the acquired distance d (S133). The inverse quantization step iQS is also called the inverse quantization width. Note that for the same three-dimensional point, the quantization step QS calculated in step S123 and the inverse quantization step iQS calculated in step S133 are the same value. In other words, the inverse quantization step iQS is calculated in the same way as the quantization step QS.
[0146] Next, the adaptive inverse quantization unit 104 inversely quantizes the quantized value of the residual of the horizontal angle Φ using the inverse quantization step iQS, and calculates the residual of the horizontal angle Φ (S134). The residual signal of the horizontal angle Φ may also be calculated using the following equation 5.
[0147] Residual signal of horizontal angle Φ = Quantized value of residual signal of horizontal angle Φ * iQS (Equation 5)
[0148] Furthermore, if the quantized value of the residual of the coordinate component of the three-dimensional point to be encoded next is not the quantized value of the residual of the horizontal angle Φ (No in S131), that is, if the quantized value of the residual of the coordinate component of the three-dimensional point to be encoded is the quantized value of the residual of distance d or the quantized value of the residual of elevation angle θ, the adaptive inverse quantization unit 104 inverse quantizes the quantized value of the residual of distance d or the quantized value of the residual of elevation angle θ (S135). For example, the adaptive inverse quantization unit 104 may perform adaptive inverse quantization on the quantized value of the residual of distance d or the quantized value of the residual of elevation angle θ in the same way as inverse quantization on the quantized value of the residual of horizontal angle Φ, or it may perform quantization in a fixed value inverse quantization step.
[0149] In the adaptive quantization explained using Figure 5, the residual signal of the horizontal angle Φ in polar coordinates of the point to be encoded is adaptively quantized according to the distance d from the point to be encoded. In the adaptive inverse quantization explained using Figure 6, the quantized value of the residual signal of the horizontal angle Φ in polar coordinates of the point to be encoded is adaptively inversely quantized according to the distance d from the point to be encoded. By adaptively controlling the quantization of the residual signal of the horizontal angle Φ according to the value of the distance d in this way, the encoding efficiency can be improved. Note that the residual signal of the horizontal angle Φ here is the residual signal generated from the difference between the intra-predicted value calculated by intra-prediction and the input value of the point to be encoded when the point to be encoded is encoded by intra-prediction. Adaptive quantization may be performed on this residual signal. Alternatively, the residual signal of the horizontal angle Φ is the residual signal generated from the difference between the inter-predicted value calculated by inter-prediction and the input value of the point to be encoded when the point to be encoded is encoded by inter-prediction, and adaptive quantization may be performed on this residual signal. By applying a common adaptive quantization to the residual signals generated by either intra-prediction or inter-prediction in this way, encoding efficiency can be improved while suppressing the size of additional hardware circuits and the amount of software code required.
[0150] In this embodiment, an example of applying adaptive quantization to the residual signals of intra-prediction and inter-prediction is shown, but the embodiment is not necessarily limited to this. For example, the three-dimensional data encoding device 100 may apply adaptive quantization to the residual signal of intra-prediction but not to the residual signal of inter-prediction. This can improve the encoding efficiency of intra-prediction while reducing the amount of processing required. Alternatively, the three-dimensional data encoding device 100 may apply adaptive quantization to the residual signal of inter-prediction but not to the residual signal of intra-prediction. This can improve the encoding efficiency of inter-prediction while reducing the amount of processing required.
[0151] In this embodiment, examples of adaptive quantization and adaptive inverse quantization for the horizontal angle Φ of polar coordinates are shown, but the invention is not necessarily limited to these examples. For example, when the elevation angle θ is used instead of laser_id as the polar coordinate of a three-dimensional point, adaptive quantization and adaptive inverse quantization corresponding to the distance d can be applied to the elevation angle θ using the same method as for the horizontal angle Φ. This can improve the coding efficiency of the elevation angle θ.
[0152] In this embodiment, Φprecision was used as the parameter to control the quantization step QS, but any information that can control the value of the quantization step QS is acceptable as long as it is a quantization parameter. For example, a quantization parameter for the horizontal angle Φ may be added to the header, and the value calculated from the quantization parameter may be used instead of Φprecision. In this case, the three-dimensional data encoding device 100 may prepare a first quantization parameter for inter-prediction and a second quantization parameter for intra-prediction of the horizontal angle Φ, and add the first and second quantization parameters to the header, such as GPS or slice. This allows the quantization parameter for the horizontal angle Φ to be appropriately set for intra-prediction and inter-prediction, thereby improving encoding efficiency.
[0153] Furthermore, if the laser_id of a three-dimensional point changes from that of a previously encoded three-dimensional point in polar coordinates, the three-dimensional data encoding device 100 may perform normal quantization without adaptive quantization when quantizing that three-dimensional point.
[0154] Figure 7 is a flowchart illustrating an example of the procedure for decoding each three-dimensional point of a prediction tree (Predtree) in the three-dimensional data decoding device 120. Figure 7 corresponds to the decoding of the bitstream generated according to the encoding procedure in Figure 4. In other words, the bitstream includes the encoded first residual signal (prediction residual) and the index values assigned to candidate points used to calculate the predicted values.
[0155] In this example, the three-dimensional data decoding device 120 first obtains intra-prediction-related parameters from the bitstream (S141).
[0156] Next, the three-dimensional data decoding device 120 determines the intra-prediction points based on the acquired intra-prediction-related parameters (S142). Specifically, the three-dimensional data decoding device 120 determines the intra-prediction points in the same manner as in step S101 in Figure 4. The three-dimensional data decoding device 120 is notified of the intra-prediction-related parameters from the corresponding three-dimensional data encoding device 100 and determines the intra-prediction points according to the intra-prediction-related parameters. The intra-prediction-related parameters are acquired in step S141 and include information specifying at least one method for determining the intra-prediction points, and parameters associated with this information.
[0157] Next, the three-dimensional data decoding device 120 obtains identification information from the bitstream that indicates the mode of the prediction method (S143).
[0158] Next, the three-dimensional data decoding device 120 determines whether the acquired identification information indicates an inter-mode, which indicates that the prediction method is inter-prediction, or an intra-prediction mode, which indicates that the prediction method is intra-prediction (S144).
[0159] The three-dimensional data decoding device 120 obtains inter-prediction-related parameters from the bitstream (S145) when the prediction method is inter-prediction (inter-mode in step S144).
[0160] Next, the three-dimensional data decoding device 120 performs processing (S146-S149) to determine the inter-prediction point. Specifically, the three-dimensional data decoding device 120 determines the inter-prediction point in the same manner as in steps S103-S105 of Figure 4. For example, the three-dimensional data decoding device 120 determines the inter-prediction point by referring to at least one candidate point extracted from the inter-prediction point group. For example, the three-dimensional data decoding device 120 may determine one candidate point as the inter-prediction point, or it may determine a prediction point whose coordinates are the average of the coordinates of multiple candidate points as the inter-prediction point. Alternatively, the three-dimensional data decoding device 120 may determine a prediction point whose coordinates are the average of the coordinates of an intra-prediction point and at least one candidate point as the inter-prediction point.
[0161] Here, the three-dimensional data decoding device 120 may search for at least one candidate point located near the intra-prediction point (S146).
[0162] Next, the three-dimensional data decoding device 120 may assign an index value to each of the at least one determined inter-prediction point, in order of proximity to the intra-prediction point (S147).
[0163] Next, the three-dimensional data decoding device 120 determines whether the search is complete or not (S148). If the search is complete (Yes in S148), it proceeds to the next step S149. If the search is not complete (No in S148), it returns to step S146. The completion of the search may be determined by finding a predetermined number of intersection prediction points, by searching all of the point cloud within a predetermined range, or by satisfying either finding a predetermined number of intersection prediction points or searching all of the point cloud within a predetermined range.
[0164] Next, the three-dimensional data decoding device 120 determines the inter-prediction points based on inter-prediction-related parameters while referring to the inter-prediction point cloud and intra-prediction points (S149). For example, the three-dimensional data decoding device 120 identifies candidate points to be used to determine the coordinates of the inter-prediction points based on information regarding the number of candidate points used to determine the coordinates of the inter-prediction points, which is included in the inter-prediction-related parameters, and the index value assigned to each candidate point used. The inter-prediction points are then determined by using the identified candidate points to determine the coordinates of the inter-prediction points. In other words, the three-dimensional data decoding device 120 selects one candidate point from a plurality of decoded three-dimensional points based on the index value included in the bitstream.
[0165] After step S149, or if in intra mode in step S144, the three-dimensional data decoding device 120 decodes the position information (coordinate information) of the three-dimensional point to be decoded by referring to the predicted point obtained by the specified prediction method (S150).
[0166] Thus, when the prediction method is inter-prediction, the three-dimensional data decoding device 120 decodes the coordinate information of the points to be decoded by referring to the inter-prediction points, and when the prediction method is intra-prediction, it decodes the coordinate information of the points to be decoded by referring to the intra-prediction points.
[0167] In step S146, instead of referring to the intra-prediction point, the system may search for the inter-prediction point in the vicinity of a three-dimensional point that is uniquely determined regardless of the intra-prediction-related parameters, such as the three-dimensional point decoded immediately before (for example, a three-dimensional point corresponding to an ancestor node such as the parent node of the prediction tree). In this case, steps S141 and S142 may not be performed immediately before step S143, and steps S141 and S142 may be performed only if intra-mode is determined in step S144.
[0168] Figure 8 is a flowchart showing an example of adaptive inverse quantization processing for quantized values during the decoding process.
[0169] Adaptive inverse quantization is performed, for example, in step S150.
[0170] The adaptive inverse quantization unit 122 determines whether the quantized value of the residual of the coordinate component of the three-dimensional point to be decoded next is the quantized value of the residual of the horizontal angle Φ (S151).
[0171] The adaptive inverse quantization unit 122 obtains the distance d in polar coordinates of the three-dimensional point to be decoded (S152) if the quantized value of the residual of the coordinate component of the three-dimensional point to be decoded next is the quantized value of the residual of the horizontal angle Φ (Yes in S151).
[0172] Next, the adaptive inverse quantization unit 122 calculates the inverse quantization step iQS for the quantized value of the residual of the horizontal angle Φ using the acquired distance d (S153).
[0173] Next, the adaptive inverse quantization unit 122 inversely quantizes the quantized value of the residual of the horizontal angle Φ using the inverse quantization step iQS, and calculates the residual of the horizontal angle Φ (S154). The residual signal of the horizontal angle Φ may also be calculated using the following equation 6.
[0174] Residual signal of horizontal angle Φ = Quantized value of residual signal of horizontal angle Φ * iQS (Equation 6)
[0175] Furthermore, if the quantized value of the residual of the coordinate component of the three-dimensional point to be encoded next is not the quantized value of the residual of the horizontal angle Φ (No in S151), that is, if the quantized value of the residual of the coordinate component of the three-dimensional point to be encoded is the quantized value of the residual of distance d or the quantized value of the residual of elevation angle θ, the adaptive inverse quantization unit 104 inverse quantizes the quantized value of the residual of distance d or the quantized value of the residual of elevation angle θ (S155). For example, the adaptive inverse quantization unit 104 may perform adaptive inverse quantization on the quantized value of the residual of distance d or the quantized value of the residual of elevation angle θ in the same way as inverse quantization on the quantized value of the residual of horizontal angle Φ, or it may perform quantization in a fixed value inverse quantization step.
[0176] Furthermore, the inverse quantization step iQS may be calculated in a manner similar to the quantization step QS, such that it decreases as the distance d increases (i.e., increases as the distance d decreases). Specifically, the inverse quantization step iQS may be calculated using the following equation 7.
[0177] iQS = Φprecision / d (Equation 7)
[0178] As shown in Equation 7, the inverse quantization step iQS may be calculated by dividing a predetermined reference value Φprecision by the distance d. The distance d used in Equation 7 is assumed to be the distance in polar coordinates of the three-dimensional point to be decoded, but is not limited to this. The distance d may also be the distance in polar coordinates of three-dimensional points decoded in a decoding order prior to the three-dimensional point to be decoded. Alternatively, the distance d may be the distance obtained from the distances in polar coordinates of multiple three-dimensional points decoded in a decoding order prior to the three-dimensional point to be decoded, for example, the average, median, maximum, or minimum value of the distances in polar coordinates of multiple three-dimensional points decoded in a decoding order prior to the three-dimensional point to be decoded. Furthermore, the distance d may be the distance obtained from the distance of the three-dimensional point to be decoded and the distances in polar coordinates of one or more three-dimensional points decoded in a decoding order prior to the three-dimensional point to be decoded, for example, the average, median, maximum, or minimum value of the distance of the three-dimensional point to be decoded and the distances in polar coordinates of one or more three-dimensional points decoded in a decoding order prior to the three-dimensional point to be decoded.
[0179] Furthermore, distance d may be a distance calculated using the polar coordinate distances of multiple three-dimensional points decoded in a later decoding order than the three-dimensional point to be decoded. For example, it may be the average, median, maximum, or minimum value of the polar coordinate distances of multiple three-dimensional points decoded in a later decoding order than the three-dimensional point to be decoded. Also, distance d may be a distance calculated using the distance of the three-dimensional point to be decoded and the polar coordinate distances of one or more three-dimensional points decoded in a later decoding order than the three-dimensional point to be decoded. For example, it may be the average, median, maximum, or minimum value of the distance of the three-dimensional point to be decoded and the polar coordinate distances of one or more three-dimensional points decoded in a later decoding order than the three-dimensional point to be decoded.
[0180] Note that one or more three-dimensional points decoded in a decoding order prior to the three-dimensional point to be decoded are examples of one or more second three-dimensional points or one or more fourth three-dimensional points. Also, one or more three-dimensional points decoded in a decoding order later than the three-dimensional point to be decoded are other examples of one or more second three-dimensional points or one or more fourth three-dimensional points. One or more second three-dimensional points are three-dimensional points that are included in multiple three-dimensional points and are located around the three-dimensional point to be decoded. A three-dimensional point located around means that its spatial position is close to the three-dimensional point to be decoded, or that its temporal position is close to the three-dimensional point to be decoded. A spatial position close to the three-dimensional point to be decoded means that the distance between the three-dimensional point to be decoded is less than a predetermined distance, or that the difference in the decoding order from the three-dimensional point to be decoded is less than a predetermined difference. A temporal position close to the three-dimensional point to be decoded means that, in the generation order of multiple frames, the three-dimensional point is included in frames in an order where the difference in generation order is less than a predetermined difference.
[0181] Note that Φprecision used in Equation 7 is a parameter representing the bit precision of the horizontal angle Φ. The larger the bit precision, the more accurate the predicted value can be generated, resulting in a smaller residual. Conversely, the smaller the bit precision value, the less accurate the predicted value will be, resulting in a larger residual. Therefore, a smaller bit precision allows for a smaller quantization step to suppress quantization errors, while a larger bit precision allows for a larger quantization step to improve the code accuracy.
[0182] Furthermore, Φprecision may be a parameter representing the prediction accuracy of the horizontal angle Φ. A larger prediction accuracy value for the horizontal angle Φ allows for the generation of more accurate predicted values, resulting in smaller residuals. Conversely, a smaller prediction accuracy value results in less accurate predicted values, leading to larger residuals. Therefore, a smaller prediction accuracy allows for larger quantization steps to improve coding efficiency. Prediction accuracy can be, for example, the bit precision of the predicted values or the bit precision of the interpolation.
[0183] The three-dimensional data decoding device 120 may obtain Φprecision by decoding the bitstream, such as the header of GPS or slice data. Alternatively, the three-dimensional data decoding device 120 may obtain the parameters for calculating Φprecision by decoding them from the header of GPS or slice data. By decoding Φprecision from the bitstream, the three-dimensional data decoding device 120 can determine the bit precision of the horizontal angle Φ used by the three-dimensional data encoding device 100 by decoding the bitstream, and can appropriately decode the bitstream.
[0184] Note that different values for Φprecision may be used for intra-prediction and inter-prediction. For example, ΦprecisionIntra for intra-prediction and ΦprecisionInter for inter-prediction may be decoded from the bitstream, and the value of Φprecision used for decoding may be switched depending on whether it is intra-prediction or inter-prediction. This allows for the proper decoding of a bitstream with improved coding efficiency by switching the quantization step QS depending on whether it is intra-prediction or inter-prediction. Note that the three-dimensional data decoding device 120 may obtain the parameters for calculating ΦprecisionIntra and ΦprecisionInter by decoding information added to the header, such as GPS and slices.
[0185] Thus, since different Φprecisions are used for interpretation and intrapretation, the calculated inverse quantization step iQS may also be calculated to a different value for interpretation and intrapretation. In other words, in inverse quantization, the first residual between the horizontal angle Φ and the interpretation predicted value predicted in interpretation is calculated using the first inverse quantization step iQS1. In quantization, the second residual between the horizontal angle Φ and the intrapredicted value predicted in intrapretation is calculated using a second inverse quantization step iQS2 that is different from the first inverse quantization step iQS1. Specifically, the first inverse quantization step iQS1 and the second inverse quantization step iQS2 may be calculated using equations 8 and 9 below, respectively.
[0186] QS1 = ΦprecisionInter / d (Equation 8)
[0187] QS² = ΦprecisionIntra / d (Equation 9)
[0188] Thus, the first inverse quantization step iQS1 may be calculated using ΦprecisionInter as the first reference value and the distance d. Furthermore, the second inverse quantization step iQS2 may be calculated using ΦprecisionIntra as the second reference value and the distance d.
[0189] ΦprecisionIntra is an example of a second reference value in intra-prediction. ΦprecisionIntra may be a parameter representing the bit precision of the horizontal angle Φ, or a parameter representing the prediction precision of the horizontal angle Φ. Similarly, ΦprecisionInter is an example of a first reference value in inter-prediction. ΦprecisionInter may be a parameter representing the bit precision of the horizontal angle Φ, or a parameter representing the prediction precision of the horizontal angle Φ. Thus, the reference value may be a value that indicates the accuracy of the prediction values that can be generated in intra-prediction and inter-prediction, respectively. The three-dimensional data decoder 120 can decode the encoded first or second residual by switching the quantization step according to the reference value.
[0190] Furthermore, the inverse quantization step iQS is calculated in the same way as the quantization step QS, and therefore can also be said to be the quantization step QS. Similarly, the first inverse quantization step iQS1 is calculated in the same way as the first quantization step QS1, and therefore can also be said to be the first quantization step QS1. Similarly, the second inverse quantization step iQS2 is calculated in the same way as the second quantization step QS2, and therefore can also be said to be the second quantization step QS2.
[0191] The example shown illustrates how Φprecision, which is the bit precision of the horizontal angle Φ, is switched between intra-prediction and inter-prediction and added to the bitstream. However, this is not necessarily the only example; for instance, the bit precision of the horizontal angle Φ may be switched between the intra-prediction frame or slice and the inter-prediction frame or slice and added to the bitstream. Furthermore, the Φprecision added to the bitstream may be switched on a frame-by-frame, slice-by-slice, or stream-by-stream basis. In other words, the Φprecision added to the bitstream may be switched even if intra-prediction continues when the frame or slice of the three-dimensional point to be encoded switches during intra-prediction. Similarly, the Φprecision added to the bitstream may be switched even if inter-prediction continues when the frame or slice of the three-dimensional point to be encoded switches during inter-prediction. In this case, the three-dimensional data decoder 120 may decode the bit precision of the horizontal angle Φ or information for generating it from the header into a frame or slice-by-slice header. Thus, the same value may be used for Φprecision in predetermined point cloud units containing one or more three-dimensional points, i.e., in frame units, slice units, stream units, etc. Similarly, the same value may be used for ΦprecisionInter in predetermined point cloud units containing one or more three-dimensional points, i.e., in frame units, slice units, stream units, etc. The same value may be used for ΦprecisionIntra in predetermined point cloud units containing one or more three-dimensional points, i.e., in frame units, slice units, stream units, etc.
[0192] In the adaptive inverse quantization explained using Figure 8, the quantized value of the residual signal of the horizontal angle Φ in polar coordinates of the point to be decoded is adaptively inversely quantized according to the distance d of the point to be decoded. This allows for the appropriate decoding of a bitstream with improved coding efficiency by adaptively controlling the quantization of the residual signal of the horizontal angle Φ according to the value of distance d. When the three-dimensional data decoder 120 decodes the point to be decoded using intra-prediction, it calculates the decoded value (horizontal angle Φ) of the point to be decoded by adding the intra-prediction value calculated by intra-prediction and the residual signal of the horizontal angle Φ obtained by adaptive inverse quantization. When the three-dimensional data decoder 120 decodes the point to be decoded using inter-prediction, it calculates the decoded value (horizontal angle Φ) of the point to be decoded by adding the inter-prediction value calculated by inter-prediction and the residual signal of the horizontal angle Φ obtained by adaptive inverse quantization. By applying a common adaptive inverse quantization to the predicted values generated by intra-prediction and inter-prediction, and adding the resulting residual signal, the decoded values of the points to be decoded can be obtained. This allows for proper decoding of the bitstream while suppressing the size of additional hardware circuits and the amount of software code required.
[0193] In this embodiment, an example of appropriately decoding a bitstream to which adaptive quantization has been applied to the residual signals of intra-prediction and inter-prediction is shown, but the embodiment is not necessarily limited to this. For example, the three-dimensional data decoding device 120 may, for a bitstream to which adaptive quantization has been applied to the residual signals of intra-prediction but not to the residual signals of inter-prediction, decode the bitstream by applying adaptive inverse quantization to the residual signals of intra-prediction and not applying adaptive inverse quantization to the residual signals of inter-prediction. This makes it possible to appropriately decode a bitstream to which the encoding efficiency has been improved by intra-prediction while keeping the amount of processing load low. Also, for example, the three-dimensional data decoding device 120 may, for a bitstream to which adaptive quantization has been applied to the residual signals of inter-prediction but not to the residual signals of intra-prediction, decode the bitstream by applying adaptive inverse quantization to the residual signals of inter-prediction and not applying adaptive inverse quantization to the residual signals of intra-prediction. As a result, the three-dimensional data decoding device 120 can appropriately decode a bitstream with improved coding efficiency for interpretation while keeping the processing load low.
[0194] Figure 9 is a block diagram of a three-dimensional data encoding device 130 according to a modified example of this embodiment. Although Figure 9 shows a processing unit for encoding the position information (geometry) of the point cloud, the three-dimensional data encoding device 130 may also include other processing units, such as a processing unit for encoding the attribute information of the point cloud. In inter-prediction and intra-prediction, the point cloud to be encoded is encoded while referring to the already encoded point cloud. In its configuration and operation, the three-dimensional data encoding device 130 differs from the three-dimensional data encoding device 100 in Figure 1 in that it has a coordinate transformation unit 131 for converting a point cloud having position information expressed in Cartesian coordinates to position information expressed in polar coordinates and performing encoding, and in that it quantizes the second residual signal of Cartesian coordinates corresponding to the error that occurs in the conversion between Cartesian coordinates and polar coordinates. On the other hand, in its configuration and operation, the three-dimensional data encoding device 130 is the same as the three-dimensional data encoding device 100 in all other respects.
[0195] The three-dimensional data encoding device 130 comprises a coordinate transformation unit 131, a grouping unit 132, a buffer 133, an adaptive quantization unit 134, an adaptive inverse quantization unit 135, a buffer 136, an intra prediction unit 137, a buffer 138, a motion compensation unit 139, an inter prediction unit 140, a switching unit 141, a coordinate transformation unit 142, a buffer 143, a quantization unit 144, and an entropy encoding unit 145.
[0196] The coordinate transformation unit 131 transforms the coordinate system of the position information of the target point cloud, which is the input data to be encoded, from a Cartesian coordinate system to a polar coordinate system. In other words, the coordinate transformation unit 131 generates polar coordinate system position information by transforming the coordinate system of the position information of one three-dimensional point to be encoded in a Cartesian coordinate system. The point cloud to be encoded, transformed into polar coordinates, is output to the grouping unit 132.
[0197] The grouping unit 132 extracts points from the target point cloud, which is the point cloud to be encoded converted to polar coordinates, to be used as a prediction tree (Predtree), which is one unit of encoding, and sets them as a single group. The buffer 133 holds the generated prediction trees. For example, the buffer 133 may be initialized with data to be held for each prediction tree. For each of the multiple three-dimensional points contained in the prediction tree (Predtree) held in the buffer 133, the encoding process is executed sequentially.
[0198] The difference (first residual signal) between each of the multiple three-dimensional points (points to be encoded) contained in the prediction tree held in buffer 133 and the predicted point selected for that point is calculated. This first residual signal is the residual signal of position information expressed in polar coordinates. The first residual signal is also called the prediction residual. This first residual signal is an example of the first residual. Since the position information of the multiple three-dimensional points held in buffer 133 has been converted to a polar coordinate system, the first residual is the difference between the position information in the converted polar coordinate system and the predicted value.
[0199] The adaptive quantization unit 134 adaptively quantizes the first residual signal. The entropy coding unit 111 entropy codes the adaptively quantized first residual signal to generate coded data and outputs (generates) a bitstream containing the coded data.
[0200] The adaptive inverse quantization unit 135 adaptively inversely quantizes the first residual signal adaptively quantized by the adaptive quantization unit 134. The adaptively inversely quantized first residual signal is added to the predicted value based on the selected prediction point (one or more candidate points) and decoded as a three-dimensional point (reference point) used for intra-prediction and inter-prediction. The predicted value is calculated based on the position information of one or more candidate points. Buffer 136 holds the set of reference points for the decoded intra-prediction. For example, buffer 136 may be initialized with data to be held for each prediction tree (set of target points). Buffer 138 also holds the set of reference points for the inter-prediction. For example, buffer 138 may be initialized with data to be held for each prediction tree (set of target points). The position information of the decoded points held in buffers 136 and 138 is expressed in polar coordinates.
[0201] The coordinate transformation unit 142 acquires the same decoded points as those held in buffers 136 and 138, and transforms the coordinate system of the acquired decoded point's position information from polar coordinates to Cartesian coordinates. In other words, the coordinate transformation unit 142 generates position information in Cartesian coordinates by inversely transforming the coordinate system of the polar coordinate system position information after the transformation by the coordinate transformation unit 131.
[0202] Buffer 143 holds position information of three-dimensional points expressed in Cartesian coordinates, which is input to the three-dimensional data encoding device 130.
[0203] Then, the difference (second residual signal) between the input Cartesian coordinate system position information and the Cartesian coordinate system position information obtained by the coordinate transformation unit 142 from polar coordinates to Cartesian coordinates is calculated. This second residual signal is an example of a second residual. In other words, the second residual signal is the difference between the Cartesian coordinate system position information obtained by the coordinate transformation unit 131 before the coordinate transformation is performed and the position information obtained after it has been transformed into polar coordinates and then back into Cartesian coordinates, and it is a transformation error that occurs due to the coordinate transformation.
[0204] The quantization unit 144 quantizes the second residual signal.
[0205] The entropy coding unit 145 entropy codes the first residual signal and the quantized second residual signal to generate coded data, and outputs a bitstream containing the coded data.
[0206] In this way, the three-dimensional data encoding device 130 converts the coordinate system of the position information of three-dimensional points from a Cartesian coordinate system to a polar coordinate system and encodes the position information in the polar coordinate system. This can potentially improve the prediction accuracy of the points to be encoded and improve encoding efficiency when encoding a point cloud generated by acquiring the three-dimensional positions of surrounding objects around the sensor position, such as with LiDAR.
[0207] Figure 10 is a block diagram of a three-dimensional data decoding device 150 according to a modified example of this embodiment. Although Figure 10 shows a processing unit for decoding the position information (geometry) of the point cloud, the three-dimensional data decoding device 150 may also include other processing units, such as a processing unit for decoding the attribute information of the point cloud. The three-dimensional data decoding device 150 performs interpredictive decoding, decoding the point cloud to be decoded while referring to the decoded point cloud. For example, the three-dimensional data decoding device 150 decodes the bitstream generated by the three-dimensional data encoding device 130 shown in Figure 9. In its basic configuration and operation, the three-dimensional data decoding device 150 differs from the three-dimensional data decoding device 120 in Figure 3 in that it entropy-decodes the second residual signal of the orthogonal coordinates, which corresponds to the conversion error that occurs in the conversion between orthogonal coordinates and polar coordinates, inversely quantizes and reconstructs the conversion error, and adds the conversion error, which is reconstructed by inverse quantization, to the corresponding polar coordinate decoded point converted to orthogonal coordinates, and outputs it as an orthogonal coordinate decoded point. On the other hand, the three-dimensional data decoding device 150 is the same as the three-dimensional data decoding device 120 in all respects except for the differences mentioned above.
[0208] The three-dimensional data decoding device 150 comprises an entropy decoding unit 151, an adaptive inverse quantization unit 152, a buffer 153, an intra prediction unit 154, a buffer 155, a motion compensation unit 156, an inter-prediction unit 157, a switching unit 158, a coordinate transformation unit 159, and an inverse quantization unit 160.
[0209] The entropy decoding unit 151 generates an adaptively quantized first residual signal and a quantized second residual signal by entropy decoding the input bitstream for each three-dimensional point of the prediction tree (Predtree).
[0210] The adaptive inverse quantization unit 152 adaptively inverse quantizes the adaptively quantized first residual signal to reconstruct the first residual signal. The first residual signal for each three-dimensional point is added to the predicted value based on the predicted point corresponding to each three-dimensional point, and then generated (output) as a decoded point expressed in polar coordinates.
[0211] Buffer 153 holds the generated decoded points as a reference point set for intra-prediction. For example, buffer 153 may initialize the data it holds for each prediction tree (target point set). Similarly, buffer 155 holds the generated decoded points as a reference point set for inter-prediction. For example, buffer 155 may initialize the data it holds for each prediction tree (target point set). The positional information of the decoded points held in buffers 153 and 155 is expressed in polar coordinates.
[0212] Furthermore, the intra-prediction unit 154, motion compensation unit 156, inter-prediction unit 157, and switching unit 158 have the same functions as the intra-prediction unit 124, motion compensation unit 126, inter-prediction unit 127, and switching unit 128, respectively.
[0213] The coordinate transformation unit 159 acquires the same decoded points as those held in buffers 153 and 155, and converts the coordinate system of the acquired decoded point's position information from polar coordinates to Cartesian coordinates.
[0214] The inverse quantization unit 160 inversely quantizes the quantized second residual signal to reconstruct the second residual signal.
[0215] The position information in the Cartesian coordinate system obtained by the coordinate transformation unit 159 and the second residual signal reconstructed by the inverse quantization unit 160 are added together and then generated (output) as a decoded point that includes the position information in the Cartesian coordinate system.
[0216] Thus, the three-dimensional data decoding device 150 includes means for converting the coordinate system of the decoded point, which has position information in polar coordinates, from polar coordinates to Cartesian coordinates, and adding it to a second Cartesian coordinate residual signal corresponding to the error that occurs in the conversion between the position information in Cartesian coordinates and the position information in polar coordinates. As a result, the three-dimensional data decoding device 150 can decode the point cloud from an encoded bitstream (for example, the bitstream output from the three-dimensional data encoding device 130 in Figure 9) while referring to the point cloud that has been encoded in polar coordinates.
[0217] As described above, the three-dimensional data encoding devices 100 and 130 according to this embodiment perform the processing (three-dimensional data encoding method) shown in Figure 11. The three-dimensional data encoding devices 100 and 130 calculate a first residual between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and the predicted value of the angular component of the first three-dimensional point calculated by interpretation (S161). Next, the three-dimensional data encoding devices 100 and 130 quantize the first residual using a first quantization step (S162). The first quantization step is calculated according to a first distance obtained from the distance component of the first three-dimensional point and at least one of the distance components of one or more encoded second three-dimensional points.
[0218] For some three-dimensional points, the likelihood of accurate interpretation of the angular component may vary depending on at least one of its distance component and the distance components of surrounding three-dimensional points. For example, in interpretation, the prediction of the angular component may be more accurate and the residual smaller at farther (or closer) locations. Conversely, the prediction of the angular component may be less accurate and the residual larger at closer (or farther) locations. Therefore, quantization using a first quantization step calculated according to at least one of the distance component of the first three-dimensional point and the distance components of one or more surrounding second three-dimensional points can reduce the quantization error and the redundancy of the quantized values. Thus, coding efficiency can be improved.
[0219] For example, one or more second three-dimensional points are encoded before the first three-dimensional point in the encoding order of multiple three-dimensional points.
[0220] For example, the three-dimensional data encoding devices 100 and 130 further calculate a second residual between the angular component of the third three-dimensional point among the multiple three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intra-prediction. The three-dimensional data encoding devices 100 and 130 quantize the second residual using a second quantization step that is different from the first quantization step.
[0221] Depending on the three-dimensional point, the residual of the angular component may be large or small depending on the prediction method. Therefore, when the residual of the angular component changes depending on the prediction method in addition to the distance component, encoding efficiency can be improved by quantizing the residual using a quantization step that is adaptively calculated according to the distance component and the prediction method.
[0222] For example, the second quantization step is calculated based on a second distance obtained from at least one of the distance components of a third three-dimensional point and one or more encoded distance components of a fourth three-dimensional point.
[0223] In intra-prediction, coding efficiency can be improved by adaptively quantizing according to the distance component.
[0224] For example, the first quantization step is calculated to be larger as the first prediction accuracy of the angular component of the first three-dimensional point decreases.
[0225] The higher the first prediction accuracy, the more accurate the predicted value generated, resulting in a smaller residual. Conversely, the lower the first prediction accuracy, the more inaccurate the predicted value generated, resulting in a larger residual. Therefore, by calculating the first quantization step to be larger as the first prediction accuracy decreases, it is possible to reduce the increase in quantization error and the redundancy of the quantized values. Thus, coding efficiency can be improved.
[0226] For example, the first quantization step is calculated according to the first distance and the first reference value. The first reference value is a reference value such that the first quantization step is calculated to be larger as the first prediction accuracy decreases. The three-dimensional data coding devices 100 and 130 further generate a bitstream containing the quantized first residual and the first reference value.
[0227] The first reference value is a reference value used to calculate the first quantization step so that it increases as the first prediction accuracy decreases. Therefore, the first quantization step can be calculated so that it increases as the first prediction accuracy decreases. This can reduce the increase in quantization error and the redundancy of quantized values. Thus, encoding efficiency can be improved. In addition, by including the first reference value in the bitstream, the decoding side can perform the same adaptive quantization as the encoding side.
[0228] For example, the second quantization step is calculated based on the second distance and the second reference value. The second reference value is a reference value such that the second quantization step is calculated to be larger as the second prediction accuracy of the angular component of the third three-dimensional point decreases. The bitstream further includes the quantized second residual and the second reference value.
[0229] The second reference value is a reference value used to calculate the second quantization step so that it increases as the second prediction accuracy decreases. Therefore, the second quantization step can be calculated so that it increases as the second prediction accuracy decreases. This can reduce the increase in quantization error and the redundancy of quantized values. Thus, coding efficiency can be improved.
[0230] For example, the first quantization step is calculated such that it becomes smaller as the first distance increases.
[0231] For some three-dimensional points, the larger at least one of the distance component of the point itself and the distance components of surrounding three-dimensional points, the less accurate the interpretation of the angular component may be. Therefore, by quantizing the first residual using a first quantization step adaptively calculated according to the distance component, it is possible to effectively reduce the quantization error and the redundancy of the quantized values. Thus, coding efficiency can be improved.
[0232] The second quantization step is calculated such that it becomes smaller as the second distance increases.
[0233] For some three-dimensional points, the greater the distance component of the point itself and the distance components of surrounding three-dimensional points, the less accurate the interpretation of the angular component may be. In this case as well, adaptive quantization according to the distance component can effectively reduce the increase in quantization error and the redundancy of the quantized values. Therefore, coding efficiency can be improved.
[0234] For example, the three-dimensional data encoding devices 100 and 130 include a processor and memory, and the processor uses the memory to perform the above processing.
[0235] Furthermore, the three-dimensional data decoding devices 120 and 150 according to this embodiment perform the processing (three-dimensional data decoding method) shown in Figure 12. The three-dimensional data decoding devices 120 and 150 obtain a first residual between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and the predicted value of the angular component of the first three-dimensional point calculated by interpretation (S171). Next, the three-dimensional data decoding devices 120 and 150 dequantize the first residual using a first quantization step (S172). The first quantization step is calculated according to a first distance obtained from at least one of the distance component of the first three-dimensional point and the distance component of one or more decoded second three-dimensional points.
[0236] For some three-dimensional points, the likelihood of accurate interpretation of the angular component may vary depending on at least one of its distance component and the distance components of surrounding three-dimensional points. For example, in interpretation, the prediction of the angular component may be more accurate and the residual smaller at farther (or closer) locations. Conversely, the prediction of the angular component may be less accurate and the residual larger at closer (or farther) locations. Therefore, the first residual, which may have been quantized using a first quantization step calculated according to at least one of the distance component of the first three-dimensional point and the distance components of one or more surrounding second three-dimensional points, can be appropriately decoded to improve coding efficiency.
[0237] For example, one or more second three-dimensional points are decoded before the first three-dimensional point in the decoding order of multiple three-dimensional points.
[0238] For example, the three-dimensional data decoding devices 120 and 150 further obtain a second residual between the angular component of the third three-dimensional point among the multiple three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intra-prediction. Next, the three-dimensional data decoding devices 120 and 150 inversely quantize the second residual using a second quantization step that is different from the first quantization step.
[0239] Depending on the three-dimensional point, the residual of the angular component may be large or small depending on the prediction method. Therefore, when the residual of the angular component changes according to the prediction method in addition to the distance component, the first residual, which may have improved coding efficiency by being quantized using a quantization step adaptively calculated according to the distance component and the prediction method, can be appropriately decoded.
[0240] For example, the second quantization step is calculated based on a second distance obtained from at least one of the distance components of the third three-dimensional point and the distance components of one or more decoded fourth three-dimensional points.
[0241] Even in intra-prediction, the second residual, which may have been adaptively quantized according to the distance component to improve coding efficiency, can be appropriately decoded.
[0242] For example, the first quantization step is calculated to be larger as the first prediction accuracy of the angular component of the first three-dimensional point decreases.
[0243] The higher the first prediction accuracy, the more accurate the predicted value is generated, resulting in a smaller residual. Conversely, the lower the first prediction accuracy, the more inaccurate the predicted value is generated, resulting in a larger residual. Therefore, by calculating the first quantization step to be larger as the first prediction accuracy decreases, it is possible to appropriately decode the first residual, which may have reduced the large quantization error and the redundancy of the quantized values.
[0244] For example, the three-dimensional data decoding devices 120 and 150 acquire a first reference value. The first quantization step is calculated according to the first distance and the first reference value. The first reference value is a reference value calculated such that the smaller the first prediction accuracy, the larger the first quantization step.
[0245] The first reference value is a reference value for calculating the first quantization step so that it increases as the first prediction accuracy decreases. By calculating the first quantization step so that it increases as the first prediction accuracy decreases, the first residual can be appropriately decoded, which may reduce the large quantization error and the redundancy of the quantized values.
[0246] For example, the three-dimensional data decoding devices 120 and 150 further acquire a second reference value. The second quantization step is calculated according to the second distance and the second reference value. The second reference value is a reference value that determines the second quantization step so that it increases as the second prediction accuracy of the angular component of the third three-dimensional point decreases.
[0247] The second reference value is a reference value for calculating the second quantization step so that it increases as the second prediction accuracy decreases. Therefore, the second quantization step can be calculated so that it increases as the second prediction accuracy decreases. As a result, the second residual, which may have reduced the large quantization error and the redundancy of the quantized values, can be appropriately decoded.
[0248] For example, the first quantization step is calculated such that it becomes smaller as the first distance increases.
[0249] For some three-dimensional points, the larger at least one of its distance component and the distance components of surrounding three-dimensional points, the less accurate the interpretation of the angular component may be. Therefore, the first residual, which may have been quantized and whose coding efficiency improved by using a first quantization step adaptively calculated according to the distance component, can be appropriately decoded.
[0250] For example, the second quantization step is calculated such that it becomes smaller as the second distance increases.
[0251] For some three-dimensional points, the larger at least one of its distance component and the distance components of surrounding three-dimensional points, the less accurate the interpretation of the angular component may be. Even in this case, the second residual, which may have been adaptively quantized according to the distance component and thus have improved coding efficiency, can be appropriately decoded.
[0252] For example, the three-dimensional data decoding devices 120 and 150 are equipped with a processor and memory, and the processor uses the memory to perform the above processing.
[0253] (modified version) In the above embodiment, the three-dimensional data encoding devices 100 and 130 perform adaptive quantization and switch the quantization steps used for inter-prediction and intra-prediction in adaptive quantization. However, the invention is not limited to this, and the quantization steps used for inter-prediction and intra-prediction in quantization may be switched regardless of whether adaptive quantization is performed. Similarly, the three-dimensional data decoding devices 120 and 150 perform inverse adaptive quantization and switch the quantization steps used for inter-prediction and intra-prediction in inverse adaptive quantization. However, the invention is not limited to this, and the quantization steps used for inter-prediction and intra-prediction in inverse quantization may be switched regardless of whether inverse adaptive quantization is performed.
[0254] The modified three-dimensional data coding devices 100 and 130 perform the processing (three-dimensional data coding method) shown in Figure 13. The three-dimensional data coding devices 100 and 130 calculate predicted values of the positions of three-dimensional points using one of the prediction methods, inter-prediction or intra-prediction (S181). Next, the three-dimensional data coding devices 100 and 130 calculate the residual between the predicted value and the position (S182). The three-dimensional data coding devices 100 and 130 quantize the residual using a quantization step corresponding to the prediction method (S183 to S185). In other words, if the predicted value is calculated using inter-prediction, the three-dimensional data coding devices 100 and 130 quantize the residual using a first quantization step. Also, if the predicted value is calculated using intra-prediction (intra-prediction in S173), the three-dimensional data coding devices 100 and 130 quantize the residual using a second quantization step different from the first quantization step (S185). The position of a three-dimensional point may be expressed in Cartesian coordinates or polar coordinates.
[0255] For some three-dimensional points, the positional residual may be large or small depending on the prediction method. Therefore, when the positional residual changes depending on the prediction method, encoding efficiency can be improved by quantizing the residual using the quantization step calculated according to the prediction method.
[0256] For example, the three-dimensional data encoding devices 100 and 130 include a processor and memory, and the processor uses the memory to perform the above processing.
[0257] The modified three-dimensional data decoding devices 120 and 150 perform the processing (three-dimensional data decoding method) shown in Figure 14. The three-dimensional data decoding devices 120 and 150 acquire the residual between the position of a three-dimensional point and the predicted value calculated by one of the prediction methods, inter-prediction or intra-prediction (S191). The three-dimensional data decoding devices 120 and 150 inversely quantize the residual using a quantization step corresponding to the prediction method (S192-S194). In other words, if the predicted value is calculated by inter-prediction (inter-prediction in S192), the three-dimensional data decoding devices 120 and 150 inversely quantize the residual using a first quantization step (S193). Also, if the predicted value is calculated by intra-prediction (intra-prediction in S192), the three-dimensional data decoding devices 120 and 150 inversely quantize the residual using a second quantization step different from the first quantization step (S194). The position of a three-dimensional point may be expressed in Cartesian coordinates or polar coordinates.
[0258] Depending on the prediction method, the positional residual may be large or small for some three-dimensional points. Therefore, when the positional residual changes according to the prediction method, the residual, which may have been quantized and whose coding efficiency improved by using the quantization step calculated according to the prediction method, can be appropriately decoded.
[0259] For example, the three-dimensional data decoding devices 120 and 150 are equipped with a processor and memory, and the processor uses the memory to perform the above processing.
[0260] Although embodiments and modified examples of the three-dimensional data encoding device and three-dimensional data decoding device, etc., of the present disclosure have been described above, the present disclosure is not limited to these embodiments.
[0261] Furthermore, each processing unit included in the three-dimensional data encoding device and the three-dimensional data decoding device, etc., according to the above embodiment is typically implemented as an integrated circuit (LSI). These may be individually integrated into a single chip, or some or all of them may be integrated into a single chip.
[0262] Furthermore, integrated circuit implementation is not limited to LSIs; it may also be achieved using dedicated circuits or general-purpose processors. Field-Programmable Gate Arrays (FPGAs), which can be programmed after LSI manufacturing, or reconfigurable processors, which allow for the reconfiguration of the connections and settings of circuit cells within the LSI, may also be used.
[0263] Furthermore, in each of the above embodiments, each component may be implemented by being composed of dedicated hardware or by executing a software program suitable for each component. Each component may also be implemented by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.
[0264] Furthermore, this disclosure may be implemented as a three-dimensional data encoding method or a three-dimensional data decoding method, etc., performed by a three-dimensional data encoding device and a three-dimensional data decoding device, etc.
[0265] Furthermore, the division of functional blocks in the block diagram is just one example; multiple functional blocks can be implemented as a single functional block, a single functional block can be divided into multiple parts, or some functions can be moved to other functional blocks. In addition, the functions of multiple functional blocks with similar functions can be processed in parallel or time-sharing by a single piece of hardware or software.
[0266] Furthermore, the order in which each step in the flowchart is performed is illustrative for the purpose of specifically illustrating this disclosure, and may be in a different order. Also, some of the above steps may be performed simultaneously (in parallel) with other steps.
[0267] Although a three-dimensional data encoding device and a three-dimensional data decoding device, etc., relating to one or more embodiments have been described above based on embodiments, this disclosure is not limited to these embodiments. Without departing from the spirit of this disclosure, various modifications that a person skilled in the art can conceive of may be applied to these embodiments, and forms constructed by combining components from different embodiments may also be included within the scope of one or more embodiments. [Industrial applicability]
[0268] This disclosure is applicable to three-dimensional data encoding devices and three-dimensional data decoding devices. [Explanation of Symbols]
[0269] 100, 130 3D data encoding device 101, 132 Grouping Section 102, 105, 107, 123, 125, 133, 136, 138, 143, 153, 155 Buffer 103, 134 Adaptive Quantization Unit 104, 122, 135, 152 Adaptive inverse quantization unit 106, 124, 137, 154 Intra Prediction Unit 108, 139 Motion compensation unit 109, 127, 140, 157 Interpretation Unit 110, 128, 141, 158 Switching section 111, 145 Entropy coding section 120, 150 Three-dimensional data decoding device 121, 151 Entropy Decoder 126, 156 Motion compensation unit 131, 142, 159 Coordinate transformation section 144 Quantization section
Claims
1. The first residual is calculated between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and the predicted value of the angular component of the first three-dimensional point calculated by interpretation. The first residual is quantized using the first quantization step, The first quantization step is calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points that are included in the plurality of three-dimensional points and located around the first three-dimensional point. Three-dimensional data encoding method.
2. The one or more second three-dimensional points are encoded before the first three-dimensional point in the encoding order of the plurality of three-dimensional points. The three-dimensional data encoding method according to claim 1.
3. moreover, The second residual is calculated between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual is quantized using a second quantization step that is different from the first quantization step. The three-dimensional data encoding method according to claim 1.
4. The second quantization step is calculated according to at least one of the distance component of the third three-dimensional point and the distance component of one or more fourth three-dimensional points that are included in the plurality of three-dimensional points and located around the third three-dimensional point. The three-dimensional data encoding method according to claim 3.
5. The first quantization step is calculated such that it increases as the first prediction accuracy of the predicted value of the angular component of the first three-dimensional point decreases. The three-dimensional data encoding method according to claim 1.
6. The first quantization step is calculated according to the distance component of the first three-dimensional point and at least one of the distance components of the one or more second three-dimensional points and a first reference value. The first reference value is a reference value for calculating the first quantization step such that it increases as the first prediction accuracy decreases. The three-dimensional data encoding method further generates a bitstream including the quantized first residual and the first reference value. The three-dimensional data encoding method according to claim 5.
7. moreover, The second residual is calculated between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual is quantized using a second quantization step different from the first quantization step. The second quantization step is calculated according to the distance component of the third three-dimensional point and at least one of the distance components of one or more fourth three-dimensional points that are included in the plurality of three-dimensional points and located around the third three-dimensional point, and a second reference value. The second reference value is a reference value for calculating the second quantization step such that it becomes larger as the second prediction accuracy of the predicted value of the angular component of the third three-dimensional point decreases. The bitstream further includes the quantized second residual and the second reference value. The three-dimensional data encoding method according to claim 6.
8. The first quantization step is calculated such that it becomes smaller as the distance component of the first three-dimensional point and the distance component of the one or more second three-dimensional points become larger. The three-dimensional data encoding method according to claim 1.
9. moreover, The second residual is calculated between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual is quantized using a second quantization step different from the first quantization step. The second quantization step is calculated such that the larger at least one of the distance component of the third three-dimensional point and the distance component of one or more fourth three-dimensional points that are included in the plurality of three-dimensional points and located around the third three-dimensional point is, the smaller the second quantization step becomes. The three-dimensional data encoding method according to claim 8.
10. The first residual is obtained between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and the predicted value of the angular component of the first three-dimensional point calculated by interpretation. The first residual is dequantized using the first quantization step. The first quantization step is calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points that are included in the plurality of three-dimensional points and located around the first three-dimensional point. Three-dimensional data decoding method.
11. The one or more second three-dimensional points are decoded before the first three-dimensional point in the decoding order of the plurality of three-dimensional points. The method for decoding three-dimensional data according to claim 10.
12. moreover, The second residual is obtained between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual is dequantized using a second quantization step that is different from the first quantization step. The method for decoding three-dimensional data according to claim 10.
13. The second quantization step is calculated according to at least one of the distance component of the third three-dimensional point and the distance component of one or more fourth three-dimensional points that are included in the plurality of three-dimensional points and located around the third three-dimensional point. The method for decoding three-dimensional data according to claim 12.
14. The first quantization step is calculated such that it increases as the first prediction accuracy of the predicted value of the angular component of the first three-dimensional point decreases. The method for decoding three-dimensional data according to claim 10.
15. moreover, Obtain the first reference value, The first quantization step is calculated according to the distance component of the first three-dimensional point and at least one of the distance components of the one or more second three-dimensional points and a first reference value. The first reference value is a reference value calculated such that the first quantization step becomes larger as the first prediction accuracy decreases. The method for decoding three-dimensional data according to claim 14.
16. moreover, The second residual and second reference value are obtained from the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual is dequantized using a second quantization step different from the first quantization step. The second quantization step is calculated according to the distance component of the third three-dimensional point and at least one of the distance components of one or more fourth three-dimensional points that are included in the plurality of three-dimensional points and located around the third three-dimensional point, and a second reference value. The second reference value is a reference value for calculating the second quantization step such that it becomes larger as the second prediction accuracy of the angular component of the third three-dimensional point decreases. The method for decoding three-dimensional data according to claim 15.
17. The first quantization step is calculated such that it becomes smaller as the distance component of the first three-dimensional point and the distance component of the one or more second three-dimensional points become larger. The method for decoding three-dimensional data according to claim 10.
18. moreover, The second residual is obtained between the angular component of the third three-dimensional point among the plurality of three-dimensional points and the predicted value of the angular component of the third three-dimensional point calculated by intraprediction. The second residual is dequantized using a second quantization step different from the first quantization step. The second quantization step is calculated such that the larger at least one of the distance component of the third three-dimensional point and the distance component of one or more fourth three-dimensional points that are included in the plurality of three-dimensional points and located around the third three-dimensional point is, the smaller the second quantization step becomes. The method for decoding three-dimensional data according to claim 17.
19. Processor and Equipped with memory, The processor uses the memory to: The first residual is calculated between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and the predicted value of the angular component of the first three-dimensional point calculated by interpretation. The first residual is quantized using the first quantization step, The first quantization step is calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points that are included in the plurality of three-dimensional points and located around the first three-dimensional point. Three-dimensional data encoding device.
20. Processor and Equipped with memory, The processor uses the memory to: The first residual is obtained between the angular component of a first three-dimensional point among a plurality of three-dimensional points, each represented by a distance component and an angular component, and the predicted value of the angular component of the first three-dimensional point calculated by interpretation. The first residual is dequantized using the first quantization step. The first quantization step is calculated according to at least one of the distance component of the first three-dimensional point and the distance component of one or more second three-dimensional points that are included in the plurality of three-dimensional points and located around the first three-dimensional point. Three-dimensional data decoding device.
Citation Information
Patent Citations
3DV reference picture list
JP2012525768A
Map display device
WO2014020663A1
Image encoding method and image encoding device
WO2015177966A1
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2021095879A1