WO2024082152A1 - 编解码方法及装置、编解码器、码流、设备、存储介质 - Google Patents
编解码方法及装置、编解码器、码流、设备、存储介质 Download PDFInfo
- Publication number
- WO2024082152A1 WO2024082152A1 PCT/CN2022/126027 CN2022126027W WO2024082152A1 WO 2024082152 A1 WO2024082152 A1 WO 2024082152A1 CN 2022126027 W CN2022126027 W CN 2022126027W WO 2024082152 A1 WO2024082152 A1 WO 2024082152A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- attribute
- coefficient
- component
- point cloud
- code stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/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
-
- 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Definitions
- the embodiments of the present application relate to point cloud compression technology, and are related to but not limited to encoding and decoding methods and devices, codecs, bit streams, devices, and storage media.
- Point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene.
- Point cloud data usually includes geometric information and attribute information of the sampling points; the geometric information includes the three-dimensional position information (x, y, z) of the sampling points, and the attribute information includes the color information and/or one-dimensional reflectivity information of the sampling points.
- Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Point clouds are obtained by directly sampling real objects, and can provide a strong sense of reality while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
- point cloud compression has become a key issue in promoting the development of the point cloud industry.
- the coding and decoding method and apparatus, codec, bit stream, device, and storage medium provided in the embodiments of the present application are intended to improve the coding efficiency and decoding efficiency in the point cloud compression system;
- the coding and decoding processing method and apparatus, codec, bit stream, device, and storage medium provided in the embodiments of the present application are implemented as follows:
- a coding method which is applied to an encoder, and the method includes: encoding a first flag bit to a point cloud code stream; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both first values; when the attribute coefficients of the at least two first attribute components are both first values, encoding a second attribute coefficient of the second attribute component of the current point to the point cloud code stream; wherein the second attribute coefficient is equal to the first attribute coefficient of the second attribute component minus 1; the second attribute component is different from the at least two first attribute components.
- a decoding method which is applied to a decoder, and the method includes: decoding a point cloud code stream to obtain a first flag bit; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both first values; when the first flag bit indicates that the attribute coefficients of the at least two first attribute components are both first values, determining that the first attribute coefficient of the second attribute component of the current point is equal to the second attribute coefficient of the second attribute component plus 1; wherein the second attribute coefficient of the second attribute component is parsed from the point cloud code stream; the second attribute component is different from the at least two first attribute components.
- a coding device applied to an encoder, the device comprising: a coding module, configured to encode a first flag bit to a point cloud code stream; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both first numerical values; a second determination module, configured to encode a second attribute coefficient of a second attribute component of the current point to a point cloud code stream when the attribute coefficients of the at least two first attribute components are both first numerical values; wherein the second attribute coefficient is equal to the first attribute coefficient of the second attribute component minus 1; and the second attribute component is different from the at least two first attribute components.
- an encoder comprising a second memory and a second processor; wherein the second memory is used to store a computer program that can be run on the second processor; and the second processor is used to execute the encoding method described in the embodiment of the present application when running the computer program.
- a point cloud code stream is provided, and the point cloud code stream is generated by the encoding method described in the embodiment of the present application.
- a decoding device which is applied to a decoder, and the device includes: a decoding module, configured to decode a point cloud code stream to obtain a first flag bit; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both first values; a first determination module, configured to determine that the first attribute coefficient of the second attribute component of the current point is equal to the second attribute coefficient of the second attribute component plus 1 when the first flag bit indicates that the attribute coefficients of the at least two first attribute components are both first values; wherein the second attribute coefficient of the second attribute component is parsed from the point cloud code stream; and the second attribute component is different from the at least two first attribute components.
- a decoder comprising a first memory and a first processor; wherein the first memory is used to store a computer program that can be run on the first processor; and the first processor is used to execute the decoding method described in the embodiment of the present application when running the computer program.
- an electronic device comprising: a processor, suitable for executing a computer program; a computer-readable storage medium, in which a computer program is stored, and when the computer program is executed by the processor, the decoding method described in the embodiment of the present application is implemented, or when the computer program is executed by the processor, the encoding method described in the embodiment of the present application is implemented.
- a computer-readable storage medium stores a computer program, and when the computer program is executed, it implements the decoding method described in the embodiments of the present application, or implements the encoding method described in the embodiments of the present application.
- the first flag is encoded to the point cloud code stream, and the first flag indicates whether the attribute coefficients of at least two first attribute components (rather than one attribute component) of the current point are all first values; when the attribute coefficients of the at least two first attribute components are all first values, the second attribute coefficient of the second attribute component of the current point is encoded to the point cloud code stream; in this way, compared with directly encoding the attribute coefficients of each attribute component of the current point separately, the attribute coefficients of at least two attribute components are encoded by encoding the first flag, which can reduce the amount of encoded information, thereby improving the encoding efficiency and saving the code stream overhead; accordingly, the decoding efficiency of the decoding end is also improved.
- FIG1 is a partial enlarged view of a certain three-dimensional point cloud image
- FIG2 is a schematic diagram of the structure of the encoder in the MPEG G-PCC attribute codec framework provided in an embodiment of the present application;
- FIG3 is a schematic diagram of the structure of a decoder in the MPEG G-PCC attribute codec framework provided in an embodiment of the present application;
- FIG4 is a schematic diagram of the structure of an AVS encoder provided in an embodiment of the present application.
- FIG5 is a schematic diagram of the structure of an AVS decoder provided in an embodiment of the present application.
- FIG6 is a schematic diagram of an implementation flow of an encoding method provided in an embodiment of the present application.
- FIG7 is a schematic diagram of an implementation flow of another encoding method provided in an embodiment of the present application.
- FIG8 is a schematic diagram of an implementation flow of another encoding method provided in an embodiment of the present application.
- FIG9 is a schematic diagram of an implementation flow of a decoding method provided in an embodiment of the present application.
- FIG10 is a schematic diagram of an implementation flow of another decoding method provided in an embodiment of the present application.
- FIG11 is a schematic diagram of an implementation flow of another decoding method provided in an embodiment of the present application.
- FIG12 is a schematic diagram of an implementation flow of yet another encoding method provided in an embodiment of the present application.
- FIG13 is a schematic diagram of an implementation flow of yet another decoding method provided in an embodiment of the present application.
- FIG14 is a schematic diagram of an implementation flow of another encoding method provided in an embodiment of the present application.
- FIG15 is a schematic diagram of an implementation flow of another decoding method provided in an embodiment of the present application.
- FIG16 is a schematic diagram of the structure of an encoding device provided in an embodiment of the present application.
- FIG17 is a schematic diagram of the structure of a decoding device provided in an embodiment of the present application.
- FIG18 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application.
- FIG19 is a schematic diagram of the structure of the encoder provided in an embodiment of the present application.
- first ⁇ second ⁇ third involved in the embodiments of the present application are intended to distinguish similar or different objects, and do not represent a specific ordering of the objects. It can be understood that “first ⁇ second ⁇ third” can be interchanged in a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
- a point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene.
- Figure 1 shows a partial enlarged view of a three-dimensional point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.
- Two-dimensional images have information expressed at each pixel point, and the distribution is regular, so there is no need to record its position information additionally; however, the distribution of points in a point cloud in three-dimensional space is random and irregular, so it is necessary to record the position of each point in space in order to fully express a point cloud.
- each position in the acquisition process has corresponding attribute information, usually RGB color values, and the color value reflects the color of the object.
- attribute information usually RGB color values
- the color value reflects the color of the object.
- point clouds in addition to color, the more common attribute information corresponding to each point is reflectance, which reflects the surface material of the object. Therefore, point clouds usually include geometric information (x, y, z) composed of three-dimensional position information, as well as attribute information such as three-dimensional color information (r, g, b) and one-dimensional reflectance information (r).
- Point clouds are collected mainly through the following methods: computer generation, 3D laser scanning, and 3D photogrammetry.
- Computers can generate point clouds of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, and can obtain millions of point clouds per second; 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can obtain tens of millions of point clouds per second.
- 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, and can obtain millions of point clouds per second;
- 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can obtain tens of millions of point clouds per second.
- a point cloud video with a frame rate of 30fps frames per second
- the number of points in each point cloud frame is 700,000
- each point has float type coordinate information (x, y, z) and uchar type color information (r, g, b).
- the YUV sampling format is 4:2:0
- the frame rate is 24fps.
- the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
- the reference software attribute coding framework of G-PCC can be divided into Pred branch-based, PredLift branch-based and/or RAHT branch-based.
- FIG2 shows the structure of the encoder in the MPEG G-PCC attribute codec framework.
- the geometric information is transformed so that all point clouds are contained in a bounding box, and then quantized.
- This step of quantization mainly plays a role in scaling. Due to the quantization rounding, the geometric information of a part of the point cloud is the same, so whether to remove duplicate points is determined based on parameters.
- the process of quantization and removal of duplicate points is also called voxelization.
- the Bounding Box is divided into octrees or a prediction tree is constructed.
- arithmetic coding is performed on the points in the divided leaf nodes to generate a binary geometric bit stream; or, arithmetic coding is performed on the intersection points (Vertex) generated by the division (surface fitting is performed based on the intersection points) to generate a binary geometric bit stream.
- attribute coding after the geometric coding is completed and the geometric information is reconstructed, color conversion is required to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the uncoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly performed on color information.
- FIG3 shows the structure of the decoder in the MPEG G-PCC attribute codec framework.
- the geometry bit stream and the attribute bit stream in the binary bit stream are first decoded independently.
- the geometry information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree/reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion;
- the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning/RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometry information and attribute information.
- the attribute bit stream and geometry bit stream shown in FIG2 and FIG3 can be understood as point cloud code streams.
- the geometric coding and decoding of MPEG G-PCC can be divided into octree-based geometric coding and decoding (marked with a dotted box) and prediction tree-based geometric coding and decoding (marked with a dotted box).
- Condition 1 lossless geometry and lossy attributes
- Condition 2 lossy geometry and lossy attributes
- Condition 3 lossless geometry and lossless attributes
- Condition 4 lossless geometry and limited loss of attributes
- the general test sequences include four categories: Cat1A, Cat1B, Cat3-fused and Cat3-frame; among them, Cat2-frame point cloud only contains reflectance attribute information, Cat1A and Cat1B point clouds only contain color attribute information, and Cat3-fused point cloud contains both color and reflectance attribute information.
- Pred branch (for conditions 3 and 4): At the encoding end, the attribute residual coefficient is obtained by using the Pred prediction method, and the attribute residual coefficient is entropy encoded; at the decoding end, the attribute residual coefficient is obtained by entropy decoding, and the original value is restored by using the Pred prediction method.
- Predlift branch (for conditions 1 and 2): At the encoding end, the Predlift method is used to obtain the attribute transformation coefficients, and the attribute transformation coefficients are entropy encoded; at the decoding end, entropy decoding is performed to obtain the attribute transformation coefficients, and the Predlift transformation method is used to restore the original values.
- RAHT branch (for conditions 1 and 2): At the encoding end, the RAHT method is used to obtain the attribute transformation coefficient, and the attribute transformation coefficient is entropy encoded; at the decoding end, the attribute transformation coefficient is obtained by entropy decoding, and the original value is restored using the RAHT method.
- attribute entropy coding and decoding are performed.
- value0 represents the residual coefficient of Y or R
- value1 represents the residual coefficient of U or G
- value2 represents the residual coefficient of V or B.
- PredLift Let the three components of the color attribute be value0, value1 and value2 that have been predicted, transformed and quantized respectively; where value0 represents the transformation coefficient of Y or R, value1 represents the transformation coefficient of U or G, and value2 represents the transformation coefficient of V or B.
- value0, value1 and value2 are the transform coefficients generated after RAHT transform and quantization.
- the encoding method is as follows:
- run length is used for encoding, that is, run length is encoded.
- value0, value1 and value2 are not 0 at the same time, the encoding of value0, value1 and value2 is realized by the following encoding method:
- b0 represents whether the absolute value of value1 is equal to 0
- b1 represents whether the absolute value of value1 is less than or equal to 1
- b2 represents whether the absolute value of value2 is equal to 0
- b3 represents whether the absolute value of value2 is less than or equal to 1.
- the attribute encoder of G-PCC is used to encode the absolute value of value1 using a fixed context; it can also be understood that the attribute encoder of G-PCC encodes the absolute value of value1 using a fixed context;
- the attribute encoder of G-PCC uses b0 and b1 to adaptively select contexts for encoding the absolute value of value2; it can also be understood that the attribute encoder of G-PCC uses b0 and b1 to adaptively select contexts for encoding the absolute value of value2.
- the attribute encoder of G-PCC uses b0, b1, b2 and b3 to adaptively select contexts to encode the absolute value of value0 minus one; it can also be understood that the attribute encoder of G-PCC uses b0, b1, b2 and b3 to adaptively select contexts to encode the absolute value of value0 minus one;
- the attribute encoder of G-PCC uses b0, b1, b2 and b3 to adaptively select the context for encoding the absolute value of value0; it can also be understood that the attribute encoder of G-PCC uses b0, b1, b2 and b3 to adaptively select the context for encoding the absolute value of value0.
- the decoding method is as follows:
- value0, value1, and value2 are decoded as follows:
- the attribute decoder of G-PCC is used to decode the absolute value of value1 using a fixed context; it can also be understood that the attribute decoder of G-PCC decodes the absolute value of value1 using a fixed context;
- the attribute decoder of G-PCC uses b0 and b1 to adaptively select the context for decoding the absolute value of value2; it can also be understood that the attribute decoder of G-PCC uses b0 and b1 to adaptively select the context for decoding the absolute value of value2;
- the attribute decoder of G-PCC uses b0, b1, b2 and b3 to adaptively select the context of the absolute value of value0 for decoding; It can be understood that the attribute decoder of G-PCC uses b0, b1, b2 and b3 to adaptively select the context of value0 for decoding;
- the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
- the reference software attribute encoding framework of AVS PCC can be divided into Pred-based, Predtrans-resource-constrained, Predtrans-resource-unrestricted, and Trans-based.
- Figure 4 shows a schematic diagram of the structure of an AVS encoder
- Figure 5 shows a schematic diagram of the structure of an AVS decoder.
- the geometric information is first transformed into coordinates so that all point clouds are contained in a Bounding Box.
- the parameter configuration is used to determine whether to divide the entire point cloud sequence into multiple slices, and each divided slice is treated as a single independent point cloud for serial processing.
- the preprocessing process includes quantization and removal of duplicate points. Quantization mainly plays a role in scaling. Due to quantization rounding, the geometric information of some points is the same, and whether to remove duplicate points is determined based on the parameters.
- the Bounding Box is divided in the order of breadth-first traversal (octree/quadtree/binary tree), and the placeholder code of each node is encoded.
- the bounding box is divided into sub-cubes in sequence, and the non-empty (containing points in the point cloud) sub-cubes are divided until the leaf nodes obtained by division are 1 ⁇ 1 ⁇ 1 unit cubes. Then, the division is stopped when the leaf nodes are 1 ⁇ 1 ⁇ 1 unit cubes. Then, in the case of lossless geometric coding, the number of points contained in the leaf nodes is encoded, and finally the coding of the geometric octree is completed to generate a binary geometric bit stream (i.e., geometric code stream).
- the geometric code stream and attribute code stream shown in Figure 4 can be understood as a point cloud code stream.
- the decoding end obtains the placeholder code of each node by continuous parsing in the order of breadth-first traversal, and continuously divides the nodes in turn until a 1 ⁇ 1 ⁇ 1 unit cube is obtained, and then the number of points contained in each leaf node is obtained by parsing, and finally the geometric information is restored.
- Attribute coding is mainly performed on color information and/or reflectivity information. First, determine whether to perform color space conversion. If color space conversion is performed, the color information is converted from RGB color space to YUV color space. Then, the reconstructed point cloud is recolored using the original point cloud so that the uncoded attribute information corresponds to the reconstructed geometric information.
- color information coding it is divided into two modules: attribute prediction and attribute transformation.
- the attribute prediction process is as follows: first, the point cloud is reordered, and then differential prediction is performed. There are two reordering methods: Morton reordering and Hilbert reordering.
- the attribute prediction of the sorted point cloud is performed using a differential method, and finally the prediction residual is quantized and entropy encoded to generate a binary attribute bit stream.
- the attribute transformation process is as follows: first, wavelet transform is performed on the point cloud attributes and the transform coefficients are quantized; secondly, the attribute reconstruction value is obtained through inverse quantization and inverse wavelet transform; then the difference between the original attribute and the attribute reconstruction value is calculated to obtain the attribute residual and quantize it; finally, the quantized transform coefficients and attribute residual are entropy encoded to generate a binary attribute bit stream (i.e., attribute code stream).
- the decoding end performs entropy decoding-inverse quantization-attribute prediction compensation/attribute inverse transform-inverse spatial transform on the attribute bit stream, and finally recovers the attribute information.
- Condition 1 limited loss in geometry and loss in attributes
- Condition 2 lossless geometry and lossy attributes
- Condition 3 lossless geometry and limited loss in attributes
- Condition 4 lossless geometry and lossless attributes.
- the general test sequence includes five categories: Cat1A, Cat1B, Cat1C, Cat2-frame and Cat3; among them, Cat1A and Cat2-frame point clouds only contain reflectance attribute information, Cat1B and Cat3 point clouds only contain color attribute information, and Cat1B point cloud contains both color and reflectance attribute information.
- the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order or the Hilbert order, etc.), and the prediction algorithm is first used to obtain the attribute prediction value, and the attribute residual is obtained according to the attribute value and the attribute prediction value. Then, the attribute residual is quantized to generate a quantized residual, and finally the quantized residual is encoded;
- the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order or the Hilbert order, etc.).
- the prediction algorithm is first used to obtain the attribute prediction value, and then the decoding is performed to obtain the quantized residual, and then the quantized residual is dequantized. Finally, the attribute reconstruction value is obtained based on the attribute prediction value and the dequantized residual.
- the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order or the Hilbert order, etc.), and the entire point cloud is first divided into several small groups with a maximum length of N (such as 2), and then these several small groups are combined into several large groups (the number of points in each large group does not exceed M, such as 4096), and then the prediction algorithm is used to obtain the attribute prediction value, and the attribute residual is obtained according to the attribute value and the attribute prediction value.
- the attribute residual is subjected to DCT transformation in units of small groups to generate transformation coefficients, and then the transformation coefficients are quantized to generate quantized transformation coefficients, and finally the quantized transformation coefficients are encoded in units of large groups;
- the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order or the Hilbert order, etc.).
- the entire point cloud is divided into several small groups with a maximum length of N (such as 2), and then these small groups are combined into several large groups (the number of points in each large group does not exceed M, such as 4096).
- the quantized transform coefficients are decoded in large groups, and then the prediction algorithm is used to obtain the attribute prediction value.
- the quantized transform coefficients are dequantized and inversely transformed in small groups.
- the attribute reconstruction value is obtained based on the attribute prediction value and the dequantized and inversely transformed coefficients.
- the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order or the Hilbert order, etc.), and the entire point cloud is first divided into several small groups with a maximum length of N (such as 2). Then, the prediction algorithm is used to obtain the attribute prediction value, and the attribute residual is obtained according to the attribute value and the attribute prediction value.
- the attribute residual is subjected to DCT transformation in units of small groups to generate transformation coefficients, and then the transformation coefficients are quantized to generate quantized transformation coefficients. Finally, the quantized transformation coefficients of the entire point cloud are encoded;
- the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order or the Hilbert order, etc.).
- the entire point cloud is divided into several small groups with a maximum length of N (such as 2), and the quantized transformation coefficients of the entire point cloud are obtained by decoding.
- the prediction algorithm is used to obtain the attribute prediction value, and then the quantized transformation coefficients are dequantized and inversely transformed in groups.
- the attribute reconstruction value is obtained based on the attribute prediction value and the dequantized and inversely transformed coefficients.
- the entire point cloud is subjected to multi-layer wavelet transform to generate transform coefficients, which are then quantized to generate quantized transform coefficients, and finally the quantized transform coefficients of the entire point cloud are encoded;
- decoding obtains the quantized transform coefficients of the entire point cloud, and then dequantizes and inversely transforms the quantized transform coefficients to obtain attribute reconstruction values.
- attribute residual coefficients (attribute residual coefficients generated by Pred encoding) or attribute transform coefficients (Predtrans-resource limited, Predtrans-resource unlimited, Trans) generated by the above technical route.
- attribute transform coefficients Predtrans-resource limited, Predtrans-resource unlimited, Trans
- value0 represents the residual coefficient of Y or R
- value1 represents the residual coefficient of U or G
- value2 represents the residual coefficient of V or B.
- value0, value1 and value2 are DC coefficients and AC coefficients after transformation and quantization, also called transformation coefficients.
- value0, value1 and value2 are transform coefficients after multi-layer transform quantization.
- the AVS PCC encoding and decoding scheme is described as follows:
- the encoding method is described as follows:
- value1 is equal to 0 but value0 is not equal to 0, use the fixed context to encode the absolute value of value0 minus 1 and encode its sign, and continue to use the fixed context to encode value2 and its sign;
- value1 is not equal to 0, use the fixed context to encode the absolute value of value1 minus 1 and encode its sign, continue to use the fixed context to encode value0 and encode its sign; continue to use the fixed context to encode value2 and encode its sign.
- the decoding method is described as follows:
- value1 is equal to 0 but value0 is not equal to 0, use the fixed context to decode the absolute value of value0 and decode its sign, and continue to use the fixed context to decode value2 and decode its sign; wherein the final value of the absolute value of value0 is equal to the absolute value of value0 decoded value plus 1;
- value0, value1 and value2 are encoded one by one.
- joint encoding is considered, that is, a flag bit can be used to encode value1 and value2 at the same time.
- the encoded value is used to adaptively select the context for encoding, thereby saving code words.
- the decoding end also has a similar principle.
- an embodiment of the present application first provides a coding method, which can be applied to the arithmetic coding of the attribute coding part in the encoder shown in Figure 2, and can also be applied to the entropy coding of the attribute coding part in the encoder shown in Figure 4.
- a coding method which can be applied to the arithmetic coding of the attribute coding part in the encoder shown in Figure 2, and can also be applied to the entropy coding of the attribute coding part in the encoder shown in Figure 4.
- the framework of the encoder, decoder and business scenarios described in the embodiments of the present application are for the purpose of more clearly illustrating the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. It is known to those of ordinary skill in the art that with the evolution of encoders and decoders and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are equally applicable to similar technical problems.
- FIG6 is a schematic diagram of an implementation flow of an encoding method provided in an embodiment of the present application. As shown in FIG6 , the method includes the following steps 601 and 602:
- Step 601 the encoder encodes a first flag bit into a point cloud code stream; wherein the first flag bit is used to indicate whether the attribute coefficients (attribute coefficent) of at least two first attribute components of the current point are both first values.
- the number of bits of the first flag bit is not limited, and it can be one bit or multiple bits.
- the first flag bit is equal to 0, indicating that the attribute coefficients of at least two first attribute components of the current point are all the first value; the first flag bit is equal to 1, indicating that at least one of the attribute coefficients of at least two first attribute components of the current point is not the first value; or, the first flag bit is equal to 1, indicating that the attribute coefficients of at least two first attribute components of the current point are all the first value; the first flag bit is equal to 0, indicating that at least one of the attribute coefficients of at least two first attribute components of the current point is not the first value.
- Step 602 When the attribute coefficients of the at least two first attribute components are both first values, the encoder encodes the second attribute coefficient of the second attribute component of the current point to a point cloud code stream; wherein the second attribute coefficient is equal to the first attribute coefficient of the second attribute component minus 1; and the second attribute component is different from the at least two first attribute components.
- the first value is not limited. In some embodiments, the first value is equal to 0.
- the encoder encodes a first flag bit to a point cloud code stream, and the first flag bit indicates whether the attribute coefficients of at least two first attribute components (rather than one attribute component) of the current point are all first values; when the attribute coefficients of the at least two first attribute components are all first values, the second attribute coefficient of the second attribute component of the current point is encoded to the point cloud code stream; in this way, compared with directly encoding the attribute coefficients of each attribute component of the current point separately, encoding the attribute coefficients of at least two attribute components by encoding the first flag bit can reduce the amount of encoded information, thereby improving the encoding efficiency and saving the code stream overhead; accordingly, the decoding efficiency of the decoding end is also improved.
- the first attribute coefficient represents the attribute residual coefficient
- PredLift and for RAHT the first attribute coefficient represents the attribute transformation coefficient
- PredLift the attribute residual coefficient
- PredTrans-resource-constrained the coefficient output by the previous step such as entropy coding or arithmetic coding.
- FIG. 7 is a schematic diagram of an implementation flow of another encoding method provided by the embodiment of the present application. As shown in FIG. 7 , the method includes the following steps 700 to 710:
- Step 700 The encoder encodes the first parameter into a point cloud code stream.
- the first parameter is used to represent the number of consecutive points where each attribute coefficient is the first value.
- the first parameter can be understood as runlength. It can be understood that runlength represents that the attribute coefficients of consecutive runlength groups (each n is a group, such as n is equal to 3) are all 0 at the same time or that the attribute coefficients of n consecutive runlength points (such as n is equal to 3) are all 0 at the same time. In other words, the first parameter represents the number of consecutive sampling points or consecutive sampling point groups where each attribute coefficient is 0.
- Runlength 0 means that the attribute coefficients of each attribute component of the current group are not all 0 at the same time or the attribute coefficients of each attribute component of the current point are not all 0 at the same time.
- the encoder encodes runlength, and when runlength is equal to 0, it enters the following encoding scheme to save codewords.
- the first parameter is used to represent the number of consecutive groups in which each attribute coefficient is the first value.
- runlength represents m1 points performing DCT transform to output k1 transform coefficients (where each n (such as n equals 3) is a group), and runlength is not 0, which means that the transform coefficients of consecutive runlength groups are all 0.
- a runlength of 0 means that the n (such as n equals 3) transform coefficients of the current group are not all 0.
- runlength represents m2 points performing RAHT transform to output k2 transform coefficients (where each n (such as n equals 3) is a group), and runlength is not 0, which means that the transform coefficients of consecutive runlength groups are all 0.
- a runlength of 0 means that the n (such as n equals 3) transform coefficients of the current group are not all 0.
- Step 701 when the number of points where each attribute component is the first value is equal to the first value, the encoder encodes the first flag bit to the point cloud code stream; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are all the first value.
- the first value is equal to zero.
- the encoder encodes the first flag bit using a first context.
- the first context is a fixed context model.
- step 702 the encoder determines whether the attribute coefficients of the at least two first attribute components are both first values; if so, execute step 703; otherwise, execute step 704; that is, when at least one of the attribute coefficients of the at least two first attribute components is not the first value, execute step 704.
- Step 703 The encoder encodes a second attribute coefficient of the second attribute component of the current point into a point cloud code stream; wherein the second attribute coefficient is equal to the first attribute coefficient of the second attribute component minus 1; and the second attribute component is different from the at least two first attribute components;
- the encoder encodes the second attribute coefficient using a second context.
- the second context is a fixed context.
- Step 704 the encoder encodes the second flag bit into the point cloud code stream, and then proceeds to step 705;
- the second flag bit is used to indicate whether the attribute coefficient of at least one first attribute component among the at least two first attribute components is the first value.
- the encoder may encode the second flag bit using the eleventh context.
- the eleventh context is a fixed context.
- step 705 the encoder determines whether the attribute coefficient of at least one of the at least two first attribute components is the first value; if so, execute step 706; otherwise, execute step 708; that is, when at least one of the attribute coefficients of the at least two first attribute components is not the first value, execute step 708.
- Step 706 the encoder encodes a fourth attribute coefficient of a first attribute component different from the at least one first attribute component in the at least two first attribute components into a point cloud code stream, and proceeds to step 707;
- the fourth attribute coefficient is equal to the third attribute coefficient of the first attribute component different from the at least one first attribute component minus 1.
- the encoder encodes the fourth attribute coefficient using the third context.
- the third context is a fixed context.
- Step 707 The encoder encodes the fifth attribute coefficient of the second attribute component into a point cloud code stream.
- the encoder selects a fourth context using the third attribute coefficient or the fourth attribute coefficient; and encodes the fifth attribute coefficient using the fourth context.
- the encoder determines whether the absolute value of the third attribute coefficient or the fourth attribute coefficient is equal to 1 and whether the absolute value of the third attribute coefficient or the fourth attribute coefficient is greater than or equal to 2, and adaptively selects the fourth context based on this; or, in other embodiments, the encoder determines whether the absolute value of the third attribute coefficient or the fourth attribute coefficient is equal to 1 and whether the absolute value of the third attribute coefficient or the fourth attribute coefficient is less than or equal to 2, and adaptively selects the fourth context based on this.
- step 708 the encoder encodes the seventh attribute coefficient of the at least one first attribute component into a point cloud code stream, and proceeds to step 709; wherein the seventh attribute coefficient is equal to the sixth attribute coefficient of the at least one first attribute component minus 1.
- the encoder encodes the seventh attribute coefficient of the at least one first attribute component using the fifth context.
- the fifth context is a fixed context.
- step 709 the encoder encodes an eighth attribute coefficient of a first attribute component different from the at least one first attribute component among the at least two first attribute components into a point cloud code stream, and proceeds to step 710 .
- the encoder selects a sixth context using the sixth attribute coefficient or the seventh attribute coefficient; and encodes the eighth attribute coefficient of the first attribute component different from the at least one first attribute component using the sixth context.
- the encoder determines whether the absolute value of the sixth attribute coefficient or the seventh attribute coefficient is equal to 1 and whether the absolute value of the sixth attribute coefficient or the seventh attribute coefficient is greater than or equal to 2, and based on this, adaptively selects the sixth context; or, in other embodiments, the encoder determines whether the absolute value of the sixth attribute coefficient or the seventh attribute coefficient is equal to 1 and whether the absolute value of the sixth attribute coefficient or the seventh attribute coefficient is less than or equal to 2, and based on this, adaptively selects the sixth context.
- Step 710 The encoder encodes the ninth attribute coefficient of the second attribute component into a point cloud code stream.
- the encoder selects a seventh context using the sixth attribute coefficient or one of the seventh attribute coefficients, and/or the eighth attribute coefficient; and encodes the ninth attribute coefficient of the second attribute component using the seventh context.
- the seventh context is selected using the sixth attribute coefficient and the eighth attribute coefficient; for another example, the seventh context is selected using the seventh attribute coefficient and the eighth attribute coefficient; for another example, the seventh context is selected using the sixth attribute coefficient or the seventh attribute coefficient; for another example, the seventh context is selected using the eighth attribute coefficient.
- the encoder determines whether the absolute value of the sixth attribute coefficient or the seventh attribute coefficient is equal to 1, and whether the absolute value of the sixth attribute coefficient or the seventh attribute coefficient is greater than or equal to 2, and determines whether the absolute value of the eighth attribute coefficient is equal to 0, and whether the absolute value of the eighth attribute coefficient is greater than or equal to 1 to jointly and adaptively select the seventh context.
- the encoder determines whether the absolute value of the sixth attribute coefficient or the seventh attribute coefficient is equal to 1, and whether the absolute value of the sixth attribute coefficient or the seventh attribute coefficient is less than or equal to 2, and determines whether the absolute value of the eighth attribute coefficient is equal to 0, and whether the absolute value of the eighth attribute coefficient is less than or equal to 1 to jointly and adaptively select the seventh context.
- FIG8 is a schematic diagram of an implementation flow of another encoding method provided by the embodiment of the present application. As shown in FIG8 , the method includes the following steps 800 to 806:
- Step 800 The encoder encodes the first parameter into a point cloud code stream.
- the first parameter is used to indicate the number of consecutive points where each attribute coefficient is the first value. In other embodiments, the first parameter is used to indicate the number of consecutive groups where each attribute coefficient is the first value.
- Step 801 when the number of points where each attribute component is the first value is equal to the first value, the encoder encodes the first flag bit to the point cloud code stream; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are all the first value.
- the first value is equal to zero.
- the encoder encodes the first flag bit using a first context.
- the first context is a fixed context.
- Step 802 the encoder determines whether the attribute coefficients of the at least two first attribute components are both first values; if yes, execute step 803; otherwise, execute step 804; that is, when at least one of the attribute coefficients of the at least two first attribute components is not the first value, execute step 804;
- Step 803 the encoder encodes the second attribute coefficient of the second attribute component of the current point into a point cloud code stream; wherein the second attribute coefficient is equal to the first attribute coefficient of the second attribute component minus 1; and the second attribute component is different from the at least two first attribute components.
- the encoder encodes the second attribute coefficient using a second context.
- the second context is a fixed context.
- Step 804 the encoder encodes the tenth attribute coefficient of at least one first attribute component of the at least two first attribute components into a point cloud code stream, and then proceeds to step 805;
- the encoder encodes the tenth attribute coefficient using the eighth context.
- the eighth context is a fixed context.
- Step 805 The encoder encodes an eleventh attribute coefficient of the first attribute component different from the at least one first attribute component in the at least two first attribute components into a point cloud code stream by using the tenth attribute coefficient, and then proceeds to step 806;
- the encoder uses the tenth attribute coefficient to select a ninth context; and uses the ninth context to encode the eleventh attribute coefficient.
- the encoder determines whether the absolute value of the tenth attribute coefficient is equal to 1 and whether the absolute value of the tenth attribute coefficient is greater than or equal to 2, and adaptively selects the ninth context based on this; or, in other embodiments, the encoder determines whether the absolute value of the tenth attribute coefficient is equal to 1 and whether the absolute value of the tenth attribute coefficient is less than or equal to 2, and adaptively selects the ninth context based on this.
- Step 806 The encoder encodes the twelfth attribute coefficient of the second attribute component into a point cloud code stream by using the tenth attribute coefficient and the eleventh attribute coefficient.
- the encoder selects a tenth context using the tenth attribute coefficient and the eleventh attribute coefficient; and encodes the twelfth attribute coefficient using the tenth context.
- the encoder determines whether the absolute value of the tenth attribute coefficient is equal to 1, and whether the absolute value of the tenth attribute coefficient is greater than or equal to 2, and determines whether the absolute value of the eleventh attribute coefficient is equal to 0, and whether the absolute value of the eleventh attribute coefficient is greater than or equal to 1, and based on this, adaptively selects the tenth context; or, in other embodiments, the encoder determines whether the absolute value of the tenth attribute coefficient is equal to 1, and whether the absolute value of the tenth attribute coefficient is less than or equal to 2, and determines whether the absolute value of the eleventh attribute coefficient is equal to 0, and whether the absolute value of the eleventh attribute coefficient is less than or equal to 1, and based on this, adaptively selects the tenth context.
- the encoding method described in any of the above embodiments it further includes: when the final value of the attribute coefficient of any of the attribute components is not the first value, encoding the sign of the final value of the attribute coefficient of any of the attribute components; the sign is used to indicate whether the corresponding final value of the attribute coefficient is a positive number or a negative number.
- the attribute coefficients mentioned above all refer to the absolute values of the attribute coefficients.
- the attribute coefficients (here referring to the attribute coefficients that are not reduced by one), namely the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient are all determined according to one of the Pred, Predlift, RAHT, Predtrans-resource-limited, Predtrans-resource-unlimited and Trans methods.
- the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient represent attribute residual coefficients
- PredLift and RAHT the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient represent attribute transformation coefficients.
- the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient represent attribute residual coefficients.
- the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient represent attribute transformation coefficients.
- the attribute coefficient types described in the embodiments of the present application are not limited to the above coefficients. In short, they can be coefficients output from the previous step such as entropy coding and decoding or arithmetic coding and decoding.
- the encoding method further includes: obtaining an attribute reconstruction value of the attribute component at least based on the attribute coefficient of the attribute component; wherein the attribute coefficient of the attribute component is one of the following: a first attribute coefficient, a third attribute coefficient, a fifth attribute coefficient, a sixth attribute coefficient, an eighth attribute coefficient, a ninth attribute coefficient, a tenth attribute coefficient, an eleventh attribute coefficient, and a twelfth attribute coefficient.
- an embodiment of the present application provides a decoding method, which can be applied to the arithmetic decoding of the attribute decoding part in the decoder shown in Figure 3, and can also be applied to the entropy decoding of the attribute decoding part in the decoder shown in Figure 5.
- a decoding method which can be applied to the arithmetic decoding of the attribute decoding part in the decoder shown in Figure 3, and can also be applied to the entropy decoding of the attribute decoding part in the decoder shown in Figure 5.
- the framework of the encoder, decoder and business scenarios described in the embodiments of the present application are to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. It is known to those of ordinary skill in the art that with the evolution of encoders and decoders and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
- FIG. 9 is a schematic diagram of an implementation flow of a decoding method provided in an embodiment of the present application. As shown in FIG. 9 , the method includes the following steps 901 and 902:
- Step 901 The decoder decodes the point cloud code stream to obtain a first flag bit; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both first values;
- Step 902 When the first flag indicates that the attribute coefficients of the at least two first attribute components are all first values, the decoder determines that the first attribute coefficient of the second attribute component of the current point is equal to the second attribute coefficient of the second attribute component plus 1; wherein the second attribute coefficient of the second attribute component is parsed from the point cloud code stream; the second attribute component is different from the at least two first attribute components.
- the first value is equal to zero.
- the first flag bit indicates whether the attribute coefficients of at least two first attribute components (rather than one attribute component) of the current point are all first values; when the first flag bit indicates that the attribute coefficients of the at least two first attribute components are all first values, it is sufficient to decode the second attribute coefficient of the second attribute component of the current point without decoding the attribute coefficient of each attribute component of the current point, thereby improving the decoding efficiency of point cloud compression.
- FIG. 10 is a schematic diagram of an implementation flow of another decoding method provided by the present application. As shown in FIG. 10 , the method includes the following steps 1001 to 1011:
- Step 1001 The decoder decodes the point cloud code stream to obtain a first parameter.
- the first parameter is used to represent the number of consecutive points where each attribute coefficient is the first value.
- the first parameter can be understood as runlength. It can be understood that runlength represents that the attribute coefficients of consecutive runlength groups (each n is a group, n is 3) are all 0 at the same time or that the attribute coefficients of consecutive runlength points (n is 3) are all 0 at the same time. In other words, the first parameter represents the number of consecutive sampling points or consecutive sampling point groups where each attribute coefficient is 0.
- Runlength 0 represents that the first attribute coefficient, the second attribute coefficient and the third attribute coefficient of the current group are not all 0 at the same time or the first attribute coefficient, the second attribute coefficient and the third attribute coefficient of the current point are not all 0 at the same time.
- the decoder decodes runlength, and when runlength is equal to 0, it enters the following decoding scheme.
- the first parameter is used to represent the number of consecutive groups in which each attribute coefficient is the first value.
- runlength represents m1 points performing DCT transform to output k1 transform coefficients (wherein each n (such as n equals 3) is a group), and runlength is not 0, which means that the transform coefficients of consecutive runlength groups are all 0.
- a runlength of 0 means that the n (such as n equals 3) transform coefficients of the current group are not all 0.
- runlength represents m2 points performing RAHT transform to output k2 transform coefficients (wherein each n (such as n equals 3) is a group), and runlength is not 0, which means that the transform coefficients of consecutive runlength groups are all 0.
- a runlength of 0 means that the n (such as n equals 3) transform coefficients of the current group are not all 0.
- Step 1002 When the first parameter is equal to a first value, the decoder decodes the point cloud code stream to obtain a first flag bit; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both the first value.
- the first value is equal to zero.
- the decoder decodes the point cloud code stream using the first context to obtain the first flag.
- Step 1003 the decoder determines whether the attribute coefficients of at least two first attribute components of the current point indicated by the first flag bit are all first values; if so, execute step 1004; otherwise, execute step 1005; that is, when the first flag bit indicates that at least one of the attribute coefficients of the at least two first attribute components is not the first value, execute step 1005.
- Step 1004 The decoder determines that the first attribute coefficient of the second attribute component of the current point is equal to the second attribute coefficient of the second attribute component plus 1; wherein the second attribute coefficient of the second attribute component is parsed from the point cloud code stream; and the second attribute component is different from the at least two first attribute components.
- the decoder decodes the point cloud code stream using the second context to obtain the second attribute coefficient.
- Step 1005 The decoder determines a second flag bit and proceeds to step 1006; wherein the second flag bit is used to indicate whether the attribute coefficient of at least one first attribute component among the at least two first attribute components is the first value.
- the decoder decodes the point cloud code stream to obtain the second flag. Further, in some embodiments, the decoder can use the eleventh context to decode the point cloud code stream to obtain the second flag. Further, in some embodiments, the eleventh context is a fixed context.
- Step 1006 the decoder determines whether the attribute coefficient of at least one first attribute component among the at least two first attribute components indicated by the second flag bit is the first value; if so, execute step 1007; otherwise, execute step 1009; that is, when the second flag bit indicates that the attribute coefficient of the at least one first attribute component is not the first value, execute step 1009.
- Step 1007 The decoder determines that the third attribute coefficient of the first attribute component different from the at least one first attribute component among the at least two first attribute components is equal to the fourth attribute coefficient of the first attribute component different from the at least one first attribute component plus 1, and the fourth attribute coefficient is parsed from the point cloud code stream; proceed to step 1008.
- the decoder decodes the point cloud code stream using the third context to obtain the fourth attribute coefficient.
- Step 1008 The decoder determines a fifth attribute coefficient of the second attribute component; wherein the fifth attribute coefficient is parsed from the point cloud code stream.
- the decoder selects a fourth context using the third attribute coefficient or the fourth attribute coefficient; and decodes the point cloud code stream using the fourth context to obtain the fifth attribute coefficient.
- Step 1009 The decoder determines that the sixth attribute coefficient of the at least one first attribute component is equal to the seventh attribute coefficient of the at least one first attribute component plus 1, and the seventh attribute coefficient is parsed from the point cloud code stream; and proceeds to step 1010.
- the decoder decodes the point cloud code stream using the fifth context to obtain a seventh attribute coefficient of the at least one first attribute component.
- step 1010 the decoder determines an eighth attribute coefficient of a first attribute component among the at least two first attribute components that is different from the at least one first attribute component, and proceeds to step 1011; wherein the eighth attribute coefficient is parsed from the point cloud code stream.
- the decoder selects a sixth context using the sixth attribute coefficient or the seventh attribute coefficient; and decodes the point cloud code stream using the sixth context to obtain an eighth attribute coefficient of the first attribute component that is different from the at least one first attribute component.
- Step 1011 The decoder determines a ninth attribute coefficient of the second attribute component; wherein the ninth attribute coefficient is parsed from the point cloud code stream.
- the decoder selects the seventh context using the sixth attribute coefficient or one of the seventh attribute coefficients, and/or the eighth attribute coefficient; and decodes the point cloud code stream using the seventh context to obtain the ninth attribute coefficient of the second attribute component.
- FIG. 11 is a schematic diagram of an implementation flow of another decoding method provided by the present application. As shown in FIG. 11 , the method includes the following steps 1101 to 1107:
- Step 1101 The decoder decodes the point cloud code stream to obtain a first parameter.
- the first parameter is used to indicate the number of consecutive points where each attribute coefficient is the first value. In other embodiments, the first parameter is used to indicate the number of consecutive groups where each attribute coefficient is the first value.
- Step 1102 when the first parameter is equal to the first value, the decoder decodes the point cloud code stream to obtain a first flag bit; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both the first value;
- the decoder decodes the point cloud code stream using the first context to obtain the first flag.
- Step 1103 the decoder determines whether the attribute coefficients of at least two first attribute components of the current point indicated by the first flag bit are all first values; if so, execute step 1104; otherwise, execute step 1105; that is, when the first flag bit indicates that at least one of the attribute coefficients of the at least two first attribute components is not the first value, execute step 1105.
- Step 1104 the decoder determines that the first attribute coefficient of the second attribute component of the current point is equal to the second attribute coefficient of the second attribute component plus 1; wherein the second attribute coefficient of the second attribute component is parsed from the point cloud code stream; and the second attribute component is different from the at least two first attribute components.
- the decoder decodes the point cloud code stream using the second context to obtain the second attribute coefficient.
- Step 1105 the decoder decodes the point cloud code stream to obtain a tenth attribute coefficient of at least one of the at least two first attribute components, and then proceeds to step 1106;
- the decoder decodes the point cloud code stream using the eighth context to obtain the tenth attribute coefficient.
- Step 1106 The decoder decodes the point cloud code stream using the tenth attribute coefficient to obtain an eleventh attribute coefficient of the first attribute component of the at least two first attribute components that is different from the at least one first attribute component, and then proceeds to step 1107;
- the decoder uses the tenth attribute coefficient to select a ninth context; and uses the ninth context to decode the point cloud code stream to obtain the eleventh attribute coefficient.
- Step 1107 The decoder decodes the point cloud code stream using the tenth attribute coefficient and the eleventh attribute coefficient to obtain the twelfth attribute coefficient of the second attribute component.
- the decoder selects a tenth context using the tenth attribute coefficient and the eleventh attribute coefficient; and decodes the point cloud code stream using the tenth context to obtain the twelfth attribute coefficient.
- the decoding method described in any of the above embodiments also includes: when the final value of the attribute coefficient of any of the attribute components is not the first value, decoding the point cloud code stream to obtain the sign of the final value of the attribute coefficient of any of the attribute components; the sign is used to indicate whether the corresponding final value of the attribute coefficient is a positive number or a negative number.
- the attribute coefficients (for the decoding end, here refers to the final values of the attribute coefficients), that is, the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient are all determined according to one of the Pred, Predlift, RAHT, Predtrans-resource-limited, Predtrans-resource-unlimited and Trans methods.
- the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient represent attribute residual coefficients
- PredLift and RAHT the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient represent attribute transformation coefficients.
- the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient represent attribute residual coefficients.
- the first attribute coefficient, the third attribute coefficient, the fifth attribute coefficient, the sixth attribute coefficient, the eighth attribute coefficient, the ninth attribute coefficient, the tenth attribute coefficient, the eleventh attribute coefficient and the twelfth attribute coefficient represent attribute transformation coefficients.
- the attribute coefficient types described in the embodiments of the present application are not limited to the above coefficients. In short, they can be coefficients output from the previous step such as entropy coding and decoding or arithmetic coding and decoding.
- the decoding method also includes: obtaining an attribute reconstruction value of the attribute component at least based on the attribute coefficient of the attribute component; the attribute coefficient of the attribute component is one of the following: a first attribute coefficient, a third attribute coefficient, a fifth attribute coefficient, a sixth attribute coefficient, an eighth attribute coefficient, a ninth attribute coefficient, a tenth attribute coefficient, an eleventh attribute coefficient, and a twelfth attribute coefficient.
- the at least two first attribute components may include any two components of the Y component, the U component, and the V component, or the at least two first attribute components may include any two components of the R component, the G component, and the B component; accordingly, the second attribute component is the remaining component of the above three components that is different from the at least two first attribute components.
- the type of at least one of the at least two first attribute components and the type of the first attribute component different from the at least one first attribute component among the at least two first attribute components can be any one of the Y component, U component and V component, or any one of the R component, G component and B component.
- the at least two first attribute components include a U component and a V component, and the second attribute component includes a Y component.
- at least one of the at least two first attribute components includes a U component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a V component; or, in other embodiments, at least one of the at least two first attribute components includes a V component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a U component.
- the at least two first attribute components include a U component and a Y component, and the second attribute component includes a V component. Based on this, further, in some embodiments, at least one of the at least two first attribute components includes a U component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a Y component; or, in other embodiments, at least one of the at least two first attribute components includes a Y component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a U component.
- the at least two first attribute components include a V component and a Y component, and the second attribute component includes a U component. Based on this, further, in some embodiments, at least one of the at least two first attribute components includes a V component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a Y component; or, in other embodiments, at least one of the at least two first attribute components includes a Y component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a V component.
- the at least two first attribute components include an R component and a G component
- the second attribute component includes a B component.
- at least one of the at least two first attribute components includes an R component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a G component; or, in other embodiments, at least one of the at least two first attribute components includes a G component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is an R component.
- the at least two first attribute components include an R component and a B component, and the second attribute component includes a V component. Based on this, further, in some embodiments, at least one of the at least two first attribute components includes an R component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a B component; or, in other embodiments, at least one of the at least two first attribute components includes a B component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is an R component.
- the at least two first attribute components include a G component and a B component, and the second attribute component includes an R component. Based on this, further, in some embodiments, at least one of the at least two first attribute components includes a G component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a B component; or, in other embodiments, at least one of the at least two first attribute components includes a B component, and the first attribute component of the at least two first attribute components that is different from the at least one first attribute component is a G component.
- the above-mentioned decoding method related to FIG. 9 corresponds to the encoding method related to FIG. 6,
- the above-mentioned decoding method related to FIG. 10 corresponds to the encoding method related to FIG. 7, and the above-mentioned decoding method related to FIG. 11 corresponds to the encoding method related to FIG. 8. Therefore, for the technical details not disclosed in the decoding method, please refer to the corresponding instructions and descriptions in the above-mentioned encoding method for understanding. In order to save space and avoid repeated descriptions, some technical details on the decoding method side will not be explained and described again.
- a 1-bit flag can be used to indicate whether the encoding method provided by the embodiment of the present application is enabled. This flag is placed in the attribute header of the high-level syntax element. This flag is conditionally analyzed under certain specific conditions. If this flag does not appear in the bitstream, its default value is a fixed value. That is, if this flag does not appear in the bitstream, the encoding method provided by the embodiment of the present application is enabled/used by default. Alternatively, if this flag does not appear in the bitstream, the encoding method provided by the embodiment of the present application is not enabled/used by default.
- the decoding end needs to decode the flag bit. If this flag bit does not appear in the bit stream, it will not be decoded.
- the default value is a fixed value. That is to say, if this flag bit does not appear in the bit stream, the decoding method provided in the embodiment of the present application is enabled/used by default; or, if this flag bit does not appear in the bit stream, the decoding method provided in the embodiment of the present application is not enabled/used by default.
- Step 1201 using the context to encode the first flag bit, which represents whether the absolute value of the attribute coefficient 1 and the absolute value of the attribute coefficient 2 of the current point are both 0; wherein the absolute value of the attribute coefficient 1 and the absolute value of the attribute coefficient 2 of the current point refer to examples of the attribute coefficients of at least two first attribute components of the current point described in the previous embodiment.
- Step 1202 determine whether the absolute value of attribute coefficient 1 and the absolute value of attribute coefficient 2 are both 0; if yes, execute step 1203; otherwise, execute step 1204;
- Step 1203 using the absolute value of the context coding attribute coefficient 3 minus one, the coding ends; wherein the absolute value of the attribute coefficient 3 refers to the example of the first attribute coefficient of the second attribute component of the current point described in the previous embodiment.
- Step 1204 using the context to encode a second flag, the flag representing whether the absolute value of the attribute coefficient 1 is 0;
- Step 1205 determine whether the absolute value of attribute coefficient 1 is 0; if yes, execute step 1206; otherwise, execute step 1207;
- Step 1206 using the context to encode the absolute value of attribute coefficient 2 minus one, and using the absolute value of attribute coefficient 2 to adaptively select a context; using the adaptively selected context, encode the absolute value of attribute coefficient 3, and end the encoding;
- Step 1207 use the context to encode the absolute value of attribute coefficient 1 minus one; and use the absolute value of attribute coefficient 1 to adaptively select a context, and use the selected context to encode the absolute value of attribute coefficient 2; and use the absolute values of attribute coefficient 1 and attribute coefficient 2 to adaptively select a context, and use the selected context to encode the absolute value of attribute coefficient 3, and end the encoding.
- the process includes the following steps 1301 to 1307:
- Step 1301 using context decoding to decode a first flag, the flag representing whether the absolute value of attribute coefficient 1 and the absolute value of attribute coefficient 2 are both 0;
- Step 1302 determine whether the absolute value of attribute coefficient 1 and the absolute value of attribute coefficient 2 are both 0; if yes, execute step 1303; otherwise, execute step 1304;
- Step 1303 using the context to decode the absolute value of the attribute coefficient 3, the final absolute value of the attribute coefficient 3 is the decoded value plus one, and the decoding ends;
- Step 1304 using the context to decode the second flag, the flag representing whether the absolute value of the attribute coefficient 1 is 0;
- Step 1305 Determine whether the absolute value of attribute coefficient 1 is 0; if yes, execute step 1306; otherwise, execute step 1307;
- Step 1306 using the context to decode the absolute value of attribute coefficient 2, the final value of the absolute value of attribute coefficient 2 is the decoded value plus one; and using the final value of the absolute value of attribute coefficient 2 to adaptively select a context, using the adaptively selected context to decode the absolute value of attribute coefficient 3, the final value of the absolute value of attribute coefficient 3 is the decoded value, and the decoding ends;
- Step 1307 using the context to decode the absolute value of attribute coefficient 1, the final value of the absolute value of attribute coefficient 1 is the decoded value plus one; and, using the final value of the absolute value of attribute coefficient 1 to adaptively select a context, using the adaptively selected context to decode the absolute value of attribute coefficient 2, the final value of the absolute value of attribute coefficient 2 is the decoded value; and, using the final value of the absolute value of attribute coefficient 1 and the final value of the absolute value of attribute coefficient 2 to adaptively select a context, using the adaptively selected context to decode the absolute value of attribute coefficient 3, the final value of the absolute value of attribute coefficient 3 is the decoded value, and decoding ends.
- Embodiment 1 is a diagrammatic representation of Embodiment 1:
- Pred branch, PredLift branch and RAHT branch in G-PCC encode value0, value1 and value2, for Pred: suppose the three components of the color attribute are value0, value1 and value2, value0 represents the residual coefficient of Y or R, value1 represents the residual coefficient of U or G, and value2 represents the residual coefficient of V or B.
- PredLift Let the three components of the color attribute be value0, value1, and value2, where value0 represents the transformation coefficient of Y or R, value1 represents the transformation coefficient of U or G, and value2 represents the transformation coefficient of V or B.
- value0, value1 and value2 are the transformation coefficients after RAHT transformation.
- the tool of this scheme can use a 1-bit flag to indicate whether to enable the encoding method and decoding method described below.
- This flag is placed in the attribute header of the high-level syntax element. This flag is conditionally analyzed under certain conditions; if this flag does not appear in the bitstream, its default value is a fixed value.
- the decoding end needs to decode the flag bit. If the flag bit does not appear in the bitstream, it will not be decoded.
- the default value is a fixed value.
- Step 1401 using context encoding to encode a first flag bit; wherein the first flag bit represents whether the absolute value of value1 and the absolute value of value2 are both 0;
- Step 1402 determine whether the absolute value of value1 and the absolute value of value2 are both 0; if yes, execute step 1403; otherwise, execute step 1404;
- Step 1403 using the context code value0 to reduce the absolute value by 1, and then ending the coding;
- Step 1404 using the context to encode the second flag bit; wherein the second flag bit represents whether the absolute value of value1 is 0, and determines whether the absolute value of value1 is 0; if yes, executing step 1405; otherwise, executing step 1407;
- Step 1406 adaptively select a context using the absolute value of value2, encode the absolute value of value0 using the selected context, and end encoding;
- the adaptive method is to determine whether the absolute value of value2 is equal to 1 and whether the absolute value of value2 is greater than or equal to 2 or less than or equal to 2 to adaptively select a context.
- Step 1407 using the context code value1, the absolute value is reduced by one, and then proceeding to step 1408;
- Step 1408 adaptively select a context using the absolute value of value1, encode the absolute value of value2 using the selected context, and proceed to step 1409;
- the adaptive method is to determine whether the absolute value of value1 is equal to 1 and whether the absolute value of value1 is greater than or equal to 2 or less than or equal to 2 to adaptively select a context.
- Step 1409 using the absolute value of value1 and the absolute value of value2 to adaptively select the absolute value of context encoding value0, and end the encoding.
- step 1409 the adaptive method jointly adaptively selects the context by judging whether the absolute value of value1 is equal to 1 and whether the absolute value of value1 is greater than or equal to 2 or less than or equal to 2 and judging whether the absolute value of value2 is equal to 0 and whether the absolute value of value2 is greater than or equal to 1 or less than or equal to 1.
- Step 1501 using context decoding to decode the first flag bit; wherein the first flag bit represents whether the absolute value of value1 and the absolute value of value2 are both 0;
- Step 1502 determine whether the absolute value of value1 and the absolute value of value2 are both 0; if yes, execute step 1503; otherwise, execute step 1504;
- Step 1503 using the context to decode the absolute value of value0, the final value of the absolute value of value0 is the decoded value plus one, and the decoding ends;
- Step 1504 using the context to decode the second flag bit; wherein the second flag bit represents whether the absolute value of value1 is 0, and whether the absolute value of value1 is 0 is determined; if yes, executing step 1505; otherwise, executing step 1507;
- Step 1505 use the context to decode the absolute value of value2, the final value of the absolute value of value2 is the decoded value plus one, and then go to step 1506;
- Step 1506 using the final value of the absolute value of value2 to adaptively select the absolute value of value0 for context decoding, the final value of the absolute value of value0 is the decoded value, and the decoding ends;
- step 1506 the adaptive method is to determine whether the absolute value of value2 is equal to 1 and whether the absolute value of value2 is greater than or equal to 2 or less than or equal to 2 to adaptively select the context.
- Step 1507 use the context to decode the absolute value of value1, the final value of the absolute value of value1 is the decoded value plus one, and then go to step 1508;
- Step 1508 using the final value of the absolute value of value1 to adaptively select the absolute value of value2 for context decoding, the final value of the absolute value of value2 is the decoded value, and proceeding to step 1509;
- step 1508 the adaptive method is to determine whether the absolute value final value of value1 is equal to 1 and whether the absolute value final value of value1 is greater than or equal to 2 or less than or equal to 2 to adaptively select a context.
- Step 1509 using the final value of the absolute value of value1 and the final value of the absolute value of value2 to adaptively select the absolute value of context decoding value0, the final value of the absolute value of value0 is the decoded value, and the decoding ends.
- the adaptive method is to jointly adaptively select the context by judging whether the absolute final value of value1 is equal to 1 and whether the absolute final value of value1 is greater than or equal to 2 or less than or equal to 2 and judging whether the absolute final value of value2 is equal to 0 and whether the absolute final value of value2 is greater than or equal to 1 or less than or equal to 1.
- Embodiment 2 is a diagrammatic representation of Embodiment 1:
- Pred branch For the Pred branch, Predtrans-resource-constrained branch, Predtrans-resource-unconstrained branch, or Trans branch in AVS PCC, when encoding value0, value1, and value2:
- value0 represents the residual coefficient of Y or R
- value1 represents the residual coefficient of U or G
- value2 represents the residual coefficient of V or B.
- value0, value1, and value2 are DC coefficients or AC coefficients after transformation.
- value0, value1 and value2 are the transformation coefficients after multiple layers of transformation.
- the tool of this scheme can use a 1-bit flag to indicate whether it is enabled or not. This flag is placed in the attribute header of the high-level syntax element. This flag is conditionally analyzed under certain conditions. If this flag does not appear in the bitstream, its default value is a fixed value.
- the decoding end needs to decode the flag bit. If the flag bit does not appear in the bitstream, it will not be decoded.
- the default value is a fixed value.
- the scheme of the encoding end is the same as that of the encoding end in Example 1, namely, including steps 1401 to 1409; the scheme of the decoding end is the same as that of the decoding end in Example 1, namely, including steps 1501 to 1509. To save space, the description is not repeated here.
- the method of obtaining it is not limited; in the encoding and decoding method described in the embodiments of the present application, whether to use the context for encoding and decoding, or whether to adaptively select the context and then perform encoding and decoding based on the selected context are both optional, and the method can be enabled or not. That is, when using a fixed context for encoding and decoding, it can be encoding and decoding using a fixed context or directly encoding and decoding without using the context. When using adaptively selected context for encoding and decoding, it can be encoding and decoding using an adaptively selected context or encoding and decoding using a fixed context or directly encoding and decoding without using the context.
- Table 1 is the technical effect achieved by the arithmetic coding and decoding method based on G-PCC pred under condition 3, as shown in Table 1, wherein, bpip ratio represents the input point bit rate, Geometry represents geometric information, Colour represents color information, and Reflectance represents reflectivity.
- Table 2 shows the technical effect achieved by the arithmetic coding and decoding method based on G-PCC pred under condition 4, as shown in Table 2, where End-to-End BD-Attr Rate represents the end-to-end attribute rate-distortion rate, Luma represents brightness, ChromaCb represents chroma Cb, and ChromaCr represents chroma Cr.
- Table 3 shows the technical effects achieved by the arithmetic coding and decoding method based on G-PCC predlift under condition 1, as shown in Table 3.
- Table 4 shows the technical effects achieved by the arithmetic coding and decoding method based on G-PCC predlift under condition 2, as shown in Table 4.
- Table 5 shows the technical effects achieved by the arithmetic coding and decoding method based on G-PCC RAHT under condition 1.
- Table 6 shows the technical effects achieved by the arithmetic coding and decoding method based on G-PCC RAHT under condition 2.
- the above embodiment is used for color attribute coefficients, and can also be used for other attribute coefficients, that is, it can be used in the scenario of multi-attribute coding; (2) the above embodiment is only for three attribute coefficients, and the encoded attribute coefficient 1 and attribute coefficient 2 are simultaneously 0. If it is for four attribute coefficients, it can be expanded to first encode attribute coefficient 1, attribute coefficient 2 and attribute coefficient 3 as 0, and then encode, etc.; (3) in the above embodiment, the order of encoding and decoding can be changed. The encoding order can be changed according to which two are encoded first and are simultaneously 0; (4) there are many ways to adaptively select context using the already encoded/decoded values. Adaptive context selection means adaptively selecting the context model to encode/decode the next value according to the size of the already encoded/decoded value.
- FIG. 14 is a schematic diagram of an implementation flow of the encoding method provided in the embodiment of the present application. As shown in FIG. 14 , the method includes the following steps 141 to 146:
- Step 141 using the context to encode the first flag, the flag represents whether the absolute value of the attribute coefficient 1 and the absolute value of the attribute coefficient 2 of the current point are both 0;
- Step 142 determine whether the absolute value of attribute coefficient 1 and the absolute value of attribute coefficient 2 are both 0; if yes, execute step 143; otherwise, execute step 144;
- Step 143 using the absolute value of the context coding attribute coefficient 3 minus one, and ending the coding;
- Step 144 using the absolute value of the context coding attribute coefficient 1 minus one, proceeding to step 145;
- Step 145 adaptively select a context using the absolute value of the encoded attribute coefficient 1, and use the selected context to encode the absolute value of the attribute coefficient 2, and then proceed to step 146;
- Step 146 Adaptively select a context using the encoded absolute value of attribute coefficient 1 and the absolute value of attribute coefficient 2, and encode the absolute value of attribute coefficient 3 using the selected context.
- FIG. 15 is a schematic diagram of an implementation flow of the decoding method provided in the embodiment of the present application. As shown in FIG. 15 , the method includes the following steps 151 to 156:
- Step 151 using context decoding to decode a first flag, the flag representing whether the absolute value of attribute coefficient 1 and the absolute value of attribute coefficient 2 are both 0;
- Step 152 determine whether the absolute value of attribute coefficient 1 and the absolute value of attribute coefficient 2 are both 0; if yes, execute step 153; otherwise, execute step 154;
- Step 153 using the context to decode the absolute value of the attribute coefficient 3, the final absolute value of the attribute coefficient 3 is the decoded value plus one, and the decoding ends;
- Step 154 using the context to decode the absolute value of attribute coefficient 1, the final value of the absolute value of attribute coefficient 1 is the decoded value, and then proceeding to step 155;
- Step 155 using the final value of the absolute value of the attribute coefficient 1 to adaptively select a context, using the selected context to decode the absolute value of the attribute coefficient 2, the final value of the absolute value of the attribute coefficient 2 is the decoded value, and then proceeding to step 156;
- Step 156 using the final absolute value of attribute coefficient 1 and the final absolute value of attribute coefficient 2 to adaptively select a context, using the selected context to decode the absolute value of attribute coefficient 3, the final absolute value of attribute coefficient 3 being the decoded value.
- FIG. 16 is a schematic diagram of the structure of the encoding device provided in the embodiment of the present application.
- the encoding device 160 includes:
- the encoding module 1601 is configured to encode a first flag bit into a point cloud code stream; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both first values;
- the second determination module 1602 is configured to encode the second attribute coefficient of the second attribute component of the current point to the point cloud code stream when the attribute coefficients of the at least two first attribute components are both first values; wherein the second attribute coefficient is equal to the first attribute coefficient of the second attribute component minus 1; and the second attribute component is different from the at least two first attribute components.
- the encoding module 1601 is configured to encode the first parameter into a point cloud code stream; when the number of points where each attribute component has a first value is equal to the first value, encode the first flag into the point cloud code stream.
- the encoding module 1601 is configured to encode the first flag bit using a first context.
- the encoding module 1601 is configured to encode the second attribute coefficient using a second context.
- the encoding module 1601 is also configured to encode a second flag bit to the point cloud code stream when at least one of the attribute coefficients of the at least two first attribute components is not the first value; wherein the second flag bit is used to indicate whether the attribute coefficient of at least one first attribute component of the at least two first attribute components is the first value.
- the encoding module 1601 is also configured to encode a fourth attribute coefficient of a first attribute component of the at least two first attribute components that is different from the at least one first attribute component to a point cloud code stream when the attribute coefficient of the at least one first attribute component is the first numerical value; wherein the fourth attribute coefficient is equal to the third attribute coefficient of the first attribute component that is different from the at least one first attribute component minus 1.
- the encoding module 1601 is further configured to encode the fifth attribute coefficient of the second attribute component into a point cloud code stream when the attribute coefficient of the at least one first attribute component is the first value.
- the encoding module 1601 is configured to encode the fourth attribute coefficient using the third context.
- the encoding module 1601 is configured to select a fourth context using the third attribute coefficient or the fourth attribute coefficient; and encode the fifth attribute coefficient using the fourth context.
- the encoding module 1601 is further configured to encode the seventh attribute coefficient of the at least one first attribute component to the point cloud code stream when the attribute coefficient of the at least one first attribute component is not the first numerical value; wherein the seventh attribute coefficient is equal to the sixth attribute coefficient of the at least one first attribute component minus 1.
- the encoding module 1601 is further configured to: when the attribute coefficient of the at least one first attribute component is not the first numerical value, encode the eighth attribute coefficient of the first attribute component of the at least two first attribute components that is different from the at least one first attribute component to the point cloud code stream.
- the encoding module 1601 is further configured to encode a ninth attribute coefficient of the second attribute component into a point cloud code stream when the attribute coefficient of the at least one first attribute component is not a first value.
- the encoding module 1601 is configured to encode the seventh attribute coefficient of the at least one first attribute component using the fifth context.
- the encoding module 1601 is configured to select a sixth context using the sixth attribute coefficient or the seventh attribute coefficient; and encode the eighth attribute coefficient of the first attribute component different from the at least one first attribute component using the sixth context.
- the encoding module 1601 is configured to select a seventh context using the sixth attribute coefficient or one of the seventh attribute coefficients, and/or the eighth attribute coefficient; and encode the ninth attribute coefficient of the second attribute component using the seventh context.
- the encoding module 1601 is further configured to, when at least one of the attribute coefficients of the at least two first attribute components is not the first numerical value, encode the tenth attribute coefficient of at least one of the at least two first attribute components to a point cloud code stream; use the tenth attribute coefficient to encode the eleventh attribute coefficient of the first attribute component of the at least two first attribute components that is different from the at least one first attribute component to the point cloud code stream; and use the tenth attribute coefficient and the eleventh attribute coefficient to encode the twelfth attribute coefficient of the second attribute component to a point cloud code stream.
- the encoding module 1601 is configured to encode the tenth attribute coefficient using the eighth context; select the ninth context using the tenth attribute coefficient; encode the eleventh attribute coefficient using the ninth context; select the tenth context using the tenth attribute coefficient and the eleventh attribute coefficient; and encode the twelfth attribute coefficient using the tenth context.
- the encoding module 1601 is further configured to encode the sign of the final value of the attribute coefficient of any of the attribute components when the final value of the attribute coefficient of any of the attribute components is not the first value; the sign is used to indicate whether the corresponding final value of the attribute coefficient is a positive number or a negative number.
- the encoding device 160 also includes a first reconstruction module, configured to obtain an attribute reconstruction value of the attribute component at least based on the attribute coefficient of the attribute component;
- the attribute coefficient of the attribute component is one of the following: a first attribute coefficient, a third attribute coefficient, a fifth attribute coefficient, a sixth attribute coefficient, an eighth attribute coefficient, a ninth attribute coefficient, a tenth attribute coefficient, an eleventh attribute coefficient, and a twelfth attribute coefficient.
- the at least two first attribute components include a U component and a V component, and the second attribute component includes a Y component; or, the at least two first attribute components include a G component and a B component, and the second attribute component includes an R component.
- FIG17 is a schematic diagram of the structure of the decoding device provided by the present application embodiment. As shown in FIG17 , the decoding device 170 includes:
- the decoding module 1701 is configured to decode the point cloud code stream to obtain a first flag bit; wherein the first flag bit is used to indicate whether the attribute coefficients of at least two first attribute components of the current point are both first values;
- the first determination module 1702 is configured to determine that the first attribute coefficient of the second attribute component of the current point is equal to the second attribute coefficient of the second attribute component plus 1 when the first flag indicates that the attribute coefficients of the at least two first attribute components are all first values; wherein the second attribute coefficient of the second attribute component is parsed from the point cloud code stream; and the second attribute component is different from the at least two first attribute components.
- the decoding module 1701 is configured to decode the point cloud code stream to obtain a first parameter; when the first parameter is equal to a first value, the point cloud code stream is decoded to obtain a first flag.
- the decoding module 1701 is configured to decode the point cloud code stream using the first context to obtain the first flag.
- the decoding module 1701 is configured to decode the point cloud code stream using a second context to obtain the second attribute coefficient.
- the decoding module 1701 is further configured to determine a second flag bit when the first flag bit indicates that at least one of the attribute coefficients of the at least two first attribute components is not the first numerical value; wherein the second flag bit is used to indicate whether the attribute coefficient of at least one of the at least two first attribute components is the first numerical value.
- the decoding module 1701 is further configured to determine that, when the second flag indicates that the attribute coefficient of the at least one first attribute component is the first numerical value, the third attribute coefficient of the first attribute component different from the at least two first attribute components is equal to the fourth attribute coefficient of the first attribute component different from the at least one first attribute component plus 1, and the fourth attribute coefficient is parsed from the point cloud code stream.
- the decoding module 1701 is further configured to determine the fifth attribute coefficient of the second attribute component when the second flag indicates that the attribute coefficient of the at least one first attribute component is the first value; wherein the fifth attribute coefficient is parsed from the point cloud code stream.
- the decoding module 1701 is configured to decode the point cloud code stream using the third context to obtain the fourth attribute coefficient.
- the decoding module 1701 is configured to select a fourth context using the third attribute coefficient or the fourth attribute coefficient; and decode the point cloud code stream using the fourth context to obtain the fifth attribute coefficient.
- the decoding module 1701 is further configured to determine that the sixth attribute coefficient of the at least one first attribute component is equal to the seventh attribute coefficient of the at least one first attribute component plus 1 when the second flag indicates that the attribute coefficient of the at least one first attribute component is not the first numerical value, and the seventh attribute coefficient is parsed from the point cloud code stream.
- the decoding module 1701 is also configured to determine an eighth attribute coefficient of a first attribute component among the at least two first attribute components that is different from the at least one first attribute component when the second flag indicates that the attribute coefficient of the at least one first attribute component is not the first numerical value; wherein the eighth attribute coefficient is parsed from the point cloud code stream.
- the decoding module 1701 is further configured to determine a ninth attribute coefficient of the second attribute component when the second flag indicates that the attribute coefficient of the at least one first attribute component is not a first value; wherein the ninth attribute coefficient is parsed from the point cloud code stream.
- the decoding module 1701 is configured to decode the point cloud code stream using the fifth context to obtain a seventh attribute coefficient of the at least one first attribute component.
- the decoding module 1701 is configured to select a sixth context using the sixth attribute coefficient or the seventh attribute coefficient; and decode the point cloud code stream using the sixth context to obtain an eighth attribute coefficient of the first attribute component that is different from the at least one first attribute component.
- the decoding module 1701 is configured to select a seventh context using the sixth attribute coefficient or one of the seventh attribute coefficients, and/or the eighth attribute coefficient; and decode the point cloud code stream using the seventh context to obtain a ninth attribute coefficient of the second attribute component.
- the decoding module 1701 is further configured to decode the point cloud code stream when the first flag indicates that at least one of the attribute coefficients of the at least two first attribute components is not the first numerical value, to obtain the tenth attribute coefficient of at least one of the at least two first attribute components; to decode the point cloud code stream using the tenth attribute coefficient to obtain the eleventh attribute coefficient of the first attribute component of the at least two first attribute components that is different from the at least one first attribute component; and to decode the point cloud code stream using the tenth attribute coefficient and the eleventh attribute coefficient to obtain the twelfth attribute coefficient of the second attribute component.
- the decoding module 1701 is configured to use the eighth context to decode the point cloud code stream to obtain the tenth attribute coefficient; use the tenth attribute coefficient to select the ninth context; use the ninth context to decode the point cloud code stream to obtain the eleventh attribute coefficient; use the tenth attribute coefficient and the eleventh attribute coefficient to select the tenth context; use the tenth context to decode the point cloud code stream to obtain the twelfth attribute coefficient.
- the decoding module 1701 is further configured to decode the point cloud code stream to obtain the sign of the final value of the attribute coefficient of any of the attribute components when the final value of the attribute coefficient of any of the attribute components is not the first value; the sign is used to indicate whether the corresponding final value of the attribute coefficient is a positive number or a negative number.
- the decoding device 170 also includes a second reconstruction module, configured to obtain an attribute reconstruction value of the attribute component at least based on the attribute coefficient of the attribute component;
- the attribute coefficient of the attribute component is one of the following: a first attribute coefficient, a third attribute coefficient, a fifth attribute coefficient, a sixth attribute coefficient, an eighth attribute coefficient, a ninth attribute coefficient, a tenth attribute coefficient, an eleventh attribute coefficient, and a twelfth attribute coefficient.
- each functional unit in each embodiment of the present application can be integrated into a processing unit, or it can exist physically alone, or two or more units can be integrated into one unit.
- the above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. It can also be implemented in the form of a combination of software and hardware.
- the technical solution of the embodiment of the present application can be essentially or partly reflected in the form of a software product, which is stored in a storage medium and includes several instructions for enabling an electronic device to execute all or part of the methods described in each embodiment of the present application.
- the aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a magnetic disk or an optical disk. In this way, the embodiments of the present application are not limited to any specific combination of hardware and software.
- An embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, it implements a video image processing method such as an encoder side, or implements a video image processing method such as a decoder side.
- the decoder 180 includes: a first communication interface 1801, a first memory 1802 and a first processor 1803; each component is coupled together through a first bus system 1804. It can be understood that the first bus system 1804 is used to realize the connection and communication between these components.
- the first bus system 1804 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the first bus system 1804 in FIG18. Among them,
- the first communication interface 1801 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- the first processor 1803 is used to execute the decoding method described in the embodiment of the present application when running the computer program.
- the first memory 1802 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories.
- the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
- the volatile memory can be a random access memory (RAM), which is used as an external cache.
- RAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDRSDRAM double data rate synchronous DRAM
- ESDRAM enhanced SDRAM
- SLDRAM synchronous link DRAM
- DRRAM direct RAM bus RAM
- the first processor 1803 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the first processor 1803.
- the above-mentioned first processor 1803 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed.
- the general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc.
- the steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to be executed, or the hardware and software modules in the decoding processor can be combined and executed.
- the software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
- the storage medium is located in the first memory 1802, and the first processor 1803 reads the information in the first memory 1802 and completes the steps of the above method in combination with its hardware.
- the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
- ASIC Application Specific Integrated Circuits
- DSP Digital Signal Processing
- DSP Device digital signal processing devices
- PLD programmable logic devices
- FPGA field programmable gate array
- general processors controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
- the technology described in this application can be implemented by a module (such as a process, function, etc.) that performs the functions described in this application.
- the software code can be stored in a memory and executed by a processor.
- the memory can be implemented in the processor or outside the processor.
- the first processor 1803 is further configured to execute any one of the aforementioned 9 decoding method embodiments when running the computer program.
- the encoder 190 includes: a second communication interface 1901, a second memory 1902 and a second processor 1903; each component is coupled together via a second bus system 1904. It is understandable that the second bus system 1904 is used to achieve connection and communication between these components.
- the second bus system 1904 also includes a power bus, a control bus and a status signal bus.
- various buses are labeled as the second bus system 1904 in FIG19 . Among them,
- the second communication interface 1901 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- the second memory 1902 is used to store a computer program that can be run on the second processor 1903;
- the second processor 1903 is configured to, when running the computer program, execute:
- a sample value of the first component having the same position coordinates as the sample in the second image is obtained according to the index number of the sample in the first list and the bit depth of the first component.
- the second processor 1903 is further configured to execute the aforementioned encoding method embodiment when running the computer program.
- the embodiment of the present application provides an electronic device, including: a processor, adapted to execute a computer program; a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by the processor, the encoding method and/or decoding method described in the embodiment of the present application is implemented.
- the electronic device may be any type of device having video encoding and/or video decoding capabilities, for example, the electronic device is a mobile phone, a tablet computer, a laptop computer, a personal computer, a television, a projection device, or a monitoring device.
- object A and/or object B can mean: object A exists alone, object A and object B exist at the same time, and object B exists alone.
- modules described above as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules; they may be located in one place or distributed on multiple network units; some or all of the modules may be selected according to actual needs to achieve the purpose of the present embodiment.
- all functional modules in the embodiments of the present application may be integrated into one processing unit, or each module may be a separate unit, or two or more modules may be integrated into one unit; the above-mentioned integrated modules may be implemented in the form of hardware or in the form of hardware plus software functional units.
- the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium.
- the technical solution of the embodiment of the present application can essentially or in other words, the part that contributes to the relevant technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling an electronic device to execute all or part of the methods described in each embodiment of the present application.
- the aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
Claims (54)
- 一种解码方法,所述方法应用于解码器,所述方法包括:解码点云码流,得到第一标志位;其中,所述第一标志位用于表示当前点的至少两个第一属性分量的属性系数是否均为第一数值;当所述第一标志位表示所述至少两个第一属性分量的属性系数均为第一数值时,确定所述当前点的第二属性分量的第一属性系数等于第二属性分量的第二属性系数加1;其中,所述第二属性分量的第二属性系数是从点云码流中解析得到的;所述第二属性分量与所述至少两个第一属性分量不同。
- 根据权利要求1所述的方法,其中,解码点云码流,得到第一参数;当所述第一参数等于第一数值时,解码点云码流,得到第一标志位。
- 根据权利要求2所述的方法,其中,所述第一参数用于表示每一属性系数均为第一数值的连续点的个数。
- 根据权利要求2所述的方法,其中,所述第一参数用于表示每一属性系数均为第一数值的连续组的个数。
- 根据权利要求1所述的方法,其中,利用第一上下文解码所述点云码流,得到所述第一标志位。
- 根据权利要求1所述的方法,其中,利用第二上下文解码所述点云码流,得到所述第二属性系数。
- 根据权利要求1所述的方法,其中,所述方法还包括:当所述第一标志位表示所述至少两个第一属性分量的属性系数中的至少之一不为所述第一数值时,确定第二标志位;其中,所述第二标志位用于表示所述至少两个第一属性分量中的至少一个第一属性分量的属性系数是否为所述第一数值。
- 根据权利要求7所述的方法,其中,所述方法还包括:当所述第二标志位表示所述至少一个第一属性分量的属性系数为所述第一数值时,确定所述至少两个第一属性分量中不同于所述至少一个第一属性分量的第一属性分量的第三属性系数等于不同于所述至少一个第一属性分量的第一属性分量的第四属性系数加1,所述第四属性系数是从点云码流中解析得到的。
- 根据权利要求7所述的方法,其中,所述方法还包括:当所述第二标志位表示所述至少一个第一属性分量的属性系数为所述第一数值时,确定所述第二属性分量的第五属性系数;其中,所述第五属性系数是从点云码流中解析得到的。
- 根据权利要求8所述的方法,其中,利用第三上下文解码点云码流,得到所述第四属性系数。
- 根据权利要求8所述的方法,其中,利用所述第三属性系数或所述第四属性系数,选取第四上下文;利用所述第四上下文解码所述点云码流,得到所述第五属性系数。
- 根据权利要求8所述的方法,其中,所述方法还包括:当所述第二标志位表示所述至少一个第一属性分量的属性系数不为第一数值时,确定所述至少一个第一属性分量的第六属性系数等于至少一个第一属性分量的第七属性系数加1,所述第七属性系数是从点云码流中解析得到的。
- 根据权利要求12所述的方法,其中,所述方法还包括:当所述第二标志位表示所述至少一个第一属性分量的属性系数不为第一数值时,确定所述至少两个第一属性分量中不同于所述至少一个第一属性分量的第一属性分量的第八属性系数;其中,所述第八属性系数是从点云码流中解析得到的。
- 根据权利要求13所述的方法,其中,所述方法还包括:当所述第二标志位表示所述至少一个第一属性分量的属性系数不为第一数值时,确定所述第二属性分量的第九属性系数;其中,所述第九属性系数是从点云码流中解析得到的。
- 根据权利要求12所述的方法,其中,利用第五上下文解码点云码流,得到所述至少一个第一属性分量的第七属性系数。
- 根据权利要求13所述的方法,其中,利用所述第六属性系数或所述第七属性系数,选取第六上下文;利用所述第六上下文解码点云码流,得到所述不同于所述至少一个第一属性分量的第一属性分量的第八属性系数。
- 根据权利要求14所述的方法,其中,利用所述第六属性系数或所述第七属性系数中的之一,和/或所述第八属性系数,选取第七上下文;利用所述第七上下文解码点云码流,得到所述第二属性分量的第九属性系数。
- 根据权利要求1所述的方法,其中,所述方法还包括:当所述第一标志位表示所述至少两个第一属性分量的属性系数中的至少之一不为所述第一数值时,解码点云码流,得到所述至少两个第一属性分量中的至少一个第一属性分量的第十属性系数;利用所述第十属性系数解码点云码流,得到所述至少两个第一属性分量中不同于所述至少一个第一属性分量的第一属性分量的第十一属性系数;利用所述第十属性系数和所述第十一属性系数解码点云码流,得到所述第二属性分量的第十二属性系数。
- 根据权利要求18所述的方法,其中,利用第八上下文解码点云码流,得到所述第十属性系数;利用所述第十属性系数,选取第九上下文;利用所述第九上下文解码点云码流,得到所述第十一属性系数;利用所述第十属性系数和/或所述第十一属性系数,选取第十上下文;利用所述第十上下文解码点云码流,得到所述第十二属性系数。
- 根据权利要求1至19任一项所述的方法,其中,当任一所述属性分量的属性系数最终值不为第一数值时,解码点云码流,得到所述任一所述属性分量的属性系数最终值的符号;所述符号用于表示对应的属性系数最终值是正数还是负数。
- 根据权利要求1至19任一项所述的方法,其中,所述第一数值等于0。
- 根据权利要求1至19任一项所述的方法,其中,所述方法还包括:至少根据所述属性分量的属性系数,得到所述属性分量的属性重建值;其中,所述属性分量的属性系数为以下之一:第一属性系数、第三属性系数、第五属性系数、第六属性系数、第八属性系数、第九属性系数、第十属性系数、第十一属性系数、第十二属性系数。
- 根据权利要求1至19任一项所述的方法,其中,所述至少两个第一属性分量包括U分量和V分量,所述第二属性分量包括Y分量;或者,所述至少两个第一属性分量包括G分量和B分量,所述第二属性分量包括R分量。
- 一种编码方法,所述方法应用于编码器,所述方法包括:编码第一标志位至点云码流;其中,所述第一标志位用于表示当前点的至少两个第一属性分量的属性系数是否均为第一数值;当所述至少两个第一属性分量的属性系数均为第一数值时,编码所述当前点的第二属性分量的第二属性系数至点云码流;其中,所述第二属性系数等于所述第二属性分量的第一属性系数减1;所述第二属性分量与所述至少两个第一属性分量不同。
- 根据权利要求24所述的方法,其中,编码第一参数至点云码流;当每一属性分量均为第一数值的点数等于第一数值时,编码所述第一标志位至点云码流。
- 根据权利要求25所述的方法,其中,所述第一参数用于表示每一属性系数均为第一数值的连续点的个数。
- 根据权利要求25所述的方法,其中,所述第一参数用于表示每一属性系数均为第一数值的连续组的个数。
- 根据权利要求24所述的方法,其中,利用第一上下文编码所述第一标志位。
- 根据权利要求24所述的方法,其中,利用第二上下文编码所述第二属性系数。
- 根据权利要求24所述的方法,其中,所述方法还包括:当所述至少两个第一属性分量的属性系数中的至少之一不为所述第一数值时,编码第二标志位至点云码流;其中,所述第二标志位用于表示所述至少两个第一属性分量中的至少一个第一属性分量的属性系数是否为所述第一数值。
- 根据权利要求30所述的方法,其中,所述方法还包括:当所述至少一个第一属性分量的属性系数为所述第一数值时,编码所述至少两个第一属性分量中不同于所述至少一个第一属性分量的第一属性分量的第四属性系数至点云码流;其中,所述第四属性系数等于所述不同于所述至少一个第一属性分量的第一属性分量的第三属性系数减1。
- 根据权利要求30所述的方法,其中,所述方法还包括:当所述至少一个第一属性分量的属性系数为所述第一数值时,编码所述第二属性分量的第五属性系数至点云码流。
- 根据权利要求31所述的方法,其中,利用第三上下文编码所述第四属性系数。
- 根据权利要求31所述的方法,其中,利用所述第三属性系数或所述第四属性系数,选取第四上下文;利用所述第四上下文编码所述第五属性系数。
- 根据权利要求31所述的方法,其中,所述方法还包括:当所述至少一个第一属性分量的属性系数不为第一数值时,编码所述至少一个第一属性分量的第七属性系数至点云码流;其中,所述第七属性系数等于所述至少一个第一属性分量的第六属性系数减1。
- 根据权利要求35所述的方法,其中,所述方法还包括:当所述至少一个第一属性分量的属性系数不为第一数值时,编码所述至少两个第一属性分量中不同于所述至少一个第一属性分量的第一属性分量的第八属性系数至点云码流。
- 根据权利要求36所述的方法,其中,所述方法还包括:当所述至少一个第一属性分量的属性系数不为第一数值时,编码所述第二属性分量的第九属性系数至点云码流。
- 根据权利要求35所述的方法,其中,利用第五上下文编码所述至少一个第一属性分量的第七属性系数。
- 根据权利要求36所述的方法,其中,利用所述第六属性系数或所述第七属性系数,选取第六上下文;利用所述第六上下文编码所述不同于所述至少一个第一属性分量的第一属性分量的第八属性系数。
- 根据权利要求37所述的方法,其中,利用所述第六属性系数或所述第七属性系数中的之一,和/或所述第八属性系数,选取第七上下文;利用所述第七上下文编码所述第二属性分量的第九属性系数。
- 根据权利要求24所述的方法,其中,所述方法还包括:当所述至少两个第一属性分量的属性系数中的至少之一不为所述第一数值时,编码所述至少两个第一属性分量中的至少一个第一属性分量的第十属性系数至点云码流;利用所述第十属性系数编码所述至少两个第一属性分量中不同于所述至少一个第一属性分量的第一属性分量的第十一属性系数至点云码流;利用所述第十属性系数和所述第十一属性系数编码所述第二属性分量的第十二属性系数至点云码流。
- 根据权利要求41所述的方法,其中,利用第八上下文编码所述第十属性系数;利用所述第十属性系数,选取第九上下文;利用所述第九上下文编码所述第十一属性系数;利用所述第十属性系数和/或所述第十一属性系数,选取第十上下文;利用所述第十上下文编码所述第十二属性系数。
- 根据权利要求24至42任一项所述的方法,其中,所述方法还包括:当任一所述属性分量的属性系数最终值不为第一数值时,编码所述任一所述属性分量的属性系 数最终值的符号;所述符号用于表示对应的属性系数最终值是正数还是负数。
- 根据权利要求24至42任一项所述的方法,其中,所述第一数值等于0。
- 根据权利要求24至42任一项所述的方法,其中,第一属性系数、第三属性系数、第五属性系数、第六属性系数、第八属性系数、第九属性系数、第十属性系数、第十一属性系数和第十二属性系数均是根据Pred、Predlift、RAHT、Predtrans-资源受限、Predtrans-资源不受限和Trans方法中之一确定的。
- 根据权利要求24至42任一项所述的方法,其中,所述方法还包括:至少根据所述属性分量的属性系数,得到所述属性分量的属性重建值;其中,所述属性分量的属性系数为以下之一:第一属性系数、第三属性系数、第五属性系数、第六属性系数、第八属性系数、第九属性系数、第十属性系数、第十一属性系数、第十二属性系数。
- 根据权利要求24至42任一项所述的方法,其中,所述至少两个第一属性分量包括U分量和V分量,所述第二属性分量包括Y分量;或者,所述至少两个第一属性分量包括G分量和B分量,所述第二属性分量包括R分量。
- 一种解码装置,应用于解码器,所述装置包括:解码模块,配置为解码点云码流,得到第一标志位;其中,所述第一标志位用于表示当前点的至少两个第一属性分量的属性系数是否均为第一数值;第一确定模块,配置为当所述第一标志位表示所述至少两个第一属性分量的属性系数均为第一数值时,确定所述当前点的第二属性分量的第一属性系数等于第二属性分量的第二属性系数加1;其中,所述第二属性分量的第二属性系数是从点云码流中解析得到的;所述第二属性分量与所述至少两个第一属性分量不同。
- 一种解码器,包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如权利要求1至22任一项所述的方法。
- 一种编码装置,应用于编码器,所述装置包括:编码模块,配置为编码第一标志位至点云码流;其中,所述第一标志位用于表示当前点的至少两个第一属性分量的属性系数是否均为第一数值;第二确定模块,配置为当所述至少两个第一属性分量的属性系数均为第一数值时,编码所述当前点的第二属性分量的第二属性系数至点云码流;其中,所述第二属性系数等于所述第二属性分量的第一属性系数减1;所述第二属性分量与所述至少两个第一属性分量不同。
- 一种编码器,包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如权利要求24至47任一项所述的方法。
- 一种点云码流,所述点云码流是通过权利要求24至47任一项所述的编码方法而生成的。
- 一种电子设备,包括:处理器,适于执行计算机程序;计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至23中任一项所述的解码方法,或者所述计算机程序被所述处理器执行时,实现如权利要求24至47中任一项所述的编码方法。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至23任一项所述的解码方法、或者实现如权利要求24至47任一项所述的编码方法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/126027 WO2024082152A1 (zh) | 2022-10-18 | 2022-10-18 | 编解码方法及装置、编解码器、码流、设备、存储介质 |
| CN202280099717.9A CN119790659A (zh) | 2022-10-18 | 2022-10-18 | 编解码方法及装置、编解码器、码流、设备、存储介质 |
| TW112138484A TW202425637A (zh) | 2022-10-18 | 2023-10-06 | 編解碼方法及裝置、編解碼器、碼流、設備、儲存媒介 |
| US19/176,406 US20250238965A1 (en) | 2022-10-18 | 2025-04-11 | Coding method and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/126027 WO2024082152A1 (zh) | 2022-10-18 | 2022-10-18 | 编解码方法及装置、编解码器、码流、设备、存储介质 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US19/176,406 Continuation US20250238965A1 (en) | 2022-10-18 | 2025-04-11 | Coding method and storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024082152A1 true WO2024082152A1 (zh) | 2024-04-25 |
Family
ID=90736636
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/126027 Ceased WO2024082152A1 (zh) | 2022-10-18 | 2022-10-18 | 编解码方法及装置、编解码器、码流、设备、存储介质 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20250238965A1 (zh) |
| CN (1) | CN119790659A (zh) |
| TW (1) | TW202425637A (zh) |
| WO (1) | WO2024082152A1 (zh) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210006765A1 (en) * | 2019-07-05 | 2021-01-07 | Tencent America LLC | Method and apparatus for inter-channel prediction and transform for point-cloud attribute coding |
| US20210006837A1 (en) * | 2019-07-05 | 2021-01-07 | Tencent America LLC | Techniques and apparatus for scalable lifting for point-cloud attribute coding |
| CN112334949A (zh) * | 2018-10-09 | 2021-02-05 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
| CN113228108A (zh) * | 2018-12-26 | 2021-08-06 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 |
| CN113852829A (zh) * | 2021-09-01 | 2021-12-28 | 腾讯科技(深圳)有限公司 | 点云媒体文件的封装与解封装方法、装置及存储介质 |
| CN114424568A (zh) * | 2019-09-30 | 2022-04-29 | Oppo广东移动通信有限公司 | 预测方法、编码器、解码器及计算机存储介质 |
-
2022
- 2022-10-18 WO PCT/CN2022/126027 patent/WO2024082152A1/zh not_active Ceased
- 2022-10-18 CN CN202280099717.9A patent/CN119790659A/zh active Pending
-
2023
- 2023-10-06 TW TW112138484A patent/TW202425637A/zh unknown
-
2025
- 2025-04-11 US US19/176,406 patent/US20250238965A1/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112334949A (zh) * | 2018-10-09 | 2021-02-05 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
| CN113228108A (zh) * | 2018-12-26 | 2021-08-06 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 |
| US20210006765A1 (en) * | 2019-07-05 | 2021-01-07 | Tencent America LLC | Method and apparatus for inter-channel prediction and transform for point-cloud attribute coding |
| US20210006837A1 (en) * | 2019-07-05 | 2021-01-07 | Tencent America LLC | Techniques and apparatus for scalable lifting for point-cloud attribute coding |
| CN114424568A (zh) * | 2019-09-30 | 2022-04-29 | Oppo广东移动通信有限公司 | 预测方法、编码器、解码器及计算机存储介质 |
| CN113852829A (zh) * | 2021-09-01 | 2021-12-28 | 腾讯科技(深圳)有限公司 | 点云媒体文件的封装与解封装方法、装置及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250238965A1 (en) | 2025-07-24 |
| TW202425637A (zh) | 2024-06-16 |
| CN119790659A (zh) | 2025-04-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2022141461A1 (zh) | 点云编解码方法、编码器、解码器以及计算机存储介质 | |
| WO2024174086A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
| WO2024082152A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
| WO2024168613A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
| WO2024065269A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
| WO2024103304A1 (zh) | 点云编解码方法、编码器、解码器、码流及存储介质 | |
| WO2024187380A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024174092A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024216493A1 (zh) | 点云编解码方法、编码器、解码器、码流及存储介质 | |
| TW202431856A (zh) | 編解碼方法、碼流、編碼器、解碼器以及儲存媒介 | |
| WO2025039122A1 (zh) | 点云编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024207235A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| TW202431857A (zh) | 編解碼方法、碼流、編碼器、解碼器以及儲存媒介 | |
| WO2025039236A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025213480A1 (zh) | 编解码方法及装置、点云编解码器、码流、设备、存储介质 | |
| WO2025076659A1 (zh) | 点云编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025138196A1 (zh) | 编解码方法、点云编解码器、码流以及存储介质 | |
| WO2025039125A1 (zh) | 编解码方法、编解码器以及存储介质 | |
| WO2024148598A1 (zh) | 编解码方法、编码器、解码器以及存储介质 | |
| WO2025213421A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025148027A1 (zh) | 编解码方法及装置、点云编解码器、码流、设备、存储介质 | |
| WO2025138048A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024011472A1 (zh) | 点云编解码方法、编解码器及计算机存储介质 | |
| WO2025039113A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025039127A1 (zh) | 编解码方法、编解码器以及存储介质 |
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: 22962343 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202280099717.9 Country of ref document: CN |
|
| WWP | Wipo information: published in national office |
Ref document number: 202280099717.9 Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22962343 Country of ref document: EP Kind code of ref document: A1 |