WO2021000658A1 - 点云编解码方法、编码器、解码器及计算机存储介质 - Google Patents
点云编解码方法、编码器、解码器及计算机存储介质 Download PDFInfo
- Publication number
- WO2021000658A1 WO2021000658A1 PCT/CN2020/090677 CN2020090677W WO2021000658A1 WO 2021000658 A1 WO2021000658 A1 WO 2021000658A1 CN 2020090677 W CN2020090677 W CN 2020090677W WO 2021000658 A1 WO2021000658 A1 WO 2021000658A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point cloud
- sequence
- cloud data
- data
- processing
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
Definitions
- the embodiments of the present application relate to the field of video coding and decoding technologies, and in particular to a point cloud coding and decoding method, an encoder, a decoder, and a computer storage medium.
- G-PCC Point Cloud Compression
- the coding of attribute information is mainly for the coding of color information.
- the color information is converted from the RGB color space to the YUV color space.
- the reconstructed geometric information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometric information.
- One is the distance-based lifting transformation that relies on the level of detail (Level of Detail, LOD) division, and the other is the direct region adaptive hierarchical transformation (Region Adaptive Hierarchal).
- Transform, RAHT these two methods will transform the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize and encode the coefficients to generate a binary code stream.
- the embodiments of the application provide a point cloud coding and decoding method, encoder, decoder, and computer storage medium, which can adaptively change the coordinate processing sequence in the coding and decoding process, thereby fully demonstrating the transformation efficiency of RAHT and solving the transformation efficiency
- the low problem greatly improves the coding and decoding efficiency.
- an embodiment of the present application provides a point cloud encoding method applied to an encoder, and the method includes:
- the point cloud data to be encoded is encoded, and the encoded bits are written into the code stream.
- an embodiment of the present application provides a point cloud decoding method applied to a decoder, and the method includes:
- the position of the coordinate data of the point cloud data in the storage unit of the restored data is determined.
- an embodiment of the present application provides an encoder, the encoder includes: a first determining part, an encoding part, and a transforming part,
- the first determining part is configured to determine the processing sequence of the point cloud data in the point cloud encoding process; wherein the processing sequence indicates the coordinate axis processing sequence 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; and determining the coordinate axis sequence index number corresponding to the processing sequence;
- the encoding part is configured to encode the sequential index number of the coordinate axis, and write encoded bits into a code stream;
- the transformation part is configured to process the point cloud data according to the processing sequence to obtain the point cloud data to be encoded
- the encoding part is further configured to encode the point cloud data to be encoded, and write encoded bits into a code stream.
- an embodiment of the present application provides an encoder.
- the encoder includes a first processor and a first memory storing executable instructions of the first processor. When the instructions are executed, the encoder When the first processor is executed, the point cloud coding method as described above is realized.
- an embodiment of the present application provides a decoder, which includes: an analysis part, a second determination part, and a second transformation part,
- the parsing part is configured to analyze the code stream to obtain the sequential index number of the coordinate axis
- the second determining part is configured to determine the processing sequence of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number; wherein the processing sequence indicates the coordinate axis of the three-dimensional coordinate of the point cloud data Processing sequence, the point cloud data is all or part of the data in the point cloud;
- the parsing part is also configured to analyze the code stream to obtain the restored data of the point cloud data
- the second determining part is further configured to determine the position of the coordinate data of the point cloud data in the storage unit of the restored data according to the processing sequence.
- an embodiment of the present application provides a decoder.
- the decoder includes a second processor and a second memory storing executable instructions of the second processor. When the instructions are executed, The second processor implements the point cloud decoding method as described above when executed.
- an embodiment of the present application provides a computer storage medium, the computer storage medium stores a computer program, and when the computer program is executed by a first processor, the above-mentioned point cloud coding method is implemented, or is The second processor implements the point cloud decoding method described above when executed.
- the embodiment of the application discloses a point cloud encoding and decoding method, an encoder, a decoder, and a computer storage medium.
- the encoder determines the processing sequence of point cloud data in the point cloud encoding process; wherein the processing sequence indicates the three-dimensional point cloud data
- the coordinate axis processing sequence of the coordinate, the point cloud data is all or part of the data in the point cloud; determine the coordinate axis sequence index number corresponding to the processing sequence; encode the coordinate axis sequence index sequence number, and write the coded bits into the code stream; according to In the processing sequence, the point cloud data is processed 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 the code stream.
- the decoder parses the code stream and obtains the coordinate axis order index number; according to the coordinate axis order index number, determines the processing order of the point cloud data in the point cloud decoding process; where the processing order indicates the coordinate axis processing order of the three-dimensional coordinates of the point cloud data , Point cloud data is all or part of the data in the point cloud; parse the code stream to obtain the restored data of the point cloud data; according to the processing sequence, determine the position of the coordinate data of the point cloud data in the storage unit of the restored data.
- the encoder can first determine the processing sequence of the transformation processing corresponding to the point cloud data, and write the processing sequence into the code stream while performing the RAHT transformation according to the processing sequence. It is transmitted to the decoder.
- the decoder analyzes the processing sequence of the transformation processing corresponding to the point cloud data obtained by analyzing the code stream, so that RAHT transformation can be performed according to the processing sequence.
- the point cloud encoding and decoding method proposed by this application no longer uses a fixed RAHT transformation sequence for all or part of the point cloud data, but uses the syntax elements in the code stream to describe the processing sequence, so that it can be adaptive
- the transformation efficiency of RAHT can be fully demonstrated, the problem of low transformation efficiency is solved, and the encoding and decoding efficiency is greatly improved.
- Figure 1 is a flow chart of G-PCC encoding
- Figure 2 is a flow chart of G-PCC decoding
- Figure 3 is a schematic diagram of spatial coding
- Figure 4 is a second schematic diagram of spatial coding
- Figure 5 is a third schematic diagram of spatial coding
- Figure 6 is a fourth schematic diagram of spatial coding
- Figure 7 is the first schematic diagram of RAHT transformation
- Figure 8 is the second schematic diagram of RAHT transformation
- Figure 9 is the third schematic diagram of RAHT transformation
- Figure 10 is the first schematic diagram of the implementation process of point cloud coding
- Figure 11 is a second schematic diagram of the implementation process of point cloud coding
- Figure 12 is the first schematic diagram of the implementation process of point cloud decoding
- Figure 13 is a second schematic diagram of the implementation process of point cloud decoding
- Figure 14 is a schematic diagram of the composition of the encoder
- Figure 15 is a second schematic diagram of the composition of the encoder
- Figure 16 is a schematic diagram of the structure of the decoder
- Figure 17 is the second structural diagram of the decoder.
- each slice is encoded independently.
- Figure 1 is a flow diagram of G-PCC encoding.
- G-PCC encoding shown in Figure 1, it is applied to a point cloud encoder.
- For the point cloud data to be encoded first divide the point cloud data by slices Divide into multiple slices. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point cloud are separately coded.
- the geometric information is coordinated to convert the point cloud into a bounding box (bounding box), and then quantized. This step of quantization mainly plays a role of scaling. Due to quantization rounding, a part of The geometric information of the point cloud is the same, so it is determined whether to remove duplicate points based on the parameters.
- the process of quantifying and removing duplicate points is also called the voxelization process. Then divide the bounding box into an octree. In the octree-based geometric information encoding process, the bounding box is divided into 8 sub-cubes, and the non-empty (containing points in the point cloud) sub-cubes are continued to be divided into eight equals until the leaf knots are obtained. When the point is a unit cube of 1 ⁇ 1 ⁇ 1, the division is stopped, and the points in the leaf nodes are arithmetic coded to generate a binary geometric bit stream, that is, a geometric code stream.
- octree division In the process of encoding geometric information based on triangles (triangle soup, trisoup), octree division must also be performed first, but different from the geometric information encoding based on octrees, the trisoup does not need to step-by-step the point cloud Divided into a unit cube with a side length of 1x1x1, but divided into a block (sub-block) when the side length is W, and the division stops.
- the geometric coding is completed. After the geometric information is reconstructed, color conversion is performed to convert the color information (that is, the attribute information) from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometric information. Attribute coding is mainly carried out for color information. In the color information coding process, there are mainly two transformation methods. One is distance-based lifting transformation that relies on Level of Detail (LOD) division, and the other is direct area adaptation.
- LOD Level of Detail
- Hierarchical transform (Region Adaptive Hierarchal Transform, RAHT) transformation
- these two methods will transform the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through the transformation, and finally quantize the coefficients (ie, quantized coefficients)
- the geometrically coded data and the quantized coefficient processing attribute coded data are slice-composited, and the vertex coordinates of each block are coded in turn (that is, arithmetic coding) to generate a binary attribute bit stream. That is, the attribute code stream.
- FIG. 2 is a flow diagram of G-PCC decoding.
- G-PCC decoding shown in Figure 2, it is applied to the point cloud decoder.
- the geometric bits in the binary code stream The stream and the attribute bit stream are decoded independently.
- the RAHT transform is the part that encodes the attribute information of the point cloud.
- the lossy coding is carried out through the principle of Harr wavelet transform, which is generally suitable for sparse point clouds. Specifically, before the RAHT transformation, the geometric coordinate information of the point cloud has been obtained. Using the coordinate information of the point, the Morton code corresponding to each point in the point cloud can be obtained. Morton coding is also called z-order code, because its coding sequence is in spatial z order. The specific method of calculating the Morton code is described as follows. For each component of the three-dimensional coordinate represented by a d-bit binary number, the three coordinate components are represented by the following formula:
- Morton code M is to start x, y, z from the highest bit, and alternately arrange x l , y l , z l to the lowest bit in turn.
- the calculation formula of M is as follows:
- Figure 3 is a schematic diagram of spatial coding
- Figure 4 is a schematic diagram of spatial coding, which will be described in conjunction with Figures 3 and 4.
- the order of high and low order here is z, y, x(x
- Figure 3 shows the spatial encoding of each pixel of an 8*8 image, from 000000 to 111111, using one-dimensional binary numbers to encode the position coordinates of x and y values between 0-7. Interleave binary coordinate values to obtain a binary z-value map. Connect the z-shape along the numerical direction to produce a recursive z-shaped curve. In each position in the figure, the z value is placed in the order of connection.
- the above figure is iteratively generated in the Z direction, from 00-11 (one z in the entire figure), then from 0000-1111 (one z for each point of the previous z), and then from 000000-111111 (the previous Put one z) for each point of z, and increase by two bits each time, recursively increase.
- FIG. 4 shows the 2x2, 4x4, 8x8 and 16x16 spatial coding sequence, from which it can be seen that the coding sequence of Morton code is implemented in the spatial z sequence.
- Figure 5 is the third schematic diagram of spatial coding
- Figure 6 is the fourth schematic diagram of spatial coding.
- the recursive process is shown in Figures 5 and 6, as shown in Figures 5 and 6, which achieves coordinate interleaving. The whole thing is to continuously change the coordinate values.
- the decoding process is the aggregation process.
- the RAHT transformation is performed on the basis of the hierarchical structure obtained by dividing the point cloud data into an octree. Starting from the bottom layer of the octree, the transformation is performed hierarchically.
- Figure 7 is a schematic diagram of RAHT transformation. As shown in Figure 7, voxel block 1 (that is, the geometry with three color depths alternated in Figure 7) is obtained after the octree division is completed. Each square represents a point in the point cloud. ).
- Start the RAHT transformation from the bottom layer taking the transformation sequence X-Y-Z as an example, as shown in Figure 7 first perform the RAHT transformation along the X direction.
- RAHT is performed on the two to obtain the weighted average (DC coefficient) and residual (AC coefficient) of the attribute values of two adjacent points.
- DC coefficient weighted average
- AC coefficient residual
- the obtained DC coefficients exist as the attribute information of the voxel block 2 of the parent node, and the RAHT transformation of the next layer is performed; and the AC coefficients are retained and used for the final coding.
- the attribute value of the voxel block is directly transferred to the second-level parent node. In the second layer of RAHT transformation, it is performed along the Y direction.
- RAHT is performed on the two, and the weighted average (DC coefficient) and residual (AC coefficient) of the attribute values of the two adjacent points are obtained. ).
- DC coefficient weighted average
- AC coefficient residual
- the third layer of RAHT transformation is performed along the Z direction, and the parent node voxel block 3 with three different color depths is obtained as the child node of the next layer in the octree, and then the RAHT transformation is performed cyclically along the x, y, and Z directions , Until there is only one parent node in the entire point cloud.
- Luma is configured by the incoming quantization parameters, and w is the weight corresponding to the DC coefficient, which is calculated.
- the DC coefficient is the weighted average of the attributes, and the AC coefficient is the attribute residuals of two adjacent points.
- c 1, c 2 of the first layer is an attribute value corresponding to w 1, w 2, for the other layers of the DC coefficient value obtained by calculation.
- Figure 8 is the second schematic diagram of RAHT transformation. As shown in Figure 8, it is judged whether the Morton codes of the two DC coefficients are the same. If they are the same, it means that they are under the same parent node. The DC coefficient is filled in the DC coefficient of the parent node of the next layer, the AC coefficient is filled in the last DC coefficient of the next layer, and the weight of the sum of the two DC coefficients is assigned to the DC coefficient of the parent node; if they are different, then this The DC coefficient and its weight are directly filled into the next layer.
- the RAHT transformation sequence also needs to be used in the RAHT inverse transformation.
- the RAHT decoding process is the inverse transformation of the RAHT encoding process. It is the same as the encoding process. Before the inverse transformation, the Morton code of each point is calculated in the point cloud, and the Morton code M of each point is obtained. The points are arranged in ascending order, and the weight of each point is set to 1. The RAHT inverse process traverses all points in the point cloud according to the order of Morton code sorting.
- the RAHT transformation is carried out in layers, starting from the bottom layer, the adjacent points in the point cloud are judged layer by layer, and RAHT transformation is performed on the attribute value according to the weight.
- the process of inverse RAHT transformation starts from the top layer and performs the inverse transformation of RAHT from top to bottom. Therefore, the weight information of each layer needs to be obtained before the inverse RAHT transformation.
- the inverse RAHT transform uses the obtained Morton code information, starting from the bottom layer, and make a judgment on the adjacent nodes of each layer of RAHT in the encoding end, and the weight information of each layer and the corresponding position of the AC coefficient can be obtained.
- the corresponding Morton code is shifted one bit to the left. Record the weight information and the Morton code information corresponding to the nodes in each layer into the buffer for later use.
- Fig. 9 is the third schematic diagram of the RAHT transformation. As shown in Fig. 9, the inverse RAHT transformation is equivalent to the process from the k+1th layer to the kth layer. When judging the neighboring nodes, take the traversed DC coefficients and the corresponding AC coefficients to perform the inverse transformation of RAHT.
- RAHT is iteratively performed for each node along three axes in a fixed order in each layer.
- the generally used fixed order is ZYX, but there are other possible transformation orders, such as XYZ.
- the RAHT transformation of the nodes in the point cloud using the ZYX order has the problem of low transformation efficiency. Thereby reducing the coding and decoding efficiency.
- the embodiments of the present application propose a point cloud encoding and decoding method, an encoder, a decoder, and a computer storage medium.
- the encoder can first determine the processing sequence of the transformation processing corresponding to the point cloud data. While performing RAHT transformation according to the processing sequence, the processing sequence is written into the code stream and transmitted to the decoder.
- the decoder analyzes the point cloud data obtained by analyzing the code stream. The processing sequence of the transformation processing corresponding to the point cloud data can be based on the processing sequence. Perform RAHT transformation.
- the point cloud encoding and decoding method proposed by this application no longer uses a fixed RAHT transformation sequence for all or part of the point cloud data, but uses the syntax elements in the code stream to describe the processing sequence, so that it can be adaptive
- the transformation efficiency of RAHT can be fully demonstrated, the problem of low transformation efficiency is solved, and the encoding and decoding efficiency is greatly improved.
- the point cloud encoding method of the embodiment of this application can be applied to the RAHT transformation part as shown in FIG. 1.
- the point cloud decoding method of the embodiment of this application can also be applied to Figure 2 shows the RAHT transformation part. That is to say, the point cloud coding and decoding method in the embodiments of this application can be applied to video coding systems, video decoding systems, and even both video coding systems and video decoding systems.
- the implementation of this application The examples are not specifically limited.
- FIG. 10 is a schematic diagram 1 of the implementation process of point cloud encoding.
- an encoder encodes a point cloud. It can include the following steps:
- Step 101 Determine the processing sequence of the point cloud data in the point cloud encoding process; wherein the processing sequence indicates the coordinate axis processing sequence 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 encoder may first determine the processing sequence of the point cloud data in the point cloud encoding process.
- the point cloud data is all or part of the data in the point cloud, and the processing sequence can be used to indicate the coordinate axis processing sequence of the three-dimensional coordinates of the point cloud data.
- the point cloud data may be all data in the point cloud. Accordingly, determining the processing order of the point cloud data is determining the processing order of all the data in the point cloud, that is to say In this application, for each point in the point cloud, the encoder can use the same processing sequence for transformation processing.
- the encoder can obtain multiple slices corresponding to the point cloud by dividing the point cloud. Therefore, the point cloud data may also be part of the point cloud data, that is, the point cloud data may be For the data of any slice in the point cloud, correspondingly, determining the processing sequence of the point cloud data is to determine the processing sequence of the data of any slice in the point cloud. That is to say, in this application, for the data in the point cloud For each point of the same slice, the encoder can use the same processing sequence for transformation processing.
- the processing sequence is the transformation sequence used in the RAHT transformation, and each point in the point cloud is point cloud data in the three dimensions of X, Y, and Z. Therefore, The processing sequence indicates the sequence of transformations on the three coordinate axes X, Y, and Z.
- RAHT when RAHT is performed on the point cloud attribute information in a hierarchical manner, RAHT is iteratively performed on each node along three axes based on the processing sequence in each layer. For example, if the processing sequence is XYZ sequence, then the encoder can perform RAHT on the nodes in the point cloud first X, Y and then Z; if the processing sequence is YZX sequence, then the encoder can perform Y and then Z on the nodes in the point cloud. Finally, execute RAHT at X.
- the sequence of the RAHT transformation of the encoder can include 6 different combinations, that is, the processing sequence can be 6 different transformation sequences.
- the processing order of the point cloud data can be any of ZYX order, XYZ order, XZY order, YZX order, ZXY order, and YXZ order; among them, X, Y, Z is the coordinate axis of the three-dimensional coordinates of the point cloud data.
- the encoder when determining the processing sequence of the point cloud data in the point cloud encoding process, may determine the processing sequence according to the Morton codes of the nodes in the point cloud data.
- the encoder may first calculate the Morton code of each node in the point cloud data, and then sort the nodes in the point cloud data according to the Morton code from small to large. Finally, each node in the point cloud data can be traversed in the sorted order.
- Step 102 Determine the coordinate axis sequence index number corresponding to the processing sequence.
- the encoder may further determine the coordinate axis sequence index number corresponding to the processing sequence.
- the encoder can set different coordinate axis sequence index numbers.
- the processing sequence can be any of six different transformation sequences, the coordinate axis sequence index number can also include six different values.
- the encoder when the encoder determines the coordinate axis sequence index number corresponding to the processing sequence, it can set the coordinate axis sequence index sequence number corresponding to the processing sequence according to the correspondence table between the preset index sequence number and the processing sequence The value of.
- Table 1 is the corresponding table 1 of the preset index number and the processing order. As shown in Table 1, for different processing orders, query the corresponding table of the preset index number and the processing order to determine The corresponding coordinate axis sequence index number.
- the processing sequence and the coordinate axis sequence index number are not in a one-to-one correspondence.
- the ZYX sequence corresponds to two different coordinate axis sequence index numbers. Specifically, the ZYX sequence corresponds to index sequence number 0 and index number 4 respectively; the XYZ sequence corresponds to two different coordinate axis sequence index numbers. Specifically, the XYZ sequence corresponds to index number 1 and index number 7 respectively.
- the other four RAHT transformation sequences except the Z-Y-X sequence and the X-Y-Z sequence correspond to a unique coordinate axis sequence index number. Among them, X-Z-Y order corresponds to index number 2, Y-Z-X order corresponds to index number 3, Z-X-Y order corresponds to index number 5, and Y-X-Z order corresponds to index number 6.
- the encoder when the encoder sets the value of the coordinate axis sequence index number corresponding to the processing sequence according to the correspondence table of the preset index sequence number and the processing sequence, if the processing sequence of the point cloud data is ZYX sequence , Then the encoder can set the value of the coordinate axis sequence index number to 0 or 4; if the processing sequence of the point cloud data is XYZ sequence, then the encoder can set the value of the coordinate axis sequence index number to 1 or 7; If the point cloud data processing order is XZY order, then the encoder can set the value of the coordinate axis order index number to 2.
- the encoder can set the coordinate axis order index number The value is set to 3; if the processing order of the point cloud data is ZXY order, then the encoder can set the value of the coordinate axis order index number to 5; if the processing order of the point cloud data is YXZ order, then the encoder can change The value of the coordinate axis sequence index number is set to 6.
- Table 2 is the corresponding relationship between the preset index number and the processing order, as shown in Table 2, for different processing orders, query the corresponding relationship between the preset index number and the processing order to determine the corresponding coordinates Axis sequence index number.
- the encoder when the encoder sets the value of the coordinate axis sequence index number corresponding to the processing sequence according to the correspondence table of the preset index sequence number and the processing sequence, if the processing sequence of the point cloud data is ZYX sequence , That is, indicate the processing order by 2-1-0, then the encoder can set the value of the coordinate axis sequence index number to 0 or 4; if the processing sequence of the point cloud data is XYZ order, that is, it is indicated by 0-1-2 Processing sequence, then the encoder can set the value of the coordinate axis sequence index number to 1 or 7.
- the encoder can set the coordinate The value of the axis order index number is set to 2; if the processing order of the point cloud data is YZX order, that is, the processing order is indicated by 2-0-1, then the encoder can set the value of the axis order index number to 3; If the point cloud data processing order is ZXY order, that is, the processing order is indicated by 1-2-0, then the encoder can set the value of the coordinate axis order index number to 5; if the point cloud data processing order is YXZ order, That is, if the processing sequence is indicated by 1-0-2, the encoder can set the value of the coordinate axis sequence index number to 6.
- the coordinate axis order index number can be represented by the syntax axis_coding_order, that is, the processing order of the three coordinate axes X, Y, and Z can be specified through the syntax axis_coding_order.
- the axis_coding_order for the G-PCC standard can be used to process data in the RecPic[pointIdx][axis] buffer.
- axis_coding_order 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, RecPic[pointIdx][0] stores the data of the Z axis; if the value of axis is equal to 1, then RecPic[pointIdx ][1] stores the data of the Y axis; if the axis value is equal to 2, then RecPic[pointIdx][2] stores the data of the X axis.
- Step 103 Encode the coordinate axis sequential index number, and write the encoded bits into the code stream.
- the encoder can further encode the coordinate axis sequence index sequence number, and then can write the encoded bits into the code stream.
- the encoder when the encoder encodes the coordinate axis sequential index number and writes the coded bits into the code stream, it can first use the isometric encoding method to encode the coordinate axis sequential index number to determine Encode the bits, and then write the encoded bits into the code stream.
- equal-length coding means that any value (probability may be different) of the output symbol sequence of the source is coded into output codewords of the same length, without using the statistical characteristics of the source.
- the encoder obtains the same length code of the same length after encoding the coordinate axis sequential index number by using the isometric coding method.
- the encoder when the encoder encodes the coordinate axis sequential index number and writes the coded bits into the code stream, the coded bits can be written into the code stream corresponding to the data unit of the parameter set; wherein, The data unit of the parameter set contains the parameters used to decode the point cloud data.
- the parameter set may be a parameter set of the sequence layer.
- the parameter set may also be a sequence parameter set.
- the data unit of the parameter set may include attribute information of the point cloud data; wherein the attribute information is a scalar or vector attribute associated with a point in the point cloud data.
- the data unit of the parameter set may also include geometric information of the point cloud data; where the geometric information is the Cartesian coordinates associated with the points in the point cloud data.
- the encoder when the encoder encodes the coordinate axis sequential index number and writes the coded bits into the code stream, the coded bits can be written into the data unit where the auxiliary information of the code stream is located.
- the auxiliary information may be video usability information (VUI).
- VUI video usability information
- Video availability information provides additional information for the corresponding bitstream to allow users to perform wider applications.
- the video availability information specifies (1) whether the motion crosses the picture boundary; (2) the maximum byte per picture; (3) the maximum bit per macro block; (4) the maximum motion vector length ( (Horizontal and vertical); (5) the number of reordered frames; (6) the maximum decoded frame buffer size.
- the decoder sees this information, the decoder does not use the "level" information to set the decoding requirements (which is generally higher than what the bitstream actually requires), but can be customized based on stricter limits Its decoding operation.
- the auxiliary information may also be Supplemental Enhancement Information.
- SEI is a concept in the code stream category and provides a way to add information to the video code stream.
- SEI is not a necessary item in the decoding process, it may be helpful to the decoding process (error tolerance, error correction) and can be integrated in the video code stream. That is to say, when the encoder outputs the video code stream, it may not provide SEI information, or the video transmission process, decapsulation, and decoding may all discard the SEI for some reason.
- the encoder when the encoder encodes the coordinate axis sequential index number and writes the encoded bits into the code stream, the encoded bits can be written into the point cloud encoded data corresponding to the point cloud data.
- the code stream In other words, the code stream can be a transport stream containing point cloud coded data.
- the encoder when the encoder encodes the coordinate axis sequential index number and writes the encoded bits into the code stream, the encoded bits can be written into the media containing the point cloud encoded data corresponding to the point cloud data File.
- the code stream can be a media file containing point cloud coded data.
- the coordinate axis order index number axis_coding_order can be encoded in the auxiliary information of the SPS (for example, VUI), or encoded in other auxiliary information data units of the point cloud data (for example, SEI). It can be further extended to encode in the auxiliary information unit of the transport stream or file format.
- Step 104 Process the point cloud data according to the processing sequence to obtain the point cloud data to be encoded.
- the encoder determines the processing sequence of the point cloud data in the point cloud encoding process, that is, after step 101, it can process the point cloud data according to the processing sequence to obtain the point cloud data to be encoded .
- the processing sequence is the transformation sequence when RAHT transformation is performed on the point cloud attribute information. Therefore, after the encoder determines the processing sequence, it can use the processing sequence to perform processing corresponding to the point cloud data. RAHT transform to obtain the corresponding point cloud data to be coded.
- the processing order may be the transformation order of all data in the point cloud, and the encoder determines the processing order after ,
- the RAHT transformation can be performed on each point in the point cloud sequentially through the processing sequence.
- the point cloud data may also be part of the data in the point cloud, that is, the point cloud data may be data of any slice in the point cloud, so the processing sequence may also be the point cloud
- the encoder can sequentially perform RAHT transformation on each point in the slice through the processing sequence.
- the encoder can use the same transformation sequence for all data in the point cloud to perform RAHT transformation; if the processing sequence is the transformation sequence of the point cloud
- the encoder can use the same transformation order to perform RAHT transformation on part of the data in the point cloud. For example, for the data in a slice after division, the same transformation order can be used for RAHT transformation.
- the encoder when the encoder processes the point cloud data according to the processing sequence to obtain the point cloud data to be encoded, it may first perform coordinate mapping processing on the point cloud data according to the processing sequence.
- the encoder when the encoder performs coordinate mapping processing on the point cloud data according to the processing sequence, it may rearrange the coordinates of the point cloud data according to the processing sequence.
- the encoder when the encoder processes the point cloud data according to the processing sequence to obtain the point cloud data to be encoded, it can perform the point cloud data in the corresponding coordinate axis direction according to the processing sequence. deal with.
- the RAHT transformation is executed in sequence by first transforming in one coordinate direction, then transforming in another coordinate direction, and finally transforming in the third coordinate direction.
- the encoder when the encoder processes the point cloud data in the corresponding coordinate axis direction according to the processing sequence, it can sequentially process the point cloud data in the corresponding coordinate axis direction according to the processing sequence. Carry out RAHT treatment.
- the encoder when the encoder performs RAHT processing on the point cloud data in the direction of the corresponding coordinate axis according to the processing sequence, it can first determine the Morton code of the node in the point cloud data, and then follow the processing Sequence and Morton code perform RAHT transformation on point cloud data.
- the encoder when the encoder performs RAHT transformation on the point cloud data according to the processing sequence and Morton code, it may first determine whether the processing sequence is the same as the preset sequence.
- the preset sequence may be a default transformation sequence stored in advance by the encoder.
- the encoder can set the Z-Y-X sequence as a preset sequence.
- the encoder can compare the processing sequence with the preset sequence. If the processing sequence is the same as the preset sequence, the encoder can directly perform the point cloud data calculation according to the preset sequence and Morton code. Perform RAHT transformation; if the processing sequence is different from the preset sequence, the encoder can perform RAHT transformation on the point cloud data according to the processing sequence and Morton code.
- FIG. 11 is the second schematic diagram of the point cloud encoding implementation process.
- the method for encoding the point cloud data by the encoder may further include the following steps:
- Step 106 Determine the sequence indication parameter according to the processing sequence; wherein the sequence indication parameter is used to indicate whether to use the preset sequence.
- Step 107 Encode the sequence indication parameter, and write the encoded bits into the code stream.
- the encoder may first set the sequence indicating parameters according to the processing sequence, and then encode the sequence indicating parameters, and write the encoded bit stream into the code stream.
- the sequence indication parameter may be used to indicate whether to use the preset sequence. That is to say, if the encoder uses a preset order for transformation processing, the order indication parameter can be set to indicate the use of the preset order; if the encoder does not use the preset order for transformation processing, the order indication parameter can be set to indicate The preset sequence is not used.
- the encoder determines the order indication parameter according to the processing order, if the processing order is different from the preset order, the encoder needs to transform the point cloud data according to the processing order, so it can change The value of the order indicator parameter is set to indicate that the preset order is not used; if the processing order is the same as the preset order, the encoder can transform the point cloud data according to the preset order, so the value of the order indicator parameter can be set Use preset sequence for instructions.
- the value of the sequence indication parameter when the encoder sets the sequence indication parameter, the value of the sequence indication parameter may be set to 0, thereby indicating that the preset sequence is not used, or the value of the sequence indication parameter may be set 1 to indicate the use of the preset order.
- the order indication parameter can be characterized by the syntax attr_raht_order_default_flag. Specifically, if the value of attr_raht_order_default_flag is equal to 1, it indicates that the preset order is used; if the value of attr_raht_order_default_flag is equal to 0, it indicates that the preset order is not used.
- Step 105 Encode the point cloud data to be encoded, and write the encoded bits into the code stream.
- the encoder after the encoder processes the point cloud data according to the processing sequence to obtain the point cloud data to be encoded, it can encode the point cloud data to be encoded and write the encoded bits into the code stream.
- the encoder no longer performs RAHT transformation on the point cloud in a fixed transformation order proposed in the prior art, such as RAHT on all point clouds using the XYZ sequence Processing, but in the process of encoding the point cloud data, the processing sequence corresponding to the point cloud data is determined before the transformation processing, and then the RAHT transformation is performed using the processing sequence.
- the point cloud coding method can improve the coding efficiency by adaptively changing the processing sequence of the three coordinates of the encoder in the G-PCC.
- the flexibility of the processing sequence can be limited to the sequence layer, and the entire point cloud can use the same coordinate processing sequence, that is, the divisions (such as slices) in the point cloud use the same coordinate processing sequence .
- the encoding end may preprocess the point cloud data before encoding the point cloud data.
- the encoder may reset the X, Y, and Z coordinate axes of the point cloud data. , And re-determine the sorting sequence; then encode the preprocessed point cloud data, and from the perspective of display, indicate the preprocessing method in the sequence layer, that is, after encoding the coordinate axis sequence index number corresponding to the processing sequence, the The coded bits are written into the code stream; so that after the code stream is transmitted to the decoding end, the decoder decodes the code stream to obtain the decoded point cloud, and performs post-processing on the point cloud according to the preprocessing mode indicated by the sequence layer, that is, the decoding end analyzes After obtaining the coordinate axis sequential index number and determining the processing sequence indicated by the coordinate axis sequential index number, the X, Y, and Z coordinate axes of the point cloud data can be adaptively set.
- the embodiment of the application proposes a point cloud encoding method.
- the encoder determines the processing sequence of point cloud data in the point cloud encoding process; wherein the processing sequence indicates the coordinate axis processing sequence 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; determine the coordinate axis sequence index number corresponding to the processing sequence; encode the coordinate axis sequence index sequence number, and write the coded bits into the code stream; process the point cloud data according to the processing sequence 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 the code stream.
- the encoder can first determine the processing sequence of the transformation processing corresponding to the point cloud data, and write the processing sequence into the code stream while performing the RAHT transformation according to the processing sequence. It is transmitted to the decoder.
- the decoder analyzes the processing sequence of the transformation processing corresponding to the point cloud data obtained by analyzing the code stream, so that RAHT transformation can be performed according to the processing sequence.
- the point cloud encoding and decoding method proposed by this application no longer uses a fixed RAHT transformation sequence for all or part of the point cloud data, but uses the syntax elements in the code stream to describe the processing sequence, so that it can be adaptive
- the transformation efficiency of RAHT can be fully demonstrated, the problem of low transformation efficiency is solved, and the encoding and decoding efficiency is greatly improved.
- FIG. 12 is a schematic diagram of the first point cloud decoding implementation process.
- the decoder The method for decoding point cloud data may include the following steps:
- Step 201 Parse the code stream to obtain the sequential index number of the coordinate axis.
- the decoder parses the code stream to obtain the sequential index number of the coordinate axis of the point cloud data.
- the coordinate axis sequence index number obtained by the decoder parsing the code stream may be used to indicate the processing sequence.
- the coordinate axis sequence index number obtained by the decoder analysis may also include six different values.
- the coordinate axis order index number can be represented by the syntax axis_coding_order, that is, the processing order of the three coordinate axes X, Y, and Z can be specified through the syntax axis_coding_order.
- the axis_coding_order for the G-PCC standard can be used to process data in the RecPic[pointIdx][axis] buffer.
- axis_coding_order 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, RecPic[pointIdx][0] stores the data of the Z axis; if the value of axis is equal to 1, then RecPic[pointIdx ][1] stores the data of the Y axis; if the axis value is equal to 2, then RecPic[pointIdx][2] stores the data of the X axis.
- the syntax part corresponding to the coordinate axis sequence index number can be as shown in Table 3 below:
- the decoder when the decoder parses the code stream to obtain the coordinate axis sequential index number, it can use the method of parsing the isometric code to analyze the coordinate axis sequential index number.
- the equal length code is the output codeword of the same length obtained after the equal length coding is used for the encoding process, that is, the encoder uses the equal length coding method to encode the coordinate axis sequential index After the serial number, obtain the same length code of the same length.
- the decoder when the decoder parses the code stream to obtain the coordinate axis sequence index number, it can parse the code stream corresponding to the data unit of the parameter set in the code stream; wherein, the data unit of the parameter set contains The parameters used to decode the point cloud data.
- the parameter set may be a parameter set of the sequence layer.
- the parameter set may also be a sequence parameter set.
- the data unit of the parameter set may include attribute information of the point cloud data; wherein the attribute information is a scalar or vector attribute associated with a point in the point cloud data.
- the data unit of the parameter set may also include geometric information of the point cloud data; where the geometric information is the Cartesian coordinates associated with the points in the point cloud data.
- the decoder when the decoder parses the code stream to obtain the coordinate axis sequence index number, it can parse the data unit where the auxiliary information of the code stream is located after receiving the code stream to obtain the coordinate axis sequence index number .
- the auxiliary information may be video availability information VUI.
- the auxiliary information may also be supplementary enhanced information SEI.
- the parsed code stream may be a transmission stream containing point cloud coded data corresponding to the point cloud data.
- the code stream can be a transport stream containing point cloud coded data.
- the parsed code stream may be a medium containing point cloud coded data corresponding to the point cloud data file.
- the code stream can be a media file containing point cloud coded data.
- the coordinate axis order index number axis_coding_order can be encoded in the auxiliary information of the SPS (for example, VUI), or encoded in other auxiliary information data units of the point cloud data (for example, SEI). It can be further extended to encode in the auxiliary information unit of the transport stream or file format.
- Step 202 Determine the processing sequence of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number; wherein the processing sequence indicates the coordinate axis processing sequence of the three-dimensional coordinates of the point cloud data, and the point cloud data is all of the point cloud Data or partial data.
- the decoder after the decoder parses the code stream and obtains the coordinate axis sequence index number, it can determine the processing sequence of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number.
- the processing sequence indicates the coordinate axis processing sequence of the three-dimensional coordinates of the point cloud data
- the point cloud data is all or part of the data in the point cloud.
- the processing sequence may be used to indicate the coordinate axis processing sequence of the three-dimensional coordinates of the point cloud data.
- the point cloud data may be all the data in the point cloud. Accordingly, the decoder determines the processing order of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number , which is to determine the processing order of all data in the point cloud, that is to say, in this application, for each point in the point cloud, the decoder can use the same processing order for transformation processing.
- the encoder can obtain multiple slices corresponding to the point cloud by dividing the point cloud. Therefore, the point cloud data may also be part of the point cloud data, that is, the point cloud data may be For the data of any slice in the point cloud, correspondingly, the decoder determines the processing order of the point cloud data in the point cloud decoding process according to the coordinate axis order index number, which is to determine the processing of the data of any slice in the point cloud Sequence, that is, in this application, for each point of the same slice in the point cloud, the decoder can use the same processing sequence for transformation processing.
- the processing sequence is the transformation sequence used in the RAHT transformation, and each point in the point cloud is point cloud data in the three dimensions of X, Y, and Z. Therefore, The processing sequence indicates the sequence of transformations on the three coordinate axes X, Y, and Z.
- RAHT when RAHT is performed on the point cloud attribute information in a hierarchical manner, RAHT is iteratively performed on each node along three axes based on the processing sequence in each layer. For example, if the processing order is XYZ order, then the decoder can perform RAHT on the nodes in the point cloud first X, Y and then Z; if the processing order is YZX order, then the decoder can perform Y and then Z on the nodes in the point cloud. Finally, execute RAHT at X.
- the sequence of the RAHT transformation performed by the decoder can include 6 different combinations, that is, the processing sequence can be 6 different transformation sequences.
- the encoder can set different coordinate axis sequence index numbers.
- the coordinate axis sequence index number can also include six different values.
- the processing sequence of point cloud data can be any of ZYX sequence, XYZ sequence, XZY sequence, YZX sequence, ZXY sequence, and YXZ sequence; where X, Y, and Z are The coordinate axis of the three-dimensional coordinates of the point cloud data.
- the decoder determines the processing sequence of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number, it can be based on the preset index sequence number and the processing sequence correspondence table, Determine the processing sequence corresponding to the coordinate axis sequence index number.
- Table 1 is the corresponding table 1 of the preset index number and the processing order. As shown in Table 1, for different processing orders, query the corresponding table of the preset index number and the processing order. Determine the corresponding axis order index number.
- the decoder determines the processing order of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number
- the coordinate axis sequence index number value is 0 or 4
- decode The decoder can determine that the processing order of the corresponding point cloud data is ZYX order; if the coordinate axis sequence index number is 1 or 7, then the decoder can determine that the corresponding point cloud data processing order is XYZ order; if the coordinates The value of the axis order index number is 2, then the decoder can determine that the corresponding point cloud data processing order is XZY order; if the axis order index number is 3, then the decoder can determine the corresponding point cloud The processing sequence of the data is that the processing sequence of the point cloud data is YZX sequence; if the value of the coordinate axis sequence index number is 5, the decoder can determine that the processing sequence of the corresponding point cloud data is the processing sequence of the point cloud data is ZXY Sequence: If the
- Table 2 is the corresponding relationship between the preset index number and the processing order, as shown in Table 2, for different processing orders, query the corresponding relationship between the preset index number and the processing order to determine the corresponding coordinates Axis sequence index number.
- the decoder when the decoder determines the processing order of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number, if the coordinate axis sequence index number value is 0 or 4, it will pass 2-1-0 indicates the processing sequence, then the decoder can determine that the corresponding point cloud data processing sequence is the ZYX sequence; if the value of the coordinate axis sequence index number is 1 or 7, the processing is indicated by 0-1-2 The decoder can determine that the processing sequence of the corresponding point cloud data is the XYZ sequence.
- the decoder can determine the corresponding The processing sequence of the point cloud data is XZY sequence; if the value of the coordinate axis sequence index number is 3, that is, the processing sequence is indicated by 2-0-1, then the decoder can determine that the corresponding point cloud data processing sequence is YZX Order; if the value of the axis order index number is 5, that is, the processing order is indicated by 1-2-0, then the decoder can determine that the corresponding point cloud data processing order is ZXY order; if the axis order index number is The value is 6, that is, the processing sequence is indicated by 1-0-2, then the decoder can determine that the processing sequence of the corresponding point cloud data is the YXZ sequence.
- the coordinate axis order index number can be represented by the syntax axis_coding_order, that is, the processing order of the three coordinate axes X, Y, and Z can be specified through the syntax axis_coding_order.
- the axis_coding_order for the G-PCC standard can be used to process data in the RecPic[pointIdx][axis] buffer.
- axis_coding_order 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, RecPic[pointIdx][0] stores the data of the Z axis; if the value of axis is equal to 1, then RecPic[pointIdx ][1] stores the data of the Y axis; if the axis value is equal to 2, then RecPic[pointIdx][2] stores the data of the X axis.
- Step 203 Parse the code stream to obtain the restored data of the point cloud data.
- the decoder can also parse the code stream to obtain the restored data of the point cloud data.
- Step 204 Determine the position of the coordinate data of the point cloud data in the storage unit of the restored data according to the processing sequence.
- the decoder determines the processing order of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number, and parses the code stream to obtain the restored data of the point cloud data, and then can process according to Sequence, determine the position of the coordinate data of the point cloud data in the storage unit of the restored data.
- the processing sequence indicates the coordinate axis corresponding to the data sequentially output by the decoder after the RAHT transform (ie, the inverse RAHT transform) is performed on the recovered data obtained by analyzing the code stream.
- the RAHT transform ie, the inverse RAHT transform
- 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 sequence, it can be used in the restored data storage unit for For points, the coordinate data of the points are obtained in the order of the coordinate axes indicated by the processing sequence.
- the decoder when 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 sequence, it may sequentially align the points in the corresponding coordinate axis direction according to the processing sequence.
- Cloud data is processed by RAHT.
- the RAHT transformation is executed in sequence by first transforming in one coordinate direction, then transforming in another coordinate direction, and finally transforming in the third coordinate direction.
- the decoder when the decoder performs RAHT processing on the point cloud data in the direction of the corresponding coordinate axis according to the processing sequence, it can first parse the code stream to determine the mode of the node in the point cloud data. Frame code; then RAHT transformation is performed on the point cloud data according to the processing sequence and Morton code.
- the decoder may first calculate the Morton code of each node in the point cloud data, and then sort the nodes in the point cloud data according to the Morton code from small to large. Finally, each node in the point cloud data can be traversed in the sorted order.
- the processing sequence is the transformation sequence when the RAHT transformation is performed on the point cloud attribute information. Therefore, after the decoder determines the processing sequence, it can use the processing sequence to perform processing corresponding to the point cloud data. RAHT transformation.
- the processing order may be the transformation order of all data in the point cloud, and the decoder determines the processing order after ,
- the RAHT transformation can be performed on each point in the point cloud sequentially through the processing sequence.
- the point cloud data may also be part of the data in the point cloud, that is, the point cloud data may be data of any slice in the point cloud, so the processing sequence may also be the point cloud
- the decoder can sequentially perform RAHT transformation on each point in the slice according to the processing sequence.
- the decoder can use the same transformation sequence for all data in the point cloud to perform RAHT transformation; if the processing sequence is the transformation sequence of the point cloud
- the decoder can use the same transformation order for RAHT transformation on part of the data in the point cloud. For example, for the data in a slice after division, the same transformation order can be used for RAHT transformation.
- the decoder when the decoder performs RAHT transformation on the point cloud data according to the processing order and Morton code, it may first compare the processing order with the preset order to determine the processing order of the point cloud data Is it the same as the preset order.
- the preset sequence may be a default transformation sequence pre-stored by the decoder.
- the decoder can set the Z-Y-X order as a preset order.
- the decoder after the decoder compares the processing sequence with the preset sequence, if the processing sequence is the same as the preset sequence, then the decoder can directly perform the calculation of the point cloud according to the preset sequence and Morton code.
- the data undergoes RAHT transformation; if the processing sequence is different from the preset sequence, the decoder can perform RAHT transformation on the point cloud data according to the processing sequence and Morton code.
- FIG. 13 is the second schematic diagram of the implementation flow of point cloud decoding.
- the decoder parses the code stream and obtains the coordinate axis sequence index number before step 201 .
- the method for the decoder to decode the point cloud data may further include the following steps:
- Step 205 Parse the code stream to determine the sequence indication parameter; wherein the sequence indication parameter is used to indicate whether to use the preset sequence.
- Step 206 If the value of the sequence indication parameter indicates that the preset sequence is not used, it is determined that the processing sequence is different from the preset sequence.
- Step 207 If the value of the sequence indication parameter indicates that the preset sequence is used, it is determined that the processing sequence is the same as the preset sequence.
- the decoder may first determine the sequence indication parameter corresponding to the point cloud data by analyzing the code stream, and then determine whether to use the preset sequence for transformation processing according to the sequence indication parameter.
- the sequence indication parameter may be used to indicate whether to use the preset sequence. That is to say, if the encoding end uses the preset order for transformation processing, then the order indication parameter obtained by the decoder analysis can indicate the use of the preset order; if the encoding end does not use the preset order for transformation processing, then the decoder parses the obtained order
- the indication parameter may indicate that the preset sequence is not used.
- the decoder after the decoder parses and obtains the order indication parameter, if the value of the order indication parameter indicates that the preset order is not used, the decoder needs to transform the point cloud data according to the processing order; If the value of the order indication parameter indicates that the preset order is used, the decoder can perform transformation processing on the point cloud data according to the preset order.
- the order indication parameter can be characterized by the syntax attr_raht_order_default_flag. Specifically, if the value of attr_raht_order_default_flag is equal to 1, it indicates that the preset order is used; if the value of attr_raht_order_default_flag is equal to 0, it indicates that the preset order is not used.
- the decoder no longer performs RAHT transformation on the point cloud in a fixed transformation order proposed in the prior art, such as RAHT on all point clouds using the XYZ sequence Processing, but in the process of decoding the point cloud data, the processing sequence corresponding to the point cloud data is determined before the transformation processing, and then the RAHT transformation is performed using the processing sequence.
- the decoder performs transformation processing in a fixed order
- this application proposes The point cloud coding method can improve the decoding efficiency by adaptively changing the processing order of the three coordinates of the decoder in the G-PCC.
- the flexibility of the processing sequence can be limited to the sequence layer, and the entire point cloud can use the same coordinate processing sequence, that is, the divisions (such as slices) in the point cloud use the same coordinate processing sequence .
- the encoding end may preprocess the point cloud data before encoding the point cloud data.
- the encoder may reset the X, Y, and Z coordinate axes of the point cloud data. , And re-determine the sorting sequence; then encode the preprocessed point cloud data, and from the perspective of display, indicate the preprocessing method in the sequence layer, that is, after encoding the coordinate axis sequence index number corresponding to the processing sequence, the The coded bits are written into the code stream; so that after the code stream is transmitted to the decoding end, the decoder decodes the code stream to obtain the decoded point cloud, and performs post-processing on the point cloud according to the preprocessing mode indicated by the sequence layer, that is, the decoding end analyzes After obtaining the coordinate axis sequential index number and determining the processing sequence indicated by the coordinate axis sequential index number, the X, Y, and Z coordinate axes of the point cloud data can be adaptively set.
- the embodiment of the application discloses a point cloud decoding method.
- the decoder parses the code stream to obtain the coordinate axis sequence index number; according to the coordinate axis sequence index sequence number, the processing sequence of the point cloud data in the point cloud decoding process is determined;
- the order indicates the processing order of the coordinate axis of the three-dimensional coordinates of the point cloud data.
- the point cloud data is all or part of the data in the point cloud; the code stream is parsed to obtain the restored data of the point cloud data; the coordinates of the point cloud data are determined according to the processing sequence The location of the data in the storage unit where the data is restored.
- the encoder can first determine the processing sequence of the transformation processing corresponding to the point cloud data, and write the processing sequence into the code stream while performing the RAHT transformation according to the processing sequence. It is transmitted to the decoder.
- the decoder analyzes the processing sequence of the transformation processing corresponding to the point cloud data obtained by analyzing the code stream, so that RAHT transformation can be performed according to the processing sequence.
- the point cloud encoding and decoding method proposed by this application no longer uses a fixed RAHT transformation sequence for all or part of the point cloud data, but uses the syntax elements in the code stream to describe the processing sequence, so that it can be adaptive
- the transformation efficiency of RAHT can be fully demonstrated, the problem of low transformation efficiency is solved, and the encoding and decoding efficiency is greatly improved.
- another embodiment of the present application provides a point cloud coding and decoding method.
- the codec can change the fixed transformation order, namely Change the default order of non-transmission, no matter at the encoding end or the decoding end, before performing RAHT transformation on the point cloud, determine the processing order corresponding to the point cloud data, and then use the processing order to perform the RAHT transformation.
- the transformation process at the decoding end will be exemplified below.
- the decoder obtains the point cloud data processing sequence XYZ after parsing the code stream, where the point cloud data is part of the data in the point cloud, that is, the slice in the point cloud, And the processing sequence is different from the fixed preset sequence ZYX, and then the decoder can perform the point sorting process in the corresponding slice based on the Morton code.
- the spatial position of the point in each child used is determined according to the number of repeated points in each child and the use of the direct encoding position, as follows:
- syntax elements are passed into the bitstream to indicate information.
- syntax elements are parsed from the bitstream to obtain the indicated information.
- the processing order can be passed to the attribute parameter set syntax, that is, the decoder can obtain the processing order by parsing the code stream of the attribute parameter set, where the syntax of the attribute parameter set is shown in Table 4 .
- the coordinate axis order index number attr_raht_order_index may indicate the processing order for the node, that is, the RAHT transformation order.
- the value of attr_raht_order_index can be 0, 1, 2, 3, 4, 5, 6, or 7.
- the decoder can determine the corresponding processing order based on the attr_raht_order_index obtained by parsing, and then can perform the Morton code-based point sorting process according to the processing order.
- a flag may be passed first to indicate whether to use the default transformation order, that is, whether to use the preset order, if not, the coordinate axis order index number attr_raht_order_index may be passed to indicate the addition Transformation order outside the preset order.
- the decoder can obtain the sequence indication parameter after parsing the code stream of the attribute parameter set; wherein the sequence indication parameter is used to indicate whether to use the preset sequence.
- the attribute parameter set syntax is shown in Table 5:
- the order indication parameter can be characterized by the syntax attr_raht_order_default_flag. Specifically, if the value of attr_raht_order_default_flag is equal to 1, it indicates that the preset order is used; if the value of attr_raht_order_default_flag is equal to 0, it indicates that the preset order is not used.
- the decoder can further determine the processing order used by parsing the obtained coordinate axis order index number attr_raht_order_index.
- the value of the coordinate axis order index number attr_raht_order_index obtained by the decoder analysis can be used to indicate the other 5 transformation orders other than the XYZ order, and also That is, in this application, on the basis of determining the order indication parameter attr_raht_order_default_flag, the coordinate axis order index number attr_raht_order_index is used to indicate other transformation orders other than the preset order.
- the coordinate axis order index number attr_raht_order_index indicates the RAHT order for the node (except for the default preset order), that is, indicates the processing order.
- the value of attr_raht_order_index should be equal to 0, 1, 2, 3 or 4.
- Table 6 shows the correspondence between the preset index number and the processing order, Table 3, where the preset order is XYZ, as shown in Table 6, based on the value of the coordinate axis order index number, the decoder queries the preset index number and processing order The corresponding relationship table can determine the corresponding processing sequence.
- the decoder parses the code stream 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 execute according to the preset order. Point sorting process based on Morton code.
- the decoder parses the code stream 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, and the decoder can continue to parse the code stream to obtain
- the coordinate axis order index number attr_raht_order_index determines the processing order, so that the point ordering process based on Morton code can be executed according to the preset order.
- the processing order is passed to the attribute parameter set, except that the descriptor of the syntax element attr_raht_order_index is ue(V) (ie, Exp-Golomb code).
- the descriptor corresponds to the entropy coding method of the syntax element, and from the decoding perspective, the descriptor corresponds to the parsing process of the syntax element.
- the processing sequence of the RAHT transformation is passed to the attribute parameter set, and will be applied to encode or decode one or more slices related to the attribute parameter set.
- the processing sequence with or without a preset sequence is passed to the attribute slice header.
- the attribute slice header syntax is shown in Table 7:
- processing sequence passed to the attribute slice header is only used to encode or decode the slice.
- the processing sequence with/without the preset sequence is passed to the attribute parameter set and the attribute slice header related to the attribute parameter set.
- the processing sequence passed to the attribute slice header can override the processing sequence determined by parsing the attribute parameter set.
- the processing sequence is passed to the attribute parameter set, where the attribute parameter set syntax is shown in Table 8:
- attribute slice header syntax is shown in Table 9:
- the decoder can obtain the syntax element ash_attr_raht_order_override_flag after parsing the code stream; wherein, the syntax element ash_attr_raht_order_override_flag is used to indicate whether to use the processing order passed to the attribute parameter set.
- the decoder can obtain ash_attr_raht_index through analysis to further determine the processing order used. Specifically, the decoder may further obtain the processing order indicated by ash_attr_raht_index through the foregoing Table 1.
- the decoder can remove the attribute parameter set (ie The processing sequence in the active attribute parameter set) is dynamically determined. For example, if the processing order passed to the active attribute parameter set is Z-Y-X, then the encoder or decoder can construct the correspondence table between the preset index number and the processing order in an order other than the Z-Y-X order. Among them, in the bitstream, the value of attr_raht_order_index should be equal to 0, 1, 2, 3 or 4.
- Table 10 shows the correspondence between the preset index number and the processing order, Table 4, where, if the processing order passed to the active attribute parameter set is ZYX, as shown in Table 10, based on the value of the coordinate axis order index number ash_attr_raht_index, the decoder
- the corresponding processing sequence can be determined by querying the correspondence table between the preset index sequence number and the processing sequence.
- Attr_coding_type is equal to 1 in the attribute parameter set
- additional flags such as attr_raht_order_override_allowed_flag are passed (from the perspective of the encoder or encoder) or parsed (from the perspective of the decoder or decoder) to indicate Whether to allow the processing order of RAHT transformation specified in the attribute slice header related to the attribute parameter set to override the processing order of RAHT transformation specified in the attribute parameter set.
- attr_raht_order_override_allowed_flag the attribute slice header syntax is shown in Table 11:
- the decoder after the decoder parses the code stream to obtain the processing sequence, it can perform the point sorting process based on Morton code according to the preset sequence.
- the embodiment of the application discloses a point cloud encoding and decoding method, an encoder, a decoder, and a computer storage medium.
- the encoder determines the processing sequence of point cloud data in the point cloud encoding process; wherein the processing sequence indicates the three-dimensional point cloud data
- the coordinate axis processing sequence of the coordinate, the point cloud data is all or part of the data in the point cloud; determine the coordinate axis sequence index number corresponding to the processing sequence; encode the coordinate axis sequence index sequence number, and write the coded bits into the code stream; according to In the processing sequence, the point cloud data is processed 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 the code stream.
- the decoder parses the code stream and obtains the coordinate axis order index number; according to the coordinate axis order index number, determines the processing order of the point cloud data in the point cloud decoding process; where the processing order indicates the coordinate axis processing order of the three-dimensional coordinates of the point cloud data , Point cloud data is all or part of the data in the point cloud; parse the code stream to obtain the restored data of the point cloud data; according to the processing sequence, determine the position of the coordinate data of the point cloud data in the storage unit of the restored data.
- the encoder can first determine the processing sequence of the transformation processing corresponding to the point cloud data, and write the processing sequence into the code stream while performing the RAHT transformation according to the processing sequence. It is transmitted to the decoder.
- the decoder analyzes the processing sequence of the transformation processing corresponding to the point cloud data obtained by analyzing the code stream, so that the RAHT transformation can be performed according to the processing sequence.
- the point cloud encoding and decoding method proposed by this application no longer uses a fixed RAHT transformation sequence for all or part of the point cloud data, but uses the syntax elements in the code stream to describe the processing sequence, so that it can be adaptive
- the transformation efficiency of RAHT can be fully demonstrated, the problem of low transformation efficiency is solved, and the encoding and decoding efficiency is greatly improved.
- FIG. 14 is a schematic diagram of the composition structure of an encoder.
- the encoder 300 proposed in this embodiment of the present application may include: a first determining part 301, Encoding part 302 and transforming part 303,
- the first determining part 301 is configured to determine the processing sequence of the point cloud data in the point cloud coding process; wherein the processing sequence indicates the coordinate axis processing sequence 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; and determines the coordinate axis sequence index number corresponding to the processing sequence;
- the encoding part 302 is configured to encode the sequential index number of the coordinate axis, and write encoded bits into a code stream;
- the transformation part 303 is configured to process the point cloud data according to the processing sequence to obtain the point cloud data to be encoded;
- the encoding part 302 is further configured to encode the point cloud data to be encoded, and write encoded bits into a code stream.
- the first determining part 301 is specifically configured to determine the processing sequence according to Morton codes of nodes in the point cloud data.
- the processing sequence is any one of ZYX sequence, XYZ sequence, XZY sequence, YZX sequence, ZXY sequence, and YXZ sequence; wherein, X, Y, Z are the The coordinate axis of the three-dimensional coordinates of the point cloud data.
- the first determining part 301 is further specifically configured to set the coordinate axis sequence index sequence number corresponding to the processing sequence according to the correspondence table between the preset index sequence number and the processing sequence The value of.
- the corresponding relationship table between the preset index number and the processing sequence includes:
- the encoding part 302 is specifically configured to use an isometric encoding method to encode the sequential index number of the coordinate axis.
- the encoding part 302 is further specifically configured to write the encoded bits into the code stream corresponding to the data unit of the parameter set; wherein, the data unit of the parameter set includes the Parameters used for decoding the point cloud data.
- the parameter set is a parameter set of the sequence layer.
- the parameter set is a sequence parameter set.
- the data unit of the parameter set contains attribute information of the point cloud data; wherein, the attribute information is a scalar or vector associated with a point in the point cloud data Attributes.
- the data unit of the parameter set includes geometric information of the point cloud data; wherein, the geometric information is the Cartesian coordinates associated with a point in the point cloud data .
- the transformation part 303 is specifically configured to perform coordinate mapping processing on the point cloud data according to the processing sequence.
- the transformation part 303 is further specifically configured to rearrange the coordinates of the point cloud data according to the processing sequence.
- the transformation part 303 is further specifically configured to process the point cloud data in the direction of the corresponding coordinate axis in sequence according to the processing sequence.
- the transformation part 303 is further specifically configured to perform RAHT processing on the point cloud data in the direction of the corresponding coordinate axis in sequence according to the processing sequence.
- the transforming part 303 is further specifically configured to determine the Morton code of the node in the point cloud data, and to compare the point cloud according to the processing sequence and the Morton code.
- the data undergoes RAHT transformation.
- the transforming part 303 is further specifically configured to perform processing on the point cloud according to the preset order and the Morton code if the processing order is the same as the preset order.
- the data undergoes RAHT transformation; if the processing sequence is different from the preset sequence, RAHT transformation is performed on the point cloud data according to the processing sequence and the Morton code.
- the first determining part 301 is further configured to determine the coordinate axis corresponding to the processing sequence after the determining the processing sequence of the point cloud data in the point cloud encoding process Before the sequence index sequence number, determine sequence indication parameters according to the processing sequence; wherein the sequence indication parameters are used to indicate whether to use the preset sequence;
- the encoding part 302 is further configured to encode the sequence indicating parameter, and write encoded bits into the code stream.
- the first determining part 301 is further specifically configured to set the value of the sequence indicating parameter to indicate that the processing sequence is different from the preset sequence. Use the preset sequence; if the processing sequence is the same as the preset sequence, set the value of the sequence indication parameter to indicate the use of the preset sequence.
- the encoding part 302 is further specifically configured to write the encoded bits into the data unit where the auxiliary information of the code stream is located.
- the auxiliary information is video availability information VUI.
- the auxiliary information is supplementary enhancement information SEI.
- the encoding part 302 is further specifically configured to write encoded bits into a transport stream containing the point cloud encoded data corresponding to the point cloud data.
- the encoding part 302 is further specifically configured to write encoded bits into a media file containing the point cloud encoded data corresponding to the point cloud data.
- the encoder 300 proposed in this embodiment of the present application may further include a first processor 304, and a first memory 305 storing executable instructions of the first processor 304 , A first communication interface 306, and a first bus 307 for connecting the first processor 304, the first memory 305, and the first communication interface 306.
- the above-mentioned first processor 304 is configured to determine the processing sequence of the point cloud data in the point cloud encoding process; wherein, the processing sequence indicates the three-dimensional coordinates of the point cloud data Coordinate axis processing sequence, the point cloud data is all or part of the data in the point cloud; determine the coordinate axis sequence index number corresponding to the processing sequence; encode the coordinate axis sequence index sequence number, and encode bits Write the code stream; process the point cloud data according to the processing sequence to obtain the point cloud data to be encoded; encode the point cloud data to be encoded, and write the coded bits into the code stream.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium.
- the technical solution of this embodiment is essentially or correct
- the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product.
- the computer software product is stored in a storage medium and includes several instructions to enable a computer device (which can be a personal A computer, a server, or a network device, etc.) or a processor (processor) execute all or part of the steps of the method in this embodiment.
- the aforementioned storage media include: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
- the embodiment of the present application provides an encoder that determines the processing sequence of point cloud data in the point cloud encoding process; wherein the processing sequence indicates the coordinate axis processing sequence of the three-dimensional coordinates of the point cloud data, and the point cloud data is point cloud data. All or part of the data in the cloud; determine the coordinate axis sequence index number corresponding to the processing sequence; encode the coordinate axis sequence index sequence number, and write the coded bits into the code stream; process the point cloud data according to the processing sequence to obtain Encode point cloud data; encode the point cloud data to be encoded, and write the encoded bits into the code stream.
- the encoder can first determine the processing sequence of the transformation processing corresponding to the point cloud data, and write the processing sequence into the code stream while performing the RAHT transformation according to the processing sequence. It is transmitted to the decoder.
- the decoder analyzes the processing sequence of the transformation processing corresponding to the point cloud data obtained by analyzing the code stream, so that RAHT transformation can be performed according to the processing sequence.
- the point cloud encoding and decoding method proposed by this application no longer uses a fixed RAHT transformation sequence for all or part of the point cloud data, but uses the syntax elements in the code stream to describe the processing sequence, so that it can be adaptive
- the transformation efficiency of RAHT can be fully demonstrated, the problem of low transformation efficiency is solved, and the encoding and decoding efficiency is greatly improved.
- FIG. 16 is a schematic diagram 1 of the structure of a decoder.
- the decoder 400 proposed in this embodiment of the present application may include: a parsing part 401, a second determining part 402,
- the parsing part 401 is configured to analyze the code stream to obtain the coordinate axis sequential index number
- the second determining part 402 is configured to determine the processing sequence of the point cloud data in the point cloud decoding process according to the coordinate axis sequence index number; wherein the processing sequence indicates the coordinates of the three-dimensional coordinates of the point cloud data Axis processing sequence, the point cloud data is all or part of the data in the point cloud;
- the parsing part 401 is also configured to analyze the code stream to obtain the restored data of the point cloud data;
- the second determining part 402 is further configured to determine the position of the coordinate data of the point cloud data in the storage unit of the restored data according to the processing sequence.
- the parsing part 401 is specifically configured to use a method of parsing isometric codes to analyze the sequential index number of the coordinate axis.
- the parsing part 401 is further specifically configured to analyze the code stream corresponding to the data unit of the parameter set in the code stream; wherein, the data unit of the parameter set includes The parameters used to decode the point cloud data.
- the parameter set is a parameter set of the sequence layer.
- the parameter set is a sequence parameter set.
- the data unit of the parameter set contains attribute information of the point cloud data; wherein, the attribute information is a scalar or vector associated with a point in the point cloud data Attributes.
- the data unit of the parameter set includes geometric information of the point cloud data; wherein, the geometric information is the Cartesian coordinates associated with a point in the point cloud data .
- the processing sequence is any one of ZYX sequence, XYZ sequence, XZY sequence, YZX sequence, ZXY sequence, and YXZ sequence; wherein, X, Y, Z are the The coordinate axis of the three-dimensional coordinates of the point cloud data.
- the second determining part 402 is specifically configured to determine the processing sequence corresponding to the coordinate axis sequence index sequence number according to the correspondence table between the preset index sequence number and the processing sequence.
- the corresponding relationship table between the preset index number and the processing sequence includes:
- the second determining part 402 is further specifically configured to, in the recovery data storage unit, for the points in the point cloud data, follow the steps indicated by the processing sequence
- the coordinate axis sequentially obtains the coordinate data of the points.
- the second determining part 402 is further specifically configured to sequentially perform RAHT processing on the point cloud data in the direction of the corresponding coordinate axis according to the processing sequence.
- the second determining part 402 is further specifically configured to analyze the code stream to determine the Morton code of the node in the point cloud data; according to the processing sequence and the Morton code The code performs RAHT transformation on the point cloud data.
- the second determining part 402 is further specifically configured to, if the processing sequence is the same as the preset sequence, perform the pairing of the sequence according to the preset sequence and the Morton code.
- RAHT transformation is performed on the point cloud data; if the processing sequence is different from the preset sequence, RAHT transformation is performed on the point cloud data according to the processing sequence and the Morton code.
- the parsing part 401 is further configured to parse the code stream to parse the code stream to determine the sequence indication parameter before obtaining the coordinate axis sequence index sequence number; wherein, the sequence indication parameter Used to indicate whether to use the preset sequence;
- the second determining part 402 is further configured to determine that the processing sequence is different from the preset sequence if the value of the sequence indicating parameter indicates that the preset sequence is not used; If the value indicates that the preset order is used, it is determined that the processing order is the same as the preset order.
- the analyzing part 401 is further specifically configured to analyze the data unit where the auxiliary information of the code stream is located, and obtain the coordinate axis sequential index number.
- the auxiliary information is video availability information VUI.
- the auxiliary information is supplementary enhancement information SEI.
- the analysis part 401 is further specifically configured to analyze the transmission stream containing the point cloud coded data to obtain the coordinate axis sequential index number.
- the parsing part 401 is further specifically configured to analyze the media file containing the point cloud coded data to obtain the coordinate axis sequential index number.
- FIG. 17 is a second schematic diagram of the composition structure of the decoder.
- the decoder 400 proposed in the embodiment of the present application may further include a second processor 403 and a second memory 404 storing executable instructions of the second processor 403. , A second communication interface 405, and a second bus 406 for connecting the second processor 403, the second memory 404, and the second communication interface 405.
- the above-mentioned second processor 403 is configured to parse the code stream to obtain the coordinate axis sequential index number; according to the coordinate axis sequential index number, determine the point cloud data in the point cloud decoding process The processing sequence; wherein the processing sequence indicates the coordinate axis processing sequence of the three-dimensional coordinates of the point cloud data, the point cloud data is all or part of the data in the point cloud; the code stream is parsed to obtain the The restored data of the point cloud data; according to the processing sequence, the position of the coordinate data of the point cloud data in the storage unit of the restored data is determined.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium.
- the technical solution of this embodiment is essentially or correct
- the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product.
- the computer software product is stored in a storage medium and includes several instructions to enable a computer device (which can be a personal A computer, a server, or a network device, etc.) or a processor (processor) execute all or part of the steps of the method in this embodiment.
- the aforementioned storage media include: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
- the embodiment of the present application provides a decoder, which parses the code stream to obtain the coordinate axis sequence index number; according to the coordinate axis sequence index sequence number, the processing sequence of the point cloud data in the point cloud decoding process is determined; wherein, the processing sequence Indicate the coordinate axis processing order of the three-dimensional coordinates of the point cloud data.
- the point cloud data is all or part of the data in the point cloud; analyze the code stream to obtain the restored data of the point cloud data; determine the coordinate data of the point cloud data according to the processing sequence The location in the storage unit of the recovered data.
- the encoder can first determine the processing sequence of the transformation processing corresponding to the point cloud data, and write the processing sequence into the code stream while performing the RAHT transformation according to the processing sequence. It is transmitted to the decoder.
- the decoder analyzes the processing sequence of the transformation processing corresponding to the point cloud data obtained by analyzing the code stream, so that RAHT transformation can be performed according to the processing sequence.
- the point cloud encoding and decoding method proposed by this application no longer uses a fixed RAHT transformation sequence for all or part of the point cloud data, but uses the syntax elements in the code stream to describe the processing sequence, so that it can be adaptive
- the transformation efficiency of RAHT can be fully demonstrated, the problem of low transformation efficiency is solved, and the encoding and decoding efficiency is greatly improved.
- the embodiments of the present application provide a computer-readable storage medium and a computer-readable storage medium, on which a program is stored, and when the program is executed by a processor, the method as described in the foregoing embodiment is implemented.
- the program instructions corresponding to an encoding method in this embodiment can be stored on storage media such as optical disks, hard disks, USB flash drives, etc.
- storage media such as optical disks, hard disks, USB flash drives, etc.
- the point cloud data to be encoded is encoded, and the encoded bits are written into the code stream.
- the program instructions corresponding to a decoding method in this embodiment can be stored on storage media such as optical disks, hard disks, USB flash drives, etc.
- storage media such as optical disks, hard disks, USB flash drives, etc.
- the position of the coordinate data of the point cloud data in the storage unit of the restored data is determined.
- this application can be provided as methods, systems, or computer program products. Therefore, this application may adopt the form of hardware embodiments, software embodiments, or embodiments combining software and hardware. Moreover, this application may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, optical storage, etc.) containing computer-usable program codes.
- These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
- the device realizes the functions specified in one or more processes in the schematic diagram and/or one block or more in the block diagram.
- These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
- the instructions provide steps for implementing functions specified in one or more processes in the schematic diagram and/or one block or more in the block diagram.
- the embodiment of the application discloses a point cloud encoding and decoding method, an encoder, a decoder, and a computer storage medium.
- the encoder determines the processing sequence of point cloud data in the point cloud encoding process; wherein the processing sequence indicates the three-dimensional point cloud data
- the coordinate axis processing sequence of the coordinate, the point cloud data is all or part of the data in the point cloud; determine the coordinate axis sequence index number corresponding to the processing sequence; encode the coordinate axis sequence index sequence number, and write the coded bits into the code stream; according to In the processing sequence, the point cloud data is processed 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 the code stream.
- the decoder parses the code stream and obtains the coordinate axis order index number; according to the coordinate axis order index number, determines the processing order of the point cloud data in the point cloud decoding process; where the processing order indicates the coordinate axis processing order of the three-dimensional coordinates of the point cloud data , Point cloud data is all or part of the data in the point cloud; parse the code stream to obtain the restored data of the point cloud data; according to the processing sequence, determine the position of the coordinate data of the point cloud data in the storage unit of the restored data.
- the encoder can first determine the processing sequence of the transformation processing corresponding to the point cloud data, and write the processing sequence into the code stream while performing the RAHT transformation according to the processing sequence. It is transmitted to the decoder.
- the decoder analyzes the processing sequence of the transformation processing corresponding to the point cloud data obtained by analyzing the code stream, so that RAHT transformation can be performed according to the processing sequence.
- the point cloud encoding and decoding method proposed by this application no longer uses a fixed RAHT transformation sequence for all or part of the point cloud data, but uses the syntax elements in the code stream to describe the processing sequence, so that it can be adaptive
- the transformation efficiency of RAHT can be fully demonstrated, the problem of low transformation efficiency is solved, and the encoding and decoding efficiency is greatly improved.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
本申请实施例公开了一种点云编解码方法、编码器、解码器及计算机存储介质,编码器确定点云编码过程中对点云数据的处理顺序;处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;确定处理顺序对应的坐标轴顺序索引序号;对坐标轴顺序索引序号进行编码,将编码比特写入码流;根据处理顺序,对点云数据进行处理,得到待编码点云数据;对待编码点云数据进行编码,将编码比特写入码流。解码器解析码流,获得坐标轴顺序索引序号;根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;解析码流,获得点云数据的恢复数据;根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置。
Description
本申请基于申请号为62/870,553、申请日为2019年7月3日、申请名称为“Method,Apparatus,and System for Encoding and Decoding Video Data”的在先美国临时专利申请提出,并要求该在先美国临时专利申请的优先权,该在先美国临时专利申请的全部内容在此引入本申请作为参考。
本申请实施例涉及视频编解码技术领域,尤其涉及一种点云编解码方法、编码器、解码器及计算机存储介质。
在基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC)编码器框架中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。几何编码完成后,对几何信息进行重建,而属性信息的编码将依赖于重建的几何信息。
目前,属性信息编码主要针对颜色信息的编码。首先,将颜色信息从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码中,主要有两种变换方法,一是依赖于细节层次(Level of Detail,LOD)划分的基于距离的提升变换,另一是直接进行的区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT),这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化并编码,生成二进制码流。
然而,在RAHT变换时,对任一个点云使用相同的固定顺序进行RAHT,并不能完全展示RAHT的变换效率,存在变换效率较低的问题,从而降低了编解码效率。
发明内容
本申请实施例提供一种点云编解码方法、编码器、解码器及计算机存储介质,可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种点云编码方法,应用于编码器,该方法包括:
确定点云编码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;
确定所述处理顺序对应的坐标轴顺序索引序号;
对所述坐标轴顺序索引序号进行编码,将编码比特写入码流;
根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据;
对所述待编码点云数据进行编码,将编码比特写入码流。
第二方面,本申请实施例提供了一种点云解码方法,应用于解码器,该方法包括:
解析码流,获得坐标轴顺序索引序号;
根据所述坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;
解析码流,获得所述点云数据的恢复数据;
根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置。
第三方面,本申请实施例提供了一种编码器,所述编码器包括:第一确定部分,编码部分以及变换部分,
所述第一确定部分,配置为确定点云编码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;以及确定所述处理顺序对应的坐标轴顺序索引序号;
所述编码部分,配置为对所述坐标轴顺序索引序号进行编码,将编码比特写入码流;
所述变换部分,配置为根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据;
所述编码部分,还配置为对所述待编码点云数据进行编码,将编码比特写入码流。
第四方面,本申请实施例提供了一种编码器,所述编码器包括第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述指令被执行时,所述第一处理器执行时实现如权上所述的点云编码方法。
第五方面,本申请实施例提供了一种解码器,所述解码器包括:解析部分,第二确定部分,以及第二变换部分,
所述解析部分,配置为解析码流,获得坐标轴顺序索引序号;
所述第二确定部分,配置为根据所述坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;
所述解析部分,还配置为解析码流,获得所述点云数据的恢复数据;
所述第二确定部分,还配置为根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置。
第六方面,本申请实施例提供了一种解码器,所述解码器包括第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述指令被执行时,所述第二处理器执行时实现如权上所述的点云解码方法。
第七方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如上所述的点云编码方法,或者被第二处理器执行时实现如上所述的点云解码方法。
本申请实施例公开了一种点云编解码方法、编码器、解码器及计算机存储介质,编码器确定点云编码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;确定处理顺序对应的坐标轴顺序索引序号;对坐标轴顺序索引序号进行编码,将编码比特写入码流;根据处理顺序,对点云数据进行处理,得到待编码点云数据;对待编码点云数据进行编码,将编码比特写入码流。解码器解析码流,获得坐标轴顺序索引序号;根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;解析码流,获得点云数据的恢复数据;根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置。也就是说,在本申请的实施例中,在编码侧,编码器可以先确定点云数据对应的变换处理的处理顺序,在根据处理顺序进行RAHT变换的同时将处理顺序写入码流中,传输至解码器,在解码侧,解码器通过解析码流获得的点云数据对应的变换处理的处理顺序,从而可以根据处理顺序进行RAHT变换。可见,本申请提出的点云编解码方法,对于点云的全部数据或部分数据不再使用固定的RAHT变换的顺序,而是利用码流中的语法元素对处理顺序进行说明,从而可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
图1为G-PCC编码的流程框图;
图2为G-PCC解码的流程框图;
图3为空间编码示意图一;
图4为空间编码示意图二;
图5为空间编码示意图三;
图6为空间编码示意图四;
图7为RAHT变换的示意图一;
图8为RAHT变换的示意图二;
图9为RAHT变换的示意图三;
图10为点云编码的实现流程示意图一;
图11为点云编码的实现流程示意图二;
图12为点云解码的实现流程示意图一;
图13为点云解码的实现流程示意图二;
图14为编码器的组成结构示意图一;
图15为编码器的组成结构示意图二;
图16为解码器的组成结构示意图一;
图17为解码器的组成结构示意图二。
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
在本申请实施例中,在点云G-PCC编码器框架中,将输入三维图像模型的点云进行条带(slice)划分后,对每一个slice进行独立编码。
图1为G-PCC编码的流程框图,如图1所示的G-PCC编码的流程框图中,应用于点云编码器,针对待编码的点云数据,首先通过slice划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中,然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是在基于参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接着对bounding box进行八叉树划分。在基于八叉树的几何信息编码流程中,将包围盒八等分为8个子立方体,对非空的(包含点云中的点)的子立方体继续进行八等分,直到划分得到的叶子结点为1×1×1的单位立方体时停止划分,对叶子结点中的点进行算术编码,生成二进制的几何比特流,即几何码流。在基于三角面片集(triangle soup,trisoup)的几何信息编码过程中,同样也要先进行八叉树划分,但区别于基于八叉树的几何信息编码,该trisoup不需要将点云逐级划分到边长为1x1x1的单位立方体,而是划分到block(子块)边长为W时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个vertex(交点),对vertex进行算术编码(基于交点进行表面拟合),生成二进制的几何比特流,即几何码流。Vertex还用于在几何重建的过程的实现,而重建的集合信息在对点云的属性编码时使用。
在属性编码过程中,几何编码完成,对几何信息进行重建后,进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。属性编码主要针对颜色信息进行,在颜色信息编码过程中,主要有两种变换方法,一是依赖于细节层次(Level of Detail,LOD)划分的基于距离的提升变换,二是直接进行区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT)的变换,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进 行量化(即量化系数),最后,将经过八叉树划分及表面拟合的几何编码数据与量化系数处理属性编码数据进行slice合成后,依次编码每个block的vertex坐标(即算数编码),生成二进制的属性比特流,即属性码流。
图2为G-PCC解码的流程框图,如图2所示的G-PCC解码的流程框图中,应用于点云解码器,针对所获取的二进制码流,首先对二进制码流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过算术解码-八叉树合成-表面拟合-重建几何-逆坐标转换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-反量化-基于LOD的提升逆变换或者基于RAHT的逆变换-逆颜色转换,得到点云的属性信息,基于几何信息和属性信息还原待编码的点云数据的三维图像模型。
图1所示的G-PCC编码的流程框图中,RAHT变换是对点云的属性信息进行编码的部分,通过Harr小波变换原理进行有损编码,一般适用于稀疏点云。具体来说,在RAHT变换之前,已经得到了点云的几何坐标信息。利用点的坐标信息可以得到对应于点云中每一点的莫顿码。莫顿编码也叫z-order code,因为其编码顺序按照空间z序。具体的计算莫顿码的具体方法描述如下所示,对于每一个分量用d比特二进制数表示的三维坐标,其三个坐标分量的表示通过以下公式实现:
其中,x
l,y
l,z
l∈{0,1}分别是x,y,z的最高位(l=1)到最低位(l=d)对应的二进制数值。莫顿码M是对x,y,z从最高位开始,依次交叉排列x
l,y
l,z
l到最低位,M的计算公式如下所示:
其中,m
l'∈{0,1}分别是M的最高位(l'=1)到最低位(l'=3d)的值。在得到点云中每个点的莫顿码M后,将点云中的点按照莫顿码由小到大的顺序进行排列,并将每个点的权值w设为1。表示为计算机语言,类似于z|(y<<1)|(x<<2)的组合。
图3为空间编码示意图一,图4为空间编码示意图二,结合图3和图4进行说明,以高低位排列顺序这里是z、y、x(x|(y<<1)|(z<<2))为例进行说明。
图3展示了8*8的图像每个像素的空间编码,从000000到111111,用一维二进制数,编码了x,y值在0-7的位置坐标。交错二进制坐标值,获得二进制z值图。沿着数值方向连接z型,产生递归的z形曲线。图中每个位置上就按连接顺序放上了z值。实际上,上图就是按Z方向迭代产生的,从00-11(整个图一个z),再从0000-1111(之前的z的每个点放一个z),再从000000-111111(之前的z的每个点放一个z),每次增加两位,递归升高。
示例性的,图4示出了2x2,4x4,8x8和16x16空间编码顺序,从中可以看出,莫顿码的编码顺序按照空间z序实现的。
图5为空间编码示意图三,图6为空间编码示意图四,上升到3维情况,其递归过程如图5和图6所示,其实现了坐标交错,整体在做的就是不断地将坐标值分散开。x|(y<<1)|(z<<2);即每个坐标值分散开,各位依次交错,先z后y最后x。解码过程就就是聚合过程。
RAHT变换是在对点云数据进行八叉树划分得到的层级结构基础上进行的,从八叉树的底层开始,分层进行变换。图7为RAHT变换的示意图一,如图7所示,在八叉树划分结束后得到体素块1(即图7中三种颜色深度相间的几何体,每个方块都代表点云中的点)。从最底层开始进行RAHT变换,以变换顺序X-Y-Z为例,如图7所示先沿X方向进行RAHT变换。若X方向上存在相邻的体素块,则二者进行RAHT,得到相邻两点属性值的加权平均值(DC系数)与残差(AC系数)。其中,得到的DC系数作为父节点的体素块2的属性信息存在,并进行下一层的RAHT变换;而AC系数保留起来,用于最后的编码。若不存在相邻点,则将该体素块的属性值直接传递给第二层父节点。第二层RAHT变换时,沿Y方向进行,若Y方向上存在相邻体素块,二者进行RAHT,并得到相邻两点属性值的加权平均值(DC系数)与残差(AC系数)。之后,第三层RAHT变换沿Z方向进行,并得到三种颜色深度相间的父节点体素块3作为八叉树中下一层的子节点,再沿x、y、Z方向循环进行RAHT变换,直至整个点云只存在一个父节点为止。
在实际中进行点云中的点的遍历时,利用经过排序的点云的莫顿码进行,即通过莫顿码右移一位后的值是否相等可以判断两个子节点是否在一个父节点下。
对于相邻两点的属性值c
1,c
2具体的RAHT变换过程如下所示:
其中,
w=w
1+w
2 (6)
luma为传入的量化参数配置得到的,w为DC系数所对应的权重,是计算得到的。DC系数为属性的加权平均值,AC系数为相邻两点的属性残差。c
1,c
2在第一层为属性值对应w
1,w
2,用于在其他层为计算获得的DC系数值。
在本申请实施例中,RAHT变换的具体步骤如下:
(1)、将点云中的点的属性值作为第一层DC系数并将它们的权重全部设为1,开始进行RAHT变换。
(2)、这一层的DC系数和AC系数按照对应的索引填入下一层双亲层,父节点。要用,若无AC系数则不填。
(3)、照莫顿码排序后的索引,遍历索引所对应的DC系数。
(4)、将所有DC系数对应的莫顿码?右移一位,这时每个DC系数的莫顿码表示其父节点的莫顿码。
(5)、图8为RAHT变换的示意图二,如图8所示,判断两个DC系数的莫顿码是否相同,若相同,则表示在相同父节点下,二者进行RAHT,将得到的DC系数填入下一层父节点的DC系数处、AC系数填入下一层最后的DC系数处并将两个DC系数加和的权重赋给父节点的DC系数;若不同,则将此DC系数和其权重直接填入下一层。
(6)、重复(2)-(5)直到某一层只有一个DC系数为止。
(7)、最后,对DC系数进行量化,并对这一层的DC系数和AC系数属性值进行编码。
相应的,在解码器框图中,RAHT的变换顺序也是需要在RAHT逆变换中使用。
下面介绍下RAHT的解码过程。
RAHT解码过程是RAHT编码过程的逆变换,同编码过程相同,在逆变换之前,先对点云中计算每个点莫顿码,得到每个点的莫顿码M后,将点云中的点按由小到大的顺序进行排列,并将每个点的权值设为1,RAHT逆过程依照莫顿码排序后的顺序遍历点云中所有的点。
由于RAHT变换是通过分层进行的,由底层开始,一层一层进行点云中相邻点的判断,依据权重对属性值进行RAHT变换。而RAHT逆变换的过程是由顶层开始,由上往下进行RAHT的逆变换,因此RAHT逆变换前需要得到每一层的权重信息。
在做逆RAHT变换前,利用得到的莫顿码信息,由底层开始,做一次编码端中对每一层RAHT相邻节点的判断,可以得到每一层的权重信息和AC系数的相应位置,每做一层RAHT,将相应的莫顿码左移一位。将权重信息和每一层中节点对应的莫顿码信息记录到buffer中,方便之后的使用。
RAHT逆变换时,从顶层开始,依据每一层的莫顿码信息来进行相邻节点的判断,利用得到的权重信息和解码得到的属性信息进行RAHT的逆变换。图9为RAHT变换的示意图三,如图9所示,RAHT逆变换相当于第k+1层到第k层的过程。当判断出相邻节点时,取遍历到的DC系数和相应的AC系数进行RAHT的逆变换。
更详细的,对于相邻两点的属性值c
1,c
2具体的RAHT逆变换过程如下公式所示:
具体地,在以分层的方式对点云属性信息执行RAHT时,在每一层中沿着处于固定顺序的三个轴线对每个节点迭代地执行RAHT。然而,对任一个点云使用相同的固定顺序进行RAHT,并不能完全展示RAHT的变换效率。例如,目前在G-PCC中,一般使用的固定顺序为ZYX,但是还存在其它可能的变换顺序,如X-Y-Z,对点云中的节点使用ZYX的顺序进行RAHT变换存在变换效率较低的问题,从而降低了编解码效率。
为了克服上述缺陷,本申请实施例提出了一种点云编解码方法、编码器、解码器及计算机存储介质,在编码侧,编码器可以先确定点云数据对应的变换处理的处理顺序,在根据处理顺序进行RAHT变换的同时将处理顺序写入码流中,传输至解码器,在解码侧,解码器通过解析码流获得的点云数据对应的变换处理的处理顺序,从而可以根据处理顺序进行RAHT变换。可见,本申请提出的点云编解码方法,对于点云的全部数据或部分数据不再使用固定的RAHT变换的顺序,而是利用码流中的语法元素对处理顺序进行说明,从而可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
可以理解的是,在本申请中,本申请实施例的点云编码方法,可以应用在如图1所示的RAHT变换部分,相应地,本申请实施例的点云解码方法,还可以应用在如图2所示的RAHT变换部分。也就是说,本申请实施例中的点云编解码方法,既可以应用于视频编码***,也可以应用于视频解码***,甚至还可以同时应用于视频编码***和视频解码***,但是本申请实施例不作具体限定。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请的一实施例提供了一种点云编码方法,图10为点云编码的实现流程示意图一,如图10所示,在本申请的实施例中,编码器对点云进行编码的方法可以包括以下步骤:
步骤101、确定点云编码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据。
在本申请的实施例中,编码器可以先确定点云编码过程中对点云数据的处理顺序。其中,点云数据为点云中的全部数据或者部分数据,处理顺序可以用于指示点云数据的三维坐标的坐标轴处理顺序。
可以理解的是,在本申请的实施例中,点云数据可以为点云中的全部数据,相应地,确定点云数据的处理顺序即为确定点云中全部数据的处理顺序,也就是说,在本申请中,对于点云中的每一个点,编码器可以采用相同的处理顺序进行变换处理。
进一步地,在本申请的实施例中,编码器通过对点云进行划分可以获得点云对应的多个切片,因此,点云数据也可以为点云中的部分数据,即点云数据可以为点云中的任一个切片的数据,相应地,确定点云数据的处理顺序即为确定点云中的任一个切片的数据的处理顺序,也就是说,在本申请中,对于点云中的同一个切片的每一个点,编码器可以采用相同的处理顺序进行变换处理。
可以理解的是,在本申请的实施例中,处理顺序即为RAHT变换时所使用的变换顺序,点云中的每一个点均为X、Y、Z三个维度的点云数据,因此,处理顺序指示的是在X、Y、Z三个坐标轴上依次进行变换的顺序。
示例性的,在本申请的实施例中,在以分层的方式对点云属性信息执行RAHT时,在每一层中基于处理顺序,沿着三个轴线对每个节点迭代地执行RAHT。例如,如果处理顺序为X-Y-Z顺序,那么编码器可以对点云中的节点先X再Y最后Z地执行RAHT;如果处理顺序为Y-Z-X顺序,那么编码器可以对点云中的节点先Y后Z最后X地执行RAHT。
可以理解的是,在本申请的实施例中,正是由于点云中的每一个点均为X、Y、Z三个维度的点云数据,因此,编码器进行RAHT变换时的顺序可以包括6种不同的组合情况,即处理顺序可以为6种不同的变换顺序。
进一步地,在本申请的实施例中,点云的数据的处理顺序可以为Z-Y-X顺序,X-Y-Z顺序,X-Z-Y顺序,Y-Z-X顺序,Z-X-Y顺序,Y-X-Z顺序中的任一种顺序;其中,X、Y、Z是点云数据的三维坐标的坐标轴。
需要说明的是,在本申请的实施例中,编码器在确定点云编码过程中对点云数据的处理顺序时,可以根据点云数据中节点的莫顿码,确定处理顺序。
具体地,在本申请的实施例中,编码器可以先计算获得点云数据中每一个节点的莫顿码,然后按照莫顿码由小到大的顺序对点云数据中的节点进行排序,最后便可以按照排序后的顺序遍历点云数据中的每一个节点。
步骤102、确定处理顺序对应的坐标轴顺序索引序号。
在本申请的实施例中,编码器在确定点云编码过程中对点云数据的处理顺序之后,可以进一步确定处理顺序对应的坐标轴顺序索引序号。
可以理解的是,对于不同的处理顺序,编码器可以设置不同的坐标轴顺序索引序号。相应地,由于处理顺序可以为6种不同变换顺序中的任意一种,那么坐标轴顺序索引序号也可以包括6种不同的取值。
进一步地,在本申请的实施例中,编码器在确定处理顺序对应的坐标轴顺序索引序号时,可以根据预设索引序号与处理顺序的对应关系表,设置处理顺序对应的坐标轴顺序索引序号的取值。
具体地,在本申请中,表1为预设索引序号与处理顺序的对应关系表一,如表1所示,对于不同的处理顺序,查询预设索引序号与处理顺序的对应关系表可以确定对应的坐标轴顺序索引序号。
表1
坐标轴顺序索引序号 | 处理顺序 |
0 | Z-Y-X顺序 |
1 | X-Y-Z顺序 |
2 | X-Z-Y顺序 |
3 | Y-Z-X顺序 |
4 | Z-Y-X顺序 |
5 | Z-X-Y顺序 |
6 | Y-X-Z顺序 |
7 | X-Y-Z顺序 |
由上述表1可知,在本申请中,处理顺序和坐标轴顺序索引序号并不是一一对应的关系。对于6种RAHT变换顺序,Z-Y-X顺序对应有两个不同的坐标轴顺序索引序号,具体地,Z-Y-X顺序分别对应索引序号0和索引序号4;X-Y-Z顺序对应有两个不同的坐标轴顺序索引序号,具体地,X-Y-Z顺序分别对应索引序号1和索引序号7。而Z-Y-X顺序和X-Y-Z顺序以外的其他4种RAHT变换顺序,则分别对应有唯一一个坐标轴顺序索引序号。其中,X-Z-Y顺序对应索引序号2,Y-Z-X顺序对应索引序号3,Z-X-Y顺序对应索引序号5,Y-X-Z顺序对应索引序号6。
示例性的,在本申请中,编码器在根据预设索引序号与处理顺序的对应关系表,设置处理顺序对应的坐标轴顺序索引序号的取值时,如果点云数据的处理顺序为Z-Y-X顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为0或4;如果点云数据的处理顺序为X-Y-Z顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为1或7;如果点云数据的处理顺序为X-Z-Y顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为2;如果点云数据的处理顺序为Y-Z-X顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为3;如果点云数据的处理顺序为Z-X-Y顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为5;如果点云数据的处理顺序为Y-X-Z顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为6。
需要说明的是,在本申请中,G-PCC中没有具体的X、Y、Z坐标轴的概念,一般情况下,在X、Y、Z坐标轴的基础上,可以以0、1、2来表示坐标轴处理顺序。例如,如果处理顺序为X-Y-Z顺序,那么可以通过0-1-2来进行指示。
基于上述表1,表2为预设索引序号与处理顺序的对应关系表二,如表2所示,对于不同的处理顺序,查询预设索引序号与处理顺序的对应关系表可以确定对应的坐标轴顺序索引序号。
表2
坐标轴顺序索引序号 | X | Y | Z |
0 | 2 | 1 | 0 |
1 | 0 | 1 | 2 |
2 | 0 | 2 | 1 |
3 | 2 | 0 | 1 |
4 | 2 | 1 | 0 |
5 | 1 | 2 | 0 |
6 | 1 | 0 | 2 |
7 | 0 | 1 | 2 |
示例性的,在本申请中,编码器在根据预设索引序号与处理顺序的对应关系表,设置处理顺序对应的坐标轴顺序索引序号的取值时,如果点云数据的处理顺序为Z-Y-X顺序,即通过2-1-0指示处理顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为0或4;如果点云数据的处理顺序为X-Y-Z顺序,即通过0-1-2指示处理顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为1或7;如果点云数据的处理顺序为X-Z-Y顺序,即通过0-2-1指示处理顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为2;如果点云数据的处理顺序为Y-Z-X顺序,即通过2-0-1指示处理顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为3;如果点云数据的处理顺序为Z-X-Y顺序,即通过1-2-0指示处理顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为5;如果点云数据的处理顺序为Y-X-Z顺序,即通过1-0-2指示处理顺序,那么编码器可以将坐标轴顺序索引序号的取值设置为6。
可以理解的是,在本申请中,坐标轴顺序索引序号可以通过语法axis_coding_order来表示,即可以通过语法axis_coding_order来指定X、Y、Z三个坐标轴的处理顺序。具体地,基于上述表2,针对G-PCC标准的axis_coding_order,可以用于对RecPic[pointIdx][axis]缓冲区中的数据进行处理。例如,当axis_coding_order的取值等于0时,即处理顺序为Z-Y-X时,如果axis值等于0,则RecPic[pointIdx][0]存储的是Z轴的数据;如果axis值等于1,则RecPic[pointIdx][1]存储的是Y轴的数据;如果axis值等于2,则RecPic[pointIdx][2]存储的是X轴的数据。
步骤103、对坐标轴顺序索引序号进行编码,将编码比特写入码流。
在本申请的实施例中,编码器在确定处理顺序对应的坐标轴顺序索引序号之后,可以进一步对坐标轴顺序索引序号进行编码,然后可以将编码比特写入码流。
进一步地,在本申请的实施例中,编码器在对坐标轴顺序索引序号进行编码,将编码比特写入码流时,可以先使用等长编码的方法对坐标轴顺序索引序号进行编码,确定编码比特,然后将编码比特写入码流。
可以理解的是,在本申请中,等长编码即为将信源输出符号序列的任意一种取值(概率可能不同)都编码成相同长度的输出码字,没有利用信源的统计特性。其中,编码器在使用等长编码的方法编码坐标轴顺序索引序号之后,获得的相同长度的等长码。
进一步地,在本申请的实施例中,编码器在对坐标轴顺序索引序号进行编码,将编码比特写入码流时,可以将编码比特写入参数集的数据单元对应的码流;其中,参数集的数据单元中包含对点云数据进行解码所使用的参数。
需要说明的是,在本申请的实施例中,参数集可以为序列层的参数集。
进一步地,在本申请的实施例中,参数集也可以为序列参数集。
需要说明的是,在本申请的实施例中,参数集的数据单元中可以包含点云数据的属性信息;其中,属性信息是点云数据中点相关联的标量或矢量属性。
可以理解的是,在本申请的实施例中,参数集的数据单元中还可以包含点云数据的几何信息;其中,几何信息是点云数据中点相关联的笛卡尔坐标。
进一步地,在本申请的实施例中,编码器在对坐标轴顺序索引序号进行编码,将编码比特写入码流时,可以将编码比特写入码流的辅助信息所在的数据单元。
示例性的,在本申请的实施例中,辅助信息可以为视频可用性信息(video usability information,VUI)。
视频可用性信息为相应比特流提供了额外信息,以允许用户进行更宽的应用。例如,在比特流限制信息中,视频可用性信息规定(1)运动是否越过图片边界;(2)每图片的最大字节;(3)每宏块的最大比特;(4)最大运动向量长度(水平和垂直);(5)重排序帧的数目;(6)最大解码帧缓冲器大小。当解码器看到该信息时,解码器不是使用“级别”(level)信息来设定解码要求(这一般来说高于比特流实际所要求的),而是可以基于更严格的限度来定制其解码操作。
示例性的,在本申请的实施例中,辅助信息也可以为补充增强信息(Supplemental Enhancement Information),其中,SEI是码流范畴里面的概念,提供了向视频码流中加入信息的办法,是H.264/H.265视频压缩标准的特性之一。
SEI并不是解码过程的必须项,有可能对解码过程(容错、纠错)有帮助,可以集成在视频码流中。也就是说,编码器在输出视频码流的时候,也可以不提供SEI信息,或者,视频传输过程、解封装、解码环节,都可能因为某种原因丢弃SEI。
可以理解的时,在本申请的实施例中,编码器在对坐标轴顺序索引序号进行编码,将编码比特写入码流时,可以将编码比特写入包含有点云数据对应的点云编码数据的传输流中。也就是说,码流可以为包含点云编码数据的传输流。
进一步地,在本申请的实施例中,编码器在对坐标轴顺序索引序号进行编码,将编码比特写入码流时,可以将编码比特写入包含有点云数据对应的点云编码数据的媒体文件中。也就是说,码流可以为包含点云编码数据的媒体文件。
也就是说,在本申请中,坐标轴顺序索引序号axis_coding_order可以在SPS的辅助信息中进行编码(例如VUI),可以在点云数据的其他辅助信息数据单元中进行编码(例如SEI),还也可以进一步扩展至在传输流或文件格式的辅助信息单元中进行编码。
步骤104、根据处理顺序,对点云数据进行处理,得到待编码点云数据。
在本申请的实施例中,编码器在确定点云编码过程中对点云数据的处理顺序之后,即步骤101之后,便可以根据处理顺序,对点云数据进行处理,得到待编码点云数据。
可以理解的是,在本申请的实施例中,处理顺序即为对点云属性信息执行RAHT变换时的变换顺序,因此,编码器在确定处理顺序之后,便可以利用处理顺序对应点云数据进行RAHT变换,从而获得对应的待编码点云数据。
需要说明的是,在本申请的实施例中,由于点云数据可以为点云中的全部数据,因此,处理顺序可以为点云中的全部数据的变换顺序,进而编码器在确定处理顺序之后,可以通过处理顺序对点云中的每一个点依次进行RAHT变换。
进一步地,在本申请的实施例中,由于点云数据也可以为点云中的部分数据,即点云数据可以为点云中的任一个切 片的数据,因此,处理顺序还可以为点云中的部分数据的变换顺序,进而编码器在确定点云中某一个切片对应的处理顺序之后,可以通过处理顺序对该切片中的每一个点依次进行RAHT变换。
也就是说,在本申请中,如果处理顺序为点云中全部数据的变换顺序,则编码器可以对点云中的全部数据使用同一种变换顺序进行RAHT变换;如果处理顺序为点云中的部分数据的变换顺序,则编码器可以对点云中的部分数据使用同一种变换顺序进行RAHT变换,如对于划分后的一个切片中的数据,可以使用同一种变换顺序进行RAHT变换。
进一步地,在本申请的实施例中,编码器在根据处理顺序,对点云数据进行处理,得到待编码点云数据时,可以先根据处理顺序,对点云数据进行坐标映射处理。
具体地,在本申请的实施例中,编码器在根据处理顺序,对点云数据进行坐标映射处理时,可以按照处理顺序,对点云数据的坐标进行重排列。
进一步地,在本申请的实施例中,编码器在根据处理顺序,对点云数据进行处理,得到待编码点云数据时,可以根据处理顺序,依次在对应坐标轴方向上对点云数据进行处理。
需要说明的是,在本申请中,RAHT变换的执行过程即为依次先在一个坐标方向上进行变换,然后在另一个坐标方向上进行变换,最后在第三个坐标方向上进行变换。
可以理解的是,在本申请的实施例中,编码器根据处理顺序,依次在对应坐标轴方向上对点云数据进行处理时,可以根据处理顺序,依次在对应坐标轴方向上对点云数据进行RAHT处理。
进一步地,在本申请的实施例中,编码器在根据处理顺序,依次在对应坐标轴方向上对点云数据进行RAHT处理时,可以先确定点云数据中节点的莫顿码,然后按照处理顺序和莫顿码对点云数据进行RAHT变换。
进一步地,在本申请的实施例中,编码器在按照处理顺序和莫顿码对点云数据进行RAHT变换时,可以先确定处理顺序是否与预设顺序相同。
可以理解的是,在本申请的实施例中,预设顺序可以为编码器预先存储的、默认的变换顺序。例如,编码器可以将Z-Y-X顺序设置为预设顺序。
进一步地,在本申请的实施例中,编码器可以对处理顺序和预设顺序进行比较,如果处理顺序与预设顺序相同,那么编码器可以直接按照预设顺序和莫顿码对点云数据进行RAHT变换;如果处理顺序与预设顺序不同,那么编码器可以按照处理顺序和莫顿码对点云数据进行RAHT变换。
需要说明的是,在本申请的实施例中,图11为点云编码的实现流程示意图二,如图11所示,编码器在确定点云编码过程中对点云数据的处理顺序之后,即步骤101之后,且确定处理顺序对应的坐标轴顺序索引序号之前,即步骤102之前,编码器对点云数据进行编码的方法还可以包括以下步骤:
步骤106、根据处理顺序确定顺序指示参数;其中,顺序指示参数用于对是否使用预设顺序进行指示。
步骤107、对顺序指示参数进行编码,将编码比特写入码流。
编码器在确定点云数据的处理顺序之后,可以先根据处理顺序对顺序指示参数进行设置,然后对顺序指示参数进行编码,并将编码比特流写入码流中。
需要说明的是,在本申请的实施例中,顺序指示参数可以用于对是否使用预设顺序进行指示。也就是说,如果编码器采用预设顺序进行变换处理,则可以将顺序指示参数设置为指示使用预设顺序;如果编码器未采用预设顺序进行变换处理,则可以将顺序指示参数设置为指示不使用预设顺序。
进一步地,在本申请的实施例中,编码器在根据处理顺序确定顺序指示参数时,如果处理顺序与预设顺序不同,那么编码器需要按照处理顺序对点云数据进行变换处理,因此可以将顺序指示参数的取值设置为指示不使用预设顺序;如果处理顺序与预设顺序相同,那么编码器可以按照预设顺序对点云数据进行变换处理,因此可以将顺序指示参数的取值设置为指示使用预设顺序。
示例性的,在本申请中,编码器在进行顺序指示参数的设置时,可以将顺序指示参数的取值设置为0,从而指示不使用预设顺序,也可以将顺序指示参数的取值设置为1,从而指示使用预设顺序。
可以理解的是,在本申请中,可以通过语法attr_raht_order_default_flag来表征顺序指示参数。具体地,如果attr_raht_order_default_flag的取值等于1,则指示使用预设顺序;如果attr_raht_order_default_flag的取值等于0,则指示不使用预设顺序。
步骤105、对待编码点云数据进行编码,将编码比特写入码流。
在本申请的实施例中,编码器在根据处理顺序,对点云数据进行处理,得到待编码点云数据之后,便可以对待编码点云数据进行编码,并将编码比特写入码流。
通过上述步骤101至步骤107所提出的点云编码方法,编码器不再按照现有技术所提出的、对点云使用固定的变换顺序进行RAHT变换,如对所有点云均使用X-Y-Z顺序进行RAHT处理,而是在对点云数据进行编码的过程中,在进行变换处理之前先确定出点云数据对应的处理顺序,然后利用处理顺序进行RAHT变换。
可以理解的是,在本申请中,如果从X、Y、Z三个坐标的处理顺序的角度来看,目前G-PCC中,编码器是按照固定的顺序进行变换处理的,而本申请提出的点云编码方法,可以通过自适应改变G-PCC中编码器的对三个坐标的处理顺序,从而可以提高编码效率。
需要说明的是,在本申请中,可以将处理顺序的灵活性限定在序列层,整个点云可以使用同一个坐标处理顺序,即点云中的划分(例如slice)均使用相同的坐标处理顺序。
可以理解的是,在本申请中,编码端在对点云数据进行编码前,可以先对点云数据进行预处理,具体地,编码器可以重新设置点云数据的X、Y、Z坐标轴,及重新确定梳理顺序;然后对预处理后的点云数据进行编码,并从显示的角度,在序列层指示预处理的方式,即对处理顺序对应的坐标轴顺序索引序号进行编码之后,将编码比特写入码流中;从而可以在码流传输至解码端之后,解码器解码码流获得解码点云,并根据序列层指示的预处理方式,对点云进行后处理,即解码端解析获得坐标轴顺序索引序号,并确定出坐标轴顺序索引序号指示的处理顺序,便可以对点云数据的X、Y、Z坐标轴进行适应性的设置。
本申请实施例提出了一种点云编码方法,编码器确定点云编码过程中对点云数据的处理顺序;其中,处理顺序指示 点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;确定处理顺序对应的坐标轴顺序索引序号;对坐标轴顺序索引序号进行编码,将编码比特写入码流;根据处理顺序,对点云数据进行处理,得到待编码点云数据;对待编码点云数据进行编码,将编码比特写入码流。也就是说,在本申请的实施例中,在编码侧,编码器可以先确定点云数据对应的变换处理的处理顺序,在根据处理顺序进行RAHT变换的同时将处理顺序写入码流中,传输至解码器,在解码侧,解码器通过解析码流获得的点云数据对应的变换处理的处理顺序,从而可以根据处理顺序进行RAHT变换。可见,本申请提出的点云编解码方法,对于点云的全部数据或部分数据不再使用固定的RAHT变换的顺序,而是利用码流中的语法元素对处理顺序进行说明,从而可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
基于上述实施例,本申请的再一实施例提出了一种点云的解码方法,图12为点云解码的实现流程示意图一,如图12所示,在本申请的实施例中,解码器对点云数据进行解码的方法可以包括以下步骤:
步骤201、解析码流,获得坐标轴顺序索引序号。
在本申请的实施例中,解码器解析码流,可以获得点云数据的坐标轴顺序索引序号。
需要说明的是,在本申请的实施例中,解码器解析码流获得的坐标轴顺序索引序号可以用于指示处理顺序。
具体地,在本申请中,由于处理顺序可以为6种不同变换顺序中的任意一种,因此解码器解析获得的坐标轴顺序索引序号也可以包括6种不同的取值。
可以理解的是,在本申请中,坐标轴顺序索引序号可以通过语法axis_coding_order来表示,即可以通过语法axis_coding_order来指定X、Y、Z三个坐标轴的处理顺序。具体地,基于上述表2,针对G-PCC标准的axis_coding_order,可以用于对RecPic[pointIdx][axis]缓冲区中的数据进行处理。例如,当axis_coding_order的取值等于0时,即处理顺序为Z-Y-X时,如果axis值等于0,则RecPic[pointIdx][0]存储的是Z轴的数据;如果axis值等于1,则RecPic[pointIdx][1]存储的是Y轴的数据;如果axis值等于2,则RecPic[pointIdx][2]存储的是X轴的数据。
示例性的,在G-PCC标准文本中,坐标轴顺序索引序号对应的语法部分可以如下表3所示:
表3
进一步地,在本申请的实施例中,解码器在解析码流,获得坐标轴顺序索引序号时,可以使用解析等长码的方法对坐标轴顺序索引序号进行解析。
可以理解的是,在本申请中,等长码是在使用等长编码进行编码处理后获得的相同长度的输出码字,也就是说,编码器在使用等长编码的方法编码坐标轴顺序索引序号之后,获得的相同长度的等长码。
进一步地,在本申请的实施例中,解码器在解析码流,获得坐标轴顺序索引序号时,可以解析码流中参数集的数据单元对应的码流;其中,参数集的数据单元中包含对点云数据进行解码所使用的参数。
需要说明的是,在本申请的实施例中,参数集可以为序列层的参数集。
进一步地,在本申请的实施例中,参数集也可以为序列参数集。
需要说明的是,在本申请的实施例中,参数集的数据单元中可以包含点云数据的属性信息;其中,属性信息是点云数据中点相关联的标量或矢量属性。
可以理解的是,在本申请的实施例中,参数集的数据单元中还可以包含点云数据的几何信息;其中,几何信息是点云数据中点相关联的笛卡尔坐标。
进一步地,在本申请的实施例中,解码器在解析码流,获得坐标轴顺序索引序号时,可以在接收码流之后,解析码流的辅助信息所在的数据单元,获得坐标轴顺序索引序号。
示例性的,在本申请的实施例中,辅助信息可以为视频可用性信息VUI。
示例性的,在本申请的实施例中,辅助信息也可以为补充增强信息SEI。
可以理解的时,在本申请的实施例中,解码器在解析码流,获得坐标轴顺序索引序号时,解析的码流可以为包含有点云数据对应的点云编码数据的传输流。也就是说,码流可以为包含点云编码数据的传输流。
进一步地,在本申请的实施例中,编码器在对坐标轴顺序索引序号进行编码,将编码比特写入码流时,解析的码流可以为包含有点云数据对应的点云编码数据的媒体文件。也就是说,码流可以为包含点云编码数据的媒体文件。
也就是说,在本申请中,坐标轴顺序索引序号axis_coding_order可以在SPS的辅助信息中进行编码(例如VUI),可以在点云数据的其他辅助信息数据单元中进行编码(例如SEI),还也可以进一步扩展至在传输流或文件格式的辅助信息单元中进行编码。
步骤202、根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据。
在本申请的实施例中,解码器在解析码流,获得坐标轴顺序索引序号之后,便可以根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序。
可以理解的是,在本申请中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据。
进一步地,在本申请的实施例中,处理顺序可以用于指示点云数据的三维坐标的坐标轴处理顺序。
可以理解的是,在本申请的实施例中,点云数据可以为点云中的全部数据,相应地,解码器根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序,即为确定点云中全部数据的处理顺序,也就是说,在本申请中,对于点云中的每一个点,解码器可以采用相同的处理顺序进行变换处理。
进一步地,在本申请的实施例中,编码器通过对点云进行划分可以获得点云对应的多个切片,因此,点云数据也可以为点云中的部分数据,即点云数据可以为点云中的任一个切片的数据,相应地,解码器根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序,即为确定点云中的任一个切片的数据的处理顺序,也就是说,在本申请中,对于点云中的同一个切片的每一个点,解码器可以采用相同的处理顺序进行变换处理。
可以理解的是,在本申请的实施例中,处理顺序即为RAHT变换时所使用的变换顺序,点云中的每一个点均为X、Y、Z三个维度的点云数据,因此,处理顺序指示的是在X、Y、Z三个坐标轴上依次进行变换的顺序。
示例性的,在本申请的实施例中,在以分层的方式对点云属性信息执行RAHT时,在每一层中基于处理顺序,沿着三个轴线对每个节点迭代地执行RAHT。例如,如果处理顺序为X-Y-Z顺序,那么解码器可以对点云中的节点先X再Y最后Z地执行RAHT;如果处理顺序为Y-Z-X顺序,那么解码器可以对点云中的节点先Y后Z最后X地执行RAHT。
可以理解的是,在本申请的实施例中,正是由于点云中的每一个点均为X、Y、Z三个维度的点云数据,因此,解码器进行RAHT变换时的顺序可以包括6种不同的组合情况,即处理顺序可以为6种不同的变换顺序。
具体地,对于不同的处理顺序,编码器可以设置不同的坐标轴顺序索引序号。相应地,由于处理顺序可以为6种不同变换顺序中的任意一种,那么坐标轴顺序索引序号也可以包括6种不同的取值。
可以理解的是,在本申请中,点云数据的处理顺序可以为Z-Y-X顺序,X-Y-Z顺序,X-Z-Y顺序,Y-Z-X顺序,Z-X-Y顺序,Y-X-Z顺序中的任一种顺序;其中,X、Y、Z是点云数据的三维坐标的坐标轴。
进一步地,在本申请的实施例中,解码器在根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序时,可以根据预设索引序号与处理顺序的对应关系表,确定坐标轴顺序索引序号对应的处理顺序。
具体地,在本申请中,上述表1为预设索引序号与处理顺序的对应关系表一,如表1所示,对于不同的处理顺序,查询预设索引序号与处理顺序的对应关系表可以确定对应的坐标轴顺序索引序号。
示例性的,在本申请中,解码器在根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序时,如果坐标轴顺序索引序号的取值为0或4,那么解码器可以确定出对应的点云数据的处理顺序为Z-Y-X顺序;如果坐标轴顺序索引序号的取值为1或7,那么解码器可以确定出对应的点云数据的处理顺序为X-Y-Z顺序;如果坐标轴顺序索引序号的取值为2,那么解码器可以确定出对应的点云数据的处理顺序为X-Z-Y顺序;如果坐标轴顺序索引序号的取值为3,那么解码器可以确定出对应的点云数据的处理顺序为点云数据的处理顺序为Y-Z-X顺序;如果坐标轴顺序索引序号的取值为5,那么解码器可以确定出对应的点云数据的处理顺序为点云数据的处理顺序为Z-X-Y顺序;如果坐标轴顺序索引序号的取值为6,那么解码器可以确定出对应的点云数据的处理顺序为点云数据的处理顺序为Y-X-Z顺序。
需要说明的是,在本申请中,G-PCC中没有具体的X、Y、Z坐标轴的概念,一般情况下,在X、Y、Z坐标轴的基础上,可以以0、1、2来表示坐标轴处理顺序。例如,如果处理顺序为X-Y-Z顺序,那么可以通过0-1-2来进行指示。
基于上述表1,表2为预设索引序号与处理顺序的对应关系表二,如表2所示,对于不同的处理顺序,查询预设索引序号与处理顺序的对应关系表可以确定对应的坐标轴顺序索引序号。
示例性的,在本申请中,解码器在根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序时,如果坐标轴顺序索引序号的取值为0或4,即通过2-1-0指示处理顺序,那么解码器可以确定出对应的点云数据的处理顺序为Z-Y-X顺序;如果坐标轴顺序索引序号的取值为1或7,即通过0-1-2指示处理顺序,那么解码器可以确定出对应的点云数据的处理顺序为X-Y-Z顺序,如果坐标轴顺序索引序号的取值为2,即通过0-2-1指示处理顺序,那么解码器可以确定出对应的点云数据的处理顺序为X-Z-Y顺序;如果坐标轴顺序索引序号的取值为3,即通过2-0-1指示处理顺序,那么解码器可以确定出对应的点云数据的处理顺序为Y-Z-X顺序;如果坐标轴顺序索引序号的取值为5,即通过1-2-0指示处理顺序,那么解码器可以确定出对应的点云数据的处理顺序为Z-X-Y顺序;如果坐标轴顺序索引序号的取值为6,即通过1-0-2指示处理顺序,那么解码器可以确定出对应的点云数据的处理顺序为Y-X-Z顺序。
可以理解的是,在本申请中,坐标轴顺序索引序号可以通过语法axis_coding_order来表示,即可以通过语法axis_coding_order来指定X、Y、Z三个坐标轴的处理顺序。具体地,基于上述表2,针对G-PCC标准的axis_coding_order,可以用于对RecPic[pointIdx][axis]缓冲区中的数据进行处理。例如,当axis_coding_order的取值等于0时,即处理顺序为Z-Y-X时,如果axis值等于0,则RecPic[pointIdx][0]存储的是Z轴的数据;如果axis值等于1,则RecPic[pointIdx][1]存储的是Y轴的数据;如果axis值等于2,则RecPic[pointIdx][2]存储的是X轴的数据。
步骤203、解析码流,获得点云数据的恢复数据。
在本申请的实施例中,解码器还可以解析码流,获得点云数据的恢复数据。
步骤204、根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置。
在本申请的实施例中,解码器在根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序,且解析码流,获得点云数据的恢复数据之后,便可以根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置。
也就是说,在本申请中,处理顺序所指示的是对解析码流得到的恢复数据进行RAHT变换(即RAHT逆变换)后,解码器依次输出的数据对应的坐标轴。
进一步地,在本申请的实施例中,解码器在根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置时,可以在恢复数据存储单元中,对于点云数据中的点,按照处理顺序所指示的坐标轴顺序获得点的坐标数据。
可以理解的是,在本申请中,在进行RAHT变换时,基于RAHT变换的处理顺序,先获得的数据先写入数据存储单元,后获得的数据后写入数据存储单元,即数据的写入顺序是与坐标轴顺序相对应的。
具体地,在本申请的实施例中,解码器在根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置时,可以根据处理顺序,依次在对应坐标轴方向上对点云数据进行RAHT处理。
需要说明的是,在本申请中,RAHT变换的执行过程即为依次先在一个坐标方向上进行变换,然后在另一个坐标方向上进行变换,最后在第三个坐标方向上进行变换。
需要说明的是,在本申请的实施例中,解码器在根据处理顺序,依次在对应坐标轴方向上对点云数据进行RAHT处理时,可以先解析码流,确定点云数据中节点的莫顿码;然后再按照处理顺序和莫顿码对点云数据进行RAHT变换。
具体地,在本申请的实施例中,解码器可以先计算获得点云数据中每一个节点的莫顿码,然后按照莫顿码由小到大 的顺序对点云数据中的节点进行排序,最后便可以按照排序后的顺序遍历点云数据中的每一个节点。
可以理解的是,在本申请的实施例中,处理顺序即为对点云属性信息执行RAHT变换时的变换顺序,因此,解码器在确定处理顺序之后,便可以利用处理顺序对应点云数据进行RAHT变换。
需要说明的是,在本申请的实施例中,由于点云数据可以为点云中的全部数据,因此,处理顺序可以为点云中的全部数据的变换顺序,进而解码器在确定处理顺序之后,可以通过处理顺序对点云中的每一个点依次进行RAHT变换。
进一步地,在本申请的实施例中,由于点云数据也可以为点云中的部分数据,即点云数据可以为点云中的任一个切片的数据,因此,处理顺序还可以为点云中的部分数据的变换顺序,进而解码器在确定点云中某一个切片对应的处理顺序之后,可以通过处理顺序对该切片中的每一个点依次进行RAHT变换。
也就是说,在本申请中,如果处理顺序为点云中全部数据的变换顺序,则解码器可以对点云中的全部数据使用同一种变换顺序进行RAHT变换;如果处理顺序为点云中的部分数据的变换顺序,则解码器可以对点云中的部分数据使用同一种变换顺序进行RAHT变换,如对于划分后的一个切片中的数据,可以使用同一种变换顺序进行RAHT变换。
进一步地,在本申请的实施例中,解码器在按照处理顺序和莫顿码对点云数据进行RAHT变换时,可以先将处理顺序和预设顺序进行比较,从而确定点云数据的处理顺序是否与预设顺序相同。
可以理解的是,在本申请的实施例中,预设顺序可以为解码器预先存储的、默认的变换顺序。例如,解码器可以将Z-Y-X顺序设置为预设顺序。
进一步地,在本申请的实施例中,解码器在对处理顺序和预设顺序进行比较之后,如果处理顺序与预设顺序相同,那么解码器可以直接按照预设顺序和莫顿码对点云数据进行RAHT变换;如果处理顺序与预设顺序不同,那么解码器可以按照处理顺序和莫顿码对点云数据进行RAHT变换。
可以理解的是,在本申请的实施例中,图13为点云解码的实现流程示意图二,如图12所示,解码器在解析码流,获得坐标轴顺序索引序号之前,即步骤201之前,解码器对点云数据进行解码的方法还可以包括以下步骤:
步骤205、解析码流,确定顺序指示参数;其中,顺序指示参数用于对是否使用预设顺序进行指示。
步骤206、若顺序指示参数的取值指示不使用预设顺序,则确定处理顺序与预设顺序不同。
步骤207、若顺序指示参数的取值指示使用预设顺序,则确定处理顺序与预设顺序相同。
在本申请的实施例中,解码器还可以先通过解析码流确定点云数据对应的顺序指示参数,然后根据顺序指示参数确定是否使用预设顺序进行变换处理。
需要说明的是,在本申请的实施例中,顺序指示参数可以用于对是否使用预设顺序进行指示。也就是说,如果编码端采用预设顺序进行变换处理,那么解码器解析获得的顺序指示参数可以指示使用预设顺序;如果编码端未采用预设顺序进行变换处理,那么解码器解析获得的顺序指示参数可以指示不使用预设顺序。
进一步地,在本申请的实施例中,解码器在解析获得顺序指示参数之后,如果顺序指示参数的取值指示不使用预设顺序,那么解码器需要按照处理顺序对点云数据进行变换处理;如果顺序指示参数的取值指示使用预设顺序,那么解码器可以按照预设顺序对点云数据进行变换处理。
示例性的,在本申请中,当顺序指示参数的取值为0时,可以认为指示不使用预设顺序;当顺序指示参数的取值设置为1时,可以认为指示使用预设顺序。
可以理解的是,在本申请中,可以通过语法attr_raht_order_default_flag来表征顺序指示参数。具体地,如果attr_raht_order_default_flag的取值等于1,则指示使用预设顺序;如果attr_raht_order_default_flag的取值等于0,则指示不使用预设顺序。
通过上述步骤201至步骤207所提出的点云解码方法,解码器不再按照现有技术所提出的、对点云使用固定的变换顺序进行RAHT变换,如对所有点云均使用X-Y-Z顺序进行RAHT处理,而是在对点云数据进行解码的过程中,在进行变换处理之前先确定出点云数据对应的处理顺序,然后利用处理顺序进行RAHT变换。
可以理解的是,在本申请中,如果从X、Y、Z三个坐标的处理顺序的角度来看,目前G-PCC中,解码器是按照固定的顺序进行变换处理的,而本申请提出的点云编码方法,可以通过自适应改变G-PCC中解码器的对三个坐标的处理顺序,从而可以提高解码效率。
需要说明的是,在本申请中,可以将处理顺序的灵活性限定在序列层,整个点云可以使用同一个坐标处理顺序,即点云中的划分(例如slice)均使用相同的坐标处理顺序。
可以理解的是,在本申请中,编码端在对点云数据进行编码前,可以先对点云数据进行预处理,具体地,编码器可以重新设置点云数据的X、Y、Z坐标轴,及重新确定梳理顺序;然后对预处理后的点云数据进行编码,并从显示的角度,在序列层指示预处理的方式,即对处理顺序对应的坐标轴顺序索引序号进行编码之后,将编码比特写入码流中;从而可以在码流传输至解码端之后,解码器解码码流获得解码点云,并根据序列层指示的预处理方式,对点云进行后处理,即解码端解析获得坐标轴顺序索引序号,并确定出坐标轴顺序索引序号指示的处理顺序,便可以对点云数据的X、Y、Z坐标轴进行适应性的设置。
本申请实施例公开了一种点云解码方法,解码器解析码流,获得坐标轴顺序索引序号;根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;解析码流,获得点云数据的恢复数据;根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置。也就是说,在本申请的实施例中,在编码侧,编码器可以先确定点云数据对应的变换处理的处理顺序,在根据处理顺序进行RAHT变换的同时将处理顺序写入码流中,传输至解码器,在解码侧,解码器通过解析码流获得的点云数据对应的变换处理的处理顺序,从而可以根据处理顺序进行RAHT变换。可见,本申请提出的点云编解码方法,对于点云的全部数据或部分数据不再使用固定的RAHT变换的顺序,而是利用码流中的语法元素对处理顺序进行说明,从而可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
基于上述实施例,本申请的又一实施例提供了一种点云编解码方法,与现有技术相比,在本申请的实施例中,编解码器可以对固定的变换顺序进行改变,即改变不传递的默认顺序,无论在编码端还是解码端,均在对点云进行RAHT变 换之前,确定出点云数据对应的处理顺序,然后利用处理顺序进行RAHT变换。下面以解码端的变换过程进行示例性说明。
示例性的,在一种实施例中,解码器在解析码流之后,获得点云数据的处理顺序X-Y-Z,其中,该点云数据为点云中的部分数据,即为点云中的切片,且该处理顺序与固定的预设顺序Z-Y-X不同,然后,解码器可以基于莫顿码在相应地切片中进行的点排序过程。
其中,在八叉树节点解码过程,每个使用的子女中的点的空间位置根据每个子女中的重复点的数量和直接编码位置的使用而确定,如下:
在基于莫顿码的点排序过程中,解码器解析码流可以获得获得阵列McodeBeforeSort[i],其中i=0...PointNum-1,如下:
通常,从编码过程或编码器的角度看,语法元素传递到比特流中以指示信息。从解码过程或解码器的角度看,从比特流解析语法元素以获得所指示的信息。
示例性的,在一种实施例中,处理顺序可以传递到属性参数集语法中,即解码器可以通过解析属性参数集的码流获得处理顺序,其中,属性参数集的语法如表4所示。
表4
具体地,在本申请中,坐标轴顺序索引序号attr_raht_order_index可以指示用于节点的处理顺序,即RAHT变换顺序。在比特流中,attr_raht_order_index的值可以为0,1,2,3,4,5,6或7。基于上述表1,解码器可以基于解析获得的attr_raht_order_index来确定出对应的处理顺序,然后可以根据处理顺序,执行基于莫顿码的点排序过程。
示例性的,在一种实施例中,在属性参数集中,可以先传递标志以指示是否使用默认变换顺序,即是否使用预设顺序,如果不使用,则传递坐标轴顺序索引序号attr_raht_order_index以指示除了预设顺序之外的变换顺序。
也就是说,在本申请中,解码器在解析属性参数集的码流之后,可以获得顺序指示参数;其中,顺序指示参数用于对是否使用预设顺序进行指示。其中,属性参数集语法如表5所示:
表5
可以理解的是,在本申请中,可以通过语法attr_raht_order_default_flag来表征顺序指示参数。具体地,如果attr_raht_order_default_flag的取值等于1,则指示使用预设顺序;如果attr_raht_order_default_flag的取值等于0,则指示不使用预设顺序。
进一步地,在本申请的实施例中,如果attr_raht_order_default_flag的取值等于0,即不使用预设顺序,那么解码器可以通过解析获得的坐标轴顺序索引序号attr_raht_order_index进一步确定使用的处理顺序。
可以理解的是,在本申请中,如果预设顺序为X-Y-Z顺序,那么解码器解析获得的坐标轴顺序索引序号attr_raht_order_index的取值可以用于对X-Y-Z顺序以外的其他5种变换顺序进行指示,也就是说,在本申请中,在确定顺序指示参数attr_raht_order_default_flag的基础上,坐标轴顺序索引序号attr_raht_order_index用于对预设顺序以外的其他变换顺序进行指示。
表6
坐标轴顺序索引序号 | 处理顺序 |
0 | Z-Y-X |
1 | X-Z-Y |
2 | Y-Z-X |
3 | Z-X-Y |
4 | Y-X-Z |
进一步地,在本申请中,坐标轴顺序索引序号attr_raht_order_index指示用于节点的RAHT顺序(除了默认预设顺序之外),即指示处理顺序。在比特流中,attr_raht_order_index的值应该可以等于0,1,2,3或4。表6为预设索引序号与处理顺序的对应关系表三,其中,预设顺序为X-Y-Z,如表6所示,基于坐标轴顺序索引序号的取值,解码器查询预设索引序号与处理顺序的对应关系表可以确定对应的处理顺序。
进一步地,在本申请中,解码器在解析属性参数集的码流获得顺序指示参数attr_raht_order_default_flag之后,如果attr_raht_order_default_flag的取值等于1,则指示使用预设顺序,那么解码器可以根据预设顺序,执行基于莫顿码的点排序过程。
进一步地,在本申请中,解码器在解析属性参数集的码流获得顺序指示参数attr_raht_order_default_flag之后,如果attr_raht_order_default_flag的取值等于0,则指示不使用预设顺序,那么解码器可以继续解析码流获得坐标轴顺序索引序号attr_raht_order_index,确定处理顺序,从而可以根据预设顺序,执行基于莫顿码的点排序过程。
示例性的,在一种实施例中,处理顺序传递到属性参数集中,除了语法元素attr_raht_order_index的描述符是ue(V)(即,指数哥伦布(Exp-Golomb)码)之外。从编码的角度看,描述符对应于语法元素的熵编码方法,而从解码的角度看,描述符对应于语法元素的解析过程。
可以理解的是,在本申请中,RAHT变换的处理顺序传递到属性参数集中,将应用于对与该属性参数集相关的一个或多个切片进行编码或解码。
示例性的,在一种实施例中,具有或不具有预设顺序的处理顺序传递到属性切片标头中。属性切片标头语法如表7所示:
表7
可以理解的是,在本申请中,传递到属性切片标头中的处理顺序仅用于对该切片进行编码或解码。
示例性的,在一种实施例中,具有/不具有预设顺序的处理顺序传递到属性参数集和与该属性参数集相关的属性切 片标头中。传递到属性切片标头中的处理顺序可推翻通过对属性参数集进行解析而确定的处理顺序。
具体地,在本申请中,将处理顺序传递到属性参数集中,其中,属性参数集语法如表8所示:
表8
进一步地,在本申请的实施例中,属性切片标头语法如表9所示:
表9
可以理解的是,在本申请中,解码器在解析码流之后,可以获得语法元素ash_attr_raht_order_override_flag;其中,语法元素ash_attr_raht_order_override_flag用于对是否使用传递到属性参数集中的处理顺序进行指示。
进一步地,在本申请的实施例中,如果ash_attr_raht_order_override_flag的取值等于0,即使用传递到与该切片相关的属性参数集中的处理顺序。
进一步地,在本申请的实施例中,如果ash_attr_raht_order_override_flag的取值等于1,即指示使用由ash_attr_raht_index指示的处理顺序,那么解码器可以通过解析获得ash_attr_raht_index进一步确定使用的处理顺序。具体地,解码器可以通过上述表1进一步获得ash_attr_raht_index指示的处理顺序。
可以理解的是,在本申请的实施例中,如果ash_attr_raht_order_override_flag的取值等于1,即指示使用由ash_attr_raht_index指示的处理顺序,那么解码器可以在去除已传递到与该切片相关的属性参数集(即活性属性参数集)中的处理顺序而动态地确定。例如,如果传递到活性属性参数集中的处理顺序是Z-Y-X,那么编码器或解码器可以以Z-Y-X顺序以外的其他顺序构建预设索引序号与处理顺序的对应关系表。其中,在比特流中,attr_raht_order_index的值应该可以等于0,1,2,3或4。表10为预设索引序号与处理顺序的对应关系表四,其中,如果传递到活性属性参数集中的处理顺序是Z-Y-X,如表10所示,基于坐标轴顺序索引序号ash_attr_raht_index的取值,解码器查询预设索引序号与处理顺序的对应关系表可以确定对应的处理顺序。
表10
坐标轴顺序索引序号 | 处理顺序 |
0 | X-Y-Z |
1 | X-Z-Y |
2 | Y-Z-X |
3 | Z-X-Y |
4 | Y-X-Z |
可以理解的是,在本申请中,如果ash_attr_raht_order_index是编码或解析的ue(v)时,能够节省比特流中用于表示ash_attr_raht_order_index的比特。
进一步地,在本申请中,当在属性参数集中attr_coding_type等于1时,附加标志例如attr_raht_order_override_allowed_flag被传递(从编码或编码器的角度看)或被解析(从解码或解码器的角度看),以指示是否允许与属性参数集相关的属性切片标头中详细说明的RAHT变换的处理顺序推翻属性参数集中详细说明的RAHT变换的处理顺序。对于attr_raht_order_override_allowed_flag,属性切片标头语法如表11所示:
表11
进一步地,在本申请中,解码器在解析码流获得处理顺序之后,便可以根据预设顺序,执行基于莫顿码的点排序过程。
本申请实施例公开了一种点云编解码方法、编码器、解码器及计算机存储介质,编码器确定点云编码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;确定处理顺序对应的坐标轴顺序索引序号;对坐标轴顺序索引序号进行编码,将编码比特写入码流;根据处理顺序,对点云数据进行处理,得到待编码点云数据;对待编码点云数据进行编码,将编码比特写入码流。解码器解析码流,获得坐标轴顺序索引序号;根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;解析码流,获得点云数据的恢复数据;根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置。也就是说,在本申请的实施例中,在编码侧,编码器可以先确定点云数据对应的变换处理的处理顺序,在根据处理顺序进行RAHT变换的同时将处理顺序写入码流中,传输至解码器,在解码侧,解码器通过解析码流获得的点云数据对应的变换处理的处理顺序,从而可以根据处 理顺序进行RAHT变换。可见,本申请提出的点云编解码方法,对于点云的全部数据或部分数据不再使用固定的RAHT变换的顺序,而是利用码流中的语法元素对处理顺序进行说明,从而可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
基于上述实施例,在本申请的再一实施例中,图14为编码器的组成结构示意图一,如图14所示,本申请实施例提出的编码器300可以包括:第一确定部分301,编码部分302以及变换部分303,
所述第一确定部分301,配置为确定点云编码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;以及确定所述处理顺序对应的坐标轴顺序索引序号;
所述编码部分302,配置为对所述坐标轴顺序索引序号进行编码,将编码比特写入码流;
所述变换部分303,配置为根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据;
所述编码部分302,还配置为对所述待编码点云数据进行编码,将编码比特写入码流。
进一步地,在本申请的实施例中,所述第一确定部分301,具体配置为根据所述点云数据中节点的莫顿码,确定所述处理顺序。
进一步地,在本申请的实施例中,所述处理顺序为Z-Y-X顺序,X-Y-Z顺序,X-Z-Y顺序,Y-Z-X顺序,Z-X-Y顺序,Y-X-Z顺序中的任一种顺序;其中,X、Y、Z是所述点云数据的三维坐标的坐标轴。
进一步地,在本申请的实施例中,所述第一确定部分301,还具体配置为根据预设索引序号与处理顺序的对应关系表,设置所述处理顺序对应的所述坐标轴顺序索引序号的取值。
进一步地,在本申请的实施例中,所述预设索引序号与处理顺序的对应关系表包括:
坐标轴顺序索引序号 | 处理顺序 |
0 | Z-Y-X顺序 |
1 | X-Y-Z顺序 |
2 | X-Z-Y顺序 |
3 | Y-Z-X顺序 |
4 | Z-Y-X顺序 |
5 | Z-X-Y顺序 |
6 | Y-X-Z顺序 |
7 | X-Y-Z顺序 |
进一步地,在本申请的实施例中,所述编码部分302,具体配置为使用等长编码的方法对所述坐标轴顺序索引序号进行编码。
进一步地,在本申请的实施例中,所述编码部分302,还具体配置为将所述编码比特写入参数集的数据单元对应的码流;其中,所述参数集的数据单元中包含对所述点云数据进行解码所使用的参数。
进一步地,在本申请的实施例中,所述参数集为序列层的参数集。
进一步地,在本申请的实施例中,所述参数集为序列参数集。
进一步地,在本申请的实施例中,所述参数集的数据单元中包含了所述点云数据的属性信息;其中,所述属性信息是所述点云数据中点相关联的标量或矢量属性。
进一步地,在本申请的实施例中,所述参数集的数据单元中包含了所述点云数据的几何信息;其中,所述几何信息是所述点云数据中点相关联的笛卡尔坐标。
进一步地,在本申请的实施例中,所述变换部分303,具体配置为根据所述处理顺序,对所述点云数据进行坐标映射处理。
进一步地,在本申请的实施例中,所述变换部分303,还具体配置为按照所述处理顺序,对所述点云数据的坐标进行重排列。
进一步地,在本申请的实施例中,所述变换部分303,还具体配置为根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行处理。
进一步地,在本申请的实施例中,所述变换部分303,还具体配置为根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行RAHT处理。
进一步地,在本申请的实施例中,所述变换部分303,还具体配置为确定所述点云数据中节点的莫顿码,按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换。
进一步地,在本申请的实施例中,所述变换部分303,还具体配置为若所述处理顺序与预设顺序相同,则按照所述预设顺序和所述莫顿码对所述点云数据进行RAHT变换;若所述处理顺序与所述预设顺序不同,则按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换。
进一步地,在本申请的实施例中,所述第一确定部分301,还配置为所述确定点云编码过程中对点云数据的处理顺序之后,所述确定所述处理顺序对应的坐标轴顺序索引序号之前,根据所述处理顺序确定顺序指示参数;其中,所述顺序指示参数用于对是否使用所述预设顺序进行指示;
所述编码部分302,还配置为对所述顺序指示参数进行编码,将编码比特写入码流。
进一步地,在本申请的实施例中,所述第一确定部分301,还具体配置为若所述处理顺序与所述预设顺序不同,则将所述顺序指示参数的取值设置为指示不使用所述预设顺序;若所述处理顺序与所述预设顺序相同,则将所述顺序指示参数的取值设置为指示使用所述预设顺序。
进一步地,在本申请的实施例中,所述编码部分302,还具体配置为将所述编码比特写入所述码流的辅助信息所在的数据单元。
进一步地,在本申请的实施例中,所述辅助信息为视频可用性信息VUI。
进一步地,在本申请的实施例中,所述辅助信息为补充增强信息SEI。
进一步地,在本申请的实施例中,所述编码部分302,还具体配置为将编码比特写入包含所述点云数据对应的点云编码数据的传输流。
进一步地,在本申请的实施例中,所述编码部分302,还具体配置为将编码比特写入包含所述点云数据对应的点云编码数据的媒体文件。
图15为编码器的组成结构示意图二,如图15所示,本申请实施例提出的编码器300还可以包括第一处理器304、存储有第一处理器304可执行指令的第一存储器305、第一通信接口306,和用于连接第一处理器304、第一存储器305以及第一通信接口306的第一总线307。
进一步地,在本申请的实施例中,上述第一处理器304,用于确定点云编码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;确定所述处理顺序对应的坐标轴顺序索引序号;对所述坐标轴顺序索引序号进行编码,将编码比特写入码流;根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据;对所述待编码点云数据进行编码,将编码比特写入码流。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供了一种编码器,该编码器确定点云编码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;确定处理顺序对应的坐标轴顺序索引序号;对坐标轴顺序索引序号进行编码,将编码比特写入码流;根据处理顺序,对点云数据进行处理,得到待编码点云数据;对待编码点云数据进行编码,将编码比特写入码流。也就是说,在本申请的实施例中,在编码侧,编码器可以先确定点云数据对应的变换处理的处理顺序,在根据处理顺序进行RAHT变换的同时将处理顺序写入码流中,传输至解码器,在解码侧,解码器通过解析码流获得的点云数据对应的变换处理的处理顺序,从而可以根据处理顺序进行RAHT变换。可见,本申请提出的点云编解码方法,对于点云的全部数据或部分数据不再使用固定的RAHT变换的顺序,而是利用码流中的语法元素对处理顺序进行说明,从而可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
图16为解码器的组成结构示意图一,如图16所示,本申请实施例提出的解码器400可以包括:解析部分401,第二确定部分402,
所述解析部分401,配置为解析码流,获得坐标轴顺序索引序号;
所述第二确定部分402,配置为根据所述坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;
所述解析部分401,还配置为解析码流,获得所述点云数据的恢复数据;
所述第二确定部分402,还配置为根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置。
进一步地,在本申请的实施例中,所述解析部分401,具体配置为使用解析等长码的方法对所述坐标轴顺序索引序号进行解析。
进一步地,在本申请的实施例中,所述解析部分401,还具体配置为解析所述码流中参数集的数据单元对应的码流;其中,所述参数集的所述数据单元中包含对所述点云数据进行解码所使用的参数。
进一步地,在本申请的实施例中,所述参数集为序列层的参数集。
进一步地,在本申请的实施例中,所述参数集为序列参数集。
进一步地,在本申请的实施例中,所述参数集的数据单元中包含了所述点云数据的属性信息;其中,所述属性信息是所述点云数据中点相关联的标量或矢量属性。
进一步地,在本申请的实施例中,所述参数集的数据单元中包含了所述点云数据的几何信息;其中,所述几何信息是所述点云数据中点相关联的笛卡尔坐标。
进一步地,在本申请的实施例中,所述处理顺序为Z-Y-X顺序,X-Y-Z顺序,X-Z-Y顺序,Y-Z-X顺序,Z-X-Y顺序,Y-X-Z顺序中的任一种顺序;其中,X、Y、Z是所述点云数据的三维坐标的坐标轴。
进一步地,在本申请的实施例中,所述第二确定部分402,具体配置为根据预设索引序号与处理顺序的对应关系表,确定所述坐标轴顺序索引序号对应的所述处理顺序。
进一步地,在本申请的实施例中,所述预设索引序号与处理顺序的对应关系表包括:
坐标轴顺序索引序号 | 处理顺序 |
0 | Z-Y-X顺序 |
1 | X-Y-Z顺序 |
2 | X-Z-Y顺序 |
3 | Y-Z-X顺序 |
4 | Z-Y-X顺序 |
5 | Z-X-Y顺序 |
6 | Y-X-Z顺序 |
7 | X-Y-Z顺序 |
进一步地,在本申请的实施例中,所述第二确定部分402,还具体配置为在所述恢复数据存储单元中,对于所述点 云数据中的点,按照所述处理顺序所指示的坐标轴顺序获得所述点的坐标数据。
进一步地,在本申请的实施例中,所述第二确定部分402,还具体配置为根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行RAHT处理。
进一步地,在本申请的实施例中,所述第二确定部分402,还具体配置为解析码流,确定所述点云数据中节点的莫顿码;按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换。
进一步地,在本申请的实施例中,所述第二确定部分402,还具体配置为若所述处理顺序与预设顺序相同,则按照所述预设顺序和所述莫顿码对所述点云数据进行RAHT变换;若所述处理顺序与所述预设顺序不同,则按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换。
进一步地,在本申请的实施例中,所述解析部分401,还配置为所述解析码流,获得坐标轴顺序索引序号之前,解析码流,确定顺序指示参数;其中,所述顺序指示参数用于对是否使用所述预设顺序进行指示;
所述第二确定部分402,还配置为若所述顺序指示参数的取值指示不使用所述预设顺序,则确定所述处理顺序与所述预设顺序不同;若所述顺序指示参数的取值指示使用所述预设顺序,则确定所述处理顺序与所述预设顺序相同。
进一步地,在本申请的实施例中,所述解析部分401,还具体配置为解析所述码流的辅助信息所在的数据单元,获得所述坐标轴顺序索引序号。
进一步地,在本申请的实施例中,所述辅助信息为视频可用性信息VUI。
进一步地,在本申请的实施例中,所述辅助信息为补充增强信息SEI。
进一步地,在本申请的实施例中,所述解析部分401,还具体配置为解析包含所述点云编码数据的传输流,获得所述坐标轴顺序索引序号。
进一步地,在本申请的实施例中,所述解析部分401,还具体配置为解析包含所述点云编码数据的媒体文件,获得所述坐标轴顺序索引序号。
图17为解码器的组成结构示意图二,如图17所示,本申请实施例提出的解码器400还可以包括第二处理器403、存储有第二处理器403可执行指令的第二存储器404、第二通信接口405,和用于连接第二处理器403、第二存储器404以及第二通信接口405的第二总线406。
进一步地,在本申请的实施例中,上述第二处理器403,用于解析码流,获得坐标轴顺序索引序号;根据所述坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;解析码流,获得所述点云数据的恢复数据;根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供了一种解码器,该解码器解析码流,获得坐标轴顺序索引序号;根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;解析码流,获得点云数据的恢复数据;根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置。也就是说,在本申请的实施例中,在编码侧,编码器可以先确定点云数据对应的变换处理的处理顺序,在根据处理顺序进行RAHT变换的同时将处理顺序写入码流中,传输至解码器,在解码侧,解码器通过解析码流获得的点云数据对应的变换处理的处理顺序,从而可以根据处理顺序进行RAHT变换。可见,本申请提出的点云编解码方法,对于点云的全部数据或部分数据不再使用固定的RAHT变换的顺序,而是利用码流中的语法元素对处理顺序进行说明,从而可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
本申请实施例提供计算机可读存储介质和计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述实施例所述的方法。
具体来讲,本实施例中的一种编码方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种编码方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:
确定点云编码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;
确定所述处理顺序对应的坐标轴顺序索引序号;
对所述坐标轴顺序索引序号进行编码,将编码比特写入码流;
根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据;
对所述待编码点云数据进行编码,将编码比特写入码流。
具体来讲,本实施例中的一种解码方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种解码方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:
解析码流,获得坐标轴顺序索引序号;
根据所述坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;
解析码流,获得所述点云数据的恢复数据;
根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可 用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
本申请实施例公开了一种点云编解码方法、编码器、解码器及计算机存储介质,编码器确定点云编码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;确定处理顺序对应的坐标轴顺序索引序号;对坐标轴顺序索引序号进行编码,将编码比特写入码流;根据处理顺序,对点云数据进行处理,得到待编码点云数据;对待编码点云数据进行编码,将编码比特写入码流。解码器解析码流,获得坐标轴顺序索引序号;根据坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,处理顺序指示点云数据的三维坐标的坐标轴处理顺序,点云数据是点云中的全部数据或部分数据;解析码流,获得点云数据的恢复数据;根据处理顺序,确定点云数据的坐标数据在恢复数据的存储单元中的位置。也就是说,在本申请的实施例中,在编码侧,编码器可以先确定点云数据对应的变换处理的处理顺序,在根据处理顺序进行RAHT变换的同时将处理顺序写入码流中,传输至解码器,在解码侧,解码器通过解析码流获得的点云数据对应的变换处理的处理顺序,从而可以根据处理顺序进行RAHT变换。可见,本申请提出的点云编解码方法,对于点云的全部数据或部分数据不再使用固定的RAHT变换的顺序,而是利用码流中的语法元素对处理顺序进行说明,从而可以自适应的改变编解码过程中的坐标处理顺序,进而可以充分展示RAHT的变换效率,解决了变换效率低的问题,大大提高了编解码效率。
Claims (49)
- 一种点云编码方法,应用于编码器,所述方法包括:确定点云编码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;确定所述处理顺序对应的坐标轴顺序索引序号;对所述坐标轴顺序索引序号进行编码,将编码比特写入码流;根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据;对所述待编码点云数据进行编码,将编码比特写入码流。
- 根据权利要求1所述的方法,其中,所述确定点云编码过程中对点云数据的处理顺序,包括:根据所述点云数据中节点的莫顿码,确定所述处理顺序。
- 根据权利要求1所述的方法,其中,所述处理顺序为Z-Y-X顺序,X-Y-Z顺序,X-Z-Y顺序,Y-Z-X顺序,Z-X-Y顺序,Y-X-Z顺序中的任一种顺序;其中,X、Y、Z是所述点云数据的三维坐标的坐标轴。
- 根据权利要求3所述的方法,其中,所述确定所述处理顺序对应的坐标轴顺序索引序号,包括:根据预设索引序号与处理顺序的对应关系表,设置所述处理顺序对应的所述坐标轴顺序索引序号的取值。
- 根据权利要求4所述的方法,其中,所述预设索引序号与处理顺序的对应关系表包括:
坐标轴顺序索引序号 处理顺序 0 Z-Y-X顺序 1 X-Y-Z顺序 2 X-Z-Y顺序 3 Y-Z-X顺序 4 Z-Y-X顺序 5 Z-X-Y顺序 6 Y-X-Z顺序 7 X-Y-Z顺序 - 根据权利要求1所述的方法,其中,所述对所述坐标轴顺序索引序号进行编码,将编码比特写入码流,包括:使用等长编码的方法对所述坐标轴顺序索引序号进行编码。
- 根据权利要求1所述的方法,其中,所述对所述坐标轴顺序索引序号进行编码,将编码比特写入码流,包括:将所述编码比特写入参数集的数据单元对应的码流;其中,所述参数集的数据单元中包含对所述点云数据进行解码所使用的参数。
- 根据权利要求7所述的方法,其中,所述参数集为序列层的参数集。
- 根据权利要求8所述的方法,其中,所述参数集为序列参数集。
- 根据权利要求8所述的方法,其中,所述参数集的数据单元中包含了所述点云数据的属性信息;其中,所述属性信息是所述点云数据中点相关联的标量或矢量属性。
- 根据权利要求8所述的方法,其中,所述参数集的数据单元中包含了所述点云数据的几何信息;其中,所述几何信息是所述点云数据中点相关联的笛卡尔坐标。
- 根据权利要求1所述的方法,其中,所述根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据,包括:根据所述处理顺序,对所述点云数据进行坐标映射处理。
- 根据权利要求12所述的方法,其中,所述根据所述处理顺序,对所述点云数据进行坐标映射处理,包括:按照所述处理顺序,对所述点云数据的坐标进行重排列。
- 根据权利要求1所述的方法,其中,所述根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据,包括:根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行处理。
- 根据权利要求14所述的方法,其中,所述根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行处理,包括:根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行区域自适应分级变换RAHT处理。
- 根据权利要求15所述的方法,其中,所述根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行RAHT处理,包括:确定所述点云数据中节点的莫顿码,按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换。
- 根据权利要求16所述的方法,其中,所述按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换,包括:若所述处理顺序与预设顺序相同,则按照所述预设顺序和所述莫顿码对所述点云数据进行RAHT变换;若所述处理顺序与所述预设顺序不同,则按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换。
- 根据权利要求17所述的方法,其中,所述确定点云编码过程中对点云数据的处理顺序之后,所述确定所述处理顺序对应的坐标轴顺序索引序号之前,所述方法还包括:根据所述处理顺序确定顺序指示参数;其中,所述顺序指示参数用于对是否使用所述预设顺序进行指示;对所述顺序指示参数进行编码,将编码比特写入码流。
- 根据权利要求18所述的方法,其中,所述根据所述处理顺序确定顺序指示参数,包括:若所述处理顺序与所述预设顺序不同,则将所述顺序指示参数的取值设置为指示不使用所述预设顺序;若所述处理顺序与所述预设顺序相同,则将所述顺序指示参数的取值设置为指示使用所述预设顺序。
- 根据权利要求1所述方法,其中,所述对所述坐标轴顺序索引序号进行编码,将编码比特写入码流,包括:将所述编码比特写入所述码流的辅助信息所在的数据单元。
- 根据权利要求20所述方法,其中,所述辅助信息为视频可用性信息VUI。
- 根据权利要求20所述方法,其中,所述辅助信息为补充增强信息SEI。
- 根据权利要求1所述方法,其中,所述对所述坐标轴顺序索引序号进行编码,将编码比特写入码流,包括:将编码比特写入包含所述点云数据对应的点云编码数据的传输流。
- 根据权利要求1所述方法,其中,所述对所述坐标轴顺序索引序号进行编码,将编码比特写入码流,包括:将编码比特写入包含所述点云数据对应的点云编码数据的媒体文件。
- 一种点云解码方法,应用于解码器,所述方法包括:解析码流,获得坐标轴顺序索引序号;根据所述坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;解析码流,获得所述点云数据的恢复数据;根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置。
- 根据权利要求25所述方法,其中,所述解析码流,获得坐标轴顺序索引序号,包括:使用解析等长码的方法对所述坐标轴顺序索引序号进行解析。
- 根据权利要求25所述方法,其中,所述解析码流,获得坐标轴顺序索引序号,包括:解析所述码流中参数集的数据单元对应的码流;其中,所述参数集的所述数据单元中包含对所述点云数据进行解码所使用的参数。
- 根据权利要求27所述方法,其中,所述参数集为序列层的参数集。
- 根据权利要求28所述的方法,其中,所述参数集为序列参数集。
- 根据权利要求27所述方法,其中,所述参数集的数据单元中包含了所述点云数据的属性信息;其中,所述属性信息是所述点云数据中点相关联的标量或矢量属性。
- 根据权利要求27所述的方法,其中,所述参数集的数据单元中包含了所述点云数据的几何信息;其中,所述几何信息是所述点云数据中点相关联的笛卡尔坐标。
- 根据权利要求25所述方法,其中,所述处理顺序为Z-Y-X顺序,X-Y-Z顺序,X-Z-Y顺序,Y-Z-X顺序,Z-X-Y顺序,Y-X-Z顺序中的任一种顺序;其中,X、Y、Z是所述点云数据的三维坐标的坐标轴。
- 根据权利要求32所述方法,其中,所述根据所述坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序,包括:根据预设索引序号与处理顺序的对应关系表,确定所述坐标轴顺序索引序号对应的所述处理顺序。
- 根据权利要求33所述的方法,其中,所述预设索引序号与处理顺序的对应关系表包括:
坐标轴顺序索引序号 处理顺序 0 Z-Y-X顺序 1 X-Y-Z顺序 2 X-Z-Y顺序 3 Y-Z-X顺序 4 Z-Y-X顺序 5 Z-X-Y顺序 6 Y-X-Z顺序 7 X-Y-Z顺序 - 根据权利要求25所述的方法,其中,所述根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置,包括:在所述恢复数据存储单元中,对于所述点云数据中的点,按照所述处理顺序所指示的坐标轴顺序获得所述点的坐标数据。
- 根据权利要求25所述的方法,其中,所述根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置,包括:根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行RAHT处理。
- 根据权利要求36所述的方法,其中,所述根据所述处理顺序,依次在对应坐标轴方向上对所述点云数据进行RAHT处理,包括:解析码流,确定所述点云数据中节点的莫顿码;按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换。
- 根据权利要求37所述的方法,其中,所述按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换,包括:若所述处理顺序与预设顺序相同,则按照所述预设顺序和所述莫顿码对所述点云数据进行RAHT变换;若所述处理顺序与所述预设顺序不同,则按照所述处理顺序和所述莫顿码对所述点云数据进行RAHT变换。
- 根据权利要求38所述的方法,其中,所述解析码流,获得坐标轴顺序索引序号之前,所述方法还包括:解析码流,确定顺序指示参数;其中,所述顺序指示参数用于对是否使用所述预设顺序进行指示;若所述顺序指示参数的取值指示不使用所述预设顺序,则确定所述处理顺序与所述预设顺序不同;若所述顺序指示参数的取值指示使用所述预设顺序,则确定所述处理顺序与所述预设顺序相同。
- 根据权利要求25所述的方法,其中,所述解析码流,获得坐标轴顺序索引序号,包括:解析所述码流的辅助信息所在的数据单元,获得所述坐标轴顺序索引序号。
- 根据权利要求40所述方法,其中,所述辅助信息为视频可用性信息VUI。
- 根据权利要求40所述方法,其中,所述辅助信息为补充增强信息SEI。
- 根据权利要求25所述方法,其中,所述解析码流,获得坐标轴顺序索引序号,包括:解析包含所述点云编码数据的传输流,获得所述坐标轴顺序索引序号。
- 根据权利要求25所述方法,其中,所述解析码流,获得坐标轴顺序索引序号,包括:解析包含所述点云编码数据的媒体文件,获得所述坐标轴顺序索引序号。
- 一种编码器,所述编码器包括:第一确定部分,编码部分以及变换部分,所述第一确定部分,配置为确定点云编码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;以及确定所述处理顺序对应的坐标轴顺序索引序号;所述编码部分,配置为对所述坐标轴顺序索引序号进行编码,将编码比特写入码流;所述变换部分,配置为根据所述处理顺序,对所述点云数据进行处理,得到待编码点云数据;所述编码部分,还配置为对所述待编码点云数据进行编码,将编码比特写入码流。
- 一种编码器,所述编码器包括第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述指令被执行时,所述第一处理器执行时实现如权利要求1-24任一项所述的方法。
- 一种解码器,所述解码器包括:解析部分,第二确定部分,所述解析部分,配置为解析码流,获得坐标轴顺序索引序号;所述第二确定部分,配置为根据所述坐标轴顺序索引序号,确定点云解码过程中对点云数据的处理顺序;其中,所述处理顺序指示所述点云数据的三维坐标的坐标轴处理顺序,所述点云数据是所述点云中的全部数据或部分数据;所述解析部分,还配置为解析码流,获得所述点云数据的恢复数据;所述第二确定部分,还配置为根据所述处理顺序,确定所述点云数据的坐标数据在所述恢复数据的存储单元中的位置。
- 一种解码器,所述解码器包括第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述指令被执行时,所述第二处理器执行时实现如权利要求25-44任一项所述的方法。
- 一种计算机存储介质,其中,所述计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如权利要求1-24任一项所述的方法、或者被第二处理器执行时实现如权利要求25-44任一项所述的方法。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021578172A JP7490685B2 (ja) | 2019-07-03 | 2020-05-15 | 点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体 |
EP20834209.7A EP3979638A4 (en) | 2019-07-03 | 2020-05-15 | POINT CLOUD ENCODING AND DECODER METHOD, ENCODER, DECODER AND COMPUTER STORAGE MEDIA |
CN202080035529.0A CN113826385A (zh) | 2019-07-03 | 2020-05-15 | 点云编解码方法、编码器、解码器及计算机存储介质 |
KR1020217043227A KR20220029595A (ko) | 2019-07-03 | 2020-05-15 | 포인트 클라우드 인코딩과 디코딩 방법, 인코더, 디코더 및 컴퓨터 저장 매체 |
CN202210037486.0A CN114339215A (zh) | 2019-07-03 | 2020-05-15 | 点云编解码方法、编码器、解码器及计算机存储介质 |
US17/646,290 US11509939B2 (en) | 2019-07-03 | 2021-12-28 | Point cloud encoding and decoding method, encoder, and decoder |
US17/964,242 US11902588B2 (en) | 2019-07-03 | 2022-10-12 | Point cloud encoding and decoding method, encoder, and decoder |
US17/964,458 US11902589B2 (en) | 2019-07-03 | 2022-10-12 | Point cloud encoding and decoding method, encoder, and decoder |
US18/430,805 US20240171779A1 (en) | 2019-07-03 | 2024-02-02 | Point cloud encoding and decoding method, encoder, and decoder |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962870553P | 2019-07-03 | 2019-07-03 | |
US62/870,553 | 2019-07-03 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/646,290 Continuation US11509939B2 (en) | 2019-07-03 | 2021-12-28 | Point cloud encoding and decoding method, encoder, and decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021000658A1 true WO2021000658A1 (zh) | 2021-01-07 |
Family
ID=74100862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/090677 WO2021000658A1 (zh) | 2019-07-03 | 2020-05-15 | 点云编解码方法、编码器、解码器及计算机存储介质 |
Country Status (6)
Country | Link |
---|---|
US (4) | US11509939B2 (zh) |
EP (1) | EP3979638A4 (zh) |
JP (1) | JP7490685B2 (zh) |
KR (1) | KR20220029595A (zh) |
CN (2) | CN113826385A (zh) |
WO (1) | WO2021000658A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113096198A (zh) * | 2021-03-01 | 2021-07-09 | 中山大学 | 一种双向点云属性预测压缩方法,装置,设备及介质 |
WO2022225145A1 (ko) * | 2021-04-21 | 2022-10-27 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
WO2022257145A1 (zh) * | 2021-06-11 | 2022-12-15 | Oppo广东移动通信有限公司 | 点云属性的预测方法、装置及编解码器 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021029511A1 (ko) * | 2019-08-09 | 2021-02-18 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
WO2021062732A1 (zh) * | 2019-09-30 | 2021-04-08 | Oppo广东移动通信有限公司 | 变换方法、逆变换方法、编码器、解码器及存储介质 |
US20230290006A1 (en) * | 2020-09-03 | 2023-09-14 | Lg Electronics Inc. | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
KR20230008598A (ko) | 2021-07-07 | 2023-01-16 | 한국전자통신연구원 | 포인트 클라우드 데이터 압축 방법 및 장치 |
KR20230153312A (ko) * | 2022-04-28 | 2023-11-06 | 인텔렉추얼디스커버리 주식회사 | 포인트 클라우드 압축 방법 및 장치 |
CN117857516A (zh) * | 2022-06-17 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 一种点云编码方法、点云解码方法及相关设备 |
WO2024011370A1 (zh) * | 2022-07-11 | 2024-01-18 | Oppo广东移动通信有限公司 | 视频图像处理方法及装置、编解码器、码流、存储介质 |
CN115379190B (zh) * | 2022-08-19 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 一种点云处理方法、装置及计算机设备、存储介质 |
CN117834833A (zh) * | 2022-08-19 | 2024-04-05 | 腾讯科技(深圳)有限公司 | 一种点云媒体的数据处理方法及相关设备 |
EP4345752A1 (en) * | 2022-09-28 | 2024-04-03 | Beijing Xiaomi Mobile Software Co., Ltd. | Encoding/decoding positions of points of a point cloud comprised in cuboid volumes |
WO2024085680A1 (ko) * | 2022-10-19 | 2024-04-25 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833927A (zh) * | 2018-05-03 | 2018-11-16 | 北京大学深圳研究生院 | 一种基于删除量化矩阵中0元素的点云属性压缩方法 |
CN109196559A (zh) * | 2016-05-28 | 2019-01-11 | 微软技术许可有限责任公司 | 动态体素化点云的运动补偿压缩 |
EP3429212A1 (en) * | 2017-07-13 | 2019-01-16 | Thomson Licensing | A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object |
CN109716329A (zh) * | 2016-11-17 | 2019-05-03 | 谷歌有限责任公司 | 使用偏差来对点云进行k-d树编码 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10223810B2 (en) * | 2016-05-28 | 2019-03-05 | Microsoft Technology Licensing, Llc | Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression |
CN108335335B (zh) * | 2018-02-11 | 2019-06-21 | 北京大学深圳研究生院 | 一种基于增强图变换的点云属性压缩方法 |
CN112204341B (zh) | 2018-06-01 | 2023-12-05 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
CN110662087B (zh) | 2018-06-30 | 2021-05-11 | 华为技术有限公司 | 点云编解码方法和编解码器 |
CN109257604B (zh) * | 2018-11-20 | 2020-11-27 | 山东大学 | 一种基于tmc3点云编码器的颜色属性编码方法 |
WO2020218593A1 (ja) * | 2019-04-25 | 2020-10-29 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
JP7330306B2 (ja) * | 2019-06-30 | 2023-08-21 | オッポ広東移動通信有限公司 | 変換方法、逆変換方法、エンコーダ、デコーダ及び記憶媒体 |
-
2020
- 2020-05-15 CN CN202080035529.0A patent/CN113826385A/zh active Pending
- 2020-05-15 CN CN202210037486.0A patent/CN114339215A/zh active Pending
- 2020-05-15 JP JP2021578172A patent/JP7490685B2/ja active Active
- 2020-05-15 EP EP20834209.7A patent/EP3979638A4/en active Pending
- 2020-05-15 WO PCT/CN2020/090677 patent/WO2021000658A1/zh unknown
- 2020-05-15 KR KR1020217043227A patent/KR20220029595A/ko active Search and Examination
-
2021
- 2021-12-28 US US17/646,290 patent/US11509939B2/en active Active
-
2022
- 2022-10-12 US US17/964,242 patent/US11902588B2/en active Active
- 2022-10-12 US US17/964,458 patent/US11902589B2/en active Active
-
2024
- 2024-02-02 US US18/430,805 patent/US20240171779A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109196559A (zh) * | 2016-05-28 | 2019-01-11 | 微软技术许可有限责任公司 | 动态体素化点云的运动补偿压缩 |
CN109716329A (zh) * | 2016-11-17 | 2019-05-03 | 谷歌有限责任公司 | 使用偏差来对点云进行k-d树编码 |
EP3429212A1 (en) * | 2017-07-13 | 2019-01-16 | Thomson Licensing | A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object |
CN108833927A (zh) * | 2018-05-03 | 2018-11-16 | 北京大学深圳研究生院 | 一种基于删除量化矩阵中0元素的点云属性压缩方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3979638A4 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113096198A (zh) * | 2021-03-01 | 2021-07-09 | 中山大学 | 一种双向点云属性预测压缩方法,装置,设备及介质 |
WO2022225145A1 (ko) * | 2021-04-21 | 2022-10-27 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
WO2022257145A1 (zh) * | 2021-06-11 | 2022-12-15 | Oppo广东移动通信有限公司 | 点云属性的预测方法、装置及编解码器 |
Also Published As
Publication number | Publication date |
---|---|
CN114339215A (zh) | 2022-04-12 |
KR20220029595A (ko) | 2022-03-08 |
JP2022539411A (ja) | 2022-09-08 |
EP3979638A4 (en) | 2022-09-21 |
US20240171779A1 (en) | 2024-05-23 |
US11509939B2 (en) | 2022-11-22 |
US20230058703A1 (en) | 2023-02-23 |
EP3979638A1 (en) | 2022-04-06 |
CN113826385A (zh) | 2021-12-21 |
US11902588B2 (en) | 2024-02-13 |
US20230047499A1 (en) | 2023-02-16 |
US20220124374A1 (en) | 2022-04-21 |
JP7490685B2 (ja) | 2024-05-27 |
US11902589B2 (en) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021000658A1 (zh) | 点云编解码方法、编码器、解码器及计算机存储介质 | |
CN113615181B (zh) | 用于点云编解码的方法、装置 | |
CN111699696B (zh) | 用于对字节流进行编码和解码的方法和设备 | |
JP7330306B2 (ja) | 変換方法、逆変換方法、エンコーダ、デコーダ及び記憶媒体 | |
WO2020072665A1 (en) | Hierarchical tree attribute coding in point cloud coding | |
US12020461B2 (en) | Method and apparatus for Haar-based point cloud coding | |
WO2020123469A1 (en) | Hierarchical tree attribute coding by median points in point cloud coding | |
WO2021184380A1 (zh) | 点云编码方法和解码方法、编码器、解码器、及存储介质 | |
US20220207781A1 (en) | Transform method, inverse transform method, encoder, decoder and storage medium | |
US20220180567A1 (en) | Method and apparatus for point cloud coding | |
US20220286677A1 (en) | Point cloud processing method, encoder, decoder and storage medium | |
CN115102934A (zh) | 点云数据的解码方法、编码方法、装置、设备及存储介质 | |
JP2024102344A (ja) | 点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体 | |
WO2021139796A1 (zh) | 莫顿码的构建方法、编码器、解码器、及存储介质 | |
WO2024082152A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
WO2023193709A1 (zh) | 编码、解码方法、装置及设备 | |
WO2023168712A1 (zh) | 零游程值编解码方法及视频编解码方法、装置和*** | |
WO2024039703A1 (en) | Dynamic mesh geometry refinement | |
WO2024086099A1 (en) | Dynamic mesh geometry displacements for a single video plane |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20834209 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021578172 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020834209 Country of ref document: EP Effective date: 20211230 |