Point cloud encoding method, point cloud decoding method, encoder, decoder, and computer storage medium
By allowing adaptive changes in the coordinate processing order and encoding the axial order index in the bitstream, the efficiency of point cloud encoding and decoding is enhanced, overcoming the limitations of fixed-order processing in RAHT.
Patent Information
- Application Number
- JP2024079614
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-07-03
- Filing Date
- 2024-05-15
- Publication Date
- 2025-03-25
- Estimated Expiration
- 2040-05-15
AI Technical Summary
Current point cloud encoding methods, specifically when using Regional Adaptive Hierarchical Transform (RAHT), suffer from low conversion efficiency due to fixed processing orders, which reduces the efficiency of encoding and decoding.
Adaptive changes to the coordinate processing order in the encoding and decoding process are implemented by determining and encoding the axial order index, allowing for flexible processing orders indicated in the bitstream, thereby enhancing the conversion efficiency of RAHT.
This approach significantly improves the efficiency of point cloud encoding and decoding by fully realizing the conversion efficiency of RAHT, addressing the issue of low conversion efficiency in fixed-order processing.
Smart Images

Figure 0007651043000028 
Figure 0007651043000029 
Figure 0007651043000030
Abstract
Description
[Technical field]
[0001] [Reference to Related Applications] This application claims priority to U.S. patent application Ser. No. 62 / 870,553, filed July 3, 2019, entitled "Method, Apparatus, and System for Encoding and Decoding Video Data," the entire contents of which are incorporated herein by reference.
[0002] FIELD OF THE DISCLOSURE The present invention relates to the field of video encoding and decoding, and in particular to a point cloud encoding method, a point cloud decoding method, an encoder, a decoder and a computer storage medium. [Background technology]
[0003] In the geometry-based point cloud compression (G-PCC) encoder framework, the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. After the encoding of the geometric information is completed, the geometric information is reconstructed. The encoding of the attribute information depends on the reconstructed geometric information.
[0004] Currently, the coding of attribute information mainly targets the coding of color information. First, the color information is converted from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, and the uncoded attribute information is matched with the reconstructed geometric information. There are mainly two transformation methods for coding color information. One is the distance-based lifting transform that depends on the level of detail (LOD) division. The other is the Regional Adaptive hierarchical Transform (RAHT) that is performed directly. Through these two methods, the color information is converted from the spatial domain to the frequency domain, and the high-frequency and low-frequency coefficients are obtained through the transformation. Finally, the coefficients are quantized and coded to generate a binary bitstream.
[0005] However, when performing RAHT, performing RAHT in the same fixed order for each point group does not fully utilize the conversion efficiency of RAHT. Therefore, there is a problem that the conversion efficiency is low, which reduces the efficiency of encoding and decoding. Summary of the Invention
[0006] The embodiments of the present invention provide a point cloud encoding method, a point cloud decoding method, an encoder, a decoder, and a computer storage medium, which can adaptively change the coordinate processing order in the encoding and decoding process, and fully utilize the transformation efficiency of RAHT, so as to solve the problem of low transformation efficiency and greatly improve the efficiency of encoding and decoding.
[0007] The technical solutions of the embodiments of the present invention can be realized as follows.
[0008] In a first aspect, an embodiment of the present invention provides a point cloud encoding method, which is applied to an encoder, and includes: A processing order of the point cloud data in the point cloud encoding process is determined. The processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. A coordinate axis order index corresponding to the processing order is determined. The axis order index is encoded and the encoded bits are written to the bitstream. The point cloud data is processed based on the processing order to obtain the point cloud data to be encoded. The point cloud data to be encoded is encoded, and the encoded bits are written to a bitstream.
[0009] In a second aspect, an embodiment of the present invention provides a point cloud decoding method, which is applied to a decoder, including: Parse the bitstream to get the axis order index. According to the coordinate axis order index, a processing order of the point cloud data in the point cloud decoding process is determined, where the processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The bit stream is analyzed to obtain restored data of the point cloud data. Based on the processing order, the position of the coordinate data of the point cloud data in the storage unit of the restored data is determined.
[0010] In a third aspect, an embodiment of the present invention provides an encoder, the encoder comprising a first determining part, an encoding part and a transform part. The first determining part is configured to determine a processing order of the point cloud data in a point cloud encoding process, and determine a coordinate axis order index corresponding to the processing order, where the processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The encoding portion is configured to encode the coordinate axis order index and write the encoded bits to a bitstream. The transform portion is configured to process the point cloud data based on a processing order to obtain the point cloud data to be encoded. The encoding portion is further configured to encode the point cloud data to be encoded and write the encoded bits into a bitstream.
[0011] In a fourth aspect, embodiments of the present invention provide an encoder, the encoder comprising: a first processor; and a first memory storing instructions executable by the first processor, the instructions, when executed by the first processor, performing the point cloud encoding method.
[0012] In a fifth aspect, embodiments of the present invention provide a decoder, the decoder comprising an analysis portion and a second determination portion. The parsing portion is configured to parse the bitstream to obtain an axis order index. The second determining part is configured to determine a processing order of the point cloud data in the point cloud decoding process according to the coordinate axis order index, the processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The parsing portion is further configured to parse the bitstream to obtain a reconstruction of the point cloud data. The second determining portion is further configured to determine a position of the coordinate data of the point cloud data in the storage unit of the restored data based on the processing order.
[0013] In a sixth aspect, embodiments of the present invention provide a decoder, the decoder comprising a second processor and a second memory storing instructions executable by the second processor, the instructions being executed by the second processor to perform the point cloud decoding method.
[0014] In a seventh aspect, an embodiment of the present invention provides a computer readable storage medium storing a computer program which, when executed by a first processor, performs a point cloud encoding method, or, when executed by a second processor, performs a point cloud decoding method.
[0015] The embodiments of the present invention provide a point cloud encoding method, a point cloud decoding method, an encoder, a decoder, and a computer storage medium. An encoder determines a processing order of point cloud data in a point cloud encoding process. The processing order indicates a coordinate axis processing order of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. An encoder determines a coordinate axis order index corresponding to the processing order. The encoder encodes the coordinate axis order index and writes the encoded bits into a bit stream. The encoder processes the point cloud data according to the processing order to obtain the point cloud data to be encoded. The encoder encodes the point cloud data to be encoded and writes the encoded bits into a bit stream. A decoder analyzes the bit stream to obtain a coordinate axis order index. The decoder determines a processing order of point cloud data in a point cloud decoding process according to the coordinate axis order index. The processing order indicates a coordinate axis processing order of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The decoder analyzes the bit stream to obtain restored data of the point cloud data. The decoder determines the position of the coordinate data of the point cloud data in the storage unit of the restored data based on the processing order. That is, in the embodiment of the present invention, on the encoding side, the encoder first determines the processing order of the transformation process corresponding to the point cloud data, and while executing RAHT based on the processing order, the encoder can write the processing order into the bit stream and send it to the decoder. On the decoding side, the decoder can analyze the bit stream to obtain the processing order of the transformation process corresponding to the point cloud data, and execute RAHT based on the processing order. In this way, in the point cloud encoding method and point cloud decoding method according to the present invention, a fixed order is not used to perform RAHT on all or part of the point cloud data, but the processing order is indicated using syntax elements in the bit stream. This allows the coordinate processing order in the encoding and decoding process to be adaptively changed, and the conversion efficiency of RAHT can be fully exerted, solving the problem of low conversion efficiency and greatly improving the efficiency of encoding and decoding. [Brief description of the drawings]
[0016] [Figure 1] FIG. 1 is a block diagram illustrating the process of geometry-based point cloud compression (G-PCC) encoding. [Diagram 2] FIG. 2 is a block diagram illustrating the process of G-PCC decoding. [Diagram 3] FIG. 3 is a schematic diagram 1 illustrating spatial coding. [Figure 4] FIG. 4 is a schematic diagram 2 illustrating spatial coding. [Diagram 5] FIG. 5 is a schematic diagram 3 illustrating spatial coding. [Figure 6] FIG. 6 is a schematic diagram 4 illustrating spatial coding. [Figure 7] FIG. 7 is a schematic diagram 1 showing the Regional Adaptive hierarchical Transform (RAHT). [Figure 8] FIG. 8 is a schematic diagram showing RAHT. [Figure 9] FIG. 9 is a schematic diagram 3 showing RAHT. [Figure 10] FIG. 10 is a schematic diagram 1 showing the realization process of point cloud encoding. [Figure 11] FIG. 11 is a schematic diagram 2 showing the realization process of point cloud encoding. [Figure 12] FIG. 12 is a schematic diagram 1 showing the realization process of point cloud decoding. [Figure 13] FIG. 13 is a schematic diagram 2 showing the realization process of point cloud decoding. [Figure 14] FIG. 14 is a schematic diagram 1 showing the structure of the encoder. [Figure 15] FIG. 15 is a schematic diagram 2 showing the structure of the encoder. [Figure 16] FIG. 16 is a schematic diagram 1 showing the structure of the decoder. [Figure 17] FIG. 17 is a schematic diagram 2 showing the structure of the decoder. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] In order to make the characteristics and technical contents of the embodiments of the present invention more clearly understood, the implementation of the embodiments of the present invention will be described in detail below with reference to the accompanying drawings. The accompanying drawings are used for explanation only and are not to be construed as limiting the present invention.
[0018] In an embodiment of the present invention, in a geometry-based point cloud compression (G-PCC) encoder framework, the point cloud of an input 3D image model is divided into slices, and then each slice is encoded independently.
[0019] Figure 1 is a block diagram showing the process of geometry-based point cloud compression (G-PCC) encoding. As shown in the block diagram of the process of G-PCC encoding in Figure 1, it is applied to a point cloud encoder. For the point cloud data to be encoded, first, slice division is used to divide the point cloud data into multiple slices. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. In the process of encoding the geometric information, coordinate transformation is performed on the geometric information so that all the points are contained in the bounding box. Then, quantification is performed, which mainly plays the role of scaling. Because the geometric information of some point clouds becomes the same due to the rounding of quantification, it is determined whether to remove duplicate points based on parameters. The process of quantification and removing duplicate points is also called the voxelization process. Then, octree division is performed on the bounding box. In the process of encoding geometric information based on octree, the bounding box is divided equally into 8 sub-cubes, and the non-empty sub-cubes (containing the points in the point cloud) are divided into 8 equal parts and so on until the leaf node obtained by the division is a 1×1×1 unit cube. Arithmetic coding is performed on the nodes in the leaf node to generate a binary geometry bitstream, i.e., a geometry code stream. In the process of encoding geometric information based on triangle soup (trisoup), octree division is performed first. Unlike the encoding of geometric information based on octree, the trisoup does not need to divide the point cloud step by step into unit cubes with side length 1×1×1, but stops the division after dividing the point cloud into blocks with side length W. Based on the surface formed by the distribution of the points in each block, a maximum of 12 vertices are obtained that are generated by both the surface and the 12 edges of the block.The intersections are then arithmetically coded (surface fitting based on the intersections) to generate a binary geometry bitstream, i.e. a geometry codestream. The intersections are also used to realize geometry reconstruction. The reconstructed geometry information is then used to encode the attribute information of the point cloud.
[0020] In the attribute information encoding process, after the encoding of the geometric information is completed and the geometric information is reconstructed, color conversion is performed. That is, the color information (i.e., attribute information) is converted from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, and the uncoded attribute information and the reconstructed geometric information are made to correspond to each other. The encoding of attribute information mainly targets color information. There are mainly two conversion methods in the color information encoding process. One is a distance-based lifting transform that depends on the level of detail (LOD) division. The other is a Regional Adaptive hierarchical Transform (RAHT) that is performed directly. Through these two methods, the color information is converted from the spatial domain to the frequency domain, and the high-frequency and low-frequency coefficients are obtained through the transformation, and finally the coefficients are quantized (i.e., quantized coefficients). Finally, the geometry coded data that has undergone octree division and surface fitting and the quantized coefficient processed attribute coded data are sliced and synthesized, and the intersection coordinates of each block are coded in sequence (i.e., arithmetic coding) to generate a binary attribute bit stream, i.e., an attribute code stream.
[0021] FIG. 2 is a block diagram showing the process of G-PCC decoding. As shown in the block diagram of the process of G-PCC decoding in FIG. 2, it is applied to a point cloud decoder. For the obtained binary bit stream, firstly, the geometry bit stream and the attribute bit stream in the binary bit stream are decoded independently. When the geometry bit stream is decoded, the geometric information of the point cloud is obtained through arithmetic decoding-octree synthesis-surface fitting-geometry reconstruction-inverse coordinate transformation. When the attribute bit stream is decoded, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-lifting inverse transform based on LOD or inverse transform based on RAHT-inverse color transformation. Based on the geometric information and the attribute information, the 3D image model of the point cloud data to be encoded is restored.
[0022] JPEG0007651043000001.jpg121160
[0023] JPEG0007651043000002.jpg58160
[0024] JPEG0007651043000003.jpg33157
[0025] FIG. 3 is a schematic diagram 1 showing spatial coding. FIG. 4 is a schematic diagram 2 showing spatial coding. FIG. 3 and FIG. 4 are combined for explanation. As an example, the permutation order from the most significant bit to the least significant bit is z, y, x (x|(y<<1)|(z<<2)).
[0026] Figure 3 shows the spatial coding of each pixel of an 8*8 image from 000000 to 1111111. We use one-dimensional binary numbers to code the position coordinates with x, y values from 0 to 7. We interleave the binary coordinate values to obtain a binary Z value map. We connect the z-shapes along the numerical direction to generate a recursive z-shape curve. At each position in the figure, we place the z-values in the order of connection. In fact, Figure 3 is generated recursively in the Z direction. It is increased by 2 bits each time, from 00 to 11 (one z for the whole figure), then from 0000 to 1111 (one z for each point of the previous z), then from 00000000 to 111111 (one z for each point of the previous z), and so on.
[0027] By way of example, FIG. 4 shows spatial encoding orders of 2×2, 4×4, 8×8, and 16×16, from which it can be seen that the encoding order of the Morton code is implemented according to the spatial z-order.
[0028] Fig. 5 is a schematic diagram 3 showing spatial coding. Fig. 6 is a schematic diagram 4 showing spatial coding. Fig. 5 and Fig. 6 are extended to three dimensions. Fig. 5 and Fig. 6 show a recursive process, which realizes coordinate interleaving. The overall process is to keep distributing the coordinate values: x|(y<<1)|(z<<2). That is, we distribute each coordinate value and interleave it sequentially: first z, then y, and finally x. The decoding process is an aggregation process.
[0029] RAHT (Regional Adaptive hierarchical Transform) is performed based on a hierarchical structure obtained by performing octree division on point cloud data. Transformation is performed hierarchically from the bottom layer of the octree. Figure 7 is a schematic diagram 1 showing RAHT. As shown in Figure 7, after the octree division is completed, a voxel block 1 is obtained (that is, in the geometry in Figure 7 where the three color depths are alternated, each square represents a point in the point cloud). RAHT is performed from the bottom layer, and the transformation order is XYZ order as an example. As shown in Figure 7, RAHT is first performed along the X direction. If there are adjacent voxel blocks in the X direction, RAHT is performed on them to obtain the weighted average (DC coefficient) and residual (AC coefficient) of the attribute values of the two adjacent points. The obtained DC coefficient exists as attribute information of the voxel block 2 of the parent node, and RAHT is performed in the next layer. The AC coefficient is retained and used for the final encoding. If there are no adjacent points, the attribute values of the voxel block are sent directly to the parent node in the second layer. In the second layer, RAHT is performed along the Y direction. If there are adjacent voxel blocks in the Y direction, RAHT is performed on them to obtain the weighted average (DC coefficient) and residual (AC coefficient) of the attribute values of the two adjacent points. Then, in the third layer, RAHT is performed along the Z direction to obtain voxel block 3 of the parent node with three alternating color depths as a child node in the next layer of the octree. RAHT is repeated along the x, y, and Z directions until there is only one parent node in the entire point cloud.
[0030] In fact, when traversing points in a point cloud, we use the permuted Morton code of the point cloud, i.e., we can determine whether two child nodes are under the same parent node by whether their values are equal after shifting the Morton code one bit to the right.
[0031] JPEG0007651043000004.jpg38159
[0032] JPEG0007651043000005.jpg59157
[0033] JPEG0007651043000006.jpg27156
[0034] In an embodiment of the present invention, the specific steps of RAHT are as follows:
[0035] (1) The attribute values of the points in the point cloud are taken as the DC coefficients of the first layer, and their weights are all set to 1, and RAHT is started.
[0036] (2) In this layer, the DC and AC coefficients are written to the parent node in the parent layer of the next layer based on the corresponding index. If there is no AC coefficient, no writing is done.
[0037] (3) According to each index sorted based on the Morton code, traverse the DC coefficient corresponding to the index.
[0038] (4) Shift the Morton codes corresponding to all DC coefficients one bit to the right, where the Morton code of each DC coefficient represents the Morton code of its parent node.
[0039] (5) Figure 8 is a schematic diagram 2 showing RAHT. As shown in Figure 8, determine whether the Morton codes of two DC coefficients are the same. If they are the same, it indicates that they are under the same parent node. Perform RAHT on them, write the obtained DC coefficient to the DC coefficient of the parent node of the next layer, write the AC coefficient to the last DC coefficient of the next layer, and assign the sum weight of the two DC coefficients to the DC coefficient of the parent node. If they are different, write this DC coefficient and its weight to the next layer directly.
[0040] (6) Repeat (2) to (5) until there is only one DC coefficient in a layer.
[0041] (7) Finally, quantize the DC coefficient and encode the DC and AC coefficients of the attribute value of this layer.
[0042] Correspondingly, in the decoder block diagram, the transformation order of the RAHT needs to be used for the inverse RAHT.
[0043] The RAHT in the decryption process will now be described.
[0044] The RAHT in the decoding process is the inverse transform of the RAHT in the encoding process. Similar to the encoding process, before performing the inverse transform, we first calculate the Morton code of each point in the point cloud. After obtaining the Morton code M of each point, we sort the points in the point cloud in ascending order and set the weight of each point to 1. Inverse RAHT traverses all the points in the point cloud according to the sorted order of the Morton codes.
[0045] RAHT is performed layer by layer, so we determine the adjacent points in the point cloud from the bottom layer, layer by layer, and perform RAHT on the attribute values based on the weights. Inverse RAHT starts from the top layer and works from top to bottom. Therefore, we need to obtain the weight information of each layer before performing inverse RAHT.
[0046] Before performing the inverse RAHT, the encoding side can use the obtained Morton code information to perform RAHT on each layer starting from the bottom layer to determine the adjacent nodes, and obtain the weight information of each layer and the corresponding positions of the AC coefficients. Each time RAHT is performed on each layer, the corresponding Morton code is shifted one bit to the left. The weight information and the Morton code information corresponding to the nodes of each layer are recorded in a buffer for later use.
[0047] In the inverse RAHT, adjacent nodes are determined based on the Morton code information of each layer starting from the top layer. Inverse RAHT is performed using the acquired weight information and the attribute information acquired by decoding. Figure 9 is a schematic diagram 3 showing RAHT. As shown in Figure 9, inverse RAHT corresponds to the process from the (k+1)th layer to the kth layer. When the adjacent nodes are determined, the inverse transform of RAHT is performed using the traversed DC coefficient and the corresponding AC coefficient.
[0048] JPEG0007651043000007.jpg30156
[0049] Specifically, when performing RAHT for attribute information of a point cloud layer by layer, RAHT is repeatedly performed for each node along three axes in a fixed order in each layer. However, performing RAHT in the same fixed order for every point cloud does not fully utilize the conversion efficiency of RAHT. For example, currently, in G-PCC, the commonly used fixed order is ZYX, but there are other possible conversion orders such as XYZ. There is a problem in performing RAHT using the ZYX order for nodes in a point cloud, which is that the conversion efficiency is low. This reduces the efficiency of encoding and decoding.
[0050] In order to overcome the above drawbacks, the embodiments of the present invention provide a point cloud encoding method, a point cloud decoding method, an encoder, a decoder, and a computer storage medium. On the encoding side, the encoder first determines the processing order of the transformation process corresponding to the point cloud data, and can write the processing order into a bit stream while performing RAHT based on the processing order and send it to the decoder. On the decoding side, the decoder analyzes the bit stream to obtain the processing order of the transformation process corresponding to the point cloud data, and performs RAHT based on the processing order. In this way, the point cloud encoding method and the point cloud decoding method according to the present invention do not use a fixed order to perform RAHT on all or part of the point cloud data, but indicate the processing order using a syntax element in the bit stream. This allows the coordinate processing order in the encoding and decoding process to be adaptively changed, and the conversion efficiency of RAHT can be fully exerted, solving the problem of low conversion efficiency and greatly improving the efficiency of encoding and decoding.
[0051] In the present invention, the point cloud encoding method in the embodiment of the present invention can be applied to the RAHT as shown in Fig. 1. Correspondingly, the point cloud decoding method in the embodiment of the present invention can be applied to the RAHT as shown in Fig. 2. That is, the point cloud encoding method and the point cloud decoding method in the embodiment of the present invention can be applied to the video encoding system, can also be applied to the video decoding system, and can be applied to both the video encoding system and the video decoding system at the same time. The embodiment of the present invention is not particularly limited.
[0052] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the technical solutions in the embodiments of the present invention will be described clearly and completely with reference to the drawings in the embodiments of the present invention.
[0053] In one embodiment of the present invention, a point cloud encoding method is provided. Figure 10 is a schematic diagram 1 showing the realization process of point cloud encoding. As shown in Figure 10, in the embodiment of the present invention, the method in which an encoder encodes point cloud data includes the following steps:
[0054] Step 101: Determine a processing order of point cloud data in a point cloud encoding process. The processing order indicates a processing order of coordinate axes of three-dimensional coordinates of the point cloud data. The point cloud data is all or a part of the data in the point cloud.
[0055] In an embodiment of the present invention, the encoder can first determine the processing order of the point cloud data in the point cloud encoding process. The point cloud data is all or a part of the data in the point cloud. The processing order can be used to indicate the coordinate axis processing order of the three-dimensional coordinates of the point cloud data.
[0056] In the embodiment of the present invention, the point cloud data can be all the data in the point cloud. Correspondingly, determining the processing order of the point cloud data is determining the processing order of all the data in the point cloud. In other words, in the present invention, for each point in the point cloud, the encoder can perform the transform processing in the same processing order.
[0057] Furthermore, in the embodiment of the present invention, the encoder can divide the point cloud to obtain a plurality of slices corresponding to the point cloud. Therefore, the point cloud data can also be a part of the data in the point cloud. That is, the point cloud data can be the data of any one slice in the point cloud. Correspondingly, determining the processing order of the point cloud data is determining the processing order of the data of any one slice in the point cloud. That is, in the present invention, for each point of the same slice in the point cloud, the encoder can use the same processing order to perform the transform processing.
[0058] In the embodiment of the present invention, the processing order is the transformation order used when performing RAHT. Since each point in the point cloud is three-dimensional point cloud data of X, Y, and Z, the processing order indicates the order in which transformation is performed sequentially on the three coordinate axes of X, Y, and Z.
[0059] Exemplarily, in an embodiment of the present invention, when performing RAHT on attribute information of a point cloud layer by layer, RAHT is repeatedly performed on each node along three axes based on the processing order in each layer. For example, if the processing order is XYZ order, the encoder can perform RAHT on the nodes in the point cloud first on the X axis, then on the Y axis, and finally on the Z axis. If the processing order is YZX order, the encoder can perform RAHT on the nodes in the point cloud first on the Y axis, then on the Z axis, and finally on the X axis.
[0060] In the embodiment of the present invention, since each point in the point cloud is three-dimensional point cloud data of X, Y, and Z, the order in which the encoder performs the RAHT can include six different combinations, i.e., the processing order can include six different transformation orders.
[0061] Furthermore, in an embodiment of the present invention, the processing order of the point cloud data can be any one of ZYX order, XYZ order, XZY order, YZX order, ZXY order, and YXZ order, where X, Y, and Z are coordinate axes of the three-dimensional coordinates of the point cloud data.
[0062] It should be noted that in an embodiment of the present invention, when the encoder determines the processing order of the point cloud data in the point cloud encoding process, the encoder may determine the processing order based on the Morton codes of the nodes in the point cloud data.
[0063] Specifically, in an embodiment of the present invention, the encoder may first calculate the Morton code of each node in the point cloud data, then sort the nodes in the point cloud data according to ascending order of the Morton codes, and finally traverse each node in the point cloud data in the sorted order.
[0064] Step 102: determine the coordinate axis order index corresponding to the processing order.
[0065] In an embodiment of the present invention, after determining the processing order of the point cloud data in the point cloud encoding process, the encoder can further determine a coordinate axis order index (ie, index number) corresponding to the processing order.
[0066] For different processing orders, the encoder can set different coordinate axis order indices. Correspondingly, the coordinate axis order index can include six different values because the processing order can be any of six different transform orders.
[0067] Furthermore, in an embodiment of the present invention, when the encoder determines the coordinate axis order index corresponding to the processing order, the encoder can set the value of the coordinate axis order index corresponding to the processing order based on a preset correspondence table between indexes and processing orders.
[0068] Specifically, in the present invention, Table 1 is a correspondence table 1 between preset indexes and processing orders. As shown in Table 1, for different processing orders, the corresponding coordinate axis order index can be determined by checking the correspondence table between preset indexes and processing orders. [Table 1]
[0069] From Table 1 above, it can be seen that in the present invention, the processing orders and the coordinate axis order indexes do not correspond one-to-one. Among the six transformation orders of RAHT, the ZYX order corresponds to two different coordinate axis order indexes. Specifically, the ZYX order corresponds to index 0 and index 4, respectively. In addition, the XYZ order corresponds to two different coordinate axis order indexes. Specifically, the XYZ order corresponds to index 1 and index 7, respectively. Each of the four RAHT orders other than the ZYX order and the XYZ order corresponds to a unique coordinate axis order index. The XZY order corresponds to index 2, the YZX order corresponds to index 3, the ZXY order corresponds to index 5, and the YXZ order corresponds to index 6.
[0070] For example, in the present invention, when the encoder sets the value of the coordinate axis order index corresponding to the processing order based on a preset correspondence table between indexes and processing orders, if the processing order of the point cloud data is ZYX order, the encoder may set the value of the coordinate axis order index to 0 or 4. If the processing order of the point cloud data is XYZ order, the encoder may set the value of the coordinate axis order index to 1 or 7. If the processing order of the point cloud data is XZY order, the encoder may set the value of the coordinate axis order index to 2. If the processing order of the point cloud data is YZX order, the encoder may set the value of the coordinate axis order index to 3. If the processing order of the point cloud data is ZXY order, the encoder may set the value of the coordinate axis order index to 5. If the processing order of the point cloud data is YXZ order, the encoder may set the value of the coordinate axis order index to 6.
[0071] It should be noted that in the present invention, G-PCC has no specific concept of X, Y, Z coordinate axes. In general, the coordinate axis processing order can be expressed as 0, 1, 2 based on the X, Y, Z coordinate axes. For example, if the processing order is the XYZ order, it can be expressed as 0-1-2.
[0072] Based on the above Table 1, Table 2 is the correspondence table 2 between preset indexes and processing orders. As shown in Table 2, for different processing orders, the corresponding coordinate axis order index can be determined by checking the correspondence table between preset indexes and processing orders. [Table 2]
[0073] For example, in the present invention, when an encoder sets a value of a coordinate axis order index corresponding to a processing order based on a preset correspondence table between indexes and processing orders, if the processing order of point cloud data is ZYX order, i.e., if the processing order is 2-1-0, the encoder may set the value of the coordinate axis order index to 0 or 4. Also, if the processing order of point cloud data is XYZ order, i.e., if the processing order is 0-1-2, the encoder may set the value of the coordinate axis order index to 1 or 7. Also, if the processing order of point cloud data is XZY order, i.e., if the processing order is 0-2-1, the encoder may set the value of the coordinate axis order index to 2. If the processing order of point cloud data is YZX order, i.e., if the processing order is 2-0-1, the encoder may set the value of the coordinate axis order index to 3. If the processing order of point cloud data is ZXY order, i.e., if the processing order is 1-2-0, the encoder may set the value of the coordinate axis order index to 5. Also, if the processing order of the point cloud data is YXZ order, that is, if the processing order is indicated as 1-0-2, the encoder can set the value of the coordinate axis order index to 6.
[0074] In the present invention, the coordinate axis order index can be expressed by the syntax axis_coding_order. That is, the processing order of the three coordinate axes, X, Y, and Z, can be specified by the syntax axis_coding_order. Specifically, based on Table 2 above, the axis_coding_order based on the G-PCC standard can be used to process data in the RecPic[pointIdx][axis] buffer. For example, when the value of axis_coding_order is equal to 0, that is, when the processing order is ZYX, if the value of axis is equal to 0, data of the Z axis is stored in RecPic[pointIdx][0], if the value of axis is equal to 1, data of the Y axis is stored in RecPic[pointIdx][1], and if the value of axis is equal to 2, data of the X axis is stored in RecPic[pointIdx][2].
[0075] Step 103, encode the coordinate axis order index and write the encoded bits into the bitstream.
[0076] In an embodiment of the present invention, after determining the coordinate axis order index corresponding to the processing order, the encoder can further encode the coordinate axis order index and write the encoded bits into the bitstream.
[0077] Furthermore, in an embodiment of the present invention, when the encoder encodes the coordinate axis order index and writes the encoded bits to the bitstream, the encoder may first encode the coordinate axis order index using fixed-length encoding, determine the encoded bits, and then write the encoded bits to the bitstream.
[0078] In the present invention, fixed-length coding means that any value (which may have different probabilities) of the output symbol string of the source is coded into an output codeword of the same length without utilizing the statistical properties of the source. After coding the coordinate axis order index using fixed-length coding, the encoder obtains fixed-length codes of the same length.
[0079] Furthermore, in an embodiment of the present invention, when the encoder encodes the coordinate axis order index and writes the encoded bits to the bitstream, the encoder can write the encoded bits to the bitstream corresponding to a parameter set data unit, where the parameter set data unit includes parameters used to decode the point cloud data.
[0080] In an embodiment of the present invention, the parameter set may be a sequence-layer parameter set.
[0081] Furthermore, in an embodiment of the present invention, the parameter set may be a sequence parameter set.
[0082] In an embodiment of the present invention, the data unit of the parameter set may include attribute information of the point cloud data, which is a scalar attribute or a vector attribute associated with a point in the point cloud data.
[0083] In an embodiment of the present invention, the parameter set data unit may further include geometric information of the point cloud data, the geometric information being Cartesian coordinates associated with points in the point cloud data.
[0084] Furthermore, in an embodiment of the present invention, when the encoder encodes the coordinate axis order index and writes the encoded bits to the bitstream, the encoder may write the encoded bits to the data unit in which the auxiliary information is located in the bitstream.
[0085] Exemplarily, in an embodiment of the present invention, the auxiliary information may be video usability information (VUI).
[0086] Video usability information provides additional information to the corresponding bitstream so that users can apply it in a wider range. For example, in the bitstream constraint information, the video usability information specifies: (1) whether the motion crosses the picture boundary, (2) the maximum number of bytes for each picture, (3) the maximum number of bits for each macroblock, (4) the maximum length of the motion vector (horizontal and vertical), (5) the number of frames to be reordered, and (6) the maximum decoding frame buffer size. When the decoder sees this information, it can customize the decoding operation based on the stricter constraints instead of using the "level" information to set the decoding requirements (which are generally higher than the actual requirements of the bitstream).
[0087] Exemplarily, in an embodiment of the present invention, the auxiliary information can be supplemental enhancement information (SEI). SEI is a concept belonging to the bitstream category, which provides a way to add information to a video bitstream, and is one of the features of the H.264 / H.265 video compression standard.
[0088] The SEI is not a required option for the decoding process, but it may be useful for the decoding process (error tolerance, error correction) and can be integrated into the video bitstream, i.e., when an encoder outputs a video bitstream, it may not provide the SEI, or the video transmission process, de-capsulation, and decoding process may discard the SEI for some reason.
[0089] In an embodiment of the present invention, when the encoder encodes the coordinate axis order index and writes the encoded bits to a bitstream, the encoder can write the encoded bits to a transmission stream including point cloud encoding data corresponding to the point cloud data, i.e., the bitstream can be a transmission stream including point cloud encoding data.
[0090] Furthermore, in an embodiment of the present invention, when the encoder encodes the coordinate axis order index and writes the encoded bits to a bitstream, the encoder can write the encoded bits to a media file including point cloud encoded data corresponding to the point cloud data, i.e., the bitstream can be a media file including point cloud encoded data.
[0091] In other words, in the present invention, the coordinate axis order index axis_coding_order can be encoded in auxiliary information (e.g., VUI) of a sequence parameter set (SPS), can be encoded in data units of other auxiliary information (e.g., SEI) of point cloud data, and can further be encoded in units of auxiliary information in the format of a transmission stream or file.
[0092] Step 104: Process the point cloud data according to the processing order to obtain the point cloud data to be encoded.
[0093] In an embodiment of the present invention, after determining the processing order of the point cloud data in the point cloud encoding process, i.e., after step 101, the encoder can process the point cloud data based on the processing order to obtain the point cloud data to be encoded.
[0094] In an embodiment of the present invention, the processing order is a transformation order when RAHT is performed on the attribute information of the point cloud. Therefore, after the encoder determines the processing order, it can use the processing order to perform RAHT on the point cloud data to obtain the corresponding point cloud data to be encoded.
[0095] In an embodiment of the present invention, the point cloud data can be all the data in the point cloud, so the processing order can be the transformation order of all the data in the point cloud. Furthermore, after determining the processing order, the encoder can sequentially perform RAHT on each point in the point cloud according to the processing order.
[0096] Furthermore, in the embodiment of the present invention, the point cloud data can also be a part of the data in the point cloud. That is, the point cloud data can be data of any slice in the point cloud. Therefore, the processing order can be a transformation order of the part of the data in the point cloud. Furthermore, after determining the processing order corresponding to a slice in the point cloud, the encoder can sequentially perform RAHT on each point in the slice according to the processing order.
[0097] In other words, in the present invention, if the processing order is the transformation order of all data in the point cloud, the encoder can use the same transformation order to perform RAHT on all data in the point cloud. Also, if the processing order is the transformation order of some data in the point cloud, the encoder can use the same transformation order to perform RAHT on some data in the point cloud. For example, the encoder can use the same transformation order to perform RAHT on data in one slice after division.
[0098] Furthermore, in an embodiment of the present invention, when the encoder processes the point cloud data based on the processing order to obtain the point cloud data to be encoded, the encoder may first perform coordinate mapping on the point cloud data based on the processing order.
[0099] Specifically, in an embodiment of the present invention, when the encoder performs coordinate mapping on the point cloud data based on the processing order, the encoder may rearrange the coordinates of the point cloud data based on the processing order.
[0100] Furthermore, in an embodiment of the present invention, when the encoder processes the point cloud data based on a processing order to obtain the point cloud data to be encoded, the encoder can sequentially process the point cloud data in the corresponding coordinate axis direction based on the processing order.
[0101] In the present invention, the execution process of RAHT is as follows: first transform into one coordinate direction, then transform into another coordinate direction, and finally transform into the third coordinate direction.
[0102] In an embodiment of the present application, when the encoder sequentially processes the point cloud data in the corresponding coordinate axis direction based on the processing order, the encoder can sequentially perform RAHT on the point cloud data in the corresponding coordinate axis direction based on the processing order.
[0103] Furthermore, in an embodiment of the present invention, when the encoder sequentially performs RAHT on the point cloud data in the corresponding coordinate axis direction based on the processing order, the encoder can first determine the Morton codes of the nodes in the point cloud data, and then perform RAHT on the point cloud data based on the processing order and the Morton codes.
[0104] Furthermore, in an embodiment of the present invention, when the encoder performs RAHT on the point cloud data based on the processing order and the Morton code, the encoder can first determine whether the processing order is the same as the preset order.
[0105] In an embodiment of the present invention, the preset order may be a default transform order pre-stored by the encoder, for example, the encoder may set the ZYX order as the preset order.
[0106] Further, in an embodiment of the present invention, the encoder can compare the processing order with a preset order. If the processing order and the preset order are the same, the encoder directly performs RAHT on the point cloud data according to the preset order and the Morton code. If the processing order and the preset order are different, the encoder performs RAHT on the point cloud data according to the processing order and the Morton code.
[0107] In an embodiment of the present invention, Figure 11 is a schematic diagram 2 showing the realization process of point cloud encoding. As shown in Figure 11, after the encoder determines the processing order of the point cloud data in the point cloud encoding process, i.e. after step 101, and before the encoder determines the coordinate axis order index corresponding to the processing order, i.e. before step 102, the method for the encoder to encode the point cloud data further includes the following steps:
[0108] Step 106: determine an order indication parameter according to the processing order, the order indication parameter being used to indicate whether to use a preset order.
[0109] Step 107: Encode the ordering parameter and write the encoded bits into the bitstream.
[0110] After determining the processing order of the point cloud data, the encoder can first set an order indication parameter based on the processing order, and then encode the order indication parameter and write the encoded bits into the bitstream.
[0111] In an embodiment of the present invention, the order indication parameter may be used to indicate whether a preset order is used. That is, if the encoder performs a transform using a preset order, the order indication parameter may be set to indicate that a preset order is used. If the encoder performs a transform without using a preset order, the order indication parameter may be set to indicate that a preset order is not used.
[0112] Furthermore, in an embodiment of the present invention, when the encoder determines the order parameter based on the processing order, if the processing order is different from the preset order, the encoder needs to convert the point cloud data based on the processing order. Therefore, the value of the order parameter can be set to indicate that the preset order is not used. If the processing order is the same as the preset order, the encoder can convert the point cloud data based on the preset order. Therefore, the value of the order parameter can be set to indicate that the preset order is used.
[0113] Exemplarily, in the present invention, when setting an order parameter, the encoder may set the value of the order parameter to 0, thereby indicating that the preset order is not used, or the encoder may set the value of the order parameter to 1, thereby indicating that the preset order is used.
[0114] In the present invention, an order instruction parameter can be indicated by the syntax attr_raht_order_default_flag. Specifically, when the value of attr_raht_order_default_flag is equal to 1, it indicates that a preset order is used. When the value of attr_raht_order_default_flag is equal to 0, it indicates that a preset order is not used.
[0115] Step 105: Encode the point cloud data to be encoded, and write the encoded bits into a bit stream.
[0116] In an embodiment of the present invention, the encoder processes point cloud data based on a processing order to obtain point cloud data to be encoded, and then encodes the point cloud data to be encoded and writes the encoded bits into a bitstream.
[0117] According to the point cloud encoding method relating to the above steps 101 to 107, the encoder does not perform RAHT on the point cloud data in a fixed transformation order as proposed in the existing technology, for example, performs RAHT on all point cloud data in XYZ order, but instead determines a processing order corresponding to the point cloud data before transformation in the process of encoding the point cloud data, and then performs RAHT using the processing order.
[0118] In the present invention, from the viewpoint of the processing order of the three coordinates X, Y, and Z, the encoder currently performs the transformation in a fixed order in G-PCC, whereas the point cloud encoding method proposed in the present invention can adaptively change the processing order of the encoder for the three coordinates in G-PCC, thereby improving the encoding efficiency.
[0119] It is noted that in the present invention, processing order flexibility can be limited to the sequence layer, and the same coordinate processing order can be used for the entire point cloud, i.e., all divisions (e.g., slices) in the point cloud can use the same coordinate processing order.
[0120] In the present invention, the encoding side can pre-process the point cloud data before encoding the point cloud data. Specifically, the encoder can reset the X, Y, and Z coordinate axes of the point cloud data and re-determine the processing order. Then, the encoder encodes the pre-processed point cloud data, and indicates the pre-processing method in the sequence layer from the perspective of the display. That is, after encoding the coordinate axis order index corresponding to the processing order, the encoded bits are written into the bit stream. Therefore, after the bit stream is transmitted to the decoding side, the decoder decodes the bit stream to obtain the decoded point cloud, and performs post-processing on the point cloud according to the pre-processing method indicated in the sequence layer. That is, the decoding side obtains the coordinate axis order index through analysis, and determines the processing order indicated by the coordinate axis order index, so that the X, Y, and Z coordinate axes of the point cloud data can be adaptively set.
[0121] An embodiment of the present invention provides a point cloud encoding method. An encoder determines a processing order of point cloud data in a point cloud encoding process. The processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. An encoder determines a coordinate axis order index corresponding to the processing order. The encoder encodes the coordinate axis order index and writes the encoded bits into a bit stream. The encoder processes the point cloud data according to the processing order to obtain the point cloud data to be encoded. The encoder encodes the point cloud data to be encoded and writes the encoded bits into a bit stream. That is, in an embodiment of the present invention, on the encoding side, the encoder can first determine a processing order of the transformation process corresponding to the point cloud data, and write the processing order into the bit stream while performing RAHT according to the processing order, and send it to the decoder. On the decoding side, the decoder can analyze the bit stream to obtain the processing order of the transformation process corresponding to the point cloud data, and perform RAHT according to the processing order. In this way, the point cloud encoding method and point cloud decoding method of the present invention do not use a fixed order for performing RAHT on all or part of the point cloud data, but use syntax elements in the bitstream to indicate the processing order, which allows the coordinate processing order in the encoding and decoding process to be adaptively changed and the conversion efficiency of RAHT to be fully utilized, solving the problem of low conversion efficiency and greatly improving the efficiency of encoding and decoding.
[0122] Based on the above embodiment, in another embodiment of the present invention, a point cloud decoding method is provided. Figure 12 is a schematic diagram 1 showing the realization process of point cloud decoding. As shown in Figure 12, in the embodiment of the present invention, the method for the decoder to decode point cloud data includes the following steps:
[0123] Step 201: Parse the bit stream to obtain the coordinate axis order index.
[0124] In an embodiment of the present invention, the decoder can parse the bitstream to obtain the coordinate axis order index of the point cloud data.
[0125] In an embodiment of the present invention, the coordinate axis order index obtained by the decoder by parsing the bitstream can be used to indicate the processing order.
[0126] Specifically, in the present invention, since the processing order can be any of six different transformation orders, the coordinate axis order index obtained by the decoder through analysis can also include six different values.
[0127] In the present invention, the coordinate axis order index can be expressed by the syntax axis_coding_order. That is, the processing order of the three coordinate axes, X, Y, and Z, can be specified by the syntax axis_coding_order. Specifically, based on Table 2 above, the axis_coding_order based on the G-PCC standard can be used to process data in the RecPic[pointIdx][axis] buffer. For example, when the value of axis_coding_order is equal to 0, that is, when the processing order is ZYX, if the value of axis is equal to 0, data of the Z axis is stored in RecPic[pointIdx][0], if the value of axis is equal to 1, data of the Y axis is stored in RecPic[pointIdx][1], and if the value of axis is equal to 2, data of the X axis is stored in RecPic[pointIdx][2].
[0128] By way of example, in the G-PCC reference text, the portion of the syntax corresponding to the coordinate axis order index may be as shown in Table 3 below. [Table 3]
[0129] Furthermore, in an embodiment of the present invention, when the decoder parses the bitstream to obtain the coordinate axis order index, the decoder can parse the fixed-length code to obtain the coordinate axis order index.
[0130] In the present invention, the fixed-length code is an output codeword of the same length obtained after encoding using fixed-length coding, in other words, the encoder obtains a fixed-length code of the same length after encoding the coordinate axis order index using fixed-length coding.
[0131] Furthermore, in an embodiment of the present invention, when the decoder parses the bitstream to obtain the coordinate axis order index, the decoder can parse the bitstream corresponding to the parameter set data unit in the bitstream, where the parameter set data unit includes parameters used for decoding the point cloud data.
[0132] In an embodiment of the present invention, the parameter set may be a sequence layer parameter set.
[0133] Furthermore, in an embodiment of the present invention, the parameter set may be a sequence parameter set.
[0134] In an embodiment of the present invention, the data unit of the parameter set may include attribute information of the point cloud data, which is a scalar attribute or a vector attribute associated with a point in the point cloud data.
[0135] In an embodiment of the present invention, the parameter set data unit may further include geometric information of the point cloud data, the geometric information being Cartesian coordinates associated with points in the point cloud data.
[0136] Furthermore, in an embodiment of the present invention, when a decoder parses a bitstream to obtain a coordinate axis order index, after receiving the bitstream, the decoder can parse a data unit in which the auxiliary information of the bitstream is located to obtain the coordinate axis order index.
[0137] Exemplarily, in an embodiment of the present invention, the auxiliary information may be video usability information (VUI).
[0138] Exemplarily, in an embodiment of the present invention, the auxiliary information may be Supplemental Enhancement Information (SEI).
[0139] In an embodiment of the present invention, when the decoder parses the bitstream to obtain the coordinate axis order index, the parsed bitstream may be a transmission stream including point cloud encoded data corresponding to the point cloud data, i.e., the bitstream may be a transmission stream including point cloud encoded data.
[0140] Furthermore, in an embodiment of the present invention, when the decoder parses the bitstream to obtain the coordinate axis order index, the parsed bitstream may be a media file including point cloud encoded data corresponding to the point cloud data, i.e., the bitstream may be a media file including point cloud encoded data.
[0141] In other words, in the present invention, the coordinate axis order index axis_coding_order can be encoded in auxiliary information of the SPS (e.g., VUI), can be encoded in data units of other auxiliary information of the point cloud data (e.g., SEI), and can further be encoded in units of auxiliary information in the format of a transmission stream or file.
[0142] Step 202: determine a processing order of the point cloud data in the point cloud decoding process according to the coordinate axis order index, where the processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud.
[0143] In an embodiment of the present invention, the decoder analyzes the bitstream to obtain the coordinate axis order index, and then can determine the processing order of the point cloud data in the point cloud decoding process based on the coordinate axis order index.
[0144] In the present invention, the processing order refers to the order of processing the coordinate axes of the three-dimensional coordinates of the point cloud data. The point cloud data is all or a part of the data in the point cloud.
[0145] Furthermore, in the embodiment of the present invention, the processing order can be used to indicate the coordinate axis processing order of the three-dimensional coordinates of the point cloud data.
[0146] In the embodiment of the present invention, point cloud data can be all the data in point cloud.Accordingly, when the decoder determines the processing order of point cloud data in the point cloud decoding process according to coordinate axis order index, it determines the processing order of all the data in point cloud.In other words, in the present invention, for each point in point cloud, the decoder can carry out transformation processing in the same processing order.
[0147] Furthermore, in an embodiment of the present invention, the encoder can divide the point cloud to obtain a number of slices corresponding to the point cloud. Therefore, the point cloud data can also be a part of the data in the point cloud. That is, the point cloud data can be the data of any one slice in the point cloud. Correspondingly, the decoder determines the processing order of the point cloud data in the point cloud decoding process based on the coordinate axis order index, which is the processing order of the data of any one slice in the point cloud. That is, in the present invention, for each point of the same slice in the point cloud, the decoder can use the same processing order to perform the transform process.
[0148] In the embodiment of the present invention, the processing order is the transformation order used when performing RAHT. Since each point in the point cloud is three-dimensional point cloud data of X, Y, and Z, the processing order indicates the order in which transformation is performed sequentially on the three coordinate axes of X, Y, and Z.
[0149] Exemplarily, in an embodiment of the present invention, when RAHT is performed layer by layer on attribute information of a point cloud, RAHT is repeatedly performed on each node along three axes based on the processing order in each layer. For example, if the processing order is an XYZ order, the decoder can perform RAHT on the nodes in the point cloud first on the X axis, then on the Y axis, and finally on the Z axis. If the processing order is a YZX order, the decoder can perform RAHT on the nodes in the point cloud first on the Y axis, then on the Z axis, and finally on the X axis.
[0150] In the embodiment of the present invention, since each point in the point cloud is three-dimensional point cloud data of X, Y, and Z, the order in which the decoder performs the RAHT can include six different combinations, i.e., the processing order can include six different transformation orders.
[0151] For different processing orders, the decoder can set different coordinate axis order indices. Correspondingly, the coordinate axis order index can include six different values because the processing order can be any of six different transform orders.
[0152] In the present invention, the processing order of the point cloud data can be any one of ZYX order, XYZ order, XZY order, YZX order, ZXY order, and YXZ order, where X, Y, and Z are the coordinate axes of the three-dimensional coordinate of the point cloud data.
[0153] Furthermore, in an embodiment of the present invention, when the decoder determines the processing order of the point cloud data in the point cloud decoding process based on the coordinate axis order index, the decoder can determine the processing order corresponding to the coordinate axis order index based on a preset correspondence table between indexes and processing orders.
[0154] Specifically, in the present invention, the above Table 1 is a correspondence table 1 between preset indexes and processing orders. As shown in Table 1, for different processing orders, the corresponding coordinate axis order index can be determined by checking the correspondence table between preset indexes and processing orders.
[0155] For example, in the present invention, when the decoder determines the processing order of the point cloud data in the point cloud decoding process according to the coordinate axis order index, if the value of the coordinate axis order index is 0 or 4, the decoder can determine that the processing order of the corresponding point cloud data is ZYX order. If the value of the coordinate axis order index is 1 or 7, the decoder can determine that the processing order of the corresponding point cloud data is XYZ order. If the value of the coordinate axis order index is 2, the decoder can determine that the processing order of the corresponding point cloud data is XZY order. If the value of the coordinate axis order index is 3, the decoder can determine that the processing order of the corresponding point cloud data is YZX order. If the value of the coordinate axis order index is 5, the decoder can determine that the processing order of the corresponding point cloud data is ZXY order. If the value of the coordinate axis order index is 6, the decoder can determine that the processing order of the corresponding point cloud data is YXZ order.
[0156] It should be noted that in the present invention, G-PCC has no specific concept of X, Y, Z coordinate axes. In general, the coordinate axis processing order can be expressed as 0, 1, 2 based on the X, Y, Z coordinate axes. For example, if the processing order is the XYZ order, it can be expressed as 0-1-2.
[0157] Based on the above Table 1, Table 2 is the correspondence table 2 between the preset indexes and the processing orders. As shown in Table 2, for different processing orders, the corresponding coordinate axis order index can be determined by checking the correspondence table between the preset indexes and the processing orders.
[0158] For example, in the present invention, when the decoder determines the processing order of the point cloud data in the point cloud decoding process according to the coordinate axis order index, if the value of the coordinate axis order index is 0 or 4, i.e., the processing order is 2-1-0, the decoder can determine that the processing order of the corresponding point cloud data is ZYX order. If the value of the coordinate axis order index is 1 or 7, i.e., the processing order is 0-1-2, the decoder can determine that the processing order of the corresponding point cloud data is XYZ order. If the value of the coordinate axis order index is 2, i.e., the processing order is 0-2-1, the decoder can determine that the processing order of the corresponding point cloud data is XZY order. If the value of the coordinate axis order index is 3, i.e., the processing order is 2-0-1, the decoder can determine that the processing order of the corresponding point cloud data is YZX order. If the value of the coordinate axis order index is 5, i.e., the processing order is 1-2-0, the decoder can determine that the processing order of the corresponding point cloud data is ZXY order. In addition, if the value of the coordinate axis order index is 6, that is, the processing order is 1-0-2, the decoder can determine that the processing order of the corresponding point cloud data is the YXZ order.
[0159] In the present invention, the coordinate axis order index can be expressed by the syntax axis_coding_order. That is, the processing order of the three coordinate axes, X, Y, and Z, can be specified by the syntax axis_coding_order. Specifically, based on Table 2 above, the axis_coding_order based on the G-PCC standard can be used to process data in the RecPic[pointIdx][axis] buffer. For example, when the value of axis_coding_order is equal to 0, that is, when the processing order is ZYX, if the value of axis is equal to 0, data of the Z axis is stored in RecPic[pointIdx][0], if the value of axis is equal to 1, data of the Y axis is stored in RecPic[pointIdx][1], and if the value of axis is equal to 2, data of the X axis is stored in RecPic[pointIdx][2].
[0160] Step 203: Parse the bitstream to obtain recovered data of the point cloud data.
[0161] In an embodiment of the present invention, the decoder may further analyze the bitstream to obtain reconstruction data of the point cloud data.
[0162] Step 204: determining the position of the coordinate data of the point cloud data in the storage unit of the restored data according to the processing order.
[0163] In an embodiment of the present invention, the decoder can determine the processing order of the point cloud data in the point cloud decoding process based on the coordinate axis order index, and after analyzing the bitstream to obtain the reconstructed data of the point cloud data, determine the position of the coordinate data of the point cloud data in the storage unit of the reconstructed data based on the processing order.
[0164] In other words, in the present invention, the processing order indicates the coordinate axes corresponding to the data sequentially output by the decoder after performing the inverse transform of the RAHT (i.e., the inverse RAHT) on the reconstructed data obtained by analyzing the bitstream.
[0165] Furthermore, in an embodiment of the present invention, when the decoder determines the position of coordinate data of the point cloud data in the storage unit of the restored data based on the processing order, for a point in the point cloud data in the storage unit of the restored data, the decoder can obtain the coordinate data of the point based on the coordinate axis order indicated by the processing order.
[0166] In the present invention, when RAHT is executed, the data acquired earlier is written to the data storage unit first, and the data acquired later is written to the data storage unit later according to the processing order of RAHT, that is, the data writing order corresponds to the coordinate axis order.
[0167] Specifically, in an embodiment of the present invention, when the decoder determines the position of the coordinate data of the point cloud data in the storage unit of the restored data based on the processing order, the decoder can sequentially perform RAHT on the point cloud data in the corresponding coordinate axis direction based on the processing order.
[0168] In the present invention, the execution process of RAHT is as follows: first transform into one coordinate direction, then transform into another coordinate direction, and finally transform into the third coordinate direction.
[0169] In an embodiment of the present invention, when a decoder sequentially performs RAHT on point cloud data in the corresponding coordinate axis direction based on a processing order, the decoder can first analyze the bit stream to determine the Morton codes of the nodes in the point cloud data, and then perform RAHT on the point cloud data based on the processing order and the Morton codes.
[0170] Specifically, in an embodiment of the present invention, the decoder can first calculate the Morton code of each node in the point cloud data, then sort the nodes in the point cloud data according to ascending order of the Morton codes, and finally traverse each node in the point cloud data in the sorted order.
[0171] In the embodiment of the present invention, the processing order is the transformation order when RAHT is performed on the attribute information of the point cloud. Therefore, after the decoder determines the processing order, it can use the processing order to perform RAHT on the point cloud data.
[0172] In an embodiment of the present invention, the point cloud data can be all the data in the point cloud, so the processing order can be the transformation order of all the data in the point cloud. Furthermore, after the decoder determines the processing order, it can sequentially perform RAHT on each point in the point cloud according to the processing order.
[0173] Furthermore, in the embodiment of the present invention, the point cloud data can also be a part of the data in the point cloud. That is, the point cloud data can be data of any one slice in the point cloud. Therefore, the processing order can be a transformation order of the part of the data in the point cloud. Furthermore, after the decoder determines the processing order corresponding to a slice in the point cloud, it can sequentially perform RAHT on each point in the slice according to the processing order.
[0174] In other words, in the present invention, when the processing order is the transformation order of all data in the point cloud, the decoder can use the same transformation order to perform RAHT on all data in the point cloud.In addition, when the processing order is the transformation order of a part of the data in the point cloud, the decoder can use the same transformation order to perform RAHT on a part of the data in the point cloud.For example, the decoder can use the same transformation order to perform RAHT on the data in one slice after division.
[0175] Furthermore, in an embodiment of the present invention, when the decoder performs RAHT on the point cloud data based on the processing order and the Morton code, the decoder can first compare the processing order with a preset order to determine whether the processing order of the point cloud data is the same as the preset order.
[0176] In an embodiment of the present invention, the preset order may be a default transform order pre-stored by the decoder, for example, the decoder may set the ZYX order as the preset order.
[0177] Furthermore, in an embodiment of the present invention, after the decoder compares the processing order with the preset order, if the processing order and the preset order are the same, the decoder directly performs RAHT on the point cloud data according to the preset order and the Morton code; if the processing order and the preset order are different, the decoder performs RAHT on the point cloud data according to the processing order and the Morton code.
[0178] In an embodiment of the present invention, Fig. 13 is a schematic diagram 2 showing the realization process of point cloud decoding. As shown in Fig. 13, before the decoder parses the bitstream to obtain the coordinate axis order index, i.e. before step 201, the method for the decoder to decode point cloud data further includes the following steps:
[0179] Step 205: Analyze the bitstream to determine an order indication parameter, which is used to indicate whether to use a preset order.
[0180] Step 206: if the value of the sequence instruction parameter indicates that the preset sequence is not used, it is determined that the processing sequence is different from the preset sequence.
[0181] Step 207: if the value of the sequence instruction parameter indicates to use the preset sequence, determine that the processing sequence is the same as the preset sequence.
[0182] In an embodiment of the present invention, the decoder can first determine an order indication parameter corresponding to the point cloud data by analyzing the bitstream, and then determine whether to use a preset order to perform the transformation based on the order indication parameter.
[0183] In an embodiment of the present invention, the order indication parameter may be used to indicate whether to use a preset order. That is, when the encoding side performs a transform using a preset order, the order indication parameter acquired by the decoder through analysis may indicate that the preset order is used. When the encoding side performs a transform without using the preset order, the order indication parameter acquired by the decoder through analysis may indicate that the preset order is not used.
[0184] Furthermore, in an embodiment of the present invention, after the decoder obtains the order parameter through analysis, if the value of the order parameter indicates not to use the preset order, the decoder needs to transform the point cloud data according to the processing order. If the value of the order parameter indicates to use the preset order, the decoder can transform the point cloud data according to the preset order.
[0185] For example, in the present invention, when the value of the order parameter is 0, it is considered to indicate that the preset order is not used, and when the value of the order parameter is 1, it is considered to indicate that the preset order is used.
[0186] In the present invention, an order instruction parameter can be indicated by the syntax attr_raht_order_default_flag. Specifically, when the value of attr_raht_order_default_flag is equal to 1, it indicates that a preset order is used. When the value of attr_raht_order_default_flag is equal to 0, it indicates that a preset order is not used.
[0187] According to the point cloud decoding method relating to the above steps 201 to 207, the decoder does not perform RAHT on the point cloud data in a fixed transformation order as proposed in the existing technology. For example, it performs RAHT on all point cloud data in XYZ order. Instead, in the process of decoding the point cloud data, it determines a processing order corresponding to the point cloud data before transformation, and then performs RAHT using the processing order.
[0188] In the present invention, from the viewpoint of the processing order of the three coordinates X, Y, and Z, currently, in G-PCC, the decoder performs transformation in a fixed order, whereas in the point cloud decoding method proposed in the present invention, the decoder's processing order for the three coordinates in G-PCC can be adaptively changed, thereby improving the efficiency of decoding.
[0189] It is noted that in the present invention, processing order flexibility can be limited to the sequence layer, and the same coordinate processing order can be used for the entire point cloud, i.e., all divisions (e.g., slices) in the point cloud can use the same coordinate processing order.
[0190] In the present invention, the encoding side can pre-process the point cloud data before encoding the point cloud data. Specifically, the encoder can reset the X, Y, and Z coordinate axes of the point cloud data and re-determine the processing order. Then, the pre-processed point cloud data is encoded, and the pre-processing method is indicated in the sequence layer from the perspective of the display. That is, the coordinate axis order index corresponding to the processing order is encoded, and then the encoded bits are written into the bit stream. Therefore, after the bit stream is transmitted to the decoding side, the decoder decodes the bit stream to obtain the decoded point cloud, and performs post-processing on the point cloud according to the pre-processing method indicated in the sequence layer. That is, the decoding side obtains the coordinate axis order index through analysis, and determines the processing order indicated by the coordinate axis order index, so that the X, Y, and Z coordinate axes of the point cloud data can be adaptively set.
[0191] An embodiment of the present invention provides a point cloud decoding method. The decoder analyzes the bit stream to obtain a coordinate axis order index. The decoder determines the processing order of the point cloud data in the point cloud decoding process according to the coordinate axis order index. The processing order indicates the coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or part of the data in the point cloud. The decoder analyzes the bit stream to obtain the restored data of the point cloud data. The decoder determines the position of the coordinate data of the point cloud data in the storage unit of the restored data according to the processing order. That is, in an embodiment of the present invention, on the encoding side, the encoder can first determine the processing order of the transformation process corresponding to the point cloud data, and while performing RAHT according to the processing order, write the processing order into the bit stream and send it to the decoder. On the decoding side, the decoder can analyze the bit stream to obtain the processing order of the transformation process corresponding to the point cloud data, and perform RAHT according to the processing order. In this way, the point cloud encoding method and point cloud decoding method of the present invention do not use a fixed order for performing RAHT on all or part of the point cloud data, but use syntax elements in the bitstream to indicate the processing order, which allows the coordinate processing order in the encoding and decoding process to be adaptively changed and the conversion efficiency of RAHT to be fully utilized, solving the problem of low conversion efficiency and greatly improving the efficiency of encoding and decoding.
[0192] Based on the above embodiment, another embodiment of the present invention provides a point cloud encoding method and a point cloud decoding method. Compared with the existing technology, in the embodiment of the present invention, the encoder and decoder can change the fixed transformation order, that is, the default order that is not transmitted can be changed. Regardless of the encoding side or the decoding side, before performing RAHT on the point cloud data, the processing order corresponding to the point cloud data is determined, and RAHT is performed using the processing order. The conversion process on the decoding side is described below as an example.
[0193] Exemplarily, in one embodiment, the decoder obtains a processing order XYZ of the point cloud data after analyzing the bitstream. The point cloud data is a part of data in a point cloud, i.e., a slice in the point cloud. The processing order is different from the fixed pre-set order ZYX. Then, the decoder can reorder the points in the corresponding slice based on the Morton code.
[0194] In the octree node decoding process, the spatial location of the points in each child used is determined based on the number of overlapping points in each child and the use of the directly encoded positions, see below. for( child = 0; child < GeometryNodeChildrenCnt; child++ ) { childIdx = GeometryNodeChildren[ child ]; x = 2 × xN + ( childIdx & 4 == 1 ); y = 2 × yN + ( childIdx & 2 == 1 ); x = 2 × zN + ( childIdx & 1 == 1 ); for( i = 0; i < GeometryNodeDupPoints[child] + 1 ; i++, PointCount++ ) { PointPos[PointCount][0] = x; PointPos[PointCount][1] = y; PointPos[PointCount][2] = z; } if( direct_mode_flag ) { for( i = 0; i <= num_direct_points_minus1; i++, PointCount++ ) { PointPos[PointCount][0] = x + PointOffsetX[i]; PointPos[PointCount][1] = y + PointOffsetY[i]; PointPos[PointCount][2] = z + PointOffsetZ[i]; } } } …
[0195] In the process of point reordering based on Morton code, the decoder can parse the bitstream to obtain the array McodeBeforeSort[i], where i=0...PointNum-1, see below. for ( b=0; b< raht_depth; b++ ){ McodeBeforeSort[i] |= ((PointPos[i][1]>>b) & 1) << (3 × b+2) McodeBeforeSort[i] |= ((PointPos[i][2]>>b) & 1) << (3 × b+1) McodeBeforeSort[i] |= ((PointPos[i][0]>>b) & 1) << (3 × b)}
[0196] Generally, from the perspective of an encoding process or encoder, syntax elements are sent in a bitstream to indicate information, and from the perspective of a decoding process or decoder, syntax elements are parsed from the bitstream to obtain the indicated information.
[0197] Exemplarily, in one embodiment, the processing order can be transmitted in an attribute parameter set syntax. That is, the decoder can obtain the processing order by parsing the bitstream for the attribute parameter set. The syntax of the attribute parameter set is as shown in Table 4. [Table 4] JPEG0007651043000012.jpg75149
[0198] Specifically, in the present invention, the coordinate axis order index attr_raht_order_index can indicate the processing order used for a node, that is, the transformation order of RAHT. In the bitstream, the value of attr_raht_order_index can be 0, 1, 2, 3, 4, 5, 6, or 7. Based on the above Table 1, the decoder can determine the corresponding processing order based on the attr_raht_order_index obtained by analysis. Then, the point rearrangement process based on the Morton code can be performed based on the processing order.
[0199] For example, in one embodiment, in the attribute parameter set, a flag may be transmitted first to indicate whether to use a default transformation order, i.e., whether to use a preset order. If the preset order is not used, a coordinate axis order index attr_raht_order_index may be transmitted to indicate a transformation order other than the preset order.
[0200] In other words, in the present invention, the decoder can obtain the order indication parameter after parsing the bitstream of the attribute parameter set. The order indication parameter is used to indicate whether to use the pre-set order. The syntax of the attribute parameter set is as shown in Table 5. [Table 5] JPEG0007651043000014.jpg97149
[0201] In the present invention, an order instruction parameter can be indicated by the syntax attr_raht_order_default_flag. Specifically, when the value of attr_raht_order_default_flag is equal to 1, it indicates that a preset order is used. When the value of attr_raht_order_default_flag is equal to 0, it indicates that a preset order is not used.
[0202] Furthermore, in an embodiment of the present invention, when the value of attr_raht_order_default_flag is equal to 0, i.e., when no preset order is used, the decoder can further determine the processing order to be used based on the coordinate axis order index attr_raht_order_index obtained by analysis.
[0203] In the present invention, when the preset order is the XYZ order, the value of the coordinate axis order index attr_raht_order_index obtained by the decoder through analysis can be used to indicate five other transformation orders other than the XYZ order. That is, in the present invention, based on the determination of the order indication parameter attr_raht_order_default_flag, the coordinate axis order index attr_raht_order_index is used to indicate other transformation orders other than the preset order. [Table 6]
[0204] Furthermore, in the present invention, the coordinate axis order index attr_raht_order_index indicates the order of RAHT used for a node (except the default preset order), that is, the processing order. In the bitstream, the value of attr_raht_order_index can be equal to 0, 1, 2, 3, or 4. Table 6 is the correspondence table 3 between the preset index and the processing order. The preset order is XYZ. As shown in Table 6, based on the value of the coordinate axis order index, the decoder can determine the corresponding processing order by checking the correspondence table between the preset index and the processing order.
[0205] Furthermore, in the present invention, after the decoder parses the bitstream of the attribute parameter set to obtain the order indication parameter attr_raht_order_default_flag, if the value of attr_raht_order_default_flag is equal to 1, it indicates that the preset order is used, and the decoder can perform the point rearrangement process based on the Morton code according to the preset order.
[0206] Furthermore, in the present invention, after the decoder parses the bitstream of the attribute parameter set to obtain the order indication parameter attr_raht_order_default_flag, if the value of attr_raht_order_default_flag is equal to 0, it indicates that the preset order is not used. Then, the decoder can continue to parse the bitstream to obtain the coordinate axis order index attr_raht_order_index to determine the processing order. In this way, the point rearrangement process based on the Morton code can be performed based on the processing order.
[0207] Exemplarily, in one embodiment, the processing order is transmitted in the attribute parameter set, except that the descriptor of the syntax element attr_raht_order_index is ue(V) (i.e., Exp-Golomb code). From the encoding perspective, the descriptor corresponds to the entropy coding method of the syntax element. From the decoding perspective, the descriptor corresponds to the parsing process of the syntax element.
[0208] In the present invention, the processing order of the RAHT is transmitted to an attribute parameter set and is applied to the encoding or decoding of one or more slices associated with that attribute parameter set.
[0209] Exemplarily, in one embodiment, the processing order, with or without a predefined order, is sent in an attribute slice header, the syntax of which is shown in Table 7. [Table 7]
[0210] In the present invention, the processing order transmitted in the attribute slice header is used only for encoding or decoding this slice.
[0211] By way of example, in one embodiment, a pre-established ordered or unordered processing order is transmitted in an attribute parameter set and in an attribute slice header associated with that attribute parameter set, and the processing order transmitted in the attribute slice header can override a processing order established by parsing the attribute parameter set.
[0212] Specifically, in the present invention, the processing order is sent in an attribute parameter set, the syntax of which is shown in Table 8. [Table 8] JPEG0007651043000018.jpg57160
[0213] Furthermore, in an embodiment of the present invention, the syntax of the attribute slice header is as shown in Table 9. [Table 9]
[0214] In the present invention, after the decoder parses the bitstream, it can obtain the syntax element ash_attr_raht_order_override_flag, which is used to indicate whether to use the processing order sent in the attribute parameter set.
[0215] Furthermore, in an embodiment of the present invention, if the value of ash_attr_raht_order_override_flag is equal to 0, then the processing order sent in the attribute parameter set associated with the slice is used.
[0216] Furthermore, in the embodiment of the present invention, if the value of ash_attr_raht_order_override_flag is equal to 1, it indicates that the processing order indicated by ash_attr_raht_index is used. Then, the decoder can obtain ash_attr_raht_index through analysis and further determine the processing order to be used. Specifically, the decoder can further obtain the processing order indicated by ash_attr_raht_index through Table 1 above.
[0217] In an embodiment of the present invention, if the value of ash_attr_raht_order_override_flag is equal to 1, it indicates that the processing order indicated by ash_attr_raht_index is used. Then, the decoder can dynamically determine the processing order by removing the processing order sent to the attribute parameter set (i.e., the active attribute parameter set) associated with the slice. For example, if the processing order sent to the active attribute parameter set is ZYX, the encoder or decoder can build a correspondence table between preset indexes and processing orders in an order other than the ZYX order. In the bitstream, the value of attr_raht_order_index can be 0, 1, 2, 3, or 4. Table 10 is a correspondence table 4 between preset indexes and processing orders. If the processing order sent to the active attribute parameter set is ZYX, the decoder can determine the corresponding processing order by checking the correspondence table between preset indexes and processing orders based on the value of the coordinate axis order index ash_attr_raht_index as shown in Table 10. [Table 10]
[0218] In the present invention, if ash_attr_raht_order_index is coded or parsed ue(V), the bits used to represent ash_attr_raht_order_index in the bitstream can be saved.
[0219] Furthermore, in the present invention, when attr_coding_type is equal to 1 in an attribute parameter set, an additional flag such as attr_raht_order_override_allowed_flag is sent (from the encoding or encoder perspective) or analyzed (from the decoding or decoding perspective) to indicate whether the processing order of the RAHT detailed in the attribute slice header associated with the attribute parameter set is allowed to override the processing order of the RAHT detailed in the attribute parameter set. For attr_raht_order_override_allowed_flag, the syntax of the attribute slice header is as shown in Table 11. [Table 11]
[0220] Furthermore, in the present invention, the decoder can analyze the bitstream to obtain the processing order, and then perform the point rearrangement process based on the Morton code according to the preset order.
[0221] The embodiments of the present invention provide a point cloud encoding method, a point cloud decoding method, an encoder, a decoder, and a computer storage medium. An encoder determines a processing order of point cloud data in a point cloud encoding process. The processing order indicates a coordinate axis processing order of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. An encoder determines a coordinate axis order index corresponding to the processing order. The encoder encodes the coordinate axis order index and writes the encoded bits into a bit stream. The encoder processes the point cloud data according to the processing order to obtain the point cloud data to be encoded. The encoder encodes the point cloud data to be encoded and writes the encoded bits into a bit stream. A decoder analyzes the bit stream to obtain a coordinate axis order index. The decoder determines a processing order of point cloud data in a point cloud decoding process according to the coordinate axis order index. The processing order indicates a coordinate axis processing order of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The decoder analyzes the bit stream to obtain restored data of the point cloud data. The decoder determines the position of the coordinate data of the point cloud data in the storage unit of the restored data based on the processing order. That is, in the embodiment of the present invention, on the encoding side, the encoder first determines the processing order of the transformation process corresponding to the point cloud data, and while executing RAHT based on the processing order, the encoder can write the processing order into the bit stream and send it to the decoder. On the decoding side, the decoder can analyze the bit stream to obtain the processing order of the transformation process corresponding to the point cloud data, and execute RAHT based on the processing order. In this way, in the point cloud encoding method and point cloud decoding method according to the present invention, a fixed order is not used to perform RAHT on all or part of the point cloud data, but the processing order is indicated using syntax elements in the bit stream. This allows the coordinate processing order in the encoding and decoding process to be adaptively changed, and the conversion efficiency of RAHT can be fully exerted, solving the problem of low conversion efficiency and greatly improving the efficiency of encoding and decoding.
[0222] Based on the above embodiment, in another embodiment of the present invention, Figure 14 is a schematic diagram 1 showing the structure of an encoder. As shown in Figure 14, an encoder 300 according to an embodiment of the present invention can include a first determination part 301, an encoding part 302 and a transform part 303. The first determining part 301 is configured to determine a processing order of the point cloud data in a point cloud encoding process, and determine a coordinate axis order index corresponding to the processing order. The processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data. The point cloud data is all or a part of the data in the point cloud. The encoding portion 302 is configured to encode the coordinate axis order index and write the encoded bits to a bitstream. The transform portion 303 is configured to process the point cloud data based on a processing order to obtain the point cloud data to be encoded. The encoding portion 302 is further configured to encode the point cloud data to be encoded and write the encoded bits into a bitstream.
[0223] Furthermore, in an embodiment of the present invention, the first determining portion 301 is configured to determine the processing order based on the Morton codes of the nodes in the point cloud data.
[0224] Furthermore, in an embodiment of the present invention, the processing order of the point cloud data can be any one of ZYX order, XYZ order, XZY order, YZX order, ZXY order, and YXZ order, where X, Y, and Z are coordinate axes of the three-dimensional coordinates of the point cloud data.
[0225] Furthermore, in the embodiment of the present invention, the first determination portion 301 is configured to set a value of the coordinate axis order index corresponding to the processing order based on a preset correspondence table between indexes and processing orders.
[0226] In addition, in an embodiment of the present invention, the preset correspondence table between indexes and processing orders includes: [Table 12]
[0227] Moreover, in an embodiment of the present invention, the encoding portion 302 is configured to encode the coordinate axis order index using fixed length encoding.
[0228] Furthermore, in an embodiment of the present invention, the encoding portion 302 is configured to write the encoded bits into the bitstream corresponding to a parameter set data unit, the parameter set data unit including parameters used for decoding the point cloud data.
[0229] Furthermore, in an embodiment of the present invention, the parameter set is a sequence layer parameter set.
[0230] Furthermore, in an embodiment of the present invention, the parameter set is a sequence parameter set.
[0231] Furthermore, in an embodiment of the present invention, the data unit of the parameter set includes attribute information of the point cloud data, the attribute information being a scalar attribute or a vector attribute associated with a point in the point cloud data.
[0232] Furthermore, in an embodiment of the present invention, the parameter set data units include geometric information of the point cloud data, the geometric information being Cartesian coordinates associated with points in the point cloud data.
[0233] Furthermore, in an embodiment of the present invention, the transformation portion 303 is configured to perform coordinate mapping on the point cloud data based on the processing order.
[0234] Furthermore, in an embodiment of the present invention, the transformation portion 303 is configured to rearrange the coordinates of the point cloud data based on the processing order.
[0235] Furthermore, in an embodiment of the present invention, the conversion portion 303 is configured to sequentially process the point cloud data in the corresponding coordinate axis direction based on the processing order.
[0236] Furthermore, in an embodiment of the present invention, the conversion unit 303 is configured to sequentially execute the RAHT on the point cloud data in the corresponding coordinate axis direction based on the processing order.
[0237] Furthermore, in an embodiment of the present invention, the conversion portion 303 is configured to determine Morton codes for nodes in the point cloud data, and perform RAHT on the point cloud data based on the processing order and the Morton codes.
[0238] Furthermore, in an embodiment of the present invention, the conversion portion 303 is configured to perform the following operations: If the processing order is the same as the preset order, RAHT is performed on the point cloud data based on the preset order and the Morton code. If the processing order is different from the preset order, RAHT is performed on the point cloud data based on the processing order and the Morton code.
[0239] Further, in an embodiment of the present invention, after determining the processing order of the point cloud data in the point cloud encoding process, the first determining part 301 is configured to determine an order indication parameter according to the processing order before determining the coordinate axis order index corresponding to the processing order, where the order indication parameter is used to indicate whether to use a preset order. The encoding portion 302 is further configured to encode the ordering parameter and write the encoded bits into a bitstream.
[0240] Furthermore, in an embodiment of the present invention, the first determining part 301 is configured to perform the following operations: If the processing order is different from the preset order, the value of the order instruction parameter is set to indicate that the preset order is not used, and if the processing order is the same as the preset order, the value of the order instruction parameter is set to indicate that the preset order is used.
[0241] Furthermore, in an embodiment of the present invention, the encoding part 302 is configured to write the encoded bits into the data units of the bitstream in which the auxiliary information is located.
[0242] Furthermore, in an embodiment of the present invention, the auxiliary information is video usability information (VUI).
[0243] Furthermore, in an embodiment of the present invention, the auxiliary information is Supplemental Enhancement Information (SEI).
[0244] Furthermore, in an embodiment of the present invention, the encoding portion 302 is configured to write the encoded bits to a transmission stream that includes point cloud encoded data corresponding to the point cloud data.
[0245] Furthermore, in an embodiment of the present invention, the encoding portion 302 is configured to write the encoded bits to a media file including point cloud encoded data corresponding to the point cloud data.
[0246] Figure 15 is a schematic diagram 2 showing the structure of an encoder. As shown in Figure 15, an encoder 300 according to an embodiment of the present invention includes a first processor 304, a first memory 305, a first communication interface 306, and a first bus 307. The first memory 305 stores instructions executed by the first processor 304. The first bus 307 is used to connect the first processor 304, the first memory 305, and the first communication interface 306.
[0247] Furthermore, in an embodiment of the present invention, the first processor is configured to perform the following operations: Determine a processing order of the point cloud data in the point cloud encoding process; determine a coordinate axis order index corresponding to the processing order; encode the coordinate axis order index and write the encoded bits into a bit stream; process the point cloud data according to the processing order to obtain the point cloud data to be encoded; encode the point cloud data to be encoded and write the encoded bits into a bit stream. The above processing order indicates the order of processing the coordinate axes of the three-dimensional coordinates of the point cloud data, and the above point cloud data is all or a part of the data in the point cloud.
[0248] When the integrated unit is realized as a software functional module and sold or used as an independent product, it may be stored in a computer-readable recording medium. According to this understanding, the essential part of the technical solution of the present invention, or the part that can contribute to the prior art, or all or part of the technical solution may be expressed as a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer (which may be a personal computer, a server, a network device, etc.) or a processor to execute all or part of the process of the method according to each embodiment of the present invention. The storage medium includes various media capable of storing program codes, such as a universal serial bus (USB) flash disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0249] An embodiment of the present invention provides an encoder. The encoder determines a processing order of point cloud data in a point cloud encoding process. The processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The encoder determines a coordinate axis order index corresponding to the processing order. The encoder encodes the coordinate axis order index and writes the encoded bits into a bit stream. The encoder processes the point cloud data according to the processing order to obtain the point cloud data to be encoded. The encoder encodes the point cloud data to be encoded and writes the encoded bits into a bit stream. That is, in an embodiment of the present invention, on the encoding side, the encoder can first determine a processing order of the transformation process corresponding to the point cloud data, and write the processing order into the bit stream while performing RAHT according to the processing order, and send it to the decoder. On the decoding side, the decoder can analyze the bit stream to obtain the processing order of the transformation process corresponding to the point cloud data, and perform RAHT according to the processing order. In this way, the point cloud encoding method and point cloud decoding method of the present invention do not use a fixed order for performing RAHT on all or part of the point cloud data, but use syntax elements in the bitstream to indicate the processing order, which allows the coordinate processing order in the encoding and decoding process to be adaptively changed and the conversion efficiency of RAHT to be fully utilized, solving the problem of low conversion efficiency and greatly improving the efficiency of encoding and decoding.
[0250] 16 is a schematic diagram 1 showing the structure of a decoder. As shown in FIG. 16, a decoder 400 according to an embodiment of the present invention can include an analysis part 401 and a second determination part 402. The parsing portion 401 is configured to parse the bitstream to obtain the coordinate axis order index. The second determining part 402 is configured to determine a processing order of the point cloud data in the point cloud decoding process according to the coordinate axis order index, the processing order indicating the coordinate axis processing order of the three-dimensional coordinates of the point cloud data, the point cloud data being all or a part of the data in the point cloud. The analysis portion 401 is further configured to analyze the bitstream to obtain a reconstruction of the point cloud data. The second determining part 402 is further configured to determine a position of the coordinate data of the point cloud data in the storage unit of the reconstruction data based on the processing order.
[0251] Furthermore, in an embodiment of the present invention, the parsing portion 401 is configured to parse the fixed-length code to obtain the coordinate axis order index.
[0252] Further, in an embodiment of the present invention, the parsing part 401 is configured to parse the bitstream corresponding to a parameter set data unit in the bitstream, the parameter set data unit including parameters used for decoding the point cloud data.
[0253] Furthermore, in an embodiment of the present invention, the parameter set is a sequence layer parameter set.
[0254] Furthermore, in an embodiment of the present invention, the parameter set is a sequence parameter set.
[0255] Furthermore, in an embodiment of the present invention, the data unit of the parameter set includes attribute information of the point cloud data, the attribute information being a scalar attribute or a vector attribute associated with a point in the point cloud data.
[0256] Furthermore, in an embodiment of the present invention, the parameter set data unit further includes geometric information of the point cloud data, the geometric information being Cartesian coordinates associated with points in the point cloud data.
[0257] Furthermore, in an embodiment of the present invention, the processing order of the point cloud data can be any one of ZYX order, XYZ order, XZY order, YZX order, ZXY order, and YXZ order, where X, Y, and Z are coordinate axes of the three-dimensional coordinates of the point cloud data.
[0258] Further, in an embodiment of the present invention, the second determining part 402 is configured to determine the processing order corresponding to the coordinate axis order index according to a preset correspondence table between indexes and processing orders.
[0259] In addition, in an embodiment of the present invention, the preset correspondence table between indexes and processing orders includes: [Table 13]
[0260] Further, in an embodiment of the present invention, the second determining part 402 is configured to obtain, in the storage unit of the restored data, for points in the point cloud data, coordinate data of the points according to the coordinate axis order indicated by the processing order.
[0261] Furthermore, in an embodiment of the present invention, the second determining part 402 is configured to sequentially perform RAHT on the point cloud data in the corresponding coordinate axis direction based on the processing order.
[0262] Further, in an embodiment of the present invention, the second determining portion 402 is configured to analyze the bitstream to determine Morton codes of nodes in the point cloud data, and perform RAHT on the point cloud data based on the processing order and the Morton codes.
[0263] Further, in an embodiment of the present invention, the second determining portion 402 is configured to perform the following operations: If the processing order is the same as the preset order, RAHT is performed on the point cloud data based on the preset order and the Morton code. If the processing order is different from the preset order, RAHT is performed on the point cloud data based on the processing order and the Morton code.
[0264] Furthermore, in an embodiment of the present invention, before parsing the bitstream to obtain the coordinate axis order index, the parsing unit 401 is configured to parse the bitstream to determine an order indication parameter, which is used to indicate whether to use a preset order. The second determining portion 402 is further configured to perform the following operations: If the value of the order parameter indicates not to use a preset order, it is determined that the processing order is different from the preset order, and if the value of the order parameter indicates to use a preset order, it is determined that the processing order is the same as the preset order.
[0265] Furthermore, in an embodiment of the present invention, the parsing part 401 is configured to parse the data unit in which the auxiliary information of the bitstream is located to obtain the coordinate axis order index.
[0266] Furthermore, in an embodiment of the present invention, the auxiliary information is video usability information (VUI).
[0267] Furthermore, in an embodiment of the present invention, the auxiliary information is Supplemental Enhancement Information (SEI).
[0268] Further, in an embodiment of the present invention, the parsing portion 401 is configured to parse the transmitted stream containing the point cloud encoded data to obtain the coordinate axis order index.
[0269] Further, in an embodiment of the present invention, the parsing portion 401 is configured to parse the media file containing the point cloud encoded data to obtain a coordinate axis order index.
[0270] Figure 17 is a schematic diagram 2 showing the structure of a decoder. As shown in Figure 17, a decoder 400 according to an embodiment of the present invention includes a second processor 403, a second memory 404, a second communication interface 405, and a second bus 406. The second memory 404 stores instructions executed by the second processor 403. The second bus 406 is used to connect the second processor 403, the second memory 404, and the second communication interface 405.
[0271] Furthermore, in an embodiment of the present invention, the second processor 403 is configured to perform the following operations: The bit stream is analyzed to obtain a coordinate axis order index. A processing order of the point cloud data in the point cloud decoding process is determined according to the coordinate axis order index. The bit stream is analyzed to obtain reconstructed data of the point cloud data. A position of the coordinate data of the point cloud data in the storage unit of the reconstructed data is determined according to the processing order. The above processing order indicates the order of processing the coordinate axes of the three-dimensional coordinates of the point cloud data, and the above point cloud data is all or a part of the data in the point cloud.
[0272] When the integrated unit is realized as a software functional module and sold or used as an independent product, it may be stored in a computer-readable recording medium. According to this understanding, the essential part of the technical solution of the present invention, or the part that can contribute to the prior art, or all or part of the technical solution may be expressed as a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer (which may be a personal computer, a server, a network device, etc.) or a processor to execute all or part of the process of the method according to each embodiment of the present invention. The storage medium includes various media capable of storing program codes, such as a universal serial bus (USB) flash disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0273] An embodiment of the present invention provides a decoder. The decoder analyzes a bit stream to obtain a coordinate axis order index. The decoder determines a processing order of the point cloud data in the point cloud decoding process based on the coordinate axis order index. The processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The decoder analyzes the bit stream to obtain the restored data of the point cloud data. The decoder determines the position of the coordinate data of the point cloud data in the storage unit of the restored data based on the processing order. That is, in an embodiment of the present invention, on the encoding side, the encoder first determines the processing order of the transformation process corresponding to the point cloud data, and while performing RAHT based on the processing order, the encoder can write the processing order into the bit stream and send it to the decoder. On the decoding side, the decoder analyzes the bit stream to obtain the processing order of the transformation process corresponding to the point cloud data, and perform RAHT based on the processing order. In this way, in the point cloud encoding method and point cloud decoding method according to the present invention, a fixed order is not used to perform RAHT on all or a part of the point cloud data, and a syntax element in the bit stream is used to indicate the processing order. This allows the coordinate processing order in the encoding and decoding processes to be adaptively changed, and the conversion efficiency of RAHT can be fully utilized, thereby solving the problem of low conversion efficiency and significantly improving the efficiency of encoding and decoding.
[0274] An embodiment of the present invention provides a computer-readable storage medium having a program stored thereon, the program being adapted to perform the method according to the embodiment when executed by a processor.
[0275] Specifically, the program instructions corresponding to the encoding method in the embodiment of the present invention can be stored in a storage medium such as an optical disk, a hard disk, a USB flash disk, etc. When the program instructions corresponding to the encoding method in the storage medium are read or executed by an electronic device, they perform the following operations: A processing order of the point cloud data in the point cloud encoding process is determined. The processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. A coordinate axis order index corresponding to the processing order is determined. The coordinate axis order index is encoded, and the encoded bits are written into a bit stream. The point cloud data is processed based on the processing order to obtain the point cloud data to be encoded. The point cloud data to be encoded is encoded, and the encoded bits are written into a bit stream.
[0276] Specifically, the program instructions corresponding to the decoding method in the embodiment of the present invention can be stored in a storage medium such as an optical disk, a hard disk, a USB flash disk, etc. When the program instructions corresponding to the decoding method in the storage medium are read or executed by an electronic device, they perform the following operations: The bit stream is analyzed to obtain a coordinate axis order index. A processing order of the point cloud data in the point cloud decoding process is determined according to the coordinate axis order index. The processing order indicates a coordinate axis processing order of the three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The bit stream is analyzed to obtain the restored data of the point cloud data. A position of the coordinate data of the point cloud data in the storage unit of the restored data is determined according to the processing order.
[0277] It should be understood by those skilled in the art that the embodiments of the present invention can provide a method, a system, or a computer processor product. Thus, the embodiments of the present invention can have a hardware embodiment, a software embodiment, or an embodiment combining software and hardware. The present invention can also be implemented in the form of a computer program product embodied on one or more computer usable storage mediums (including, but not limited to, magnetic disk storage devices, optical memories, etc.) that contain computer usable program code.
[0278] The present invention will be described with reference to flowcharts and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. Each process and / or block in the flowcharts and / or block diagrams, and combinations of processes and / or blocks in the flowcharts and / or block diagrams, are implemented by computer program instructions that are provided to a processor of a general purpose computer, special purpose computer, embedded processor or other programmable data processing device to generate a machine. The instructions, executed by the processor of the computer or other programmable data processing device, then result in an apparatus that can be used to implement the functions specified in the process or processes of the flowcharts and / or the block or blocks of the block diagrams.
[0279] These computer program instructions can be stored in a computer-readable storage medium that can direct a computer or other programmable data processing apparatus to perform in a particular manner, whereby the instructions stored in the computer-readable storage medium result in an article of manufacture that includes an instruction apparatus that implements the function specified in a process or processes of the flowcharts and / or a block or blocks of the block diagrams.
[0280] These computer program instructions can be loaded into a computer or other programmable data processing apparatus and cause the computer or other programmable apparatus to perform a series of operational steps to generate a computer-implemented process, where the instructions, executed on the computer or other programmable apparatus, provide the steps used to implement the function specified in the process or processes of the flowcharts and / or in the block or blocks of the block diagrams.
[0281] The above are only preferred embodiments of the present invention, and are not intended to limit the protection scope of the present invention. Industrial Applicability
[0282] An embodiment of the present invention provides a point cloud encoding method. An encoder determines a processing order of point cloud data in a point cloud encoding process. The processing order indicates a coordinate axis processing order of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The encoder determines a coordinate axis order index corresponding to the processing order. The encoder encodes the coordinate axis order index and writes the encoded bits into a bit stream. The encoder processes the point cloud data according to the processing order to obtain the point cloud data to be encoded. The encoder encodes the point cloud data to be encoded and writes the encoded bits into a bit stream. The decoder analyzes the bit stream to obtain a coordinate axis order index. The decoder determines a processing order of point cloud data in a point cloud decoding process according to the coordinate axis order index. The processing order indicates a coordinate axis processing order of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud. The decoder analyzes the bit stream to obtain reconstruction data of the point cloud data. The decoder determines a position of the coordinate data of the point cloud data in the storage unit of the reconstruction data according to the processing order. That is, in the embodiment of the present invention, on the encoding side, the encoder first determines the processing order of the transformation process corresponding to the point cloud data, and while executing RAHT based on the processing order, writes the processing order into the bit stream and transmits it to the decoder. On the decoding side, the decoder analyzes the bit stream to obtain the processing order of the transformation process corresponding to the point cloud data, and executes RAHT based on the processing order. In this way, in the point cloud encoding method and point cloud decoding method according to the present invention, a fixed order is not used to perform RAHT on all or part of the point cloud data, but the processing order is indicated using syntax elements in the bit stream. This allows the coordinate processing order in the encoding and decoding process to be adaptively changed, and the conversion efficiency of RAHT can be fully exerted, solving the problem of low conversion efficiency and greatly improving the efficiency of encoding and decoding.
Claims
1. A point cloud encoding method applied to an encoder, comprising: determining a processing order of the point cloud data in a point cloud encoding process; determining a coordinate axis order index corresponding to the processing order; encoding the coordinate axis order index and writing the encoded bits into a bitstream; Processing the point cloud data based on the processing order to obtain point cloud data to be encoded; encoding the point cloud data to be encoded and writing the encoded bits into a bitstream; the processing order indicates a processing order of coordinate axes of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud; Determining a coordinate axis order index corresponding to the processing order includes: setting a value of the coordinate axis order index corresponding to the processing order based on a preset correspondence table of indexes and processing orders; A point cloud encoding method comprising:
2. Determining a processing order of the point cloud data in the point cloud encoding process includes: determining the processing order based on Morton codes of nodes in the point cloud data; The point group encoding method according to claim 1 .
3. The processing order is any one of a Z-Y-X order, an X-Y-Z order, an X-Z-Y order, a Y-Z-X order, a Z-X-Y order, and a Y-X-Z order, and X, Y, and Z are coordinate axes of the three-dimensional coordinates of the point cloud data. The point group encoding method according to claim 1 .
4. The predetermined index and processing order correspondence table includes: The point group encoding method according to claim 3 .
5. A point cloud decoding method applied to a decoder, comprising: Parsing the bit stream to obtain an axis order index; determining a processing order of the point cloud data in a point cloud decoding process according to the coordinate axis order index; Analyzing the bitstream to obtain reconstruction data of the point cloud data; determining a position of coordinate data of the point cloud data in a storage unit of the restored data based on the processing order; the processing order indicates a processing order of coordinate axes of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud; determining a processing order of the point cloud data in a point cloud decoding process based on the coordinate axis order index, determining the processing order corresponding to the coordinate axis order index based on a preset index / processing order correspondence table; The point group decoding method according to claim 1,
6. Parsing the bitstream to obtain a coordinate axis order index includes: Analyzing the fixed length code to obtain the coordinate axis order index; or Parsing the bitstream corresponding to parameter set data units in the bitstream; The data unit of the parameter set includes parameters used for decoding the point cloud data. The method for decoding points according to claim 5 .
7. The processing order is any one of a Z-Y-X order, an X-Y-Z order, an X-Z-Y order, a Y-Z-X order, a Z-X-Y order, and a Y-X-Z order, and X, Y, and Z are coordinate axes of the three-dimensional coordinates of the point cloud data. The method for decoding points according to claim 5 .
8. The predetermined index and processing order correspondence table includes: The method of claim 7, wherein the point cloud is decoded.
9. An encoder including at least one processor and a memory, The memory is coupled to the at least one processor, and the memory has at least one computer-executable instruction stored therein, the at least one computer-executable instruction, when executed by the at least one processor, causing the at least one processor to: determining a processing order of the point cloud data in a point cloud encoding process; determining a coordinate axis order index corresponding to the processing order; encoding the coordinate axis order index and writing the encoded bits into a bitstream; Processing the point cloud data based on the processing order to obtain point cloud data to be encoded; encoding the point cloud data to be encoded and writing the encoded bits into a bitstream; Run the command, the processing order indicates a processing order of coordinate axes of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud; The at least one processor configured to determine a coordinate axis order index corresponding to the processing order, and setting a value of the coordinate axis order index corresponding to the processing order based on a preset correspondence table between indexes and processing orders.
16. An encoder comprising:
10. The at least one processor configured to determine a processing order of point cloud data in the point cloud encoding process, determining the processing order based on Morton codes of nodes in the point cloud data; 10. The encoder of claim 9.
11. The processing order is any one of a Z-Y-X order, an X-Y-Z order, an X-Z-Y order, a Y-Z-X order, a Z-X-Y order, and a Y-X-Z order, and X, Y, and Z are coordinate axes of the three-dimensional coordinates of the point cloud data.
10. The encoder of claim 9.
12. The predetermined index and processing order correspondence table includes:
12. An encoder as claimed in claim 11.
13. A decoder including at least one processor and a memory, The memory is coupled to the at least one processor, and the memory has at least one computer-executable instruction stored therein, the at least one computer-executable instruction, when executed by the at least one processor, causing the at least one processor to: Parsing the bit stream to obtain an axis order index; determining a processing order of the point cloud data in a point cloud decoding process according to the coordinate axis order index; Analyzing the bitstream to obtain reconstruction data of the point cloud data; determining a position of coordinate data of the point cloud data in the storage unit of the restored data based on the processing order; Run the command, the processing order indicates a processing order of coordinate axes of three-dimensional coordinates of the point cloud data, and the point cloud data is all or a part of the data in the point cloud; The at least one processor configured to determine a processing order of the point cloud data in a point cloud decoding process based on the coordinate axis order index, The processing order corresponding to the coordinate axis order index is determined based on a preset correspondence table between indexes and processing orders.
23. A decoder comprising:
14. The at least one processor configured to parse the bitstream to obtain an axis order index, Analyzing the fixed-length code to obtain the coordinate axis order index; or configured to parse a bitstream corresponding to a parameter set data unit in the bitstream; The data unit of the parameter set includes parameters used for decoding the point cloud data.
14. A decoder according to claim 13.
15. The processing order is any one of a Z-Y-X order, an X-Y-Z order, an X-Z-Y order, a Y-Z-X order, a Z-X-Y order, and a Y-X-Z order, and X, Y, and Z are coordinate axes of the three-dimensional coordinates of the point cloud data.
14. A decoder according to claim 13.
16. The predetermined index and processing order correspondence table includes:
16. A decoder according to claim 15.
Citation Information
Patent Citations
K-d tree encoding for point clouds using deviations
WO2018093886A1
A method and apparatus for encoding / decoding the geometry of a point cloud representing a 3D object
WO2019011636A1
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2019230920A1
Point cloud encoding and decoding method and codec
WO2020001565A1