Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
By combining inter-frame prediction and intra-frame prediction, different contexts are used to encode and decode the position residuals of 3D points, which solves the problem of low encoding efficiency of 3D data and achieves more efficient encoding and decoding.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
- Filing Date
- 2022-04-13
- Publication Date
- 2026-07-03
AI Technical Summary
Existing technologies have low encoding efficiency for 3D data, making it difficult to effectively compress point cloud data.
A method combining inter-frame prediction and intra-frame prediction is adopted to perform arithmetic encoding and decoding of the position residuals of 3D points through different contexts, using the first context and the second context respectively.
It improves the encoding efficiency of 3D data, reduces the amount of encoded data, and enhances the efficiency of encoding and decoding.
Smart Images

Figure CN117157672B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, and a three-dimensional data decoding device. Background Technology
[0002] In a wide range of fields, including computer vision for autonomous movement of automobiles or robots, mapping information, surveillance, infrastructure inspection, and image distribution, devices and services utilizing 3D data are expected to become increasingly common. 3D data can be obtained through various methods, such as distance sensors like rangefinders, stereo cameras, or combinations of multiple monocular cameras.
[0003] One method for representing 3D data is the point cloud method, which uses groups of points in 3D space to represent the shape of a 3D structure. The point cloud stores the position and color of the point groups. It is predicted that point clouds will become the mainstream method for representing 3D data, but the data volume of point groups is extremely large. Therefore, in the accumulation or transmission of 3D data, similar to 2D moving images (for example, MPEG-4 AVC or HEVC standardized by MPEG), data compression based on encoding is necessary.
[0004] In addition, point cloud compression is partially supported by public libraries that perform point cloud-related processing.
[0005] In addition, there are known technologies that use three-dimensional map data to retrieve and display facilities located around a vehicle (for example, see Patent Document 1).
[0006] Prior art literature
[0007] Patent documents
[0008] Patent Document 1: International Publication No. 2014 / 020663 Summary of the Invention
[0009] The problem the invention aims to solve
[0010] In the encoding and decoding of 3D data, it is desirable to improve encoding efficiency.
[0011] 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.
[0012] Problem-solving methods
[0013] This disclosure discloses a three-dimensional data encoding method, wherein a predicted value of the position of a three-dimensional point is calculated by means of inter-frame prediction and intra-frame prediction, a residual between the predicted value and the position is calculated, and when the predicted value is calculated by means of inter-frame prediction, the residual is arithmetically encoded using a first context, and when the predicted value is calculated by means of intra-frame prediction, the residual is arithmetically encoded using a second context different from the first context.
[0014] One aspect of this disclosure is a three-dimensional data decoding method, wherein the residual between the position of a three-dimensional point and a predicted value calculated by one of inter-frame prediction and intra-frame prediction is obtained; if the predicted value is calculated by inter-frame prediction, the residual is arithmetically decoded using a first context; if the predicted value is calculated by intra-frame prediction, the residual is arithmetically decoded using a second context different from the first context.
[0015] The effects of the invention
[0016] This disclosure provides 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. Attached Figure Description
[0017] Figure 1 This is a block diagram of a three-dimensional data encoding device according to an implementation method.
[0018] Figure 2 This is a block diagram of a three-dimensional data decoding device according to an implementation method.
[0019] Figure 3 This is a flowchart illustrating an example of the order in which 3D points of a prediction tree are encoded in a 3D data encoding device.
[0020] Figure 4 This is a flowchart illustrating an example of the order in which 3D points of a prediction tree are decoded in a 3D data decoding device.
[0021] Figure 5 This is a block diagram of a three-dimensional data encoding device according to a variation of the implementation method.
[0022] Figure 6 This is a block diagram of a three-dimensional data decoding device according to a variation of the implementation method.
[0023] Figure 7 This is an example of the syntax of the Geometry Parameter Set (GPS).
[0024] Figure 8 This is an example of syntax for representing each three-dimensional point (a Node in a Predtree).
[0025] Figure 9 It is an example of the syntax of geometric data.
[0026] Figure 10 This is a flowchart illustrating an example of three-dimensional data encoding processing in an implementation method.
[0027] Figure 11 This is a flowchart illustrating an example of three-dimensional data decoding processing in an implementation method.
[0028] Figure 12 This is a flowchart illustrating an example of three-dimensional data encoding processing for a variant.
[0029] Figure 13 This is a flowchart illustrating an example of three-dimensional data decoding processing for a variant. Detailed Implementation
[0030] This disclosure discloses a three-dimensional data encoding method, wherein a predicted value of the position of a three-dimensional point is calculated by means of inter-frame prediction and intra-frame prediction, a residual between the predicted value and the position is calculated, and when the predicted value is calculated by means of inter-frame prediction, the residual is arithmetically encoded using a first context, and when the predicted value is calculated by means of intra-frame prediction, the residual is arithmetically encoded using a second context different from the first context.
[0031] Therefore, this 3D data encoding method can encode the residuals in a context corresponding to the prediction method, which may improve encoding efficiency.
[0032] For example, the residual can also be represented by first residual information indicating whether the residual is 0.
[0033] For example, the residual can also be represented by second residual information indicating whether the residual is positive or negative.
[0034] For example, the residual may be represented by third residual information related to the number of bits of the residual.
[0035] For example, the quantity information representing the number of virtual points used to calculate the predicted value can be further arithmetically encoded based on either the inter-frame prediction or the intra-frame prediction. The number of virtual points used to calculate the predicted value sometimes varies depending on the prediction method. Therefore, according to this approach, by arithmetically encoding the quantity information representing the number of virtual points in accordance with the prediction method, it is possible to improve coding efficiency.
[0036] Another aspect of the three-dimensional data encoding method disclosed herein involves calculating a first predicted value of a first element of the position of a three-dimensional point and a second predicted value of a second element of the position through either inter-frame prediction or intra-frame prediction. It then calculates a first residual between the first predicted value and the value of the first element, and a second residual between the second predicted value and the value of the second element. If the first and second predicted values are calculated through inter-frame prediction, the first residual is arithmetically encoded using a first context, and the second residual is arithmetically encoded using a second context. If the first and second predicted values are calculated through intra-frame prediction, the first residual is arithmetically encoded using a third context different from the first context, and the second residual is arithmetically encoded using the second context.
[0037] Therefore, this three-dimensional data encoding method can encode the first residual of the first element in a context corresponding to the prediction method, thus improving encoding efficiency.
[0038] For example, the first element could be the radius or horizontal angle, and the second element could be the elevation angle. The predicted elevation angle sometimes exhibits the same tendency in both intra-frame and inter-frame prediction; therefore, it is possible to improve coding efficiency by using a shared context for arithmetic coding in both intra-frame and inter-frame prediction.
[0039] One aspect of the three-dimensional data decoding method disclosed herein involves obtaining a residual calculated by either inter-frame prediction or intra-frame prediction; when the predicted value is calculated by the inter-frame prediction, performing arithmetic decoding on the residual using a first context; and when the predicted value is calculated by the intra-frame prediction, performing arithmetic decoding on the residual using a second context different from the first context.
[0040] Therefore, this three-dimensional data decoding method can appropriately decode the residuals using the context corresponding to the prediction method.
[0041] For example, the residual can also be represented by first residual information indicating whether it is 0.
[0042] For example, the residual can also be represented by second residual information indicating whether it is positive or negative.
[0043] For example, the residual may be represented by third residual information related to the number of bits of the residual.
[0044] For example, the quantity information representing the number of virtual points used to calculate the predicted value can be further arithmetically decoded based on the inter-frame prediction or the intra-frame prediction. By performing arithmetic decoding corresponding to the prediction method, the quantity information representing the number of virtual points can be appropriately decoded.
[0045] Furthermore, another aspect of the three-dimensional data decoding method disclosed herein obtains a first predicted value of a first element of the position of a three-dimensional point, a second predicted value of a second element of the position, a first residual between the first predicted value and the value of the first element, and a second residual between the second predicted value and the value of the second element through one of inter-frame prediction and intra-frame prediction. When the first predicted value and the second predicted value are calculated through inter-frame prediction, the first residual is arithmetically decoded using a first context and the second residual is arithmetically decoded using a second context. When the first predicted value and the second predicted value are calculated through intra-frame prediction, the first residual is arithmetically encoded using a third context different from the first context and the second residual is arithmetically decoded using the second context.
[0046] Therefore, this three-dimensional data decoding method can appropriately decode the first residual of the first element using different contexts in inter-frame prediction and intra-frame prediction.
[0047] For example, the first element could be a radius or a horizontal angle, and the second element could be an elevation angle.
[0048] Furthermore, one aspect of the three-dimensional data encoding apparatus disclosed herein includes a processor and a memory. The processor uses the memory to calculate a predicted value of the position of a three-dimensional point by means of either inter-frame prediction or intra-frame prediction, calculates a residual between the predicted value and the position, and, if the predicted value is calculated by means of inter-frame prediction, performs arithmetic encoding on the residual using a first context, and if the predicted value is calculated by means of intra-frame prediction, performs arithmetic encoding on the residual using a second context different from the first context.
[0049] Therefore, this three-dimensional data encoding device can encode the residuals in a context corresponding to the prediction method, which may improve encoding efficiency.
[0050] Furthermore, one aspect of the three-dimensional data encoding apparatus disclosed herein includes a processor and a memory. The processor uses the memory to calculate a first predicted value of a first element of the position of a three-dimensional point and a second predicted value of a second element of the position through either inter-frame prediction or intra-frame prediction. It then calculates a first residual between the first predicted value and the value of the first element, and a second residual between the second predicted value and the value of the second element. If the first predicted value and the second predicted value are calculated through inter-frame prediction, the first residual is arithmetically encoded using a first context and the second residual is arithmetically encoded using a second context. If the first predicted value and the second predicted value are calculated through intra-frame prediction, the first residual is arithmetically encoded using a third context different from the first context and the second residual is arithmetically encoded using the second context.
[0051] Therefore, the three-dimensional data encoding device can encode the first residual of the first element in a context corresponding to the prediction method, thereby improving the encoding efficiency.
[0052] Additionally, one aspect of the three-dimensional data decoding apparatus disclosed herein includes a processor and a memory. The processor uses the memory to obtain a residual calculated by either inter-frame prediction or intra-frame prediction. If the predicted value is calculated by inter-frame prediction, the processor performs arithmetic decoding on the residual using a first context. If the predicted value is calculated by intra-frame prediction, the processor performs arithmetic decoding on the residual using a second context different from the first context.
[0053] Therefore, this three-dimensional data decoding device is able to appropriately decode the residuals using the context corresponding to the prediction method.
[0054] Furthermore, another aspect of the three-dimensional data decoding apparatus disclosed herein includes a processor and a memory. The processor uses the memory to obtain, through either inter-frame prediction or intra-frame prediction, a first predicted value of a first element of the position of a three-dimensional point, a second predicted value of a second element of the position, a first residual between the first predicted value and the value of the first element, and a second residual between the second predicted value and the value of the second element. When the first predicted value and the second predicted value are calculated through inter-frame prediction, the first residual is arithmetically decoded using a first context, and the second residual is arithmetically decoded using a second context different from the first context. When the first predicted value and the second predicted value are calculated through intra-frame prediction, the first residual is arithmetically encoded using a third context different from the first context, and the second residual is arithmetically decoded using the second context.
[0055] Therefore, the three-dimensional data decoding device is able to appropriately decode the first residual of the first element using the context corresponding to the prediction method.
[0056] Furthermore, these general or specific methods can be implemented through systems, methods, integrated circuits, computer programs, or recording media such as computer-readable CD-ROMs, or through any combination of systems, methods, integrated circuits, computer programs, and recording media.
[0057] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Furthermore, the embodiments described below represent only one specific example of this disclosure. The numerical values, shapes, materials, constituent elements, arrangement positions of constituent elements, connection methods, steps, and order of steps shown in the following embodiments are examples and are not intended to limit this disclosure. Additionally, constituent elements in the following embodiments that are not described in the independent technical solutions will be described as arbitrary constituent elements.
[0058] (Implementation Method)
[0059] In this embodiment, we will describe the case where the location information of a point group (point cloud) is switched to perform either inter-frame prediction or intra-frame prediction.
[0060] Figure 1 This is a block diagram of the three-dimensional data encoding device 100 according to this embodiment. Additionally, in Figure 1 The document describes a processing unit related to encoding the positional information (geometric) of point groups, but the 3D data encoding apparatus 100 may also include other processing units such as a processing unit for encoding attribute information of point groups. In inter-frame prediction and intra-frame prediction, the point groups of the target object are encoded while referring to already encoded point groups.
[0061] Here, inter-frame prediction is a prediction method that uses a second reference 3D point belonging to a second 3D point group (second frame) that is different from the 3D point of the encoded or decoded object to calculate the predicted value. Intra-frame prediction is a prediction method that uses a first reference 3D point belonging to a first 3D point group (first frame) to calculate the predicted value.
[0062] The three-dimensional data encoding device 100 includes a grouping unit 101, a buffer 102, a quantization unit 103, an inverse quantization unit 104, a buffer 105, an intra-frame prediction unit 106, a buffer 107, a motion detection compensation unit 108, an inter-frame prediction unit 109, a switching unit 110, and an entropy coding unit 111.
[0063] Grouping unit 101 extracts a group of points from the input object point group data, i.e., the object point group, as a unit of encoding, and sets them into a group. Furthermore, in the input object point group, the position of the point group is represented, for example, by three-dimensional coordinates (e.g., x, y, z). Buffer 102 holds the generated prediction trees. For example, buffer 102 can initialize the data held for each prediction tree. Encoding processing is sequentially performed on each of the multiple three-dimensional points contained in the prediction tree held in buffer 102. The three-dimensional coordinates can be represented using orthogonal coordinates or polar coordinates. In the following text, position information represented using orthogonal coordinates will be referred to as position information in the orthogonal coordinate system, and position information represented using polar coordinates will be referred to as position information in the polar coordinate system.
[0064] Then, the difference (first residual signal) between each of the multiple 3D points contained in the prediction tree and the selected prediction point is calculated. This first residual signal is also called the prediction residual. Furthermore, the first residual signal is an example of the first residual.
[0065] The quantization unit 103 quantizes the first residual signal. The entropy encoding unit 111 performs entropy encoding on the quantized first residual signal to generate encoded data, and outputs (generates) a bit stream containing the encoded data.
[0066] The inverse quantization unit 104 performs inverse quantization on the first residual signal quantized by the quantization unit 103. The inverse-quantized first residual signal is decoded as a three-dimensional point (reference point) for intra-frame prediction and inter-frame prediction by adding it to the predicted value based on the selected prediction point (one or more candidate points). Furthermore, as described in the above embodiment, the predicted value is calculated based on the position information of one or more candidate points. The buffer 105 holds the group of reference points for the decoded intra-frame prediction. For example, the buffer 105 can be initialized with data held for each prediction tree (object point group). Additionally, the buffer 107 holds the group of reference points for inter-frame prediction. For example, the buffer 107 can be initialized with data held for each prediction tree (object point group).
[0067] The intra-prediction unit 106 refers to information within the prediction tree (Predtree), such as a group of reference points for intra-prediction, which contains multiple three-dimensional points (reference points for intra-prediction) in a prediction tree containing three-dimensional points of the encoded object, and determines the intra-prediction point for prediction using a prescribed method. For example, the intra-prediction unit 106 can use two three-dimensional points (decoded points) that have been dequantized immediately before the three-dimensional points of the encoded object (e.g., ancestor nodes of the parent node of the prediction tree, etc.) to extrapolate and determine the intra-prediction point.
[0068] The motion detection compensation unit 108 reproduces the encoded point group based on multiple three-dimensional points (multiple decoded points) contained in the prediction tree (Predtree) containing the three-dimensional points of the encoded object, detects the displacement between the encoded point group and the point group of the encoded object (motion detection), and corrects the encoded point group based on the detected displacement (motion compensation), thereby generating a reference point group for inter-frame prediction after position alignment, namely the inter-frame prediction point group.
[0069] The inter-frame prediction unit 109 determines the inter-frame prediction points for prediction based on the motion-compensated inter-frame prediction point group using a prescribed method. For example, the inter-frame prediction unit 109 can select the point closest to the intra-frame prediction point from the inter-frame prediction point group as the inter-frame prediction point, or it can select a three-dimensional point (e.g., the three-dimensional point closest to the immediately preceding encoded three-dimensional point) as the inter-frame prediction point without referring to the intra-frame prediction point.
[0070] The switching unit 110 determines the prediction point to be used for prediction by selecting one of the intra-frame prediction points and the inter-frame prediction points. Thus, in the 3D data encoding apparatus 100, the position information of one or more candidate points from a plurality of encoded 3D points is used as the prediction point, and the prediction value is calculated based on the prediction point. In the intra-frame prediction unit 106 and the inter-frame prediction unit 109, the prediction point (intra-frame prediction point or inter-frame prediction point) is determined based on the 3D point immediately preceding the 3D point of the object to be encoded. That is, the 3D data encoding apparatus 100 determines one or more candidate points for calculating the prediction value based on one or more reference points from a plurality of encoded 3D points. One or more reference points are 3D points immediately preceding the 3D point of the object to be encoded; for example, in the prediction tree, they may be 3D points corresponding to the parent node (ancestor node) of a 3D point of the object to be encoded.
[0071] Alternatively, the three-dimensional data encoding device 100 can also be configured as described later. Figure 3 The flowchart follows the order of selecting one of the intra-frame prediction points and inter-frame prediction points as the prediction point. Furthermore, the prediction-related information (prediction information) used to select which intra-frame or inter-frame prediction point to use can be entropy-encoded and recorded in the header of each 3D point, or it can be interleaved with each 3D point. Additionally, motion compensation-related information such as motion vectors can be recorded in the header of the frame or prediction tree, or entropy-encoded and recorded in the header of each 3D point, or it can be interleaved with each 3D point. Furthermore, the reference point group for inter-frame prediction can be a group of points contained in a frame that is different from the frame being coded, or it can be a group of points contained in a frame that is the same as the frame being coded.
[0072] In this way, the three-dimensional data encoding device 100 uses inter-frame prediction in addition to intra-frame prediction to predict the object points to be encoded, which may reduce the amount of information in the first residual signal for entropy coding and improve the coding efficiency.
[0073] Furthermore, the 3D data encoding device 100 does not always need to refer to inter-frame prediction points. It can initialize the buffer 107 storing the reference point group for inter-frame predictions at predetermined time intervals (e.g., every 1 second), predetermined frame intervals (e.g., every 30 frames), or arbitrary timing notified to the 3D data decoding device, and encode only based on the information of the point group of the encoding object. As a result, in the corresponding 3D data decoding device, it is possible to jump into and reproduce the bitstream starting from a point group that is not at the beginning of the bitstream that has never referenced the inter-frame prediction points, which may improve the random accessibility or error resistance of the bitstream.
[0074] When the input group of points of the object to be encoded has coordinates expressed in orthogonal coordinates as position information, the 3D data encoding device 100 encodes the position information expressed in orthogonal coordinates. When the input group of points of the object to be encoded has coordinates expressed in polar coordinates as position information, the 3D data encoding device 100 encodes the position information expressed in polar coordinates.
[0075] Figure 2 This is a block diagram of the three-dimensional data decoding apparatus 120 according to this embodiment. Additionally, in Figure 2 The document describes a processing unit related to decoding the positional information (geometric) of point groups, but the 3D data decoding apparatus 120 may also include other processing units such as a processing unit for decoding the attribute information of point groups. The 3D data decoding apparatus 120 performs inter-frame prediction decoding, decoding the point groups of the decoding object while referring to already decoded point groups. For example, the 3D data decoding apparatus 120 will use... Figure 1 The bitstream generated by the three-dimensional data encoding device 100 shown is decoded.
[0076] The three-dimensional data decoding device 120 includes an entropy decoding unit 121, an inverse quantization unit 122, a buffer 123, an intra-frame prediction unit 124, a buffer 125, a motion compensation unit 126, an inter-frame prediction unit 127, and a switching unit 128.
[0077] The three-dimensional data decoding device 120 acquires the bit stream generated in the three-dimensional data encoding device 100.
[0078] The entropy decoding unit 121 generates a quantized first residual signal by entropy decoding the input bitstream at each three-dimensional point of the prediction tree. The inverse quantization unit 122 inverse quantizes the quantized first residual signal to reproduce the first residual signal. The first residual signal of each three-dimensional point is added to the predicted value based on the prediction point corresponding to each three-dimensional point, and the result is used as the decoded point (output). That is, the three-dimensional data decoding device 120 calculates the position information of a three-dimensional point of the decoding object by adding the predicted value to the prediction residual.
[0079] Buffer 123 maintains the generated decoded points as a reference point group for intra-frame prediction. For example, buffer 123 can be initialized with data maintained per prediction tree (object point group). Similarly, buffer 125 maintains the generated decoded points as a reference point group for inter-frame prediction. For example, buffer 125 can be initialized with data maintained per prediction tree (object point group).
[0080] The intra-prediction unit 124 refers to information within the prediction tree (Predtree), such as a group of reference points for intra-prediction, which contains multiple three-dimensional points (reference points for intra-prediction) in a prediction tree containing the three-dimensional points of the decoded object, and determines the intra-prediction point for prediction using a prescribed method. For example, the intra-prediction unit 124 can use two three-dimensional points (decoding points) that have been dequantized immediately before the three-dimensional points of the decoded object (e.g., ancestor nodes of the parent node of the prediction tree, etc.) to extrapolate and determine the intra-prediction point.
[0081] The motion compensation unit 126 reproduces the decoded point group based on the multiple three-dimensional points (multiple decoded points) contained in the prediction tree (Predtree) containing the three-dimensional points of the decoded object, and corrects the displacement between the decoded point group and the point group of the decoded object (motion compensation), thereby generating a reference point group for inter-frame prediction after position alignment, namely the inter-frame prediction point group.
[0082] Based on the motion-compensated inter-frame prediction point group, the inter-frame prediction unit 127 determines the inter-frame prediction points for prediction using a predetermined method. For example, the inter-frame prediction unit 127 can select the point closest to the intra-frame prediction point from the inter-frame prediction point group as the inter-frame prediction point, or it can select a three-dimensional point (e.g., the three-dimensional point closest to the immediately preceding decoded three-dimensional point) as the inter-frame prediction point without referring to the intra-frame prediction point.
[0083] The switching unit 128 determines the prediction point for prediction by selecting one of the intra-frame prediction point and the inter-frame prediction point. Thus, in the 3D data decoding apparatus 120, the position information of one or more candidate points from a plurality of decoded 3D points is determined as the prediction point, and the prediction value is calculated based on the prediction point. In the intra-frame prediction unit 124 and the inter-frame prediction unit 127, the prediction point (intra-frame prediction point or inter-frame prediction point) is determined based on the 3D point immediately preceding the 3D point of the decoding object. That is, the 3D data decoding apparatus 120 determines one or more candidate points for calculating the prediction value based on one or more reference points from a plurality of decoded 3D points. One or more reference points are 3D points immediately preceding the 3D point of the decoding object; for example, in the prediction tree, these could be 3D points corresponding to the parent node (ancestor node) of a 3D point of the decoding object.
[0084] Alternatively, the three-dimensional data decoding device 120 can also be configured as described later. Figure 4 The 3D data decoding device 120 selects one of the intra-frame prediction points and inter-frame prediction points as the prediction point, following the order of the flowchart. Alternatively, it can select one of the intra-frame prediction points and inter-frame prediction points as the prediction point based on prediction-related information (prediction information) used to select which of the intra-frame and inter-frame prediction points to use. The prediction information can be entropy-encoded and recorded in the header of each 3D point, or it can be interleaved with the recording of each 3D point. Furthermore, motion compensation-related information, such as motion vectors, can be recorded in the header of the frame or prediction tree, entropy-encoded and recorded in the header of each point, or it can be interleaved with the recording of each 3D point. Thus, prediction information or motion compensation-related information can be notified from the corresponding 3D data encoding device 100 to the 3D data decoding device 120. Additionally, the reference point group for inter-frame prediction can be a group of points contained in a frame that is different from the frame being encoded, or it can be a group of points contained in a frame that is the same as the frame being encoded.
[0085] In this way, the 3D data decoding device 120 uses inter-frame prediction in addition to intra-frame prediction to predict the target points, thereby enabling it to simultaneously refer to the already decoded point group and the encoded bitstream (e.g., from...) Figure 1 The three-dimensional data encoding device 100 outputs a bit stream (decoding point group).
[0086] Furthermore, the 3D data decoding device 120 does not always need to refer to inter-frame prediction points. It can initialize the buffer 125 storing the reference point group of inter-frame predictions at predetermined time intervals (e.g., every 1 second), predetermined frame intervals (e.g., every 30 frames), or at any time notified by the corresponding 3D data encoding device 100, and perform decoding based solely on the information of the point group of the decoding object. As a result, the 3D data decoding device 120 can start jump-in playback from a point group that is not at the beginning of the bitstream that has not referenced the inter-frame prediction points, which may improve the random accessibility or error resistance of the bitstream.
[0087] The 3D data decoding device 120 decodes the position information represented by orthogonal coordinates in the bitstream when the bitstream contains encoded data with position information represented by coordinates in polar coordinates.
[0088] Figure 3 This is a flowchart illustrating an example of the order in which three-dimensional points of a prediction tree are encoded in a three-dimensional data encoding device 100.
[0089] In this example, the 3D data encoding apparatus 100 first determines the intra-prediction point based on the reference point group for intra-frame prediction (S101). The 3D data encoding apparatus 100 can, for example, use the method of determining prediction points using a prediction tree disclosed in the previously described embodiments to determine the intra-prediction point. For example, the 3D data encoding apparatus 100 can also generate a prediction tree using multiple encoded 3D points, and select one or more candidate points from the multiple encoded 3D points based on the prediction tree. The 3D data encoding apparatus 100 can determine the prediction point with the least amount of coding among the at least one intra-prediction point determined by at least one of the above methods as the intra-prediction point. Furthermore, the 3D data encoding apparatus 100 can determine the prediction point with the smallest absolute sum (or sum of squares) of the coordinate residuals among the at least one intra-prediction point determined by at least one of the above methods as the intra-prediction point.
[0090] Next, the 3D data encoding apparatus 100 outputs intra-frame prediction association parameters (S102). If there are two or more candidates for the decision method of the intra-frame prediction point determined in step S101, the 3D data encoding apparatus 100 can output information representing the candidates of the selected decision method as intra-frame prediction association parameters to the bitstream.
[0091] Next, the 3D data encoding apparatus 100 determines the inter-frame prediction point by referring to at least one candidate point extracted from the inter-frame prediction point group. For example, the 3D data encoding apparatus 100 may determine an inter-frame prediction point by selecting one candidate point, or it may determine an inter-frame prediction point by using the average coordinates of multiple candidate points as the coordinates. Alternatively, the 3D data encoding apparatus 100 may also determine an inter-frame prediction point by using the average coordinates of intra-frame prediction points and at least one candidate point as the coordinates.
[0092] Here, the three-dimensional data encoding device 100 may also search for points located near the intra-frame prediction point as at least one candidate point (S103).
[0093] Next, the three-dimensional data encoding device 100 may also assign a decreasing index value to each of the at least one determined inter-frame prediction points in order of increasing distance from the intra-frame prediction points (S104).
[0094] Next, the 3D data encoding device 100 determines whether the search has ended (S105). If the search has ended ("Yes" in S105), it proceeds to the next step S106; if the search has not ended ("No" in S105), it returns to step S103. The search can be determined by finding a specified number of inter-frame prediction points, by searching all point groups within a specified range, or by satisfying either finding a specified number of inter-frame prediction points or searching one of the specified point groups within a specified range.
[0095] Next, the 3D data encoding apparatus 100 determines the prediction method (S106). Specifically, the 3D data encoding apparatus 100 decides whether to use intra-frame prediction or inter-frame prediction as the method for determining the prediction point. That is, the 3D data encoding apparatus 100 decides whether to determine the intra-frame prediction point or the inter-frame prediction point as the prediction point. For example, the 3D data encoding apparatus 100 may decide on the prediction method of the prediction point with the least amount of coding among the intra-frame and inter-frame prediction points. In addition, the 3D data encoding apparatus 100 may decide on the prediction method of the prediction point with the smallest absolute value (or sum of squares) of the coordinate residuals among the intra-frame and inter-frame prediction points.
[0096] The three-dimensional data encoding device 100 determines whether the prediction method mode indicates that the prediction method is an inter-frame prediction mode or an intra-frame prediction mode (S107).
[0097] When the prediction method is determined to be inter-frame prediction (inter-frame mode in S107), the three-dimensional data encoding device 100 outputs identification information (e.g., a flag) indicating that the inter-frame prediction point is determined to be the prediction point to the bit stream (S108).
[0098] Next, the 3D data encoding device 100 outputs information related to the number of candidate points used in determining the coordinates of the inter-frame prediction points, as well as the index values of each candidate point used, to the bitstream as inter-frame prediction association parameters (S109). The index value can be assigned to one or more candidate points used to determine the prediction value.
[0099] Furthermore, when the determined prediction method is intra-frame prediction (intra-frame mode in S107), the 3D data encoding apparatus 100 outputs identification information (e.g., a flag) indicating that the intra-frame prediction point has been determined as the prediction point to be the prediction point to the bit stream (S111). Additionally, the identification information in steps S108 and S111 indicates whether the prediction point has been determined to be an inter-frame prediction point or an intra-frame prediction point.
[0100] After step S109 or step S111, the three-dimensional data encoding device 100 encodes the coordinate information of the three-dimensional points of the object to be encoded by referring to the prediction points obtained by the determined prediction method (S110).
[0101] In this way, the three-dimensional data encoding device 100 determines at least one inter-frame prediction point by referring to the inter-frame prediction point group and intra-frame prediction points, determines the method for obtaining prediction points based on these intra-frame prediction points and inter-frame prediction points, and encodes the position information (coordinate information) of the three-dimensional points of the encoding object by referring to the prediction points.
[0102] Alternatively, in S103, instead of referring to intra-frame prediction points, inter-frame prediction points can be searched near 3D points that are uniquely determined without relying on intra-frame prediction association parameters, such as the immediately preceding encoded 3D points (e.g., 3D points corresponding to ancestor nodes such as the parent node of the prediction tree). In this case, S102 can be implemented immediately after S111 instead of immediately after S101.
[0103] Figure 4 This is a flowchart illustrating an example of the order in which the three-dimensional points of the prediction tree are decoded in the three-dimensional data decoding device 120. Figure 4 Corresponding to according to Figure 3 The decoding of the bitstream generated in the order of encoding. That is, the bitstream contains the encoded first residual signal (prediction residual) and index values assigned to candidate points used to calculate the prediction value.
[0104] In this example, the three-dimensional data decoding device 120 first obtains the intra-frame prediction correlation parameters from the bitstream (S121).
[0105] Next, the 3D data decoding device 120 determines the intra-frame prediction point based on the acquired intra-frame prediction correlation parameters (S122). Specifically, the 3D data decoding device 120 determines the intra-frame prediction point by... Figure 3 The intra-prediction point is determined using the same method as in step S101. The 3D data decoding device 120 is notified of the intra-prediction association parameters by the corresponding 3D data encoding device 100, and determines the intra-prediction point according to the intra-prediction association parameters. The intra-prediction association parameters are obtained in step S121, including information specifying at least one method for determining the intra-prediction point and parameters accompanying that information.
[0106] Next, the three-dimensional data decoding device 120 obtains the identification information of the pattern representing the prediction method from the bit stream (S123).
[0107] Next, the three-dimensional data decoding device 120 determines whether the acquired identification information indicates that the prediction method is an inter-frame prediction mode or an intra-frame prediction mode (S124).
[0108] When the prediction method is inter-frame prediction (inter-frame mode in step S124), the three-dimensional data decoding device 120 obtains the inter-frame prediction correlation parameters from the bitstream (S125).
[0109] Next, the 3D data decoding device 120 performs processing for determining inter-frame prediction points (S126-S129). Specifically, the 3D data decoding device 120 performs processing with... Figure 3 Steps S103 to S105 determine the inter-frame prediction point using the same method. For example, the 3D data decoding apparatus 120 determines the inter-frame prediction point by referring to at least one candidate point extracted from the group of inter-frame prediction points. For example, the 3D data decoding apparatus 120 may determine an inter-frame prediction point by selecting one candidate point, or it may determine an inter-frame prediction point by using the average coordinates of multiple candidate points as the coordinates of the prediction point. Alternatively, the 3D data decoding apparatus 120 may also determine an inter-frame prediction point by using the average coordinates of an intra-frame prediction point and at least one candidate point as the coordinates of the prediction point.
[0110] Here, the three-dimensional data decoding device 120 can also search for points located near the intra-frame prediction point as at least one candidate point (S126).
[0111] Next, the three-dimensional data decoding device 120 may also assign a decreasing index value to each of the at least one determined inter-frame prediction points in order of increasing distance from the intra-frame prediction points (S127).
[0112] Next, the 3D data decoding device 120 determines whether the search has ended (S128). If the search has ended ("Yes" in S128), it proceeds to the next step S129; if the search has not ended ("No" in S128), it returns to step S126. The search can be determined by finding a specified number of inter-frame prediction points, by searching all point groups within a specified range, or by satisfying either finding a specified number of inter-frame prediction points or searching one of the specified point groups within a specified range.
[0113] Next, the 3D data decoding apparatus 120 determines the inter-frame prediction point based on the inter-frame prediction association parameters while referring to the inter-frame prediction point group and intra-frame prediction points (S129). For example, the 3D data decoding apparatus 120 determines the candidate points used in determining the coordinates of the inter-frame prediction point based on information contained in the inter-frame prediction association parameters related to the number of candidate points used in determining the coordinates of the inter-frame prediction point, and the index values assigned to each candidate point used. The determined candidate points are then used to determine the coordinates of the inter-frame prediction point, thereby determining the inter-frame prediction point. That is, the 3D data decoding apparatus 120 selects a candidate point from multiple decoded 3D points based on the index values contained in the bitstream.
[0114] After step S129, or in the case of intra-frame mode in step S124, the three-dimensional data decoding device 120 decodes the position information (coordinate information) of the three-dimensional points of the decoding object by referring to the prediction points obtained by the specified prediction method (S130).
[0115] Thus, when the prediction method is inter-frame prediction, the 3D data decoding device 120 decodes the coordinate information of the points of the decoding object by referring to the inter-frame prediction points; when the prediction method is intra-frame prediction, it decodes the coordinate information of the points of the decoding object by referring to the intra-frame prediction points.
[0116] Alternatively, in S126, instead of referring to intra-frame prediction points, inter-frame prediction points can be searched near 3D points that are uniquely determined without relying on intra-frame prediction association parameters, such as the immediately preceding decoded 3D points (e.g., 3D points corresponding to ancestor nodes such as the parent node of the prediction tree). In this case, S121 and S122 can be implemented in S124 if the frame mode is determined to be intra-frame mode, without implementing S121 and S122 immediately before S123.
[0117] Figure 5 This is a block diagram of a modified example of the three-dimensional data encoding device 130 of this embodiment. Additionally, in Figure 5The document describes a processing unit related to encoding the positional information (geometric) of point groups, but the 3D data encoding apparatus 130 may also include other processing units such as a processing unit for encoding attribute information of point groups. In inter-frame prediction and intra-frame prediction, the point groups of the target object are encoded while referring to already encoded point groups. The 3D data encoding apparatus 130 is structurally and operationally similar to... Figure 1 The difference between the three-dimensional data encoding device 100 and the three-dimensional data encoding device 130 is that the latter has a coordinate transformation unit 131, which is used to transform a group of points with position information represented in orthogonal coordinates into position information represented in polar coordinates and encode it; it does not perform quantization of the prediction residual (first residual signal) of the position information represented in polar coordinates; and it quantizes the second residual signal of orthogonal coordinates, which is equivalent to the error generated by the transformation between orthogonal coordinates and polar coordinates. On the other hand, the three-dimensional data encoding device 130 is the same as the three-dimensional data encoding device 100 in terms of its structure and operation, except for the differences mentioned above.
[0118] The three-dimensional data encoding device 130 includes a coordinate transformation unit 131, a grouping unit 132, a buffer 133, a buffer 134, an intra-frame prediction unit 135, a buffer 136, a motion detection compensation unit 137, an inter-frame prediction unit 138, a switching unit 139, a coordinate transformation unit 140, a buffer 141, a quantization unit 142, and an entropy encoding unit 143.
[0119] The coordinate transformation unit 131 transforms the coordinate system of the input data of the point group of the encoded object, i.e., the position information of the object point group, from an orthogonal coordinate system to a polar coordinate system. That is, the coordinate transformation unit 131 generates the position information in the polar coordinate system by transforming the coordinate system of the position information of a three-dimensional point of the encoded object in the orthogonal coordinate system. The point group of the encoded object after transformation to polar coordinates is output to the grouping unit 132.
[0120] Grouping unit 132 extracts a group of points from the object point group, which is the point group of the encoded object after transformation to polar coordinates, as a unit of the prediction tree (Predtree), and sets them as a group. Buffer 133 holds the generated prediction tree. For example, buffer 133 can initialize the data held by each prediction tree. For each of the multiple three-dimensional points contained in the prediction tree (Predtree) held in buffer 133, the processing for encoding is performed sequentially.
[0121] The difference (first residual signal) between each of the plurality of three-dimensional points (points of the encoded object) contained in the prediction tree held in buffer 133 and the predicted point selected for that point of the encoded object is calculated. This first residual signal is a 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 a first residual. Since the position information of the plurality of three-dimensional points held in buffer 133 is transformed into polar coordinates, the first residual is the difference between the position information in the transformed polar coordinates and the predicted value.
[0122] Then, the first residual signal is added to the predicted point and stored in buffers 134 and 136 as the encoded decoded point. The position information of the decoded point stored in buffers 134 and 136 is represented by polar coordinates. In this respect, the function of buffers 134 and 136 is different from that of buffers 105 and 107, but otherwise the same.
[0123] In addition, the intra-frame prediction unit 135, motion detection compensation unit 137, inter-frame prediction unit 138, and switching unit 139 also differ from the intra-frame prediction unit 106, motion detection compensation unit 108, inter-frame prediction unit 109, and switching unit 110 in that they represent the position information of the three-dimensional point to be processed in polar coordinates, but their other functions are the same.
[0124] The coordinate transformation unit 140 obtains the same decoding point as the decoding point held in buffers 134 and 136, and transforms the coordinate system of the obtained decoding point's position information from a polar coordinate system to an orthogonal coordinate system. That is, the coordinate transformation unit 140 generates orthogonal coordinate system position information by performing an inverse transformation on the coordinate system of the position information based on the transformed polar coordinate system of the coordinate transformation unit 131.
[0125] The buffer 141 holds the position information of the three-dimensional points represented by orthogonal coordinates that are input to the three-dimensional data encoding device 130.
[0126] Then, the difference (second residual signal) between the position information of the input orthogonal coordinate system and the position information of the orthogonal coordinate system obtained by transforming the coordinate system from polar coordinates to orthogonal coordinates in coordinate transformation unit 140 is calculated. This second residual signal is an example of a second residual. That is, the second residual signal is the difference between the position information of the orthogonal coordinate system without coordinate transformation in coordinate transformation unit 131 and the position information after being transformed into polar coordinates and then further inversely transformed into orthogonal coordinates, which is the transformation error caused by coordinate transformation.
[0127] The quantization unit 142 quantizes the second residual signal.
[0128] The entropy coding unit 143 performs entropy coding on the first residual signal and the quantized second residual signal to generate coded data and outputs a bit stream containing the coded data.
[0129] In this way, the 3D data encoding device 130 transforms the coordinate system of the position information of the 3D points from an orthogonal coordinate system to a polar coordinate system, and encodes the position information in the polar coordinate system. As a result, when encoding a group of points generated by obtaining the 3D positions of surrounding objects centered on the sensor position, such as in LiDAR, it is possible to improve the prediction accuracy of the points of the encoded object and improve the encoding efficiency.
[0130] Figure 6 This is a block diagram of a modified example of the three-dimensional data decoding apparatus 150 of this embodiment. Additionally, in Figure 6 The document describes a processing unit related to decoding the positional information (geometric) of point groups, but the 3D data decoding apparatus 150 may also include other processing units such as a processing unit for decoding the attribute information of point groups. The 3D data decoding apparatus 150 performs inter-frame prediction decoding, decoding the point groups of the decoding object while referring to already decoded point groups. For example, the 3D data decoding apparatus 150 will use... Figure 5 The bitstream generated by the shown three-dimensional data encoding device 130 is decoded. The three-dimensional data decoding device 150, in its basic structure and operation, is similar to... Figure 2 The difference between the three-dimensional data decoding device 120 and the three-dimensional data decoding device 150 is that the inverse quantization of the first residual signal (prediction residual) is not performed; instead, entropy decoding is performed on the second residual signal of orthogonal coordinates, which corresponds to the transformation error generated by the transformation between orthogonal and polar coordinates, and the signal is inversely quantized and reproduced. This is then added to the point transformed from the corresponding polar coordinate decoding point to the orthogonal coordinate point and output as the orthogonal coordinate decoding point. On the other hand, the three-dimensional data decoding device 150 is the same as the three-dimensional data decoding device 120 except for the differences mentioned above.
[0131] The three-dimensional data decoding device 150 includes an entropy decoding unit 151, a buffer 152, an intra-frame prediction unit 153, a buffer 154, a motion compensation unit 155, an inter-frame prediction unit 156, a switching unit 157, a coordinate transformation unit 158, and an inverse quantization unit 159.
[0132] The entropy decoding unit 151 performs entropy decoding on the input bitstream according to each three-dimensional point of the prediction tree to generate a first residual signal and a quantized second residual signal. The first residual signal of each three-dimensional point is added to the predicted value based on the prediction point corresponding to each three-dimensional point to generate (output) a decoded point represented in polar coordinates.
[0133] Buffer 152 maintains the generated decoded points as a reference point group for intra-frame prediction. For example, buffer 152 can initialize the data maintained for each prediction tree (object point group). Similarly, buffer 154 maintains the generated decoded points as a reference point group for inter-frame prediction. For example, buffer 154 can initialize the data maintained for each prediction tree (object point group). The positional information of the decoded points maintained in buffers 152 and 154 is represented by polar coordinates. In this respect, the functions of buffers 152 and 154 differ from those of buffers 123 and 125, but their other functions are the same.
[0134] In addition, the intra-frame prediction unit 153, motion compensation unit 155, inter-frame prediction unit 156 and switching unit 157 are similar in that the position information of the three-dimensional point to be processed is represented by polar coordinates, which is different from the functions of the intra-frame prediction unit 124, motion compensation unit 126, inter-frame prediction unit 127 and switching unit 128, but their functions are the same.
[0135] The coordinate transformation unit 158 obtains the same decoding point as the decoding point held in the buffers 152 and 154, and transforms the coordinate system of the obtained decoding point's position information from the polar coordinate system to the orthogonal coordinate system.
[0136] The inverse quantization unit 159 performs inverse quantization on the quantized second residual signal to reproduce the second residual signal.
[0137] The position information of the orthogonal coordinate system obtained by coordinate transformation by coordinate transformation unit 158 is added to the second residual signal reproduced by inverse quantization by inverse quantization unit 159, and then generated (output) as a decoding point containing the position information of the orthogonal coordinate system.
[0138] Thus, the 3D data decoding device 150 has the means to transform the coordinate system of the decoded points, which have position information in a polar coordinate system, from a polar coordinate system to an orthogonal coordinate system, and add it to a second residual signal in orthogonal coordinates, which is equivalent to the error generated by the transformation between the position information in the orthogonal coordinate system and the position information in the polar coordinate system. Therefore, the 3D data decoding device 150 can decode the data from the encoded bitstream (e.g., from a polar coordinate system) while referring to the encoded point group. Figure 5 The three-dimensional data encoding device 130 outputs a bit stream (decoding point group).
[0139] Figure 7 This is an example of the syntax for the Geometry Parameter Set (GPS). This syntax uses... Figure 1 , Figure 2 , Figure 5 and Figure 6 It is used in the 3D data encoding devices 100 and 130 and the 3D data decoding devices 120 and 150 described herein.
[0140] As these examples illustrate, in GPS, information such as `gps_alt_coordinates_flag` can be used to indicate whether a coordinate system different from orthogonal coordinates, such as polar coordinates, is used in the decoding process at each point. When `gps_alt_coordinates_flag` is set to 1 (i.e., `gps_alt_coordinates_flag = 1`), it indicates that an alternative coordinate system (e.g., polar coordinates) is used in the decoding process of data units containing location information from the GPS bitstream. When `gps_alt_coordinates_flag` is set to 0 (i.e., `gps_alt_coordinates_flag = 0`), it indicates that an alternative coordinate system is not used in the decoding process of data units containing location information from the GPS bitstream. In other words, `gps_alt_coordinates_flag` can indicate whether the encoded data contains first encoded data calculated using polar coordinates. Furthermore, `gps_alt_coordinates_flag` is an example of indicating whether the encoded data includes first identification information of the first encoded data calculated using polar coordinates.
[0141] Furthermore, in cases where a coordinate system different from the orthogonal coordinate system (a replacement coordinate system) is used in the decoding process of each 3D point (e.g., when gps_alt_coordinates_flag = 1), coordinate transformation information, such as gps_coordinate_trans_enabled_flag, indicating whether a coordinate transformation of the decoded points (e.g., from polar coordinates to orthogonal coordinates) is performed before outputting each 3D point from the 3D data decoding device, can be provided. The case where gps_alt_coordinates_flag = 1 (i.e., the first identification information indicates that the encoded data contains the first encoded data) specifically refers to the case where the position information of one or more candidate points used to calculate the prediction value, and the position information of a 3D point of the encoded object used to calculate the first residual, are position information in a polar coordinate system. In this case, the bitstream contains gps_coordinate_trans_enabled_flag. gps_coordinate_trans_enabled_flag is an example of second identification information that indicates whether the position information in a polar coordinate system or an orthogonal coordinate system is output during decoding. Furthermore, when gps_alt_coordinates_flag = 1, in the encoding process, in the 3D data encoding devices 100 and 130 that quantize the first residual and encode the quantized first residual, the position information of the polar coordinate system is encoded. Therefore, when gps_alt_coordinates_flag = 1 and gps_coordinate_trans_enabled_flag = 0, it can be said that the position information of the polar coordinate system is encoded, and when gps_coordinate_trans_enabled_flag = 0, it can be said that the position information of the polar coordinate system is output during decoding.
[0142] Furthermore, when gps_alt_coordinates_flag = 0 (i.e., when the first identification information indicates that the encoded data does not contain the first encoded data), the bitstream may also not contain gps_coordinate_trans_enabled_flag (the second identification information).
[0143] When `gps_coordinate_trans_enabled_flag` is set to 1 (i.e., `gps_coordinate_trans_enabled_flag = 1`), it indicates that the coordinate system is transformed to another coordinate system during the decoding process of data units containing position information referenced to the GPS bitstream. Therefore, when `gps_alt_coordinates_flag = 1` and `gps_coordinate_trans_enabled_flag = 0`, since the position information in the orthogonal coordinate system is decoded, it can be said that `gps_coordinate_trans_enabled_flag = 0` indicates that the position information in the orthogonal coordinate system is output during decoding.
[0144] When `gps_coordinate_trans_enabled_flag` is set to 0 (i.e., `gps_coordinate_trans_enabled_flag = 0`), it indicates that the coordinate system will not be transformed to another coordinate system during the decoding process of data units containing location information referenced to the GPS bitstream. Furthermore, if `gps_coordinate_trans_enabled_flag` is not shown, its value can be considered to be set to 0.
[0145] Additionally, in cases where no coordinate transformation of the decoded points is performed before outputting each 3D point from the 3D data decoding device (e.g., when gps_coordinate_trans_enabled_flag = 0), it is also possible to... Figure 1 The three-dimensional data encoding device 100 shown and Figure 2 The 3D data decoding device 120 shown performs encoding and decoding of point groups. Furthermore, in cases where coordinate transformation of the decoded points is performed before outputting each 3D point from the 3D data decoding device (e.g., when gps_coordinate_trans_enabled_flag = 1), this can also be achieved by... Figure 5 The three-dimensional data encoding device 130 shown and Figure 6 The three-dimensional data decoding device 150 shown performs the encoding and decoding of point groups.
[0146] By notifying the 3D data decoding device of gps_alt_coordinates_flag and gps_coordinate_trans_enabled_flag, even when polar coordinates or other coordinate systems different from orthogonal coordinates are used in the encoding and decoding of each 3D point (e.g., when gps_alt_coordinates_flag = 1), the system can switch according to the point group of the encoded object. Figure 1 The three-dimensional data encoding device 100 shown and Figure 5 The three-dimensional data encoding device 130 shown may improve encoding efficiency.
[0147] Furthermore, despite Figure 7 The syntax of GPS is illustrated, but gps_alt_coordinates_flag and gps_coordinate_trans_enabled_flag can be included in SPS, in the header of the data unit, or as metadata in other control information.
[0148] Figure 8 This is an example of the syntax for each three-dimensional point (a Node in a Predtree). This syntax is used... Figure 1 , Figure 2 , Figure 5 and Figure 6 It is used in the 3D data encoding devices 100 and 130 and the 3D data decoding devices 120 and 150 described herein.
[0149] In this example, the three-dimensional data encoding devices 100 and 130 first notify the three-dimensional data decoding devices 120 and 150 of the identification information (pred_mode) of the method for determining intra-prediction points in the three-dimensional points representing the encoded or decoded object. Furthermore, the three-dimensional data encoding devices 100 and 130 can also notify the three-dimensional data decoding devices 120 and 150 of additional information used to determine the intra-prediction points based on the identification information (pred_mode).
[0150] Next, when inter-frame prediction is valid in the GPS referenced by the prediction tree during encoding (e.g., when gps_inter_prediction_enabeled_flag = 1), the 3D data encoding devices 100 and 130 can notify the 3D data decoding devices 120 and 150 whether the prediction method for the 3D points representing the encoded or decoded object is intra-frame prediction (i.e., inter-frame prediction) (intra_pred_flag). Furthermore, when gps_inter_prediction_enabeled_flag = 0, the value of intra_pred_flag can be set to 1 (intra-frame prediction). When the prediction method for the 3D points of the encoded or decoded object is inter-frame prediction (e.g., intra_pred_flag = 0), the identification information (inter_pred_mode) of the method for obtaining the inter-frame prediction points representing the 3D points of the encoded or decoded object can also be notified. Furthermore, the 3D data encoding devices 100 and 130 can also, based on the identification information (inter_pred_mode), set the number of candidate points in the inter-prediction point group referenced when determining the inter-prediction point to NumRefPoints, and notify the 3D data decoding devices 120 and 150 of the index (inter_ref_point_idx) of each candidate point of NumRefPoints. Additionally, when multiple candidate points in the inter-prediction point group referenced when determining the inter-prediction point are specified, the average of the coordinates of the specified multiple candidate points can be used as the coordinates of the inter-prediction point. Furthermore, the 3D data encoding devices 100 and 130 can also prepare a specific inter_pred_mode for candidate points, such as omitting the notification of candidate point indices and selecting the smallest index. For example, the 3D data encoding devices 100 and 130 can also set up a determination process regarding whether the inter_pred_mode indicates the mode, or set the value of NumRefPoints to 0, thus omitting the notification of candidate point indices. Alternatively, it can be implemented as long as the information required for the method to uniquely determine the inter-prediction point is provided. For example, instead of inter_pred_mode, the number of candidate points in the group of inter-prediction points referenced when determining the inter-prediction point can be provided.
[0151] Furthermore, when searching for candidate points in the inter-frame prediction point group near a 3D point that is uniquely determined without relying on the identification information (pred_mode) representing the method for obtaining intra-frame prediction points, such as the 3D point that was immediately encoded or decoded (e.g., a 3D point corresponding to an ancestor node such as the parent node of the prediction tree), the identification information (pred_mode) representing the method for obtaining intra-frame prediction points and the additional information used to determine intra-frame prediction points may be notified to the 3D data decoding apparatus 120 and 150 only when the prediction method in the 3D points of the encoded or decoded object is intra-frame prediction (e.g., intra_pred_flag = 1).
[0152] Next, the 3D data encoding devices 100 and 130 can notify the first difference (1st_residual_value) between the position information (coordinate values) of the points of the encoded or decoded object and the position information (coordinate values) of the predicted points. If a coordinate transformation of the decoded points is performed before outputting each 3D point from the 3D data decoding devices 120 and 150 (e.g., when gps_coordinate_trans_enabled_flag = 1), the second difference (2nd_residual_value) between the position information (coordinate values) after transforming the decoded results from different coordinate systems such as polar coordinates to the original coordinate system such as orthogonal coordinates can be notified, along with the original position information (coordinate values). Furthermore, although an example of notifying these differences as a single syntax is shown, they can also be decomposed into multiple syntaxes for notification, such as positive / negative information and absolute value information.
[0153] By notifying the three-dimensional data encoding devices 100 and 130 of this information to the three-dimensional data decoding devices 120 and 150, consistent prediction processing can be performed in the three-dimensional data encoding devices 100 and 130 and the three-dimensional data decoding devices 120 and 150. In the three-dimensional data decoding devices 120 and 150, the three-dimensional points of the processing object can be decoded without mismatch with the corresponding three-dimensional data encoding devices 100 and 130.
[0154] Figure 9 This is an example of the syntax for geometric data. This syntax uses... Figure 1 , Figure 2 , Figure 5 and Figure 6 It is used in the 3D data encoding devices 100 and 130 and the 3D data decoding devices 120 and 150 described herein.
[0155] The `pred_mode` in this syntax represents the prediction mode used to encode and decode the position information of the i-th 3D point among multiple 3D points contained in a point group. Specifically, `pred_mode` represents the calculation method for calculating the predicted value of the position information of the i-th 3D point, and it is a calculation method that uses the position information of other 3D points. `pred_mode` is represented by a value from 0 to M-1 (M is the total number of prediction modes). When `pred_mode` is not included in the bitstream (i.e., the condition `distdiff>=Thfix[i]&&NumPredMode>1&&intra_pred_flag` is not satisfied), the value shown by `pred_mode` can be estimated as an estimated value α (e.g., α=2). In addition, the estimated value α is not limited to 2, and can also be any value from 0 to M-1. In addition, the estimated value α when `pred_mode` is not included in the bitstream can also be appended to the header, etc. Alternatively, `pred_mode` can also be binarized and arithmetically encoded using the number of prediction modes with assigned prediction values, using truncated unary code.
[0156] In addition, intra_pred_flag indicates whether the prediction method for the points of the encoded or decoded object is intra-prediction (i.e., inter-prediction) (see [reference]). Figure 5 When intra_pred_flag = 0 (i.e., inter-frame prediction), the estimated value α of pred_mode can be omitted from the bitstream. This reduces the amount of coding. Furthermore, in this case, the 3D data decoding devices 120 and 150 can also estimate pred_mode as the estimated value α (e.g., α = 0). Additionally, the estimated value α is not limited to 0 and can be any value from 1 to M-1. Furthermore, when pred_mode is not included in the bitstream, the estimated value α can be separately appended to the header, etc.
[0157] `num_virtual_node` represents the number of virtual nodes for the i-th 3D point. The value of `num_virtual_node` can also be used to correct the predicted value calculated using `pred_mode`. Furthermore, when `pred_mode` = 0 (e.g., no prediction), `num_virtual_node` may not be appended to the bitstream. This reduces the amount of encoding when `pred_mode` = 0. Moreover, when `num_virtual_node` is not appended to the bitstream, the 3D data decoding devices 120 and 150 can estimate that the value represented by `num_virtual_node` is 0. Therefore, the 3D data decoding devices 120 and 150 can appropriately decode the bitstream.
[0158] Furthermore, as shown by gps_alt_coordinates_flag=1, when using a coordinate system different from orthogonal coordinates, such as polar coordinates, in the decoding process of each point, num_virtual_node can be added. Conversely, when gps_alt_coordinates_flag=0, i.e., using an orthogonal coordinate system, num_virtual_node can be omitted. Therefore, when encoding in a polar coordinate system, the 3D data encoding devices 100 and 130 can improve encoding efficiency by using num_virtual_node, and when encoding in an orthogonal coordinate system, the overhead of encoding can be reduced by not appending num_virtual_node to the bitstream.
[0159] In addition, in num_virtual_node, it is also possible to... Figure 9 The parameters shown are appended to the bitstream and obtained in the manner described in Equation 1 below.
[0160] num_virtual_node=num_virtual_node_gt0+num_virtual_node_gt1+num_virtual_node_minus2 (Formula 1)
[0161] `num_virtual_node_gt0` indicates whether `num_virtual_node` is greater than 0. For example, if `num_virtual_node_gt0` represents 0, it means `num_virtual_node` is 0; if `num_virtual_node_gt0` represents 1, it means `num_virtual_node` is greater than 0. Furthermore, if `num_virtual_node_gt0` is not included in the bitstream, the 3D data decoding devices 120 and 150 can estimate that `num_virtual_node_gt0` represents 0.
[0162] `num_virtual_node_gt1` indicates whether `num_virtual_node` is greater than 1. For example, if `num_virtual_node_gt1` represents 0, then `num_virtual_node` represents 1; if `num_virtual_node_gt1` represents 1, then `num_virtual_node` is greater than 1. Furthermore, if `num_virtual_node_gt1` is not included in the bitstream, the 3D data decoding devices 120 and 150 can also estimate that `num_virtual_node_gt1` represents 0.
[0163] `num_virtual_node_minus2` represents the number of virtual nodes minus two. For example, `num_virtual_node_minus2` being 0 indicates a total of 2 virtual nodes, and `num_virtual_node_minus2` being 1 indicates a total of 3 virtual nodes. Furthermore, if `num_virtual_node_minus2` is not included in the bitstream, the 3D data decoding devices 120 and 150 can estimate that `num_virtual_node_minus2` is 0.
[0164] `residual_is_zero` indicates whether `residual_value` is 0. For example, `residual_is_zero` being 1 indicates that `residual_value` is 0, and `residual_is_zero` being 0 indicates that `residual_value` is not 0. Furthermore, when `pred_mode` = 0 (e.g., no prediction, prediction value 0), the probability of `residual_value` being 0 is low, so the 3D data encoding devices 100 and 130 may not encode `residual_is_zero` and append it to the bitstream. In this case, when `pred_mode` = 0, the 3D data decoding devices 120 and 150 may not decode `residual_is_zero` from the bitstream, estimating it as 0.
[0165] `residual_sign` is a sign bit indicating whether `residual_value` is positive or negative. For example, `residual_sign` being "1" indicates a negative value, and `residual_value` being "0" indicates a positive value. Furthermore, as... Figure 9 As shown, when condition 1 ((j>0&&gps_alt_coordinates_flag)||pred_mode>0||intra_pred_flag=0) is not satisfied, residual_value becomes a positive value. Therefore, the 3D data encoding devices 100 and 130 do not need to encode residual_sign and append it to the bitstream. When condition 1 is not satisfied, the 3D data decoding devices 120 and 150 do not need to decode residual_sign from the bitstream, but instead estimate the value shown by residual_sign as 0.
[0166] Here, j represents an element within the position information. For example, when gps_alt_coordinates_flag = 1, it could represent polar coordinates; j = 0, it could represent the radius; j = 1, it could represent the horizontal angle Φ; and j = 2, it could represent the elevation angle θ. Furthermore, when residual_sign is ((j>0&&gps_alt_coordinates_flag), i.e., when polar coordinates are used and the position information element is either the horizontal angle Φ or the elevation angle θ, since there is a possibility that the residual is negative, the 3D data encoding devices 100 and 130 append residual_sign to the bitstream according to condition 1. If condition 1 is not met, residual_sign can be omitted from the bitstream, thus reducing the encoding amount. Moreover, regarding residual_sign, when intra_pred_flag = 0, i.e., in the case of inter-frame prediction, since there is a possibility that the residual of all elements of the position information is negative, the 3D data encoding devices 100 and 130... According to condition 1, residual_sign is appended to the bitstream. If condition 1 is not met, residual_sign can be omitted from the bitstream, thus reducing the amount of coding. Furthermore, when pred_mode = 0 (e.g., no prediction, prediction value of 0, or prediction residual greater than 0 due to the use of the prediction value appended to the header), residual_value becomes positive. Therefore, the 3D data encoding devices 100 and 130 can omit encoding residual_sign from the bitstream according to condition 1. Moreover, if residual_sign is not appended to the bitstream, the 3D data decoding devices 120 and 150 do not decode residual_sign from the bitstream, but instead estimate the value indicated by residual_sign as 0.
[0167] residual_bitcount_minus1 represents the value obtained by subtracting 1 from the number of bits in residual_bit. That is, Equation 2 below holds true.
[0168] residual_bitcount=residual_bitcount_minus1+1 (Formula 2)
[0169] residual_bit[k] represents the k-th bit information when the absolute value of residual_value is binarized with a fixed length to match the value of residual_bitcount.
[0170] The three-dimensional data encoding devices 100 and 130 can use, for example, pred_mode, num_virtual_node_gt0, num_virtual_node_gt1, num_virtual_node_minus2, residual_is_zero, residual_sign, residual_bitcount_minus1, and residual_bit. Figure 9 The explanatory information is entropy-encoded and appended to the header. The 3D data encoding devices 100 and 130 can also binarize the aforementioned information and perform arithmetic encoding, for example. Furthermore, to suppress processing overhead, the 3D data encoding devices 100 and 130 can encode the aforementioned information with a fixed length. Additionally, when the 3D data encoding devices 100 and 130 binarize the aforementioned information and perform arithmetic encoding on each bit, they can also improve encoding efficiency by switching the encoding table (or context). The 3D data encoding devices 100 and 130 can switch the context based on, for example, the value of intra_pred_flag. Specifically, the 3D data encoding devices 100 and 130 can prepare a context for intra_pred_flag = 1 (for intra-frame prediction) and a context for intra_pred_flag = 0 (for inter-frame prediction) for each piece of information, and switch the context for arithmetic encoding of each piece of information based on whether the target node is encoded via intra-frame prediction or inter-frame prediction. Therefore, by switching the optimal context between intra-frame prediction and inter-frame prediction for encoding, encoding efficiency can be improved.
[0171] Furthermore, it can be implemented and used in combination with at least a portion of other implementation methods. Figures 1-6 The disclosed apparatus or processing, syntax, etc. Furthermore, it can be implemented and used in combination with other embodiments. Figures 1-6 Publicly available devices or processes, parts of syntax, etc. Additionally, the use of... Figures 1-6 Not all of the publicly disclosed constituent elements are necessarily required; it is also possible to have only a portion of the constituent elements.
[0172] As described above, the three-dimensional data encoding devices 100 and 130 of this embodiment perform... Figure 10The processing is as follows: The 3D data encoding devices 100 and 130 calculate the predicted position of the 3D point using either inter-frame prediction or intra-frame prediction (S131). Next, the 3D data encoding devices 100 and 130 calculate the residual between the predicted value and the position (S132). Then, if the predicted value is calculated using inter-frame prediction (inter-frame prediction in S133), the 3D data encoding devices 100 and 130 perform arithmetic encoding on the residual using a first context (S134). Furthermore, if the predicted value is calculated using intra-frame prediction (intra-frame prediction in S133), the 3D data encoding devices 100 and 130 perform arithmetic encoding on the residual using a second context different from the first context (S135).
[0173] Therefore, this 3D data encoding method can encode the residuals in a context corresponding to the prediction method, which may improve encoding efficiency.
[0174] For example, the residual is represented by the first residual information (i.e., residual_is_zero) indicating whether the residual is zero.
[0175] For example, the residual is represented by a second residual information (i.e., residual_sign) indicating whether the residual is positive or negative.
[0176] For example, the residual is represented by third residual information (i.e., residual_bitcount_minus1) related to the number of bits of the residual.
[0177] For example, the three-dimensional data encoding devices 100 and 130 encode quantity information (i.e., num_virtual_node_gt0, gt1, minus2) representing the number of virtual points used to calculate the prediction value. The number of virtual points used to calculate the prediction value sometimes varies depending on the prediction method. Therefore, according to this method, by performing arithmetic encoding on the quantity information representing the number of virtual points corresponding to the prediction method, it is possible to improve encoding efficiency.
[0178] For example, the three-dimensional data encoding devices 100 and 130 have a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.
[0179] Furthermore, the three-dimensional data decoding device of this embodiment performs... Figure 11The process is as follows: The 3D data decoding device obtains the residual between the position of the 3D point and the predicted value calculated by either inter-frame prediction or intra-frame prediction (S141). Next, if the predicted value is calculated by inter-frame prediction (inter-frame prediction in S142), the 3D data decoding devices 120 and 150 perform arithmetic decoding on the residual using a first context (S143). Furthermore, if the predicted value is calculated by intra-frame prediction (intra-frame prediction in S142), the 3D data decoding devices 120 and 150 perform arithmetic decoding on the residual using a second context different from the first context (S144).
[0180] Therefore, this three-dimensional data decoding method can appropriately decode the residuals using the context corresponding to the prediction method.
[0181] For example, the residual is represented by the first residual information (i.e., residual_is_zero) indicating whether the residual is zero.
[0182] For example, the residual is represented by a second residual information (i.e., residual_sign) indicating whether the residual is positive or negative.
[0183] For example, the residual is represented by third residual information (i.e., residual_bitcount_minus1) related to the number of bits of the residual.
[0184] For example, the three-dimensional data decoding devices 120 and 150 decode quantity information (i.e., num_virtual_node_gt0, gt1, minus2) representing the number of virtual points used to calculate the prediction value. By performing arithmetic decoding on the quantity information representing the number of virtual points in accordance with the prediction method, the quantity information can be decoded appropriately.
[0185] For example, the three-dimensional data decoding devices 120 and 150 have a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.
[0186] (Modified Example)
[0187] In the above implementation, it is shown that the pred_mode, num_virtual_node_gt0, num_virtual_node_gt1, num_virtual_node_minus2, residual_is_zero, residual_sign, residual_bitcount_minus1, and residual_bit are switched according to whether the encoded object node is encoded by intra-frame prediction or inter-frame prediction. Figure 9The examples provided illustrate the context used for arithmetic coding of the information, but are not necessarily required to apply to all of the aforementioned information. For instance, for some of the information, context switching for arithmetic coding can be applied depending on whether it is intra-frame prediction or inter-frame prediction; for other information, a context shared by both intra-frame and inter-frame prediction can be used. In other words, the context used when arithmetically coding or decoding the predicted value of the radius or horizontal angle (a first element) in the position information—that is, the first residual between the first predicted value and the value of the first element—can differ depending on whether it is inter-frame or intra-frame prediction. Furthermore, the context used when arithmetically coding or decoding the predicted value of the elevation angle (a second element) in the position information—that is, the second residual between the second predicted value and the value of the second element—can be the same regardless of whether it is inter-frame or intra-frame prediction.
[0188] Therefore, for information that tends to present different values in intra-frame prediction and inter-frame prediction, the context used for arithmetic coding can be switched appropriately. For information that tends to present the same value in intra-frame prediction and inter-frame prediction, the context shared when used for arithmetic coding can be used, which can improve coding efficiency.
[0189] Specifically, when performing arithmetic coding on at least one of the residual information `residual_is_zero`, `residual_sign`, and `redisual_bitcount_minus1` related to the aforementioned j=0 (radius), j=1 (horizontal angle Φ), and j=2 (elevation angle θ or lidar scan line information), for the residual information related to radius and horizontal angle Φ, a context switch for arithmetic coding is applied according to intra-frame prediction or inter-frame prediction; for the residual information related to elevation angle θ or lidar scan line information, a context shared by intra-frame prediction and inter-frame prediction can be used. Here, the residual information related to radius and horizontal angle Φ is an example of the first residual, and the residual information related to elevation angle θ or lidar scan line information is an example of the second residual.
[0190] Therefore, while encoding the elevation angle θ or lidar scan line information via intra-frame prediction by prioritizing the encoding of the same elevation angle or lidar scan line, the radius and horizontal angle Φ can be encoded by selecting an appropriate context when switching between intra-frame and inter-frame prediction. Furthermore, lidar scan line information can also be calculated based on the laser position with the scan angle whose value is closest to the elevation angle θ.
[0191] Furthermore, the three-dimensional data encoding devices 100 and 130 in the modified examples can also perform... Figure 12The processing is as shown. The 3D data encoding devices 100 and 130 calculate a first predicted value for a first element of the position of a 3D point and a second predicted value for a second element of the position using either inter-frame prediction or intra-frame prediction (S151). Next, the 3D data encoding devices 100 and 130 calculate a first residual between the first predicted value and the value of the first element, and a second residual between the second predicted value and the value of the second element (S152). Next, if the first and second predicted values are calculated using inter-frame prediction (inter-frame prediction in S153), the 3D data encoding devices 100 and 130 perform arithmetic encoding on the first residual using a first context and on the second residual using a second context (S154). Furthermore, if the first and second predicted values are calculated using intra-frame prediction (intra-frame prediction in S153), the 3D data encoding devices 100 and 130 perform arithmetic encoding on the first residual using a third context different from the first context and on the second residual using the second context (S155).
[0192] Therefore, this three-dimensional data encoding method can encode the first residual of the first element in a context corresponding to the prediction method. Thus, by using a prediction method suitable for the first element and its corresponding context for encoding, it is possible to improve encoding efficiency.
[0193] For example, the first element is the radius or horizontal angle. Additionally, the second element is, for example, the elevation angle. The elevation angle sometimes tends to be the same in intra-frame prediction and inter-frame prediction; therefore, it is possible to improve coding efficiency by using arithmetic coding or arithmetic decoding with a shared context in intra-frame and inter-frame prediction.
[0194] For example, the three-dimensional data encoding devices 100 and 130 have a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.
[0195] Furthermore, the three-dimensional data decoding devices 120 and 150 in the modified examples can also perform... Figure 13The processing is as shown. The 3D data decoding devices 120 and 150 obtain, through inter-frame prediction and intra-frame prediction, a first predicted value for the first element of the position of a 3D point, a second predicted value for the second element of the position, a first residual between the first predicted value and the value of the first element, and a second residual between the second predicted value and the value of the second element (S161). Next, when the 3D data decoding devices 120 and 150 calculate the first and second predicted values through inter-frame prediction (inter-frame prediction in S162), they perform arithmetic decoding on the first residual using a first context and arithmetic decoding on the second residual using a second context different from the first context (S163). Furthermore, when the 3D data decoding devices 120 and 150 calculate the first and second predicted values through intra-frame prediction (intra-frame prediction in S162), they perform arithmetic encoding on the first residual using a third context different from the first context and arithmetic decoding on the second residual using the second context (S164).
[0196] Therefore, this three-dimensional data decoding method can appropriately decode the first residual of the first element using the context corresponding to the prediction method.
[0197] For example, the first element is the radius or horizontal angle. Additionally, the second element is the elevation angle. The elevation angle can be appropriately decoded by performing arithmetic decoding within a shared context during intra-frame and inter-frame prediction.
[0198] For example, the three-dimensional data decoding devices 120 and 150 have a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.
[0199] The above describes the three-dimensional data encoding apparatus and three-dimensional data decoding apparatus of the present disclosure, but the present disclosure is not limited to this embodiment.
[0200] Furthermore, the processing units included in the three-dimensional data encoding apparatus and the three-dimensional data decoding apparatus of the above embodiments are typically implemented as integrated circuits, i.e., LSIs. These can be implemented individually on a single chip, or they can be implemented in a manner that includes some or all of them on a single chip.
[0201] Furthermore, integrated circuitry is not limited to LSIs; it can also be achieved through dedicated circuits or general-purpose processors. Alternatively, FPGAs (Field Programmable Gate Arrays) that can be programmed after LSI fabrication, or reconfigurable processors that can reconfigure the connections or settings of the circuitry within the LSI, can be used.
[0202] Furthermore, in the above embodiments, each component can be constructed by dedicated hardware or implemented by executing software programs suitable for each component. Each component can also be implemented by a program execution unit such as a CPU or processor reading and executing software programs recorded on a recording medium such as a hard disk or semiconductor memory.
[0203] Furthermore, this disclosure can also be implemented as a three-dimensional data encoding method or a three-dimensional data decoding method executed by a three-dimensional data encoding device and a three-dimensional data decoding device.
[0204] Furthermore, the segmentation of functional blocks in the block diagram is one example. Multiple functional blocks can also be implemented as a single functional block, or a single functional block can be divided into multiple functional blocks, or some functions can be transferred to other functional blocks. Additionally, the functions of multiple functional blocks with similar capabilities can be processed in parallel or in a time-sharing manner by a single piece of hardware or software.
[0205] Furthermore, the order of the steps in the execution flowchart is illustrative for the purpose of explaining this disclosure, and may be in a different order than described above. Additionally, some of the steps described above may be executed simultaneously (in parallel) with other steps.
[0206] The above description illustrates one or more embodiments of a three-dimensional data encoding apparatus and a three-dimensional data decoding apparatus, but this disclosure is not limited to these embodiments. Various modifications conceived by those skilled in the art to these embodiments, and combinations of constituent elements from different embodiments, can be included within the scope of one or more technical solutions, provided they do not depart from the spirit of this disclosure.
[0207] Industrial availability
[0208] This disclosure can be applied to three-dimensional data encoding devices and three-dimensional data decoding devices.
[0209] Explanation of reference numerals in the attached figures
[0210] 100, 130 Three-Dimensional Data Encoding Device
[0211] Groups 101 and 132
[0212] Buffers 102, 105, 107, 123, 125, 133, 134, 136, 141, 152, 154
[0213] Quantitative Departments 103 and 142
[0214] 104, 122, 159 Inverse Quantization Department
[0215] Intra-frame prediction units of 106, 124, 135, and 153 frames
[0216] 108, 137 Sports Testing and Compensation Department
[0217] Inter-frame prediction units 109, 127, 138, and 156
[0218] Switching units 110, 128, 139, and 157
[0219] Entropy coding sections 111 and 143
[0220] 120 and 150 3D data decoding devices
[0221] Entropy Decoding Units 121 and 151
[0222] 126, 155 Sports Compensation Department
[0223] Coordinate transformation section 131, 140, 158
Claims
1. A three-dimensional data encoding method, wherein, The predicted position of a 3D point is calculated using either inter-frame prediction or intra-frame prediction. Calculate the residual between the predicted value and the location. When the predicted value is calculated through the inter-frame prediction, the residual is arithmetically encoded using the first context. When the predicted value is calculated through the intra-frame prediction, the residual is arithmetically encoded using a second context different from the first context. The residual is represented by third residual information related to the number of bits of the residual.
2. The three-dimensional data encoding method according to claim 1, wherein, The residual is represented by first residual information indicating whether the residual is 0.
3. The three-dimensional data encoding method according to claim 1 or 2, wherein, The residual is represented by second residual information indicating whether the residual is positive or negative.
4. The three-dimensional data encoding method according to claim 1 or 2, wherein, Furthermore, The quantity information representing the number of virtual points used to calculate the predicted value is arithmetically encoded based on the inter-frame prediction or the intra-frame prediction.
5. A three-dimensional data encoding method, wherein, The first predicted value of a first feature of the position of a 3D point and the second predicted value of a second feature of the position are calculated by one of the methods of inter-frame prediction and intra-frame prediction. Calculate the first residual between the first predicted value and the value of the first element, and the second residual between the second predicted value and the value of the second element. Having calculated the first predicted value and the second predicted value through the inter-frame prediction, the first residual is arithmetically encoded using a first context, and the second residual is arithmetically encoded using a second context. When the first predicted value and the second predicted value are calculated through the intra-frame prediction, the first residual is arithmetically encoded using a third context different from the first context, and the second residual is arithmetically encoded using the second context.
6. The three-dimensional data encoding method according to claim 5, wherein, The first element is either the radius or the horizontal angle. The second element is the elevation angle.
7. A three-dimensional data decoding method, wherein, Obtain the residual between the position of the 3D point and the predicted value calculated by either inter-frame prediction or intra-frame prediction. If the predicted value is calculated through the inter-frame prediction, the residual is arithmetically decoded using the first context. If the predicted value is calculated through the intra-frame prediction, the residual is arithmetically decoded using a second context different from the first context. The residual is represented by third residual information related to the number of bits of the residual.
8. The three-dimensional data decoding method according to claim 7, wherein, The residual is represented by first residual information indicating whether the residual is 0.
9. The three-dimensional data decoding method according to claim 7 or 8, wherein, The residual is represented by second residual information indicating whether the residual is positive or negative.
10. The three-dimensional data decoding method according to claim 7 or 8, wherein, Furthermore, The quantity information representing the number of virtual points used to calculate the predicted value is arithmetically decoded based on the inter-frame prediction or the intra-frame prediction.
11. A three-dimensional data decoding method, wherein, By employing either inter-frame prediction or intra-frame prediction, a first predicted value for a first feature of the 3D point's position, a second predicted value for a second feature of the position, a first residual between the first predicted value and the value of the first feature, and a second residual between the second predicted value and the value of the second feature are obtained. Having calculated the first predicted value and the second predicted value through the inter-frame prediction, the first residual is arithmetically decoded using the first context, and the second residual is arithmetically decoded using the second context. When the first predicted value and the second predicted value are calculated through the intra-frame prediction, the first residual is arithmetically encoded using a third context different from the first context, and the second residual is arithmetically decoded using the second context.
12. The three-dimensional data decoding method according to claim 11, wherein, The first element is either the radius or the horizontal angle. The second element is the elevation angle.
13. A three-dimensional data encoding device, wherein, have: processor; as well as memory, The processor uses the memory. The predicted position of a 3D point is calculated using either inter-frame prediction or intra-frame prediction. Calculate the residual between the predicted value and the location. When the predicted value is calculated through the inter-frame prediction, the residual is arithmetically encoded using the first context. When the predicted value is calculated through the intra-frame prediction, the residual is arithmetically encoded using a second context different from the first context. The residual is represented by third residual information related to the number of bits of the residual.
14. A three-dimensional data encoding device, wherein, have: processor; as well as memory, The processor uses the memory. The first predicted value of a first feature of the position of a 3D point and the second predicted value of a second feature of the position are calculated by one of the methods of inter-frame prediction and intra-frame prediction. Calculate the first residual between the first predicted value and the value of the first element, and the second residual between the second predicted value and the value of the second element. Having calculated the first predicted value and the second predicted value through the inter-frame prediction, the first residual is arithmetically encoded using a first context, and the second residual is arithmetically encoded using a second context. When the first predicted value and the second predicted value are calculated through the intra-frame prediction, the first residual is arithmetically encoded using a third context different from the first context, and the second residual is arithmetically encoded using the second context.
15. A three-dimensional data decoding device, wherein, have: Processor; and memory, The processor uses the memory. Obtain the residual between the position of the 3D point and the predicted value calculated by either inter-frame prediction or intra-frame prediction. If the predicted value is calculated through the inter-frame prediction, the residual is arithmetically decoded using the first context. If the predicted value is calculated through the intra-frame prediction, the residual is arithmetically decoded using a second context different from the first context. The residual is represented by third residual information related to the number of bits of the residual.
16. A three-dimensional data decoding device, wherein, have: Processor; and memory, The processor uses the memory. By employing either inter-frame prediction or intra-frame prediction, a first predicted value for a first feature of the 3D point's position, a second predicted value for a second feature of the position, a first residual between the first predicted value and the value of the first feature, and a second residual between the second predicted value and the value of the second feature are obtained. Having calculated the first predicted value and the second predicted value through the inter-frame prediction, the first residual is arithmetically decoded using a first context, and the second residual is arithmetically decoded using a second context different from the first context. When the first predicted value and the second predicted value are calculated through the intra-frame prediction, the first residual is arithmetically encoded using a third context different from the first context, and the second residual is arithmetically decoded using the second context.