Point cloud encoding and decoding method, encoder, decoder, code stream and storage medium
Patent Information
- Application Number
- CN202380078357.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-11-16
- Filing Date
- 2023-01-09
- Publication Date
- 2025-07-08
AI Technical Summary
Existing point cloud encoding/decoding methods fail to fully utilize the correlation between attribute coefficients, resulting in the inability to introduce multiple adaptive context modes and reducing the encoding and decoding performance of point cloud attributes.
By determining the index value to indicate the context, and utilizing the correlation between the already encoded/decoded attribute coefficients, different adaptive contexts can be selected for encoding and decoding, thereby improving the encoding and decoding performance of point cloud attributes.
Without increasing time complexity, the performance of point cloud encoding and decoding was improved, achieving stable performance gains.
Smart Images

Figure CN120283402A_ABST
Abstract
Description
Point cloud encoding and decoding method, encoder, decoder, code stream and storage medium
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is based on the international patent application with application number PCT / CN2022 / 132330 and application date of November 16, 2022, and claims the priority of the international patent application. The entire content of the international patent application is hereby incorporated into this application by reference. Technical Field
[0003] The embodiments of the present application relate to the field of point cloud compression technology, and in particular to a point cloud encoding and decoding method, encoder, decoder, code stream and storage medium. Background Art
[0004] In the Geometry-based Point Cloud Compression (G-PCC) or Video-based Point Cloud Compression (V-PCC) codec frameworks provided by the Moving Picture Experts Group (MPEG), the geometric and attribute information of a point cloud are encoded separately. After geometric encoding, the geometric information is reconstructed, and the encoding of the attribute information depends on the reconstructed geometric information. Attribute information encoding primarily involves encoding color information, converting it into a YUV color space that better matches the visual characteristics of the human eye. Attribute encoding is then performed on the preprocessed attribute information, ultimately generating a binary attribute code stream.
[0005] However, in the current process of encoding / decoding attribute coefficient values, full use of the correlation between the encoded / decoded attribute coefficients to adaptively select different contexts for encoding and decoding is not considered. Therefore, it is impossible to introduce multiple different adaptive context modes, which in turn reduces the encoding and decoding performance of point cloud attributes.
[0006] Summary of the Invention
[0007] The embodiments of the present application provide a point cloud encoding and decoding method, encoder, decoder, code stream and storage medium, which can improve the encoding and decoding performance of point cloud attributes.
[0008] In a first aspect, an embodiment of the present application provides a point cloud decoding method, applied to a decoder, the method comprising:
[0009] Determine the index value;
[0010] Determine a decoding coefficient of a current point according to the context indicated by the index value;
[0011] The attribute coefficient of the current point is determined according to the decoded coefficient.
[0012] In a second aspect, an embodiment of the present application provides a point cloud encoding method, applied to an encoder, the method comprising:
[0013] Determine the index value;
[0014] Determine a coding coefficient of a current point according to the context indicated by the index value;
[0015] The attribute coefficient of the current point is determined according to the encoding coefficient.
[0016] In a third aspect, an embodiment of the present application provides an encoder, comprising a first determining unit, wherein:
[0017] The first determining unit is configured to determine an index value; determine a coding coefficient of a current point according to a context indicated by the index value; and determine an attribute coefficient of the current point according to the coding coefficient.
[0018] In a fourth aspect, an embodiment of the present application provides an encoder, comprising a first memory and a first processor; wherein,
[0019] The first memory is used to store a computer program that can be run on the first processor;
[0020] The first processor is configured to execute the point cloud encoding method described above when running the computer program.
[0021] In a fifth aspect, an embodiment of the present application provides a decoder, wherein the decoder includes a second determining unit, wherein:
[0022] The second determining unit is configured to determine an index value; determine a coding coefficient of a current point according to a context indicated by the index value; and determine an attribute coefficient of the current point according to the decoding coefficient.
[0023] In a sixth aspect, an embodiment of the present application provides a decoder, comprising a second memory and a second processor; wherein:
[0024] The second memory is used to store a computer program that can be run on the second processor;
[0025] The second processor is configured to execute the point cloud decoding method described above when running the computer program.
[0026] In the seventh aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding based on the information to be encoded; wherein, the information to be encoded includes at least: adaptive context identification information of the current point, geometric information of the current point, and the zero run value corresponding to the current point.
[0027] In an eighth aspect, an embodiment of the present application provides a computer storage medium, wherein the computer storage medium stores a computer program, and when the computer program is executed by a first processor, it implements the point cloud encoding method as described above, or, when executed by a second processor, it implements the point cloud decoding method as described above.
[0028] The embodiment of the present application provides a point cloud encoding and decoding method, an encoder, a decoder, a code stream and a storage medium, wherein the decoder determines an index value; determines a decoding coefficient of the current point based on the context indicated by the index value; and determines an attribute coefficient of the current point based on the decoding coefficient. The encoder determines an index value; determines an encoding coefficient of the current point based on the context indicated by the index value; and determines an attribute coefficient of the current point based on the decoding coefficient. That is, in the embodiment of the present application, when using the context to determine the attribute coefficient, the correlation between the already encoded / decoded attribute coefficients and the related parameters can be fully utilized to adaptively select different contexts for encoding and decoding, thereby being able to introduce a variety of different adaptive context modes, and no longer being limited to using a fixed context for encoding and decoding attribute information, thereby improving the encoding and decoding performance of point cloud attributes. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] FIG1A is a schematic diagram of a three-dimensional point cloud image provided in an embodiment of the present application;
[0030] FIG1B is a partially enlarged schematic diagram of a three-dimensional point cloud image provided in an embodiment of the present application;
[0031] FIG2A is a schematic diagram of a point cloud image at different viewing angles provided by an embodiment of the present application;
[0032] FIG2B is a schematic diagram of a data storage format corresponding to FIG2A provided in an embodiment of the present application;
[0033] FIG3 is a schematic diagram of a network architecture of point cloud encoding and decoding provided by an embodiment of the present application;
[0034] FIG4 is a schematic diagram of the structure of a point cloud encoder provided in an embodiment of the present application;
[0035] FIG5 is a schematic diagram of the structure of a point cloud decoder provided in an embodiment of the present application;
[0036] FIG6 shows a schematic diagram of a composition framework of a point cloud encoder;
[0037] FIG7 shows a schematic diagram of a point cloud decoder structure;
[0038] FIG8 is a schematic diagram of an implementation flow of a point cloud decoding method proposed in an embodiment of the present application;
[0039] FIG9 is a schematic diagram of an implementation flow of a point cloud encoding method proposed in an embodiment of the present application;
[0040] FIG10 is a schematic diagram of the structure of the encoder;
[0041] FIG11 is a second schematic diagram of the structure of the encoder;
[0042] FIG12 is a schematic diagram of the structure of the decoder;
[0043] FIG13 is a second schematic diagram of the structure of the decoder. DETAILED DESCRIPTION
[0044] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
[0045] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0046] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0047] It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with 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.
[0048] Point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0049] 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 1A shows a three-dimensional point cloud image and Figure 1B shows a partially enlarged view of the three-dimensional point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.
[0050] In a two-dimensional image, each pixel contains information and is distributed regularly, so there's no need to record its location. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so recording the location of each point in space is necessary to fully represent the point cloud. Similar to a two-dimensional image, each location in the acquisition process has corresponding attribute information, typically an RGB color value, which reflects the object's color. For a point cloud, in addition to color information, each point's corresponding attribute information often includes a reflectance value, which reflects the surface texture of the object. Therefore, a point in a point cloud can include both its location information and its attribute information. For example, the location information of a point can be its three-dimensional coordinates (x, y, z). The location information of a point can also be referred to as its geometric information. For example, the attribute information of a point can include color information (three-dimensional color information) and / or reflectance (one-dimensional reflectance information r). For example, the color information can be information in any color space. For example, the color information can be RGB information, where R represents red (Red), G represents green (Green), and B represents blue (Blue). For another example, the color information may be luminance and chrominance (YCbCr, YUV) information, where Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
[0051] For example, a point cloud generated using laser measurement principles can include both its 3D coordinate information and its reflectivity. For another example, a point cloud generated using photogrammetry principles can include both its 3D coordinate information and its 3D color information. For another example, a point cloud generated using a combination of laser measurement and photogrammetry principles can include both its 3D coordinate information, its reflectivity value, and its 3D color information.
[0052] Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles of the point cloud image, while Figure 2B consists of a file header and data. The header includes the data format, data representation type, the total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud is in ".ply" format, represented by ASCII code, with a total of 207,242 points. Each point has 3D coordinate information (x, y, z) and 3D color information (r, g, b).
[0053] Point clouds can be divided into the following categories according to the acquisition method:
[0054] Static point cloud: the object is stationary and the device that acquires the point cloud is also stationary;
[0055] Dynamic point cloud: The object is moving, but the device that obtains the point cloud is stationary;
[0056] Dynamic point cloud acquisition: The device used to acquire the point cloud is in motion.
[0057] For example, point clouds can be divided into two categories according to their usage:
[0058] Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
[0059] Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0060] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Moreover, since point clouds are obtained by directly sampling real objects, they 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.
[0061] Point clouds are primarily collected through computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can obtain point clouds of static real-world 3D objects or scenes, generating millions of point clouds per second; and 3D photogrammetry can obtain point clouds of dynamic real-world 3D objects or scenes, generating tens of millions of point clouds per second. These technologies reduce the cost and time required to acquire point cloud data while improving data accuracy. While changes in point cloud data acquisition methods have made it possible to acquire large amounts of point cloud data, the processing of this massive amount of 3D point cloud data is facing bottlenecks due to storage space and transmission bandwidth constraints, as application demands grow.
[0062] For example, taking a point cloud video with a frame rate of 30 frames per second (fps), each frame contains 700,000 points, and each point has coordinate information (xyz, float) and color information (RGB, uchar). The data volume of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 seconds = 3.15 GB. A 1280 × 720 2D video with a frame rate of 24 fps has a data volume of approximately 1280 × 720 × 12 bits × 24 fps × 10 seconds = 0.33 GB. A 10-second two-view 3D video has a data volume of approximately 0.33 × 2 = 0.66 GB. This shows that the data volume of a point cloud video far exceeds that of 2D and 3D videos of the same length. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.
[0063] That is to say, since the point cloud is a collection of massive points, storing the point cloud not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of the point cloud at the network layer without compression. Therefore, the point cloud needs to be compressed.
[0064] Currently, point cloud coding frameworks that can compress point clouds can include the Geometry-based Point Cloud Compression (G-PCC) codec framework or the Video-based Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by AVS. The G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, while the V-PCC codec framework can be used to compress the second type of dynamic point clouds.
[0065] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a point cloud decoding method and a point cloud encoding method. FIG3 is a schematic diagram of a network architecture of a point cloud encoding and decoding provided by an embodiment of the present application. As shown in FIG3 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
[0066] Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
[0067] The following describes point cloud compression technology using the encoding and decoding framework as an example.
[0068] As you can understand, point cloud compression generally uses a method that compresses point cloud geometry and attribute information separately. On the encoding side, the point cloud geometry is first encoded in the geometry encoder, and the reconstructed geometry is then input as additional information into the attribute encoder to assist in compressing the point cloud attributes. On the decoding side, the point cloud geometry is first decoded in the geometry decoder, and the decoded geometry is then input as additional information into the attribute decoder to assist in compressing the point cloud attributes. The entire codec consists of pre-processing / post-processing, geometry encoding / decoding, and attribute encoding / decoding.
[0069] The present embodiment provides a point cloud encoder. As shown in FIG4 , which is a reference framework for point cloud compression, the point cloud encoder 11 includes a geometry encoder (coordinate translation unit 111 ), a coordinate quantization unit 112 , an octree construction unit 113 , a geometry entropy encoder 114 , and a geometry reconstruction unit 115 . An attribute encoder (attribute recoloring unit 116 , a color space conversion unit 117 , a first attribute prediction unit 118 , a quantization unit 119 , and an attribute entropy encoder 1110 ) is also provided.
[0070] In the geometric coding part of the encoding end, the original geometric information is first preprocessed, and the geometric origin is normalized to the minimum position in the point cloud space through the coordinate translation unit 111. The geometric information is converted from floating point numbers to integers through the coordinate quantization unit 112 to facilitate subsequent regularization processing; then the regularized geometric information is geometrically encoded, and the octree structure is used in the octree construction unit 113 to recursively divide the point cloud space, each time dividing the current node into eight sub-blocks of the same size, and judging the occupancy codeword of each sub-block. When the sub-block does not contain a point, it is recorded as empty, otherwise it is recorded as non-empty. The occupancy codeword information of all blocks is recorded in the last layer of the recursive division, and geometric encoding is performed; the geometric information expressed by the octree structure is input into the geometric entropy encoder 114 to form a geometric code stream on the one hand, and is geometrically reconstructed in the geometric reconstruction unit 115 on the other hand. The reconstructed geometric information is input into the attribute encoder as additional information.
[0071] In the attribute encoding part, the original attribute information is first preprocessed. Since the geometric information changes after geometric encoding, the attribute value is reassigned to each point after geometric encoding through the attribute recoloring unit 116 to achieve attribute recoloring. In addition, if the processed attribute information is color information, the original color information needs to be transformed into a YUV color space that is more in line with the visual characteristics of the human eye through the color space conversion unit 117; then, the preprocessed attribute information is attribute encoded through the first attribute prediction unit 118. Attribute encoding first requires reordering the point cloud. The reordering method is Morton code, so the traversal order of attribute encoding is Morton order. The attribute prediction method is a single-point prediction based on the Morton order, that is, according to the Morton order, the current point to be encoded (current node) is traced back one point, and the node found is the prediction reference point of the current point to be encoded. Then, the attribute reconstruction value of the prediction reference point is used as the attribute prediction value, and the attribute residual value is the difference between the attribute original value and the attribute prediction value of the current point to be encoded; finally, the attribute residual value is quantized by the quantization unit 119, and the quantized residual information is input into the attribute entropy encoder 1110 to form an attribute code stream.
[0072] The present application also provides a point cloud decoder. FIG5 is a schematic diagram of the structure of a point cloud decoder provided in the present application. FIG5 shows a reference framework for point cloud compression. The point cloud decoder 12 includes a geometric decoder: a geometric entropy decoder 121, an octree reconstruction unit 122, a coordinate inverse quantization unit 123, and a coordinate inverse translation unit 124. An attribute decoder: an attribute entropy decoder 125, an inverse quantization unit 126, a second attribute prediction unit 127, and a color space inverse transformation unit 128.
[0073] On the decoding side, the same method of separate geometry and attribute decoding is used. In the geometry decoding part, the geometry bitstream is first entropy decoded by the geometry entropy decoder 121 to obtain the geometric information of each node. Then, the octree structure is constructed by the octree reconstruction unit 122 in the same manner as the geometry encoding. Combined with the decoded geometry, the coordinate-transformed geometric information expressed by the octree structure is reconstructed. On the one hand, this information is dequantized by the coordinate dequantization unit 123 and detranslated by the coordinate detranslation unit 124 to obtain the decoded geometric information. On the other hand, it is input into the attribute decoder as additional information. In the attribute decoding part, the Morton order is constructed in the same way as the encoding end. The attribute code stream is first entropy decoded by the attribute entropy decoder 125 to obtain the quantized residual information; then, it is dequantized by the dequantization unit 126 to obtain the attribute residual value; similarly, in the same way as the attribute encoding, the attribute prediction value of the current point to be decoded is obtained by the second attribute prediction unit 127, and then the attribute prediction value is added to the attribute residual value to restore the attribute reconstruction value of the current point to be decoded (for example, the YUV attribute value); finally, the decoded attribute information is obtained by color space inverse transformation by the color space inverse transformation unit 128.
[0074] It can also be understood that the encoding and decoding framework can be divided into Pred-based, Predtrans-resource-constrained, Predtrans-resource-unlimited, and Trans-based.
[0075] There are 4 general test conditions, which can include:
[0076] Condition 1: The geometric position is limited and the attributes are lost;
[0077] Condition 2: Geometric position lossless, attribute lossy;
[0078] Condition 3: Geometric position lossless, attribute loss limited;
[0079] Condition 4: Geometric position and attributes are lossless.
[0080] There are four technical routes, which are distinguished by the algorithms used for attribute compression.
[0081] Technical Route 1: Pred (prediction) branch, attribute compression uses an intra-frame prediction-based method:
[0082] At the encoding end, the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order, the Hilbert order, etc.). First, the prediction algorithm is used to obtain the attribute prediction value. The attribute residual is obtained based on the attribute value and the attribute prediction value. Then, the attribute residual is quantized to generate the quantized residual. Finally, the quantized residual is encoded.
[0083] At the decoding end, the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.). First, the prediction algorithm is used to obtain the attribute prediction value, 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.
[0084] Technical Route 2: Based on Predtrans-Resource Constraints (based on the prediction transform branch - resource constraints), attribute compression uses a method based on intra-frame prediction and k-ary discrete cosine transform (DCT). When encoding the quantized transform coefficients, there is a maximum point number X (such as 4096), that is, at most every X points can be encoded as a group:
[0085] At the encoding end, the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.). First, the entire point cloud is divided into several small groups with a maximum length of Y (such as 2). These small groups are then combined into several large groups (the number of points in each large group does not exceed X, such as 4096). Then, a prediction algorithm is used to obtain attribute prediction values. Based on the attribute values and attribute prediction values, attribute residuals are obtained. The attribute residuals are transformed by DCT in small groups to generate transform coefficients. The transform coefficients are then quantized to generate quantized transform coefficients. Finally, the quantized transform coefficients are encoded in large groups.
[0086] At the decoding end, the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.). First, the entire point cloud is divided into several small groups with a maximum length of Y (such as 2). Then these small groups are combined into several large groups (the number of points in each large group does not exceed X, 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 then dequantized and inversely transformed in small groups. Finally, the attribute reconstruction value is obtained based on the attribute prediction value and the dequantized and inversely transformed coefficients.
[0087] Technical Route 3: Based on Predtrans-Resource Unlimited (based on the prediction transform branch - resource unlimited), attribute compression uses a method based on intra-frame prediction and DCT transform. When encoding the quantized transform coefficients, there is no limit on the maximum number of points X, that is, all coefficients are encoded together:
[0088] At the encoding end, the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.). First, the entire point cloud is divided into several small groups with a maximum length of Y (such as 2). Then, a prediction algorithm is used to obtain attribute prediction values. Based on the attribute values and attribute prediction values, attribute residuals are obtained. The attribute residuals are transformed by DCT in groups to generate transformation coefficients. The transformation coefficients are then quantized to generate quantized transformation coefficients. Finally, the quantized transformation coefficients of the entire point cloud are encoded.
[0089] At the decoding end, the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.). First, the entire point cloud is divided into several small groups with a maximum length of Y (such as 2). The quantized transformation coefficients of the entire point cloud are obtained by decoding, and then the prediction algorithm is used to obtain the attribute prediction value. The quantized transformation coefficients are then dequantized and inversely transformed in groups. Finally, the attribute reconstruction value is obtained based on the attribute prediction value and the dequantized and inversely transformed coefficients.
[0090] Technical Route 4: Based on the Trans branch (multi-layer transform branch), attribute compression adopts a method based on multi-layer wavelet transform:
[0091] At the encoding end, the entire point cloud is subjected to multi-layer wavelet transform to generate transform coefficients, which are then quantized to generate quantized transform coefficients. Finally, the quantized transform coefficients of the entire point cloud are encoded.
[0092] At the decoding end, 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.
[0093] In technical route 1, the coefficients may be quantized residuals, and in the above embodiments 2, 3, and 4, the coefficients may be quantized transform coefficients.
[0094] It can be seen that, for the encoding / decoding end, there is no solution involving adaptively selecting a context mode for encoding and decoding.
[0095] The following describes point cloud compression technology using the attribute encoding and decoding framework as an example.
[0096] In the point cloud encoder framework, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately. The current reference attribute encoding framework can be divided into Pred branch, PredLift branch, and RAHT branch.
[0097] Figure 6 shows a schematic diagram of the structure of a point cloud encoder. As shown in Figure 6, during the geometry encoding process, the geometric information is transformed so that the entire point cloud is contained within a bounding box. Quantization is then performed. This quantization step primarily serves a scaling purpose. Due to quantization rounding, the geometric information of some point clouds becomes identical. Parameters are then used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. The bounding box is then partitioned into an octree or a prediction tree is constructed. During this process, arithmetic coding is performed on the points in the leaf nodes of the partition to generate a binary geometry bitstream. Alternatively, arithmetic coding is performed on the intersection points (vertices) generated by the partition (surface fitting is performed based on the intersection points) to generate a binary geometry bitstream. During the attribute encoding process, after the geometry encoding is completed and the geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometry information is then used to recolor the point cloud so that the unencoded attribute information corresponds to the reconstructed geometry information. Attribute encoding is mainly performed on color information. In the color information encoding process, there are two main transformation methods. One is the distance-based lifting transformation that relies on the level of detail (LOD) division, and the other is the direct region adaptive hierarchical transformation (RAHT). Both methods convert color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients. Then, the quantized coefficients are arithmetically encoded to generate a binary attribute bit stream.
[0098] Figure 7 shows a schematic diagram of the composition framework of a point cloud decoder. As shown in Figure 7, for the acquired binary bit stream, the geometric bit stream and attribute bit stream in the binary bit stream are first decoded independently. When decoding the geometric bit stream, the geometric 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; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-dequantization-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 geometric information and attribute information.
[0099] It should be noted that, as shown in FIG6 or FIG7, the current point cloud geometry encoding and decoding can be divided into octree-based geometry encoding and decoding (marked with a dotted box) and prediction tree-based geometry encoding and decoding (marked with a dotted box).
[0100] There are 4 general test conditions, which can include:
[0101] Condition 1: Geometric position lossless, attribute lossy;
[0102] Condition 2: Geometric position loss and attribute loss;
[0103] Condition 3: Geometric position and attributes are lossless;
[0104] Condition 4: Geometric position is lossless, and attributes are lossy to a limited extent.
[0105] There are three technical routes, which are distinguished by the algorithms used for attribute compression.
[0106] Technical Route 1: Pred branch (only for conditions 3 and 4):
[0107] At the encoding end, the attribute residual coefficients are obtained using the Pred prediction method, and entropy coding is performed on the attribute residual coefficients;
[0108] At the decoding end, entropy decoding obtains the attribute residual coefficients, and the original values are restored using the Pred prediction method.
[0109] Technical Route 2: Predlift Branch (only for conditions 1 and 2):
[0110] At the encoding end, the attribute transformation coefficients are obtained using the Predlift method and entropy coding is performed on the attribute transformation coefficients;
[0111] At the decoding end, entropy decoding obtains the attribute transformation coefficients, and the Predlift transformation method is used to restore the original values.
[0112] Technical Route 3: RAHT Branch (only for conditions 1 and 2):
[0113] At the encoding end, the attribute transformation coefficients are obtained using the RAHT method and entropy coding is performed on the attribute transformation coefficients;
[0114] At the decoding end, entropy decoding is used to obtain the attribute transformation coefficients, and the RAHT method is used to restore the original values.
[0115] For the attribute residual coefficients (attribute residual coefficients generated by pred encoding) or attribute transformation coefficients (attribute transformation coefficients generated by predlift encoding or raht) generated by the above technical route, attribute entropy encoding and decoding are performed.
[0116] For the above-mentioned point cloud attribute compression algorithm, when encoding and decoding the generated attribute residuals / transformation coefficients, the encoding / decoding end only adopts a relatively fixed and simple context selection method to complete the encoding and decoding of the attribute coefficients.
[0117] That is to say, in the current process of encoding / decoding attribute coefficient values, full use of the correlation between the encoded / decoded attribute coefficients to adaptively select different contexts for encoding and decoding is not considered. Therefore, it is impossible to introduce multiple different adaptive context modes, which in turn reduces the encoding and decoding performance of point cloud attributes.
[0118] In order to solve the above problems, an embodiment of the present application provides a point cloud encoding and decoding method. When using context to determine attribute coefficients, it can make full use of the correlation between the encoded / decoded attribute coefficients and the relevant parameters to adaptively select different contexts for encoding and decoding, thereby introducing a variety of different adaptive context modes, and is no longer limited to using a fixed context for encoding and decoding attribute information, thereby improving the encoding and decoding performance of point cloud attributes.
[0119] The embodiments of the present application will be described in detail below with reference to the accompanying drawings.
[0120] An embodiment of the present application proposes a point cloud decoding method. FIG8 is a schematic diagram of an implementation flow of the point cloud decoding method proposed in the embodiment of the present application. As shown in FIG8 , the following steps may be included when decoding a point cloud:
[0121] Step 101: Determine the index value.
[0122] In the embodiment of the present application, the index value may be determined first.
[0123] It should be noted that the decoding method of the embodiment of the present application specifically refers to a point cloud decoding method, which can be applied to a point cloud decoder (also referred to as a "decoder").
[0124] It should be noted that in the embodiment of the present application, the point cloud to be processed includes at least one node. When decoding a node in the point cloud to be processed, it can be used as a node to be decoded in the point cloud to be processed, and there are multiple decoded nodes around the node. Here, the current node (current point) is the node to be decoded that currently needs to be decoded among the at least one node.
[0125] Furthermore, in an embodiment of the present application, for each node in the point cloud to be processed, it corresponds to a geometric information and an attribute information; wherein the geometric information represents the spatial relationship of the point, and the attribute information represents the relevant information of the attribute of the point.
[0126] Here, the attribute information may be color information, or reflectivity, or other attributes, which are not specifically limited in the embodiments of the present application. Specifically, when the attribute information is color information, it may be color information in any color space. For example, the attribute information may be color information in an RGB space, a YUV space, a YCbCr space, or the like, which are not specifically limited in the embodiments of the present application.
[0127] It should also be noted that in this embodiment of the present application, the decoder can arrange the at least one node according to a preset decoding order to determine the index number corresponding to each node. In this way, based on the index number corresponding to each node, the decoder can process each node in the point cloud to be processed according to the preset decoding order.
[0128] In some embodiments, the preset decoding order may be one of the following: original point cloud order, Morton order, Hilbert order, etc., which is not specifically limited in the embodiments of the present application.
[0129] Furthermore, in an embodiment of the present application, the index value may be used to determine the context used by the attribute coefficient of the current point. If the attribute information of the current point is color information, then different index values may be determined corresponding to different color components of the current point.
[0130] That is, in an embodiment of the present application, the index value may include at least one of a first index value, a second index value, and a third index value. The first index value, the second index value, and the third index value may respectively correspond to the three color components of the current point, that is, the first index value, the second index value, and the third index value may respectively be used to determine the first context, the second context, and the third context used by the attribute coefficients of the three color components of the current point.
[0131] For example, in an embodiment of the present application, assuming that the attribute coefficient of the current point is the attribute coefficient of the color component, then the first index value can be used to determine the first context used by the attribute coefficient of the R component of the current point, the second index value can be used to determine the second context used by the attribute coefficient of the G component of the current point, and the third index value can be used to determine the third context used by the attribute coefficient of the B component of the current point.
[0132] For example, in an embodiment of the present application, assuming that the attribute coefficient of the current point is the attribute coefficient of the color component, then the first index value can be used to determine the first context used by the attribute coefficient of the Y component of the current point, the second index value can be used to determine the second context used by the attribute coefficient of the U component of the current point, and the third index value can be used to determine the third context used by the attribute coefficient of the V component of the current point.
[0133] Therefore, in an embodiment of the present application, at least one of the first index value, the second index value, and the third index value of the current point may be determined first.
[0134] Furthermore, in an embodiment of the present application, when decoding the code stream, the adaptive context identification information of the current point can be determined first; if the adaptive context identification information indicates that the attribute coefficient of the current point is determined using the adaptive context, then the first index value, and / or the second index value, and / or the third index value determination process can be executed.
[0135] It should be noted that in the embodiments of this application, the adaptive context identification information can be understood as a flag indicating whether the adaptive context is used for a node in the point cloud. Specifically, when a decoder decodes the bitstream, it can determine a variable that serves as the adaptive context identification information, thereby determining the adaptive context identification information based on the value of this variable.
[0136] That is, in the embodiments of the present application, the method for determining the context used for the attribute coefficients of the current point is different depending on the value of the adaptive context identification information. In particular, whether to use the adaptive context to determine the attribute coefficients of some or all color components of the current point can be determined based on the adaptive context identification information.
[0137] It can be understood that in the embodiments of the present application, based on the value of the adaptive context identification information, when decoding the point cloud, you can choose to use the adaptive context to determine the attribute coefficient of the current point, or you can choose not to use the adaptive context to determine the attribute coefficient of the current point.
[0138] Exemplarily, in an embodiment of the present application, if the value of the adaptive context identification information is 1, then you can choose to use the adaptive context to determine the attribute coefficient of the current point; if the value of the adaptive context identification information is 0, then you can choose not to use the adaptive context to determine the attribute coefficient of the current point.
[0139] It should be noted that, in the embodiments of the present application, the value of the adaptive context identification information may also be set to other values or parameters, and the present application does not impose any limitation thereto.
[0140] It will be appreciated that in the embodiments of the present application, after determining the adaptive context identification information from the decoded bitstream, if the adaptive context identification information indicates that the adaptive context is to be used to determine the attribute coefficients of the current point, an index value for indicating the context may be further determined. That is, the index value determination process is performed after determining that the adaptive context identification information indicates that the adaptive context is to be used.
[0141] Of course, the adaptive context identification information determination process can also be omitted. That is, it can be preset whether to use the adaptive context to determine the attribute coefficients of the current point, or whether to use the adaptive context to determine the attribute coefficients of one or more color components among all color components of the current point. In other words, whether to use the adaptive context for some or all color components can be independently determined without relying on the value of the adaptive context identification information.
[0142] Furthermore, in an embodiment of the present application, since it is possible to determine whether to use the adaptive context to determine the attribute coefficients of part or all of the color components of the current point based on the adaptive context identification information, when determining the attribute coefficients of the current point, the adaptive context can be used for the attribute coefficients of part or all of the color components of the current point, or a pre-set context can be used for the attribute coefficients of part or all of the color components of the current point.
[0143] Furthermore, in an embodiment of the present application, when determining the index value of the current point, the geometric information of the current point and / or the zero-run value corresponding to the current point can be referred to. Therefore, the code stream can also be decoded to determine the geometric information of the current point and the zero-run value corresponding to the current point.
[0144] It should be noted that, in the embodiment of the present application, the geometric information of the current point may include the position coordinate information of the current point. For example, the geometric information of the current point may be the spatial coordinate information (x, y, z) corresponding to the current point.
[0145] It can be understood that in the embodiment of the present application, the zero run value corresponding to the current point may include the zero run value of the current point, or the previous zero run value of the current point, or the previous non-zero zero run value of the current point.
[0146] It should be noted that, in the embodiment of the present application, the zero run value run_length can be used to count whether the attribute coefficient is 0. Specifically, for the color attribute, if the zero run value run_length is not 0 (or greater than 0), it can be determined that the attribute coefficients of all color components of the current point are all 0; if the zero run value run_length is 0, it can be determined that the attribute coefficients of all color components of the current point are not all 0.
[0147] It is understood that in the embodiment of the present application, for the attribute coefficients of all color components of the current point, if the zero run value run_length indicates that the attribute coefficients of all color components of the current point are all 0, then there is no need to further determine the attribute coefficients. Instead, the zero run value can be first decremented by 1 to update the zero run value, and then the attribute coefficient of the next point is determined based on the zero run value. For the attribute coefficient of the next point, it is continued to be determined based on the zero run value run_length whether the attribute coefficients of all color components are all 0 to determine whether the attribute coefficients of all color components need to be determined.
[0148] Exemplarily, in an embodiment of the present application, if the zero-run value run_length of the current point determined by the decoded code stream is 3, which is greater than 0, then it can be determined that the attribute coefficients of all color components of the current point are all 0, so there is no need to decode the attribute coefficients of the current point, and you can choose to first decrement the zero-run value by 1, that is, perform the --run_length operation, and then determine the attribute coefficient of the next point based on the zero-run value. For the attribute coefficient of the next point, the corresponding zero-run value run_length is 2, which is greater than 0, then it can be determined that the attribute coefficients of all color components of the point are all 0, so there is no need to decode the attribute coefficients of all color components of the point, and continue to decrement the zero-run value by 1, that is, perform the --run_length operation.
[0149] Furthermore, in an embodiment of the present application, for an attribute coefficient of a color component of the current point, an index value may be first determined based on geometric information and / or a zero-run value.
[0150] Exemplarily, in an embodiment of the present application, the first index value corresponding to the first color component may be determined based on geometric information and / or a zero-run value.
[0151] Furthermore, in an embodiment of the present application, after determining the attribute coefficient of a color component of the current point, that is, after determining the first attribute coefficient, the index value can be determined based on at least one of the absolute value, geometric information and zero-run value of the first attribute coefficient.
[0152] Exemplarily, in an embodiment of the present application, the second index value corresponding to the second color component may be determined based on at least one of the absolute value of the first attribute coefficient, geometric information, and a zero-run value.
[0153] Furthermore, in an embodiment of the present application, after determining the attribute coefficients of the two color components of the current point, that is, after determining the first attribute coefficient and the second attribute coefficient, the index value can be determined based on the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information, and at least one of the zero-run value.
[0154] Exemplarily, in an embodiment of the present application, the third index value corresponding to the third color component may be determined based on at least one of the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information, and a zero-run value.
[0155] Furthermore, in an embodiment of the present application, when using the zero-run value corresponding to the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the zero-run value, you can choose to first perform addition or subtraction operations on the zero-run value and the first value to determine the first operation result; and then determine the index value based on the first operation result.
[0156] It should be noted that in the embodiments of the present application, the first value may be any value. For example, the first value may be 1 or 3, and the present application does not specifically limit this.
[0157] For example, in an embodiment of the present application, assuming that the zero-run value corresponding to the current point is 2 and the first numerical value is 1, when determining the index value based on the zero-run value, a subtraction operation can be performed on the zero-run value and the first numerical value to obtain a first operation result of 2-1=1, and then the index value can be determined based on the first operation result.
[0158] It is understood that in the embodiments of the present application, when determining the index value based on the first operation result, the first operation result can be selected as the index value, the absolute value of the first operation result can be selected as the index value, or the index value can be derived from the first operation result. This application does not impose any specific limitations.
[0159] Furthermore, in an embodiment of the present application, when using the zero-run value corresponding to the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the zero-run value, the zero-run value and the first numerical value can be first added or subtracted to determine the first operation result; then the first numerical range corresponding to the first operation result is determined; finally, the index value can be determined according to the first numerical range and the correspondence between the first preset index value and the numerical range.
[0160] It is understood that in the embodiment of the present application, the zero-run value corresponding to the current point may be an integer greater than or equal to 0, and after performing an addition or subtraction operation on the zero-run value and the first value, the first operation result obtained may be a value greater than, equal to, or less than 0. Therefore, the first numerical range corresponding to the first operation result may be any numerical range.
[0161] It should be noted that, in the embodiment of the present application, the correspondence between the first preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, the corresponding index value can be determined. For example, Table 1 shows the correspondence between the first preset index value and the numerical range. As shown in Table 1,
[0162] Table 1
[0163] Numerical range index value (-3, 0] 1 (0, 1] 2 (1, 2] 3 (2, 3] 4
[0164] For example, in an embodiment of the present application, assuming that the first operation result is 1, the first numerical range corresponding to the first operation result can be (0, 1], and accordingly, the index value determined based on the correspondence between the first preset index value and the numerical range is 2.
[0165] Furthermore, in an embodiment of the present application, when using the zero-run value corresponding to the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the zero-run value, the second numerical range corresponding to the zero-run value can be determined first; then the index value can be determined according to the second numerical range and the correspondence between the second preset index value and the numerical range.
[0166] It is understood that, in the embodiment of the present application, the zero-run value corresponding to the current point may be an integer greater than or equal to 0. Therefore, the second numerical range corresponding to the zero-run value may be a numerical range including integers greater than or equal to 0.
[0167] It should be noted that, in the embodiment of the present application, the correspondence between the second preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, the corresponding index value can be determined. For example, Table 2 shows the correspondence between the second preset index value and the numerical range. As shown in Table 2,
[0168] Table 2
[0169] Numerical range index value (0, 1] 1 (1, 3] 2 (3, 5] 3 (5, 7] 4
[0170] For example, in an embodiment of the present application, assuming that the zero-run value corresponding to the current point is 2, the first numerical range corresponding to the zero-run value can be (1, 3], and accordingly, the index value determined based on the correspondence between the second preset index value and the numerical range is 2.
[0171] Furthermore, in an embodiment of the present application, when using the geometric information of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the geometric information, you can choose to first determine the position range corresponding to the geometric information; then determine the index value according to the position range, and the correspondence between the preset position range and the index value.
[0172] It is understandable that, in the embodiments of the present application, since the geometric information of the current point may include the position coordinate information of the current point, which may include different spatial components, such as the x component, the y component, and the z component, when determining the position range using the geometric information of the current point, the range may be divided with reference to some or all of the different spatial components. For example, the position range corresponding to the geometric information of the current point may be determined only according to the x component, or the position range corresponding to the geometric information of the current point may be determined according to the y component and the z component, or the position range corresponding to the geometric information of the current point may be determined according to the x component, the y component, and the z component.
[0173] It should be noted that, in the embodiment of the present application, the correspondence between the preset position range and the index value can represent the mapping relationship between the position range and the index value. For different position ranges, corresponding index values can be determined. For example, Table 3 shows the correspondence between the preset position range and the index value, as shown in Table 3,
[0174] Table 3
[0175] Position range index value Position range 11 Position range 22 Position range 33 Position range 44
[0176] For example, in an embodiment of the present application, assuming that the geometric information of the current point is (x, y, z), the corresponding position range is position range 3, and accordingly, the index value determined based on the correspondence between the preset position range and the index value is 3.
[0177] Furthermore, in an embodiment of the present application, when using the absolute value of the first attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the first attribute coefficient, you can choose to directly set the absolute value of the first attribute coefficient as the index value.
[0178] Illustratively, in an embodiment of the present application, assuming that the absolute value of the first attribute coefficient is 2, the index value may be determined to be 2 based on the absolute value of the first attribute coefficient.
[0179] Furthermore, in an embodiment of the present application, when using the absolute value of the first attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the first attribute coefficient, you can choose to first determine the third numerical range corresponding to the absolute value of the first attribute coefficient; then determine the index value according to the third numerical range, and the correspondence between the third preset index value and the numerical range.
[0180] It is understood that in the embodiment of the present application, the absolute value of the first attribute coefficient may be an integer greater than or equal to 0. Therefore, the third numerical range corresponding to the absolute value of the first attribute coefficient may be a numerical range including an integer greater than or equal to 0.
[0181] It should be noted that, in the embodiment of the present application, the correspondence between the third preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, the corresponding index value can be determined. For example, Table 4 shows the correspondence between the third preset index value and the numerical range. As shown in Table 4,
[0182] Table 4
[0183] Numerical range index value (0, 1] 1 (1, 2] 2 (2, 4] 3 (4, 6] 4
[0184] For example, in an embodiment of the present application, assuming that the absolute value of the first attribute coefficient is 3, the third numerical range corresponding to the absolute value of the first attribute coefficient can be (2, 4], and accordingly, the index value determined based on the correspondence between the third preset index value and the numerical range is 3.
[0185] Furthermore, in an embodiment of the present application, when using the absolute value of the first attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the first attribute coefficient, you can choose to first perform addition or subtraction operations on the absolute value of the first attribute coefficient and the second value to determine the second operation result; and then determine the index value based on the second operation result.
[0186] It should be noted that in the embodiments of the present application, the second value may be any value. For example, the second value may be -1 or 2, and this application does not specifically limit this.
[0187] For example, in an embodiment of the present application, assuming that the absolute value of the first attribute coefficient of the current point is 1 and the second value is -2, when determining the index value based on the absolute value of the first attribute coefficient, the absolute value of the first attribute coefficient and the second value can be added to obtain a second operation result of -2+1=-1, and then the index value can be determined based on the second operation result.
[0188] It is understood that in the embodiments of the present application, when determining the index value based on the second operation result, the second operation result can be selected as the index value, the absolute value of the second operation result can be selected as the index value, or the index value can be derived from the second operation result. This application does not specifically limit this.
[0189] Furthermore, in an embodiment of the present application, when using the absolute value of the first attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the first attribute coefficient, you can choose to first perform addition or subtraction operations on the absolute value of the first attribute coefficient and the second value to determine the second operation result; then determine the fourth numerical range corresponding to the second operation result; finally, the indexed value can be determined according to the fourth numerical range and the correspondence between the fourth preset index value and the numerical range.
[0190] It is understood that in the embodiments of the present application, the absolute value of the first attribute coefficient may be an integer greater than or equal to 0, and after performing an addition or subtraction operation on the absolute value of the first attribute coefficient and the second value, the second operation result obtained may be a value greater than, equal to, or less than 0. Therefore, the fourth value range corresponding to the second operation result may be any value range.
[0191] It should be noted that, in the embodiment of the present application, the correspondence between the fourth preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, the corresponding index value can be determined. For example, Table 5 shows the correspondence between the fourth preset index value and the numerical range. As shown in Table 5,
[0192] Table 5
[0193] Numerical range index value (-3, -1] 1 (-1, 1] 2 (1, 2] 3 (2, 3] 4
[0194] For example, in an embodiment of the present application, assuming that the fourth operation result is 1, the fourth numerical range corresponding to the fourth operation result can be (-1, 1], and accordingly, the index value determined based on the correspondence between the fourth preset index value and the numerical range is 2.
[0195] Furthermore, in an embodiment of the present application, when using the absolute value of the second attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the second attribute coefficient, you can choose to directly set the absolute value of the second attribute coefficient as the index value.
[0196] Illustratively, in an embodiment of the present application, assuming that the absolute value of the second attribute coefficient is 1, the index value may be determined to be 1 based on the absolute value of the first attribute coefficient.
[0197] Furthermore, in an embodiment of the present application, when using the absolute value of the second attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the second attribute coefficient, you can choose to first determine the fifth numerical range corresponding to the absolute value of the second attribute coefficient; then determine the index value according to the fifth numerical range, and the correspondence between the fifth preset index value and the numerical range.
[0198] It is understood that in the embodiment of the present application, the absolute value of the second attribute coefficient may be an integer greater than or equal to 0. Therefore, the fifth numerical range corresponding to the absolute value of the second attribute coefficient may be a numerical range including integers greater than or equal to 0.
[0199] It should be noted that, in the embodiment of the present application, the correspondence between the fifth preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, the corresponding index value can be determined. For example, Table 6 shows the correspondence between the fifth preset index value and the numerical range. As shown in Table 6,
[0200] Table 6
[0201] Numerical range index value (0, 1] 1 (1, 2] 2 (2, 3] 3 (3, 5] 4
[0202] For example, in an embodiment of the present application, assuming that the absolute value of the second attribute coefficient is 4, the fifth numerical range corresponding to the absolute value of the second attribute coefficient can be (3, 5], and accordingly, the index value determined based on the correspondence between the fifth preset index value and the numerical range is 4.
[0203] Furthermore, in an embodiment of the present application, when using the absolute value of the second attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the second attribute coefficient, you can choose to first perform addition or subtraction operations on the absolute value of the second attribute coefficient and the third value to determine the third operation result; and then determine the index value based on the third operation result.
[0204] It should be noted that in the embodiments of the present application, the third value may be any value. For example, the third value may be 0 or 1, and the present application does not specifically limit this.
[0205] For example, in an embodiment of the present application, assuming that the absolute value of the second attribute coefficient of the current point is 2 and the third numerical value is 1, when determining the index value based on the absolute value of the second attribute coefficient, the absolute value of the second attribute coefficient and the third numerical value can be added to obtain a third operation result of 2+1=3, and then the index value can be determined based on the third operation result.
[0206] It is understood that in the embodiments of the present application, when determining the index value based on the third operation result, the third operation result can be selected as the index value, the absolute value of the third operation result can be selected as the index value, or the index value can be derived from the third operation result. This application does not impose any specific limitations.
[0207] Furthermore, in an embodiment of the present application, when using the absolute value of the second attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the second attribute coefficient, you can choose to first perform addition or subtraction operations on the absolute value of the second attribute coefficient and the third value to determine the third operation result; then determine the sixth numerical range corresponding to the third operation result; finally, the index value can be determined according to the sixth numerical range and the correspondence between the sixth preset index value and the numerical range.
[0208] It is understood that in the embodiments of the present application, the absolute value of the second attribute coefficient may be an integer greater than or equal to 0. After performing an addition or subtraction operation on the absolute value of the second attribute coefficient and the third value, the third operation result obtained may be a value greater than, equal to, or less than 0. Therefore, the sixth numerical range corresponding to the third operation result may be any numerical range.
[0209] It should be noted that, in the embodiment of the present application, the correspondence between the sixth preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, the corresponding index value can be determined. For example, Table 7 shows the correspondence between the sixth preset index value and the numerical range. As shown in Table 7,
[0210] Table 7
[0211] Numerical range index value (-3, -1] 1 (-1, 2] 2 (2, 4] 3 (4, 7] 4
[0212] For example, in an embodiment of the present application, assuming that the sixth operation result is 1, the fourth numerical range corresponding to the sixth operation result can be (-1, 2], and accordingly, the index value determined based on the correspondence between the sixth preset index value and the numerical range is 2.
[0213] Furthermore, in an embodiment of the present application, when determining an index value based on geometric information and / or a zero-run value, you can choose to use the index value determined based on the geometric information, or you can choose to use the index value determined based on the zero-run value, or you can choose to perform calculations on the index value determined based on the geometric information and the index value determined based on the zero-run value to obtain the final index value.
[0214] That is to say, in an embodiment of the present application, for the attribute coefficient of a color component of the current point, when determining the first index value corresponding to the first color component based on geometric information and / or zero-run value, the index value determined based on the geometric information, or the index value determined based on the zero-run value, can be determined as the first index value; or the index value determined based on the geometric information and the index value determined based on the zero-run value can be operated and processed to obtain the first index value.
[0215] For example, in an embodiment of the present application, assuming that the index value determined based on geometric information is A1 and the index value determined based on the zero-run value is A2, then A1 can be directly determined as the first index value, or A2 can be directly determined as the first index value. Alternatively, A1 and A2 can be compared and the larger or smaller value can be determined as the first index value. Alternatively, A1 and A2 can be added, subtracted, or weighted averaged, and the result of the calculation can be determined as the first index value. This application does not impose any specific limitations.
[0216] Furthermore, in an embodiment of the present application, when determining an index value based on at least one of the absolute value of the first attribute coefficient, geometric information, and zero-run value, you can choose to use the index value determined based on the absolute value of the first attribute coefficient, or you can choose to use the index value determined based on the geometric information, or you can choose to use the index value determined based on the zero-run value, or you can choose to perform calculations on the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value to obtain the final index value.
[0217] That is to say, in an embodiment of the present application, after determining the attribute coefficient of a color component of the current point, that is, after determining the first attribute coefficient, when determining the second index value corresponding to the second color component based on at least one of the absolute value of the first attribute coefficient, geometric information, and zero-run value, the second index value can be determined based on the index value determined based on the absolute value of the first attribute coefficient, or the index value determined based on the geometric information, or the index value determined based on the zero-run value; the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value can also be operated on to obtain the second index value.
[0218] For example, in an embodiment of the present application, assuming that the index value determined based on the absolute value of the first attribute coefficient is B1, the index value determined based on the geometric information is B2, and the index value determined based on the zero-run value is B3, then B1 can be directly determined as the second index value, B2 can be directly determined as the second index value, B3 can be directly determined as the second index value, B1, B2, and B3 can be compared in size, and the larger or smaller value among the three can be determined as the second index value, and B1, B2, and B3 can be added, subtracted, weighted averaged, etc., and the calculation result can be determined as the second index value. This application does not make any specific limitations.
[0219] Furthermore, in an embodiment of the present application, when determining an index value based on at least one of the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information, and the zero-run value, you can choose to use the index value determined based on the absolute value of the first attribute coefficient, or you can choose to use the index value determined based on the absolute value of the second attribute coefficient, or you can choose to use the index value determined based on the geometric information, or you can choose to use the index value determined based on the zero-run value, or you can choose to perform calculations on the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the absolute value of the second attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value to obtain the final index value.
[0220] That is to say, in an embodiment of the present application, after determining the attribute coefficients of the two color components of the current point, that is, after determining the first attribute coefficient and the second attribute coefficient, when determining the third index value corresponding to the third color component based on the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, the geometric information, and at least one of the zero-run value, the third index value can be determined based on the index value determined based on the absolute value of the first attribute coefficient, or the index value determined based on the absolute value of the second attribute coefficient, or the index value determined based on the geometric information, or the index value determined based on the zero-run value; the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the absolute value of the second attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value can also be calculated and processed to obtain the third index value.
[0221] For example, in an embodiment of the present application, assuming that the index value determined based on the absolute value of the first attribute coefficient is C1, the index value determined based on the absolute value of the second attribute coefficient is C2, or the index value determined based on geometric information is C3, and the index value determined based on the zero-run value is C4, then C1 can be directly determined as the third index value, C2 can be directly determined as the third index value, C3 can be directly determined as the third index value, C4 can be directly determined as the third index value, or C1, C2, C3, and B4 can be compared in size, and the larger or smaller value among the four can be determined as the third index value, or C1, C2, C3, and B4 can be added, subtracted, weighted averaged, etc., and the calculation result can be determined as the third index value. This application does not make any specific limitations.
[0222] Step 102: Determine the decoding coefficient of the current point according to the context indicated by the index value.
[0223] In an embodiment of the present application, after the index value is determined, the decoding coefficient of the current point can be further determined according to the context indicated by the index value.
[0224] It can be understood that, in the embodiment of the present application, the decoding coefficient may be a value obtained after decoding processing using the context indicated by the index value.
[0225] It should be noted that, in the embodiment of the present application, since the index value may include at least one of the first index value, the second index value, and the third index value of the current point, the context indicated by the index value corresponding to each color component may be used to determine the decoding coefficient of the corresponding color component.
[0226] It is understood that in the embodiment of the present application, the decoding coefficient may include at least one of a first decoding coefficient, a second decoding coefficient, and a third decoding coefficient. The first decoding coefficient, the second decoding coefficient, and the third decoding coefficient may respectively correspond to the three color components of the current point, that is, the first decoding coefficient, the second decoding coefficient, and the third decoding coefficient may be obtained by parsing using the first context, the second context, and the third context, respectively.
[0227] That is to say, in an embodiment of the present application, when determining the decoding coefficient of the current point according to the context indicated by the index value, the first decoding coefficient of the current point can be determined according to the first context indicated by the first index value, the second decoding coefficient of the current point can be determined according to the second context indicated by the second index value, and the third decoding coefficient of the current point can be determined according to the third context indicated by the third index value.
[0228] Step 103: Determine the attribute coefficient of the current point according to the decoded coefficient.
[0229] In an embodiment of the present application, after the decoding coefficient of the current point is determined according to the context indicated by the index value, the attribute coefficient of the current point can be further determined according to the decoding coefficient.
[0230] It can be understood that, in the embodiment of the present application, the attribute coefficient may be a related value of the attribute information determined based on the decoding coefficient.
[0231] It should be noted that, in the embodiment of the present application, since the decoding coefficient may include at least one of the first decoding coefficient, the second decoding coefficient, and the third decoding coefficient, the attribute coefficients of the corresponding color components may be determined using the decoding coefficients corresponding to different color components.
[0232] That is to say, in an embodiment of the present application, when determining the attribute coefficient of the current point based on the decoding coefficient, the first attribute coefficient of the current point can be determined based on the first decoding coefficient, the second attribute coefficient of the current point can be determined based on the second decoding coefficient, and the third attribute coefficient of the current point can be determined based on the third decoding coefficient.
[0233] It is understood that in the embodiment of the present application, the attribute coefficient of the current point can be the quantized residual or the quantized transformation coefficient of the attribute information of the current point. In other words, the attribute coefficient can be the quantized residual or the quantized transformation coefficient.
[0234] Furthermore, in an embodiment of the present application, the attribute coefficient of the current point may include attribute coefficients of all color components, that is, the attribute coefficient of the current point may include at least one of a first attribute coefficient, a second attribute coefficient, and a third attribute coefficient.
[0235] For example, in an embodiment of the present application, assuming that the attribute coefficient of the current point is the attribute coefficient of the color component, then, for the R component, the first context indicated by the first index value can be used to determine the first decoding coefficient, and then the first attribute coefficient can be determined using the first decoding coefficient; for the G component, the second context indicated by the second index value can be used to determine the second decoding coefficient, and then the second attribute coefficient can be determined using the second decoding coefficient; for the B component, the third context indicated by the third index value can be used to determine the third decoding coefficient, and then the third attribute coefficient can be determined using the third decoding coefficient.
[0236] For example, in an embodiment of the present application, assuming that the attribute coefficient of the current point is the attribute coefficient of the color component, then, for the Y component, the first context indicated by the first index value can be used to determine the first decoding coefficient, and then the first attribute coefficient can be determined using the first decoding coefficient; for the U component, the second context indicated by the second index value can be used to determine the second decoding coefficient, and then the second attribute coefficient can be determined using the second decoding coefficient; for the V component, the third context indicated by the third index value can be used to determine the third decoding coefficient, and then the third attribute coefficient can be determined using the third decoding coefficient.
[0237] It should be noted that in the embodiments of the present application, when determining the attribute coefficients of the current point, an adaptive context may be used for the attribute coefficients of some or all of the color components of the current point, or a pre-set context may be used for the attribute coefficients of some or all of the color components of the current point. Therefore, the attribute coefficients of any color component of the current point may be determined using either the adaptive context or the pre-set context.
[0238] It can be understood that in an embodiment of the present application, the first decoding coefficient can be determined based on the first preset context; and / or, the second decoding coefficient can be determined based on the second preset context; and / or, the third decoding coefficient can be determined based on the third preset context.
[0239] Exemplarily, in an embodiment of the present application, for the first color component of the current point, you can choose to determine the first decoding coefficient according to the first preset context, and determine the first attribute coefficient according to the first decoding coefficient, or you can choose to determine the first index value, and then determine the first decoding coefficient of the current point according to the first context indicated by the first index value, and determine the first attribute coefficient of the current point according to the first decoding coefficient; for the second color component of the current point, you can choose to determine the second decoding coefficient according to the second preset context, and determine the second attribute coefficient according to the second decoding coefficient, or you can choose to determine the second index value, and then determine the second decoding coefficient of the current point according to the second context indicated by the second index value, and determine the second attribute coefficient of the current point according to the second decoding coefficient; for the third color component of the current point, you can choose to determine the third decoding coefficient according to the third preset context, and determine the third attribute coefficient according to the third decoding coefficient, or you can choose to determine the third index value, and then determine the third decoding coefficient of the current point according to the third context indicated by the third index value, and determine the third attribute coefficient of the current point according to the third decoding coefficient.
[0240] That is to say, in the embodiments of the present application, for any color component of the current point, either a pre-set context or an adaptive context can be used. When using the adaptive context, the context can be adaptively selected based on an index value determined based on the geometric information of the current point, or based on an index value determined based on the zero-run value corresponding to the current point, or based on an index value determined based on the attribute coefficients of other color components of the current point (such as the first attribute coefficient and / or the second attribute coefficient). This application does not make any specific restrictions on this.
[0241] It will be appreciated that, in the embodiments of the present application, the context determination methods for different color components of the current point are independent of each other, i.e., there is no restriction on the context determination method used by different color components being identical. For example, for the first color component, the context can be adaptively selected based on the index value determined by the zero-run value corresponding to the current point; for the second color component, the context can be adaptively selected based on the index value determined by the first attribute coefficient; and for the third color component, a pre-set context can be used. This application does not impose any specific limitations on this.
[0242] It should be noted that in the embodiments of the present application, the first color component, the second color component, and the third color component may be different color components among all the color components of the current point. For example, the first color component may be the G component, the second color component may be the B component, and the third color component may be the R component; or the first color component may be the U component, the second color component may be the Y component, and the third color component may be the V component. This application does not impose any specific limitations.
[0243] Furthermore, in an embodiment of the present application, after determining the attribute coefficient of the current point, whether to determine the sign of the attribute coefficient can be determined based on whether the attribute coefficient of the current point is 0. If the attribute coefficients of the current point are not all 0, the bitstream can be decoded to determine the signs of the non-zero attribute coefficients.
[0244] That is, in the embodiment of the present application, for the attribute coefficient of the color component that is not 0, the code stream can be further decoded to determine the sign of the attribute coefficient corresponding to the color component whose attribute coefficient is not 0.
[0245] For example, in an embodiment of the present application, if the first attribute coefficient is not 0, then the determination of the sign of the first attribute coefficient can be continued; if the second attribute coefficient is not 0, then the determination of the sign of the second attribute coefficient can be continued; if the third attribute coefficient is not 0, then the determination of the sign of the third attribute coefficient can be continued.
[0246] In summary, through the point cloud decoding method proposed in steps 101 to 103, when determining the attribute coefficient using the context, the correlation between the attribute coefficients that have been encoded / decoded and the related parameters can be fully utilized to adaptively select different contexts for encoding and decoding, thereby introducing a variety of different adaptive context modes, thereby improving the encoding and decoding performance of the point cloud attributes. Among them, for the attribute coefficient of any color component of the current point, it is possible to choose to use a preset context (such as a first preset context, a second preset context, a third preset context) to determine the decoding coefficient, and then determine the corresponding attribute coefficient; it is also possible to choose to use geometric information and / or zero run value to determine the index value, and then use the context indicated by the index value to determine the decoding coefficient, and then determine the corresponding attribute coefficient; it is also possible to choose to use at least one of the absolute value of the first attribute coefficient, geometric information and zero run value to determine the index value, and then use the context indicated by the index value to determine the decoding coefficient, and then determine the corresponding attribute coefficient; it is also possible to choose to use at least one of the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information and zero run value to determine the index value, and then use the context indicated by the index value to determine the decoding coefficient, and then determine the corresponding attribute coefficient.
[0247] For example, in an embodiment of the present application, an adaptive context can be selected for the attribute coefficients of the two color components of the current point, and a preset context can be selected for the attribute coefficient of the other color component. The first attribute coefficient can be decoded first; then the decoded first attribute coefficient can be used to adaptively select the context for decoding the second attribute coefficient; and finally, the decoded first attribute coefficient and / or second attribute coefficient can be used to adaptively select the context for decoding the third attribute coefficient.
[0248] For example, the first preset context is used to decode the first attribute coefficient; the second attribute coefficient is adaptively selected for decoding using the decoded first attribute coefficient being greater than or equal to or less than or equal to certain constants (i.e., determining the corresponding numerical range); the third attribute coefficient is adaptively selected for decoding using the decoded first attribute coefficient being greater than or equal to or less than or equal to certain constants, and the decoded second attribute coefficient being greater than or equal to or less than or equal to certain constants (i.e., determining the corresponding numerical range).
[0249] For example, in an embodiment of the present application, an adaptive context can be selected for the attribute coefficient of one color component of the current point, and a preset context can be selected for the attribute coefficients of the other two color components. The first attribute coefficient can be decoded first, then the second attribute coefficient can be decoded, and finally, the decoded first attribute coefficient and / or second attribute coefficient can be used to adaptively select a context to decode the third attribute coefficient.
[0250] For example, the first attribute coefficient is decoded using the first preset context; the second attribute coefficient is decoded using the second preset context; and finally, the third attribute coefficient is decoded by adaptively selecting a context based on the relationship between the decoded first attribute coefficient plus or minus a constant and the decoded second attribute coefficient plus or minus a constant.
[0251] For example, in an embodiment of the present application, a reference zero run value may be selected to use an adaptive context for the attribute coefficients of all color components. After determining the prior information zero run value run_length, the decoded runlength information may be used to adaptively select the context for the first attribute coefficient; then, the decoded runlength information may be used to adaptively select the context for the second attribute coefficient; and finally, the decoded runlength information may be used to adaptively select the context for the third attribute coefficient.
[0252] For example, the first attribute coefficient is adaptively selected and decoded in the context using the previous set of non-zero runlength values; the second attribute coefficient is adaptively selected and decoded in the context using the previous set of non-zero runlength values; and the third attribute coefficient is adaptively selected and decoded in the context using the previous set of non-zero runlength values.
[0253] For example, the first attribute coefficient is adaptively selected for context decoding using the previous set of runlength values; the second attribute coefficient is adaptively selected for context decoding using the previous set of runlength values; and the third attribute coefficient is adaptively selected for context decoding using the previous set of runlength values.
[0254] For example, in an embodiment of the present application, a reference geometric position (geometric information) may be selected to use an adaptive context for the attribute coefficients of all color components. After determining the geometric information of the current point, the first attribute coefficient adaptively selected context may be decoded using the geometric information of the current point; then, the second attribute coefficient adaptively selected context may be decoded using the geometric information of the current point; and finally, the third attribute coefficient adaptively selected context may be decoded using the geometric information of the current point.
[0255] For example, the first attribute coefficient is adaptively selected for context decoding using the geometric information position size of the current point; the second attribute coefficient is adaptively selected for context decoding using the geometric information position size of the current point; and the third attribute coefficient is adaptively selected for context decoding using the geometric information position size of the current point.
[0256] Table 8
[0257]
[0258] Table 9
[0259]
[0260] As shown in Tables 8 and 9, the point cloud encoding and decoding method proposed in the embodiments of the present application can achieve stable performance gains without increasing time complexity, and can improve the performance of point cloud encoding and decoding.
[0261] An embodiment of the present application provides a point cloud decoding method, wherein a decoder determines an index value; determines a decoding coefficient of a current point based on the context indicated by the index value; and determines an attribute coefficient of the current point based on the decoding coefficient. That is, in an embodiment of the present application, when using context to determine the attribute coefficient, the correlation between the already encoded / decoded attribute coefficients and the related parameters can be fully utilized to adaptively select different contexts for encoding and decoding, thereby introducing a variety of different adaptive context modes, rather than being limited to using a fixed context for encoding and decoding attribute information, thereby improving the encoding and decoding performance of point cloud attributes.
[0262] An embodiment of the present application proposes a point cloud encoding method. FIG9 is a schematic diagram of an implementation flow of the point cloud encoding method proposed in the embodiment of the present application. As shown in FIG9 , encoding processing of a point cloud may include the following steps:
[0263] Step 201: Determine the index value.
[0264] In the embodiment of the present application, the index value may be determined first.
[0265] It should be noted that the encoding method of the embodiment of the present application specifically refers to a point cloud encoding method, which can be applied to a point cloud encoder (also referred to as "encoder" for short).
[0266] It should be noted that in the embodiment of the present application, the point cloud to be processed includes at least one node. When encoding a node in the point cloud to be processed, it can be used as a node to be encoded in the point cloud to be processed, and there are multiple encoded nodes around the node. Here, the current node (current point) is the node to be encoded that currently needs to be encoded among the at least one node.
[0267] Furthermore, in an embodiment of the present application, for each node in the point cloud to be processed, it corresponds to a geometric information and an attribute information; wherein the geometric information represents the spatial relationship of the point, and the attribute information represents the attribute information of the point.
[0268] Here, the attribute information may be color information, or reflectivity, or other attributes, which are not specifically limited in the embodiments of the present application. Specifically, when the attribute information is color information, it may be color information in any color space. For example, the attribute information may be color information in an RGB space, a YUV space, a YCbCr space, or the like, which are not specifically limited in the embodiments of the present application.
[0269] It should also be noted that, in the embodiment of the present application, the encoder may arrange the at least one node according to a preset coding order to determine the index number corresponding to each node. In this way, based on the index number corresponding to each node, the encoder can process each node in the point cloud to be processed according to the preset coding order.
[0270] In some embodiments, the preset encoding order may be one of the following: original point cloud order, Morton order, Hilbert order, etc., which is not specifically limited in the embodiments of the present application.
[0271] Furthermore, in an embodiment of the present application, the index value may be used to determine the context used by the attribute coefficient of the current point. If the attribute information of the current point is color information, then different index values may be determined corresponding to different color components of the current point.
[0272] That is, in an embodiment of the present application, the index value may include at least one of a first index value, a second index value, and a third index value. The first index value, the second index value, and the third index value may respectively correspond to the three color components of the current point, that is, the first index value, the second index value, and the third index value may respectively be used to determine the first context, the second context, and the third context used by the attribute coefficients of the three color components of the current point.
[0273] For example, in an embodiment of the present application, assuming that the attribute coefficient of the current point is the attribute coefficient of the color component, then the first index value can be used to determine the first context used by the attribute coefficient of the R component of the current point, the second index value can be used to determine the second context used by the attribute coefficient of the G component of the current point, and the third index value can be used to determine the third context used by the attribute coefficient of the B component of the current point.
[0274] For example, in an embodiment of the present application, assuming that the attribute coefficient of the current point is the attribute coefficient of the color component, then the first index value can be used to determine the first context used by the attribute coefficient of the Y component of the current point, the second index value can be used to determine the second context used by the attribute coefficient of the U component of the current point, and the third index value can be used to determine the third context used by the attribute coefficient of the V component of the current point.
[0275] Therefore, in an embodiment of the present application, at least one of the first index value, the second index value, and the third index value of the current point may be determined first.
[0276] Furthermore, in an embodiment of the present application, if it is determined that the adaptive context is used to determine the attribute coefficients of the current point, then the adaptive context identification information of the current point can be set, and then the adaptive context identification information of the current point can be written into the bitstream. If it is determined that the adaptive context is used, the adaptive context identification information can be set to indicate that the adaptive context is used to determine the attribute coefficients of the current point.
[0277] Accordingly, in an embodiment of the present application, after determining to use the adaptive context to determine the attribute coefficient of the current point, a process for determining the first index value, and / or the second index value, and / or the third index value may be executed.
[0278] It should be noted that in the embodiments of the present application, the adaptive context identification information can be understood as a flag indicating whether the adaptive context is used for a node in the point cloud. Specifically, the encoder can determine a variable as the adaptive context identification information, so that the adaptive context identification information can be determined by the value of the variable.
[0279] That is, in the embodiments of the present application, the method for determining the context used for the attribute coefficients of the current point is different depending on the value of the adaptive context identification information. In particular, whether to use the adaptive context to determine the attribute coefficients of some or all color components of the current point can be determined based on the adaptive context identification information.
[0280] It can be understood that in the embodiments of the present application, based on the value of the adaptive context identification information, when encoding the point cloud, you can choose to use the adaptive context to determine the attribute coefficient of the current point, or you can choose not to use the adaptive context to determine the attribute coefficient of the current point.
[0281] Exemplarily, in an embodiment of the present application, if the value of the adaptive context identification information is 1, it may indicate that the attribute coefficient of the current point is determined using the adaptive context; if the value of the adaptive context identification information is 0, it may indicate that the attribute coefficient of the current point is not determined using the adaptive context.
[0282] It should be noted that, in the embodiments of the present application, the value of the adaptive context identification information may also be set to other values or parameters, and the present application does not impose any limitation thereto.
[0283] It is understood that in the embodiment of the present application, after determining to use the adaptive context to determine the attribute coefficient of the current point, an index value for indicating the context can be further determined. That is, after determining to use the adaptive context, the index value determination process is performed.
[0284] Of course, the adaptive context identification information setting process can also be omitted. That is, it can be preset whether to use the adaptive context to determine the attribute coefficients of the current point, or it can be preset whether to use the adaptive context to determine the attribute coefficients of one or more color components among all color components of the current point. In other words, whether to use the adaptive context for some or all color components can be independently determined without relying on the value of the adaptive context identification information.
[0285] Furthermore, in an embodiment of the present application, since it is possible to determine whether to use the adaptive context to determine the attribute coefficients of part or all of the color components of the current point based on the adaptive context identification information, when determining the attribute coefficients of the current point, the adaptive context can be used for the attribute coefficients of part or all of the color components of the current point, or a pre-set context can be used for the attribute coefficients of part or all of the color components of the current point.
[0286] Furthermore, in an embodiment of the present application, when determining the index value of the current point, the geometric information of the current point and / or the zero-run value corresponding to the current point can be referred to. Therefore, the geometric information of the current point and the zero-run value corresponding to the current point can also be determined.
[0287] It should be noted that, in the embodiment of the present application, the geometric information of the current point may include the position coordinate information of the current point. For example, the geometric information of the current point may be the spatial coordinate information (x, y, z) corresponding to the current point.
[0288] It can be understood that in the embodiment of the present application, the zero run value corresponding to the current point may include the zero run value of the current point, or the previous zero run value of the current point, or the previous non-zero zero run value of the current point.
[0289] It should be noted that, in the embodiment of the present application, the zero run value run_length can be used to count whether the attribute coefficient is 0. Specifically, for the color attribute, if the zero run value run_length is not 0 (or greater than 0), it can be determined that the attribute coefficients of all color components of the current point are all 0; if the zero run value run_length is 0, it can be determined that the attribute coefficients of all color components of the current point are not all 0.
[0290] It is understood that in the embodiment of the present application, for the attribute coefficients of all color components of the current point, if the zero run value run_length indicates that the attribute coefficients of all color components of the current point are all 0, then there is no need to further determine the attribute coefficients. Instead, the zero run value can be first decremented by 1 to update the zero run value, and then the attribute coefficient of the next point is determined based on the zero run value. For the attribute coefficient of the next point, it is continued to be determined based on the zero run value run_length whether the attribute coefficients of all color components are all 0 to determine whether the attribute coefficients of all color components need to be determined.
[0291] For example, in an embodiment of the present application, if the zero run value run_length of the current point is determined to be 3, which is greater than 0, then it can be determined that the attribute coefficients of all color components of the current point are all 0, so there is no need to encode the attribute coefficients of the current point, and you can choose to first decrement the zero run value by 1, that is, perform the --run_length operation, and then determine the attribute coefficient of the next point based on the zero run value. For the attribute coefficient of the next point, the corresponding zero run value run_length is 2, which is greater than 0, then it can be determined that the attribute coefficients of all color components of the point are all 0, so there is no need to encode the attribute coefficients of all color components of the point, and continue to decrement the zero run value by 1, that is, perform the --run_length operation.
[0292] Furthermore, in an embodiment of the present application, for an attribute coefficient of a color component of the current point, an index value may be first determined based on geometric information and / or a zero-run value.
[0293] Exemplarily, in an embodiment of the present application, the first index value corresponding to the first color component may be determined based on geometric information and / or a zero-run value.
[0294] Furthermore, in an embodiment of the present application, after determining the attribute coefficient of a color component of the current point, that is, after determining the first attribute coefficient, the index value can be determined based on at least one of the absolute value, geometric information and zero-run value of the first attribute coefficient.
[0295] Exemplarily, in an embodiment of the present application, the second index value corresponding to the second color component may be determined based on at least one of the absolute value of the first attribute coefficient, geometric information, and a zero-run value.
[0296] Furthermore, in an embodiment of the present application, after determining the attribute coefficients of the two color components of the current point, that is, after determining the first attribute coefficient and the second attribute coefficient, the index value can be determined based on the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information, and at least one of the zero-run value.
[0297] Exemplarily, in an embodiment of the present application, the third index value corresponding to the third color component may be determined based on at least one of the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information, and a zero-run value.
[0298] Furthermore, in an embodiment of the present application, when using the zero-run value corresponding to the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the zero-run value, you can choose to first perform addition or subtraction operations on the zero-run value and the first value to determine the first operation result; and then determine the index value based on the first operation result.
[0299] It should be noted that in the embodiments of the present application, the first value may be any value. For example, the first value may be 1 or 3, and the present application does not specifically limit this.
[0300] For example, in an embodiment of the present application, assuming that the zero-run value corresponding to the current point is 2 and the first numerical value is 1, when determining the index value based on the zero-run value, a subtraction operation can be performed on the zero-run value and the first numerical value to obtain a first operation result of 2-1=1, and then the index value can be determined based on the first operation result.
[0301] It is understood that in the embodiments of the present application, when determining the index value based on the first operation result, the first operation result can be selected as the index value, the absolute value of the first operation result can be selected as the index value, or the index value can be derived from the first operation result. This application does not impose any specific limitations.
[0302] Furthermore, in an embodiment of the present application, when using the zero-run value corresponding to the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the zero-run value, the zero-run value and the first numerical value can be first added or subtracted to determine the first operation result; then the first numerical range corresponding to the first operation result is determined; finally, the index value can be determined according to the first numerical range and the correspondence between the first preset index value and the numerical range.
[0303] It is understood that in the embodiment of the present application, the zero-run value corresponding to the current point may be an integer greater than or equal to 0, and after performing an addition or subtraction operation on the zero-run value and the first value, the first operation result obtained may be a value greater than, equal to, or less than 0. Therefore, the first numerical range corresponding to the first operation result may be any numerical range.
[0304] It should be noted that, in the embodiments of the present application, the correspondence between the first preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, corresponding index values can be determined. For example, Table 1 shows the correspondence between the first preset index value and the numerical range.
[0305] For example, in an embodiment of the present application, assuming that the first operation result is 1, the first numerical range corresponding to the first operation result can be (0, 1], and accordingly, the index value determined based on the correspondence between the first preset index value and the numerical range is 2.
[0306] Furthermore, in an embodiment of the present application, when using the zero-run value corresponding to the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the zero-run value, the second numerical range corresponding to the zero-run value can be determined first; then the index value can be determined according to the second numerical range and the correspondence between the second preset index value and the numerical range.
[0307] It is understood that, in the embodiment of the present application, the zero-run value corresponding to the current point may be an integer greater than or equal to 0. Therefore, the second numerical range corresponding to the zero-run value may be a numerical range including integers greater than or equal to 0.
[0308] It should be noted that, in the embodiments of the present application, the correspondence between the second preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, corresponding index values can be determined. For example, Table 2 shows the correspondence between the second preset index value and the numerical range.
[0309] For example, in an embodiment of the present application, assuming that the zero-run value corresponding to the current point is 2, the first numerical range corresponding to the zero-run value can be (1, 3], and accordingly, the index value determined based on the correspondence between the second preset index value and the numerical range is 2.
[0310] Furthermore, in an embodiment of the present application, when using the geometric information of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the geometric information, you can choose to first determine the position range corresponding to the geometric information; then determine the index value according to the position range, and the correspondence between the preset position range and the index value.
[0311] It is understandable that, in the embodiments of the present application, since the geometric information of the current point may include the position coordinate information of the current point, which may include different spatial components, such as the x component, the y component, and the z component, when determining the position range using the geometric information of the current point, the range may be divided with reference to some or all of the different spatial components. For example, the position range corresponding to the geometric information of the current point may be determined only according to the x component, or the position range corresponding to the geometric information of the current point may be determined according to the y component and the z component, or the position range corresponding to the geometric information of the current point may be determined according to the x component, the y component, and the z component.
[0312] It should be noted that, in the embodiments of the present application, the correspondence between the preset position range and the index value can represent the mapping relationship between the position range and the index value. For different position ranges, corresponding index values can be determined. For example, Table 3 shows the correspondence between the preset position range and the index value.
[0313] For example, in an embodiment of the present application, assuming that the geometric information of the current point is (x, y, z), the corresponding position range is position range 3, and accordingly, the index value determined based on the correspondence between the preset position range and the index value is 3.
[0314] Furthermore, in an embodiment of the present application, when using the absolute value of the first attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the first attribute coefficient, you can choose to directly set the absolute value of the first attribute coefficient as the index value.
[0315] Illustratively, in an embodiment of the present application, assuming that the absolute value of the first attribute coefficient is 2, the index value may be determined to be 2 based on the absolute value of the first attribute coefficient.
[0316] Furthermore, in an embodiment of the present application, when using the absolute value of the first attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the first attribute coefficient, you can choose to first determine the third numerical range corresponding to the absolute value of the first attribute coefficient; then determine the index value according to the third numerical range, and the correspondence between the third preset index value and the numerical range.
[0317] It is understood that in the embodiment of the present application, the absolute value of the first attribute coefficient may be an integer greater than or equal to 0. Therefore, the third numerical range corresponding to the absolute value of the first attribute coefficient may be a numerical range including an integer greater than or equal to 0.
[0318] It should be noted that, in the embodiments of the present application, the correspondence between the third preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, corresponding index values can be determined. For example, Table 4 shows the correspondence between the third preset index value and the numerical range.
[0319] For example, in an embodiment of the present application, assuming that the absolute value of the first attribute coefficient is 3, the third numerical range corresponding to the absolute value of the first attribute coefficient can be (2, 4], and accordingly, the index value determined based on the correspondence between the third preset index value and the numerical range is 3.
[0320] Furthermore, in an embodiment of the present application, when using the absolute value of the first attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the first attribute coefficient, you can choose to first perform addition or subtraction operations on the absolute value of the first attribute coefficient and the second value to determine the second operation result; and then determine the index value based on the second operation result.
[0321] It should be noted that in the embodiments of the present application, the second value may be any value. For example, the second value may be -1 or 2, and this application does not specifically limit this.
[0322] For example, in an embodiment of the present application, assuming that the absolute value of the first attribute coefficient of the current point is 1 and the second value is -2, when determining the index value based on the absolute value of the first attribute coefficient, the absolute value of the first attribute coefficient and the second value can be added to obtain a second operation result of -2+1=-1, and then the index value can be determined based on the second operation result.
[0323] It is understood that in the embodiments of the present application, when determining the index value based on the second operation result, the second operation result can be selected as the index value, the absolute value of the second operation result can be selected as the index value, or the index value can be derived from the second operation result. This application does not specifically limit this.
[0324] Furthermore, in an embodiment of the present application, when using the absolute value of the first attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the first attribute coefficient, you can choose to first perform addition or subtraction operations on the absolute value of the first attribute coefficient and the second value to determine the second operation result; then determine the fourth numerical range corresponding to the second operation result; finally, the indexed value can be determined according to the fourth numerical range and the correspondence between the fourth preset index value and the numerical range.
[0325] It is understood that in the embodiments of the present application, the absolute value of the first attribute coefficient may be an integer greater than or equal to 0, and after performing an addition or subtraction operation on the absolute value of the first attribute coefficient and the second value, the second operation result obtained may be a value greater than, equal to, or less than 0. Therefore, the fourth value range corresponding to the second operation result may be any value range.
[0326] It should be noted that, in the embodiments of the present application, the correspondence between the fourth preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, corresponding index values can be determined. For example, Table 5 shows the correspondence between the fourth preset index value and the numerical range.
[0327] For example, in an embodiment of the present application, assuming that the fourth operation result is 1, the fourth numerical range corresponding to the fourth operation result can be (-1, 1], and accordingly, the index value determined based on the correspondence between the fourth preset index value and the numerical range is 2.
[0328] Furthermore, in an embodiment of the present application, when using the absolute value of the second attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the second attribute coefficient, you can choose to directly set the absolute value of the second attribute coefficient as the index value.
[0329] Illustratively, in an embodiment of the present application, assuming that the absolute value of the second attribute coefficient is 1, the index value may be determined to be 1 based on the absolute value of the first attribute coefficient.
[0330] Furthermore, in an embodiment of the present application, when using the absolute value of the second attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the second attribute coefficient, you can choose to first determine the fifth numerical range corresponding to the absolute value of the second attribute coefficient; then determine the index value according to the fifth numerical range, and the correspondence between the fifth preset index value and the numerical range.
[0331] It is understood that in the embodiment of the present application, the absolute value of the second attribute coefficient may be an integer greater than or equal to 0. Therefore, the fifth numerical range corresponding to the absolute value of the second attribute coefficient may be a numerical range including integers greater than or equal to 0.
[0332] It should be noted that, in the embodiments of the present application, the correspondence between the fifth preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, corresponding index values can be determined. For example, Table 6 shows the correspondence between the fifth preset index value and the numerical range.
[0333] For example, in an embodiment of the present application, assuming that the absolute value of the second attribute coefficient is 4, the fifth numerical range corresponding to the absolute value of the second attribute coefficient can be (3, 5], and accordingly, the index value determined based on the correspondence between the fifth preset index value and the numerical range is 4.
[0334] Furthermore, in an embodiment of the present application, when using the absolute value of the second attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the second attribute coefficient, you can choose to first perform addition or subtraction operations on the absolute value of the second attribute coefficient and the third value to determine the third operation result; and then determine the index value based on the third operation result.
[0335] It should be noted that in the embodiments of the present application, the third value may be any value. For example, the third value may be 0 or 1, and the present application does not specifically limit this.
[0336] For example, in an embodiment of the present application, assuming that the absolute value of the second attribute coefficient of the current point is 2 and the third numerical value is 1, when determining the index value based on the absolute value of the second attribute coefficient, the absolute value of the second attribute coefficient and the third numerical value can be added to obtain a third operation result of 2+1=3, and then the index value can be determined based on the third operation result.
[0337] It is understood that in the embodiments of the present application, when determining the index value based on the third operation result, the third operation result can be selected as the index value, the absolute value of the third operation result can be selected as the index value, or the index value can be derived from the third operation result. This application does not impose any specific limitations.
[0338] Furthermore, in an embodiment of the present application, when using the absolute value of the second attribute coefficient of the current point to determine the index value, that is, when determining the first index value or the second index value or the third index value based on the absolute value of the second attribute coefficient, you can choose to first perform addition or subtraction operations on the absolute value of the second attribute coefficient and the third value to determine the third operation result; then determine the sixth numerical range corresponding to the third operation result; finally, the index value can be determined according to the sixth numerical range and the correspondence between the sixth preset index value and the numerical range.
[0339] It is understood that in the embodiments of the present application, the absolute value of the second attribute coefficient may be an integer greater than or equal to 0. After performing an addition or subtraction operation on the absolute value of the second attribute coefficient and the third value, the third operation result obtained may be a value greater than, equal to, or less than 0. Therefore, the sixth numerical range corresponding to the third operation result may be any numerical range.
[0340] It should be noted that, in the embodiments of the present application, the correspondence between the sixth preset index value and the numerical range can represent the mapping relationship between the numerical range and the index value. For different numerical ranges, corresponding index values can be determined. For example, Table 7 shows the correspondence between the sixth preset index value and the numerical range.
[0341] For example, in an embodiment of the present application, assuming that the sixth operation result is 1, the fourth numerical range corresponding to the sixth operation result can be (-1, 2], and accordingly, the index value determined based on the correspondence between the sixth preset index value and the numerical range is 2.
[0342] Furthermore, in an embodiment of the present application, when determining an index value based on geometric information and / or a zero-run value, you can choose to use the index value determined based on the geometric information, or you can choose to use the index value determined based on the zero-run value, or you can choose to perform calculations on the index value determined based on the geometric information and the index value determined based on the zero-run value to obtain the final index value.
[0343] That is to say, in an embodiment of the present application, for the attribute coefficient of a color component of the current point, when determining the first index value corresponding to the first color component based on geometric information and / or zero-run value, the index value determined based on the geometric information, or the index value determined based on the zero-run value, can be determined as the first index value; or the index value determined based on the geometric information and the index value determined based on the zero-run value can be operated and processed to obtain the first index value.
[0344] For example, in an embodiment of the present application, assuming that the index value determined based on geometric information is A1 and the index value determined based on the zero-run value is A2, then A1 can be directly determined as the first index value, or A2 can be directly determined as the first index value. Alternatively, A1 and A2 can be compared and the larger or smaller value can be determined as the first index value. Alternatively, A1 and A2 can be added, subtracted, or weighted averaged, and the result of the calculation can be determined as the first index value. This application does not impose any specific limitations.
[0345] Furthermore, in an embodiment of the present application, when determining an index value based on at least one of the absolute value of the first attribute coefficient, geometric information, and zero-run value, you can choose to use the index value determined based on the absolute value of the first attribute coefficient, or you can choose to use the index value determined based on the geometric information, or you can choose to use the index value determined based on the zero-run value, or you can choose to perform calculations on the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value to obtain the final index value.
[0346] That is to say, in an embodiment of the present application, after determining the attribute coefficient of a color component of the current point, that is, after determining the first attribute coefficient, when determining the second index value corresponding to the second color component based on at least one of the absolute value of the first attribute coefficient, geometric information, and zero-run value, the second index value can be determined based on the index value determined based on the absolute value of the first attribute coefficient, or the index value determined based on the geometric information, or the index value determined based on the zero-run value; the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value can also be operated on to obtain the second index value.
[0347] For example, in an embodiment of the present application, assuming that the index value determined based on the absolute value of the first attribute coefficient is B1, the index value determined based on the geometric information is B2, and the index value determined based on the zero-run value is B3, then B1 can be directly determined as the second index value, B2 can be directly determined as the second index value, B3 can be directly determined as the second index value, B1, B2, and B3 can be compared in size, and the larger or smaller value among the three can be determined as the second index value, and B1, B2, and B3 can be added, subtracted, weighted averaged, etc., and the calculation result can be determined as the second index value. This application does not make any specific limitations.
[0348] Furthermore, in an embodiment of the present application, when determining an index value based on at least one of the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information, and the zero-run value, you can choose to use the index value determined based on the absolute value of the first attribute coefficient, or you can choose to use the index value determined based on the absolute value of the second attribute coefficient, or you can choose to use the index value determined based on the geometric information, or you can choose to use the index value determined based on the zero-run value, or you can choose to perform calculations on the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the absolute value of the second attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value to obtain the final index value.
[0349] That is to say, in an embodiment of the present application, after determining the attribute coefficients of the two color components of the current point, that is, after determining the first attribute coefficient and the second attribute coefficient, when determining the third index value corresponding to the third color component based on the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, the geometric information, and at least one of the zero-run value, the third index value can be determined based on the index value determined based on the absolute value of the first attribute coefficient, or the index value determined based on the absolute value of the second attribute coefficient, or the index value determined based on the geometric information, or the index value determined based on the zero-run value; the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the absolute value of the second attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value can also be calculated and processed to obtain the third index value.
[0350] For example, in an embodiment of the present application, assuming that the index value determined based on the absolute value of the first attribute coefficient is C1, the index value determined based on the absolute value of the second attribute coefficient is C2, or the index value determined based on geometric information is C3, and the index value determined based on the zero-run value is C4, then C1 can be directly determined as the third index value, C2 can be directly determined as the third index value, C3 can be directly determined as the third index value, C4 can be directly determined as the third index value, or C1, C2, C3, and B4 can be compared in size, and the larger or smaller value among the four can be determined as the third index value, or C1, C2, C3, and B4 can be added, subtracted, weighted averaged, etc., and the calculation result can be determined as the third index value. This application does not make any specific limitations.
[0351] Step 202: Determine the coding coefficient of the current point according to the context indicated by the index value.
[0352] In an embodiment of the present application, after the index value is determined, the coding coefficient of the current point can be further determined according to the context indicated by the index value.
[0353] It can be understood that, in the embodiment of the present application, the coding coefficient may be a value obtained after performing coding processing using the context indicated by the index value.
[0354] It should be noted that, in the embodiment of the present application, since the index value may include at least one of the first index value, the second index value, and the third index value of the current point, the context indicated by the index value corresponding to each color component may be used to determine the encoding coefficient of the corresponding color component.
[0355] It is understood that in the embodiment of the present application, the coding coefficient may include at least one of a first coding coefficient, a second coding coefficient, and a third coding coefficient. The first coding coefficient, the second coding coefficient, and the third coding coefficient may respectively correspond to the three color components of the current point, that is, the first coding coefficient, the second coding coefficient, and the third coding coefficient may be obtained by parsing using the first context, the second context, and the third context, respectively.
[0356] That is to say, in an embodiment of the present application, when determining the coding coefficient of the current point according to the context indicated by the index value, the first coding coefficient of the current point can be determined according to the first context indicated by the first index value, the second coding coefficient of the current point can be determined according to the second context indicated by the second index value, and the third coding coefficient of the current point can be determined according to the third context indicated by the third index value.
[0357] Step 203: Determine the attribute coefficient of the current point according to the encoding coefficient.
[0358] In an embodiment of the present application, after the coding coefficient of the current point is determined according to the context indicated by the index value, the attribute coefficient of the current point can be further determined according to the coding coefficient.
[0359] It can be understood that, in the embodiment of the present application, the attribute coefficient may be a related value of the attribute information determined based on the coding coefficient.
[0360] It should be noted that, in the embodiment of the present application, since the coding coefficient may include at least one of the first coding coefficient, the second coding coefficient, and the third coding coefficient, the attribute coefficients of the corresponding color components may be determined using the coding coefficients corresponding to different color components.
[0361] That is to say, in an embodiment of the present application, when determining the attribute coefficient of the current point based on the coding coefficient, the first attribute coefficient of the current point can be determined based on the first coding coefficient, the second attribute coefficient of the current point can be determined based on the second coding coefficient, and the third attribute coefficient of the current point can be determined based on the third coding coefficient.
[0362] It is understood that in the embodiment of the present application, the attribute coefficient of the current point can be the quantized residual or the quantized transformation coefficient of the attribute information of the current point. In other words, the attribute coefficient can be the quantized residual or the quantized transformation coefficient.
[0363] Furthermore, in an embodiment of the present application, the attribute coefficient of the current point may include attribute coefficients of all color components, that is, the attribute coefficient of the current point may include at least one of a first attribute coefficient, a second attribute coefficient, and a third attribute coefficient.
[0364] For example, in an embodiment of the present application, assuming that the attribute coefficient of the current point is the attribute coefficient of the color component, then, for the R component, the first context indicated by the first index value can be used to determine the first coding coefficient, and then the first attribute coefficient can be determined using the first coding coefficient; for the G component, the second context indicated by the second index value can be used to determine the second coding coefficient, and then the second attribute coefficient can be determined using the second coding coefficient; for the B component, the third context indicated by the third index value can be used to determine the third coding coefficient, and then the third attribute coefficient can be determined using the third coding coefficient.
[0365] For example, in an embodiment of the present application, assuming that the attribute coefficient of the current point is the attribute coefficient of the color component, then, for the Y component, the first context indicated by the first index value can be used to determine the first coding coefficient, and then the first attribute coefficient can be determined using the first coding coefficient; for the U component, the second context indicated by the second index value can be used to determine the second coding coefficient, and then the second attribute coefficient can be determined using the second coding coefficient; for the V component, the third context indicated by the third index value can be used to determine the third coding coefficient, and then the third attribute coefficient can be determined using the third coding coefficient.
[0366] It should be noted that in the embodiments of the present application, when determining the attribute coefficients of the current point, an adaptive context may be used for the attribute coefficients of some or all of the color components of the current point, or a pre-set context may be used for the attribute coefficients of some or all of the color components of the current point. Therefore, the attribute coefficients of any color component of the current point may be determined using either the adaptive context or the pre-set context.
[0367] It can be understood that in the embodiments of the present application, the first coding coefficient can be determined according to the first preset context; and / or, the second coding coefficient can be determined according to the second preset context; and / or, the third coding coefficient can be determined according to the third preset context.
[0368] Exemplarily, in an embodiment of the present application, for the first color component of the current point, you can choose to determine the first coding coefficient according to the first preset context, and determine the first attribute coefficient according to the first coding coefficient, or you can choose to determine the first index value, and then determine the first coding coefficient of the current point according to the first context indicated by the first index value, and determine the first attribute coefficient of the current point according to the first coding coefficient; for the second color component of the current point, you can choose to determine the second coding coefficient according to the second preset context, and determine the second attribute coefficient according to the second coding coefficient, or you can choose to determine the second index value, and then determine the second coding coefficient of the current point according to the second context indicated by the second index value, and determine the second attribute coefficient of the current point according to the second coding coefficient; for the third color component of the current point, you can choose to determine the third coding coefficient according to the third preset context, and determine the third attribute coefficient according to the third coding coefficient, or you can choose to determine the third index value, and then determine the third coding coefficient of the current point according to the third context indicated by the third index value, and determine the third attribute coefficient of the current point according to the third coding coefficient.
[0369] That is to say, in the embodiments of the present application, for any color component of the current point, either a pre-set context or an adaptive context can be used. When using the adaptive context, the context can be adaptively selected based on an index value determined based on the geometric information of the current point, or based on an index value determined based on the zero-run value corresponding to the current point, or based on an index value determined based on the attribute coefficients of other color components of the current point (such as the first attribute coefficient and / or the second attribute coefficient). This application does not make any specific restrictions on this.
[0370] It will be appreciated that, in the embodiments of the present application, the context determination methods for different color components of the current point are independent of each other, i.e., there is no restriction on the context determination method used by different color components being identical. For example, for the first color component, the context can be adaptively selected based on the index value determined by the zero-run value corresponding to the current point; for the second color component, the context can be adaptively selected based on the index value determined by the first attribute coefficient; and for the third color component, a pre-set context can be used. This application does not impose any specific limitations on this.
[0371] It should be noted that in the embodiments of the present application, the first color component, the second color component, and the third color component may be different color components among all the color components of the current point. For example, the first color component may be the G component, the second color component may be the B component, and the third color component may be the R component; or the first color component may be the U component, the second color component may be the Y component, and the third color component may be the V component. This application does not impose any specific limitations.
[0372] Furthermore, in an embodiment of the present application, after determining the attribute coefficient of the current point, whether to determine the sign of the attribute coefficient can be determined based on whether the attribute coefficient of the current point is 0. If the attribute coefficients of the current point are not all 0, the signs of the non-zero attribute coefficients can be determined.
[0373] That is, in the embodiment of the present application, for the attribute coefficient of the color component that is not 0, the sign of the attribute coefficient corresponding to the color component whose attribute coefficient is not 0 may be further determined.
[0374] For example, in an embodiment of the present application, if the first attribute coefficient is not 0, then the determination of the sign of the first attribute coefficient can be continued; if the second attribute coefficient is not 0, then the determination of the sign of the second attribute coefficient can be continued; if the third attribute coefficient is not 0, then the determination of the sign of the third attribute coefficient can be continued.
[0375] In summary, through the point cloud coding method proposed in steps 201 to 203, when determining the attribute coefficient using the context, the correlation between the attribute coefficients that have been encoded / decoded and the related parameters can be fully utilized to adaptively select different contexts for encoding and decoding, thereby introducing a variety of different adaptive context modes, thereby improving the encoding and decoding performance of the point cloud attributes. Among them, for the attribute coefficient of any color component of the current point, it is possible to choose to use a preset context (such as a first preset context, a second preset context, a third preset context) to determine the coding coefficient, and then determine the corresponding attribute coefficient; it is also possible to choose to use geometric information and / or zero run value to determine the index value, and then use the context indicated by the index value to determine the coding coefficient, and then determine the corresponding attribute coefficient; it is also possible to choose to use at least one of the absolute value of the first attribute coefficient, geometric information and zero run value to determine the index value, and then use the context indicated by the index value to determine the coding coefficient, and then determine the corresponding attribute coefficient; it is also possible to choose to use at least one of the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information and zero run value to determine the index value, and then use the context indicated by the index value to determine the coding coefficient, and then determine the corresponding attribute coefficient.
[0376] For example, in an embodiment of the present application, an adaptive context can be selected for the attribute coefficients of the two color components of the current point, and a preset context can be selected for the attribute coefficient of the other color component. The first attribute coefficient can be encoded first; then the encoded first attribute coefficient can be used to adaptively select the context to encode the second attribute coefficient; finally, the encoded first attribute coefficient and / or second attribute coefficient can be used to adaptively select the context to encode the third attribute coefficient.
[0377] For example, the first attribute coefficient is encoded using the first preset context; the second attribute coefficient is adaptively selected for context encoding using the encoded first attribute coefficient being greater than or equal to or less than or equal to certain constants (i.e., determining the corresponding numerical range); the third attribute coefficient is adaptively selected for context encoding using the encoded first attribute coefficient being greater than or equal to or less than or equal to certain constants, and the encoded second attribute coefficient being greater than or equal to or less than or equal to certain constants (i.e., determining the corresponding numerical range).
[0378] For example, in an embodiment of the present application, an adaptive context can be selected for the attribute coefficient of one color component of the current point, and a preset context can be selected for the attribute coefficients of the other two color components. The first attribute coefficient can be encoded first, followed by the second attribute coefficient. Finally, the encoded first attribute coefficient and / or second attribute coefficient can be used to adaptively select a context to encode the third attribute coefficient.
[0379] For example, the first attribute coefficient is encoded using the first preset context; the second attribute coefficient is encoded using the second preset context; and finally, the third attribute coefficient is encoded by adaptively selecting a context based on the relationship between the encoded first attribute coefficient plus or minus a constant and the encoded second attribute coefficient plus or minus a constant.
[0380] For example, in an embodiment of the present application, a reference zero run value may be selected to use an adaptive context for the attribute coefficients of all color components. After determining the prior information zero run value run_length, the first attribute coefficient adaptively selected context may be encoded using the encoded runlength information; then the second attribute coefficient adaptively selected context may be encoded using the encoded runlength information; and finally, the third attribute coefficient adaptively selected context may be encoded using the encoded runlength information.
[0381] For example, the first attribute coefficient is adaptively selected to encode the context using the previous set of non-zero runlength values; the second attribute coefficient is adaptively selected to encode the context using the previous set of non-zero runlength values; and the third attribute coefficient is adaptively selected to encode the context using the previous set of non-zero runlength values.
[0382] For example, the first attribute coefficient is adaptively selected using the previous set of runlength values to encode the context; the second attribute coefficient is adaptively selected using the previous set of runlength values to encode the context; and the third attribute coefficient is adaptively selected using the previous set of runlength values to encode the context.
[0383] For example, in an embodiment of the present application, a reference geometric position (geometric information) may be selected to use an adaptive context for the attribute coefficients of all color components. After determining the geometric information of the current point, the first attribute coefficient may be adaptively selected using the current point's geometric information for context encoding; the second attribute coefficient may then be adaptively selected using the current point's geometric information for context encoding; and finally, the third attribute coefficient may be adaptively selected using the current point's geometric information for context encoding.
[0384] For example, the first attribute coefficient is adaptively selected for context encoding using the geometric information position size of the current point; the second attribute coefficient is adaptively selected for context encoding using the geometric information position size of the current point; and the third attribute coefficient is adaptively selected for context encoding using the geometric information position size of the current point.
[0385] Furthermore, as shown in Tables 8 and 9, the point cloud encoding and decoding method proposed in the embodiment of the present application can obtain stable performance gains without increasing time complexity, and can improve the performance of point cloud encoding and decoding.
[0386] An embodiment of the present application provides a point cloud encoding method, wherein an encoder determines an index value; determines an encoding coefficient for the current point based on the context indicated by the index value; and determines an attribute coefficient for the current point based on the decoding coefficient. That is, in an embodiment of the present application, when using context to determine the attribute coefficient, the correlation between the already encoded / decoded attribute coefficients and related parameters can be fully utilized to adaptively select different contexts for encoding and decoding, thereby introducing a variety of different adaptive context modes, rather than being limited to using a fixed context for encoding and decoding attribute information, thereby improving the encoding and decoding performance of point cloud attributes.
[0387] Based on the above embodiment, another embodiment of the present application proposes a point cloud encoding and decoding method. When encoding and decoding the attribute coefficients of the current point, the attribute coefficients of any color component of the current point can be determined by an adaptive context or by a pre-set context. Specifically. When using the context to determine the attribute coefficients, the correlation between the already encoded / decoded attribute coefficients and the related parameters can be fully utilized to adaptively select different contexts for encoding and decoding, thereby being able to introduce a variety of different adaptive context modes, thereby improving the encoding and decoding performance of the point cloud attributes. Among them, for the attribute coefficient of any color component of the current point, you can choose to use the preset context (such as the first preset context, the second preset context, the third preset context) to determine the decoding coefficient, and then determine the corresponding attribute coefficient; you can also choose to use geometric information and / or zero-run value to determine the index value, and then use the context indicated by the index value to determine the decoding coefficient, and then determine the corresponding attribute coefficient; you can also choose to use the absolute value of the first attribute coefficient, geometric information and at least one of the zero-run value to determine the index value, and then use the context indicated by the index value to determine the decoding coefficient, and then determine the corresponding attribute coefficient; you can also choose to use the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, geometric information and at least one of the zero-run value to determine the index value, and then use the context indicated by the index value to determine the decoding coefficient, and then determine the corresponding attribute coefficient.
[0388] It can be understood that in an embodiment of the present application, it is assumed that the attribute coefficients of the three color components of the current point are value0, value1, and value2 (such as the first color component, the second color component, and the third color component), and the zero run value corresponding to the current point is run length. Below, the method of adaptively selecting context for encoding and decoding is exemplified.
[0389] For example, in an embodiment of the present application, on the encoding side, when value0=value1=value2=0, run length encoding is used; that is, run length encoding is used; when value0, value1, and value2 are not all 0 at the same time, the following scheme is used for encoding:
[0390] Encode the absolute value of value1 using an attribute encoder and a fixed context (such as the second preset context);
[0391] Use the attribute encoder to encode the absolute value of value2 and the context of the adaptive selection of the absolute value of value1;
[0392] When the absolute values of value1 and value2 are both equal to 0, the attribute encoder is used to subtract one from the absolute value of value0 (for example, subtract one from the first coding coefficient to obtain the corresponding first attribute coefficient), and the absolute values of value1 and value2 are used to adaptively select the context for encoding;
[0393] When the absolute value of value1 and the absolute value of value2 are different and equal to 0, the attribute encoder is used to encode the absolute value of value0 (that is, the first encoding coefficient is the same as the first attribute coefficient) using the absolute value of value1 and the absolute value of value2 to adaptively select the context.
[0394] If the absolute value of value0 is not 0, encode its sign;
[0395] If the absolute value of value1 is not 0, encode its sign;
[0396] If the absolute value of value2 is not 0, its sign is encoded.
[0397] Correspondingly, on the decoding side, the value of run length is decoded. When the value of run length is not 0, that is, starting from the current point, the value0=value1=value2 of the subsequent run length points are all equal to 0.
[0398] When the run length value is 0, decoding is performed as follows:
[0399] Decode the absolute value of value1 using the attribute decoder and a fixed context (such as the second preset context);
[0400] Use the attribute decoder to decode the absolute value of value2 and the context of the absolute value of value1 adaptively;
[0401] Use the attribute decoder to decode the absolute value of value0, the absolute value of value1, and the absolute value of value2 to adaptively select the context;
[0402] When the absolute value of value1 and the absolute value of value2 are both equal to 0, the absolute value of value0 is equal to value0 plus one (for example, add one to the first decoding coefficient to obtain the corresponding first attribute coefficient);
[0403] When the absolute value of value1 and the absolute value of value2 are different and equal to 0, the absolute value of value0 is equal to the absolute value of value0 (ie, the first decoding coefficient is the same as the first attribute coefficient).
[0404] If the absolute value of value0 is not 0, decode its sign;
[0405] If the absolute value of value1 is not 0, decode its sign;
[0406] If the absolute value of value2 is not 0, decode its sign.
[0407] For example, in an embodiment of the present application, on the encoding side, when the three attribute coefficients value0=value1=value2=0, run length is used for encoding, i.e., run length is encoded; when the three attribute coefficients are different and are 0, the following scheme is used for encoding:
[0408] 1. Use fixed context to encode a flag bit to represent whether the absolute value of the first attribute coefficient is equal to 0.
[0409] 2. If the first attribute coefficient is equal to 0, continue to use the fixed context to encode a flag bit to represent whether the absolute value of the second attribute coefficient is equal to 0;
[0410] 1) If the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient are both equal to 0, the absolute value of the third attribute coefficient is subtracted by 1 using the fixed context encoding (for example, the third coding coefficient is subtracted by 1 to obtain the corresponding third attribute coefficient);
[0411] 2) If the absolute value of the first attribute coefficient is equal to 0 but the absolute value of the second attribute coefficient is not equal to 0, use a fixed context (such as a second preset context) to encode the absolute value of the second attribute coefficient minus 1 (for example, subtract one from the second coded coefficient to obtain the corresponding second attribute coefficient), and continue to use the context to encode the absolute value of the third attribute coefficient (that is, the third coded coefficient is the same as the third attribute coefficient);
[0412] 3. If the absolute value of the first attribute coefficient is not equal to 0, use a fixed context (such as the first preset context) to encode the absolute value of the first attribute coefficient minus 1 (for example, subtract 1 from the first coding coefficient to obtain the corresponding first attribute coefficient), and continue to use the fixed context to encode the absolute value of the second attribute coefficient (that is, the second coding coefficient is the same as the second attribute coefficient);
[0413] A context is adaptively selected using the magnitude relationship between the absolute value of the first attribute coefficient minus one and the absolute value of the second attribute coefficient, and the absolute value of the third attribute coefficient is encoded using the adaptively selected context.
[0414] If the absolute value of the first attribute coefficient is not 0, its sign is encoded;
[0415] If the absolute value of the second attribute coefficient is not 0, its sign is encoded;
[0416] If the absolute value of the third attribute coefficient is not 0, its sign is encoded.
[0417] Correspondingly, on the decoding side, the value of run length is decoded. When the value of run length is not 0, that is, starting from the current point, the three attribute coefficients value0=value1=value2 of the subsequent run length points are all equal to 0.
[0418] When the run length value is 0, decoding is performed as follows:
[0419] 1. Use fixed context decoding to determine whether the absolute value of the first attribute coefficient is equal to 0.
[0420] 2. If the first attribute coefficient is equal to 0, continue to use the fixed context to decode a flag bit to represent whether the absolute value of the second attribute coefficient is equal to 0;
[0421] 1) If the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient are both equal to 0, the absolute value of the third attribute coefficient is decoded using the fixed context (the third preset context), and the absolute value of the third attribute coefficient is its decoded value (the third decoded coefficient) plus one (for example, the third decoded coefficient is added by one to obtain the corresponding third attribute coefficient);
[0422] 2) If the absolute value of the first attribute coefficient is equal to 0 but the absolute value of the second attribute coefficient is not equal to 0, the absolute value of the second attribute coefficient is decoded using a fixed context (a second preset context), and the absolute value of the second attribute coefficient is its decoded value (the second decoded coefficient) plus one (for example, one is added to the second decoded coefficient to obtain the corresponding second attribute coefficient), and the absolute value of the third attribute coefficient is decoded using the fixed context;
[0423] 3. If the absolute value of the first attribute coefficient is not equal to 0, the absolute value of the first attribute coefficient is decoded using the fixed context (the first preset context). The absolute value of the first attribute coefficient is the decoded value (the first decoded coefficient) plus one (for example, the second decoded coefficient is added by one to obtain the corresponding second attribute coefficient). The absolute value of the second attribute coefficient is then decoded using the fixed context (the second preset context).
[0424] A context is adaptively selected using the magnitude relationship between the absolute value of the first attribute coefficient minus one and the absolute value of the second attribute coefficient, and the absolute value of the third attribute coefficient is decoded using the adaptively selected context.
[0425] If the absolute value of the first attribute coefficient is not 0, decode its sign;
[0426] If the absolute value of the second attribute coefficient is not 0, decode its sign;
[0427] If the absolute value of the third attribute coefficient is not 0, its sign is decoded.
[0428] For example, in an embodiment of the present application, on the encoding side, when value0=value1=value2=0, run length encoding is used; that is, run length encoding is used; when value0, value1, and value2 are not all 0 at the same time, the following scheme is used for encoding:
[0429] Use the attribute encoder to encode the absolute value of value1 and the adaptive selection context using the run length information;
[0430] Use the attribute encoder to encode the absolute value of value2 and the adaptive selection context using the run length information;
[0431] When the absolute values of value1 and value2 are both equal to 0, the attribute encoder decrements the absolute value of value0 by one (for example, decrements the first coding coefficient by one to obtain the corresponding first attribute coefficient), and uses the run length information to adaptively select the context for encoding;
[0432] When the absolute value of value1 and the absolute value of value2 are different and equal to 0, the attribute encoder is used to encode the absolute value of value0 (ie, the first coding coefficient is the same as the first attribute coefficient) using the run length information to adaptively select the context.
[0433] If the absolute value of value0 is not 0, encode its sign;
[0434] If the absolute value of value1 is not 0, encode its sign;
[0435] If the absolute value of value2 is not 0, its sign is encoded.
[0436] Correspondingly, on the decoding side, the value of run length is decoded. When the value of run length is not 0, that is, starting from the current point, the value0=value1=value2 of the subsequent run length points are all equal to 0.
[0437] When the run length value is 0, decoding is performed as follows:
[0438] Use the attribute decoder to decode the absolute value of value1 and the adaptive selection context using the run length information;
[0439] Use the attribute decoder to decode the absolute value of value2 and the adaptive context selection using the run length information;
[0440] Use the attribute decoder to decode the absolute value of value0 and the adaptive selection context using the run length information;
[0441] When the absolute value of value1 and the absolute value of value2 are both equal to 0, the absolute value of value0 is equal to value0 plus one (for example, add one to the first decoding coefficient to obtain the corresponding first attribute coefficient);
[0442] When the absolute value of value1 and the absolute value of value2 are different and equal to 0, the absolute value of value0 is equal to the absolute value of value0 (ie, the first decoding coefficient is the same as the first attribute coefficient).
[0443] If the absolute value of value0 is not 0, decode its sign;
[0444] If the absolute value of value1 is not 0, decode its sign;
[0445] If the absolute value of value2 is not 0, decode its sign;
[0446] For example, in an embodiment of the present application, on the encoding side, when the three attribute coefficients value0=value1=value2=0, run length is used for encoding, i.e., run length is encoded; when the three attribute coefficients are different and are 0, the following scheme is used for encoding:
[0447] 1. Use fixed context to encode a flag bit to represent whether the absolute value of the first attribute coefficient is equal to 0.
[0448] 2. If the first attribute coefficient is equal to 0, continue to use the fixed context to encode a flag bit to represent whether the absolute value of the second attribute coefficient is equal to 0;
[0449] 1) If the absolute values of the first attribute coefficient and the second attribute coefficient are both equal to 0, the absolute value of the third attribute coefficient is adaptively selected for context coding using the run length information and subtracted by 1 (for example, the third coding coefficient is subtracted by 1 to obtain the corresponding third attribute coefficient);
[0450] 2) If the absolute value of the first attribute coefficient is equal to 0 but the absolute value of the second attribute coefficient is not equal to 0, the run length information is used to adaptively select the context encoding to reduce the absolute value of the second attribute coefficient by 1 (for example, the second coding coefficient is reduced by 1 to obtain the corresponding second attribute coefficient), and the run length information is used to adaptively select the context encoding to reduce the absolute value of the third attribute coefficient (that is, the third coding coefficient is the same as the third attribute coefficient);
[0451] 3. If the absolute value of the first attribute coefficient is not equal to 0, the absolute value of the first attribute coefficient is subtracted from 1 by adaptively selecting a context for encoding using the run length information (for example, the first coding coefficient is subtracted from 1 to obtain the corresponding first attribute coefficient), and the absolute value of the second attribute coefficient is further adaptively selected using the run length information (i.e., the second coding coefficient is the same as the second attribute coefficient).
[0452] A context is adaptively selected using the run length information, and the absolute value of the third attribute coefficient is encoded using the adaptively selected context.
[0453] If the absolute value of the first attribute coefficient is not 0, its sign is encoded;
[0454] If the absolute value of the second attribute coefficient is not 0, its sign is encoded;
[0455] If the absolute value of the third attribute coefficient is not 0, its sign is encoded.
[0456] Correspondingly, on the decoding side, the value of run length is decoded. When the value of run length is not 0, that is, starting from the current point, the three attribute coefficients value0=value1=value2 of the subsequent run length points are all equal to 0.
[0457] When the run length value is 0, decoding is performed as follows:
[0458] 1. Use fixed context decoding to determine whether the absolute value of the first attribute coefficient is equal to 0.
[0459] 2. If the first attribute coefficient is equal to 0, continue to use the fixed context to decode a flag bit to represent whether the absolute value of the second attribute coefficient is equal to 0;
[0460] 1) If the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient are both equal to 0, the absolute value of the third attribute coefficient is adaptively selected for context decoding using the run length information. The absolute value of the third attribute coefficient is its decoded value (the third decoded coefficient) plus one (for example, the third decoded coefficient is added by one to obtain the corresponding third attribute coefficient);
[0461] 2) If the absolute value of the first attribute coefficient is equal to 0 but the absolute value of the second attribute coefficient is not equal to 0, the absolute value of the second attribute coefficient in the context is adaptively selected using the run length information. The absolute value of the second attribute coefficient is its decoded value (the second decoded coefficient) plus one (for example, one is added to the second decoded coefficient to obtain the corresponding second attribute coefficient). The absolute value of the third attribute coefficient in the context is adaptively selected using the run length information.
[0462] 3. If the absolute value of the first attribute coefficient is not equal to 0, the absolute value of the first attribute coefficient is adaptively selected using the run length information to decode the context. The absolute value of the first attribute coefficient is its decoded value (the first decoded coefficient) plus one (for example, the second decoded coefficient is added by one to obtain the corresponding second attribute coefficient). The absolute value of the second attribute coefficient is then adaptively selected using the run length information to decode the context.
[0463] A context is adaptively selected using the run length information, and the absolute value of the third attribute coefficient is decoded using the adaptively selected context.
[0464] If the absolute value of the first attribute coefficient is not 0, decode its sign;
[0465] If the absolute value of the second attribute coefficient is not 0, decode its sign;
[0466] If the absolute value of the third attribute coefficient is not 0, its sign is decoded.
[0467] For example, in an embodiment of the present application, on the encoding side, when value0=value1=value2=0, run length encoding is used; that is, run length encoding is used; when value0, value1, and value2 are not all 0 at the same time, the following scheme is used for encoding:
[0468] Use the attribute encoder to encode the absolute value of value1 and the adaptive selection context using geometric information;
[0469] Use the attribute encoder to encode the absolute value of value2 and the adaptive selection context using geometric information;
[0470] When the absolute values of value1 and value2 are both equal to 0, the attribute encoder is used to subtract one from the absolute value of value0 (for example, the first coding coefficient is subtracted by one to obtain the corresponding first attribute coefficient), and the context is adaptively selected using geometric information for encoding;
[0471] When the absolute value of value1 and the absolute value of value2 are different and equal to 0, the attribute encoder is used to encode the absolute value of value0 (that is, the first coding coefficient is the same as the first attribute coefficient) using the geometric information adaptive selection context.
[0472] If the absolute value of value0 is not 0, encode its sign;
[0473] If the absolute value of value1 is not 0, encode its sign;
[0474] If the absolute value of value2 is not 0, its sign is encoded.
[0475] Correspondingly, on the decoding side, the value of run length is decoded. When the value of run length is not 0, that is, starting from the current point, the value0=value1=value2 of the subsequent run length points are all equal to 0.
[0476] When the run length value is 0, decoding is performed as follows:
[0477] Use the attribute decoder to decode the absolute value of value1 and the adaptive selection context using geometric information;
[0478] Use the attribute decoder to decode the absolute value of value2 and the adaptive selection context using geometric information;
[0479] Use the attribute decoder to decode the absolute value of value0 and the adaptive selection context using geometric information;
[0480] When the absolute value of value1 and the absolute value of value2 are both equal to 0, the absolute value of value0 is equal to value0 plus one (for example, add one to the first decoding coefficient to obtain the corresponding first attribute coefficient);
[0481] When the absolute value of value1 and the absolute value of value2 are different and equal to 0, the absolute value of value0 is equal to the absolute value of value0 (ie, the first decoding coefficient is the same as the first attribute coefficient).
[0482] If the absolute value of value0 is not 0, decode its sign;
[0483] If the absolute value of value1 is not 0, decode its sign;
[0484] If the absolute value of value2 is not 0, decode its sign;
[0485] For example, in an embodiment of the present application, on the encoding side, when the three attribute coefficients value0=value1=value2=0, run length is used for encoding, i.e., run length is encoded; when the three attribute coefficients are different and are 0, the following scheme is used for encoding:
[0486] 1. Use fixed context to encode a flag bit to represent whether the absolute value of the first attribute coefficient is equal to 0.
[0487] 2. If the first attribute coefficient is equal to 0, continue to use the fixed context to encode a flag bit to represent whether the absolute value of the second attribute coefficient is equal to 0;
[0488] 1) If the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient are both equal to 0, the absolute value of the third attribute coefficient is subtracted by 1 by adaptively selecting the context encoding based on the geometric information (for example, the third coding coefficient is subtracted by 1 to obtain the corresponding third attribute coefficient);
[0489] 2) If the absolute value of the first attribute coefficient is equal to 0 but the absolute value of the second attribute coefficient is not equal to 0, the absolute value of the second attribute coefficient is subtracted by 1 by using the context adaptively selected by the geometric information (for example, the second coding coefficient is subtracted by 1 to obtain the corresponding second attribute coefficient), and the absolute value of the third attribute coefficient is continuously encoded by using the context adaptively selected by the geometric information (that is, the third coding coefficient is the same as the third attribute coefficient);
[0490] 3. If the absolute value of the first attribute coefficient is not equal to 0, the absolute value of the first attribute coefficient is subtracted by 1 by using the context adaptively selected by the geometric information (for example, the first coding coefficient is subtracted by 1 to obtain the corresponding first attribute coefficient), and the absolute value of the second attribute coefficient is further encoded by using the context adaptively selected by the geometric information (that is, the second coding coefficient is the same as the second attribute coefficient);
[0491] A context is adaptively selected using geometric information, and the absolute value of the third attribute coefficient is encoded using the adaptively selected context.
[0492] If the absolute value of the first attribute coefficient is not 0, its sign is encoded;
[0493] If the absolute value of the second attribute coefficient is not 0, its sign is encoded;
[0494] If the absolute value of the third attribute coefficient is not 0, its sign is encoded.
[0495] Correspondingly, on the decoding side, the value of run length is decoded. When the value of run length is not 0, that is, starting from the current point, the three attribute coefficients value0=value1=value2 of the subsequent run length points are all equal to 0.
[0496] When the run length value is 0, decoding is performed as follows:
[0497] 1. Use fixed context decoding to determine whether the absolute value of the first attribute coefficient is equal to 0.
[0498] 2. If the first attribute coefficient is equal to 0, continue to use the fixed context to decode a flag bit to represent whether the absolute value of the second attribute coefficient is equal to 0;
[0499] 1) If the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient are both equal to 0, the absolute value of the third attribute coefficient is adaptively selected context-decoded using geometric information, where the absolute value of the third attribute coefficient is its decoded value (the third decoded coefficient) plus one (for example, the third decoded coefficient is added by one to obtain the corresponding third attribute coefficient);
[0500] 2) If the absolute value of the first attribute coefficient is equal to 0 but the absolute value of the second attribute coefficient is not equal to 0, the absolute value of the second attribute coefficient of the context is selected adaptively using the geometric information, and the absolute value of the second attribute coefficient is its decoded value (the second decoded coefficient) plus one (for example, the second decoded coefficient is added by one to obtain the corresponding second attribute coefficient), and the absolute value of the third attribute coefficient is decoded continuously using the context of the geometric information adaptive selection;
[0501] 3. If the absolute value of the first attribute coefficient is not equal to 0, the absolute value of the first attribute coefficient is decoded using the context adaptively selected by the geometric information. The absolute value of the first attribute coefficient is its decoded value (the first decoded coefficient) plus one (for example, the second decoded coefficient is added by one to obtain the corresponding second attribute coefficient). The absolute value of the second attribute coefficient is then decoded using the context adaptively selected by the geometric information.
[0502] A context is adaptively selected using geometric information, and the absolute value of the third attribute coefficient is decoded using the adaptively selected context.
[0503] If the absolute value of the first attribute coefficient is not 0, decode its sign;
[0504] If the absolute value of the second attribute coefficient is not 0, decode its sign;
[0505] If the absolute value of the third attribute coefficient is not 0, its sign is decoded.
[0506] Furthermore, in an embodiment of the present application, after determining the attribute coefficients of the two color components of the current point, the attribute coefficient of the third color component can be encoded and decoded by adaptively selecting a context based on the absolute value of the first attribute coefficient and / or the absolute value of the second attribute coefficient.
[0507] Exemplarily, in an embodiment of the present application, for the encoding end: the first attribute coefficient is encoded using an attribute encoder; the second attribute coefficient is encoded using an attribute encoder; the attribute encoder uses the absolute value of the encoded first attribute coefficient plus a constant 1, and the absolute value of the encoded second attribute coefficient plus a constant 2 to adaptively select a context for encoding. For the decoding end: the first attribute coefficient is decoded using an attribute decoder; the second attribute coefficient is decoded using an attribute decoder; the attribute decoder uses the absolute value of the decoded first attribute coefficient plus a constant 1, and the absolute value of the decoded second attribute coefficient plus a constant 2 to adaptively select a context for decoding. Wherein, the values of constant 1 and constant 2 can be any values, for example, constant 1 = 1, constant 2 = 0, or constant 1 = 0, constant 2 = 0.
[0508] Exemplarily, in an embodiment of the present application, for the encoding end: the first attribute coefficient is encoded using an attribute encoder; the second attribute coefficient is adaptively selected context encoded using the attribute encoder based on whether the absolute value of the encoded first attribute coefficient is equal to a constant 1 and is less than or equal to a constant 2; the third attribute coefficient is adaptively selected context encoded using the attribute encoder based on whether the absolute value of the encoded first attribute coefficient is equal to a constant 3 and is less than or equal to a constant 4, and whether the absolute value of the encoded second attribute coefficient is equal to a constant 5 and is less than or equal to a constant 6; for the decoding end: the first attribute coefficient is decoded using an attribute decoder; the second attribute coefficient is adaptively selected context decoded using the attribute decoder based on whether the absolute value of the decoded first attribute coefficient is equal to a constant 1 and is less than or equal to a constant 2; the third attribute coefficient is adaptively selected context decoded using the attribute decoder based on whether the absolute value of the decoded first attribute coefficient is equal to a constant 3 and is less than or equal to a constant 4, and whether the absolute value of the decoded second attribute coefficient is equal to a constant 5 and is less than or equal to a constant 6. Among them, the values of constant 1, constant 2, constant 3, constant 4, constant 5, and constant 6 can be any numerical values, for example, constant 1 = constant 3 = constant 5 = 0, constant 2 = constant 4 = constant 6 = 1; or, constant 1 = constant 3 = 1, constant 2 = constant 4 = 2, constant 5 = 0, constant 6 = 1.
[0509] Exemplarily, in an embodiment of the present application, for the encoding end: for the encoding end: using the attribute encoder to encode the first attribute coefficient; using the attribute encoder to determine whether the absolute value of the encoded first attribute coefficient is equal to constant 1 and whether it is greater than or equal to constant 2 to adaptively select the context of the second attribute coefficient; using the attribute encoder to determine whether the absolute value of the encoded first attribute coefficient is equal to constant 3 and whether it is greater than or equal to constant 4, and whether the absolute value of the encoded second attribute coefficient is equal to constant 5 and whether it is greater than or equal to constant 6 to adaptively select the context of the third attribute coefficient; for the decoding end: using the attribute decoder to decode the first attribute coefficient; using the attribute decoder to determine whether the absolute value of the decoded first attribute coefficient is equal to constant 1 and whether it is greater than or equal to constant 2 to adaptively select the context of the second attribute coefficient; using the attribute decoder to determine whether the absolute value of the decoded first attribute coefficient is equal to constant 3 and whether it is greater than or equal to constant 4, and whether the absolute value of the decoded second attribute coefficient is equal to constant 5 and whether it is greater than or equal to constant 6 to adaptively select the context of the third attribute coefficient. Among them, the values of constant 1, constant 2, constant 3, constant 4, constant 5, and constant 6 can be any numerical values, for example, constant 1 = constant 3 = constant 5 = 0, constant 2 = constant 4 = constant 6 = 1; or, constant 1 = constant 3 = 1, constant 2 = constant 4 = 2, constant 5 = 0, constant 6 = 1.
[0510] For example, in an embodiment of the present application, at the encoding end, the second attribute coefficient is encoded using an attribute encoder; the third attribute coefficient is adaptively selected for context encoding based on whether the absolute value of the encoded second attribute coefficient is equal to a constant 7 and is less than or equal to a constant 8; at the decoding end, the second attribute coefficient is decoded using an attribute decoder; the third attribute coefficient is adaptively selected for context decoding based on whether the absolute value of the decoded second attribute coefficient is equal to a constant 7 and is less than or equal to a constant 8. The values of constants 7 and 8 can be any values, for example, constant 7 = 1; constant 8 = 2; or constant 7 = 0; constant 8 = 1.
[0511] For example, in an embodiment of the present application, at the encoding end, the second attribute coefficient is encoded using an attribute encoder; the third attribute coefficient is adaptively selected for context encoding based on whether the absolute value of the encoded second attribute coefficient is equal to a constant 7 and greater than or equal to a constant 8; at the decoding end, the second attribute coefficient is decoded using an attribute decoder; the third attribute coefficient is adaptively selected for context decoding based on whether the absolute value of the decoded second attribute coefficient is equal to a constant 7 and greater than or equal to a constant 8. The values of constants 7 and 8 can be arbitrary, for example, constant 7 = 1; constant 8 = 2; or constant 7 = 0; constant 8 = 1.
[0512] For example, in an embodiment of the present application, at the encoding end: the first attribute coefficient is encoded using an attribute encoder; the second attribute coefficient is encoded using an attribute encoder; the attribute encoder adaptively selects a context for encoding based on the relationship between the absolute value of the encoded first attribute coefficient minus a constant 9 and the absolute value of the encoded second attribute coefficient minus a constant 10; at the decoding end: the first attribute coefficient is decoded using an attribute decoder;
[0513] The attribute decoder decodes the second attribute coefficient. The attribute decoder adaptively selects a context for decoding based on the relationship between the absolute value of the decoded first attribute coefficient minus a constant 9 and the absolute value of the decoded second attribute coefficient minus a constant 10. Constants 9 and 10 can be any values, for example, constant 9 = 1 and constant 10 = 0, or constant 9 = 0 and constant 10 = 0.
[0514] For example, taking constants 1, 2, 9, and 10 as all 0, in an embodiment of the present application, on the encoding side, when the three attribute coefficients value0 = value1 = value2 = 0, run length is used for encoding, i.e., run length is encoded; when the three attribute coefficients are different and all 0, the following scheme is used for encoding:
[0515] 1. Use fixed context to encode a flag bit to represent whether the absolute value of the first attribute coefficient is equal to 0.
[0516] 2. If the first attribute coefficient is equal to 0, continue to use the fixed context to encode a flag bit to represent whether the absolute value of the second attribute coefficient is equal to 0;
[0517] 1) If the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient are both equal to 0, the absolute value of the third attribute coefficient is subtracted by 1 using the fixed context encoding (for example, the third coding coefficient is subtracted by 1 to obtain the corresponding third attribute coefficient);
[0518] 2) If the absolute value of the first attribute coefficient is equal to 0 but the absolute value of the second attribute coefficient is not equal to 0, use a fixed context (such as a second preset context) to encode the absolute value of the second attribute coefficient minus 1 (for example, subtract one from the second coded coefficient to obtain the corresponding second attribute coefficient), and continue to use the context to encode the absolute value of the third attribute coefficient (that is, the third coded coefficient is the same as the third attribute coefficient);
[0519] 3. If the absolute value of the first attribute coefficient is not equal to 0, use a fixed context (such as the first preset context) to encode the absolute value of the first attribute coefficient minus 1 (for example, subtract 1 from the first coding coefficient to obtain the corresponding first attribute coefficient), and continue to use the fixed context to encode the absolute value of the second attribute coefficient (that is, the second coding coefficient is the same as the second attribute coefficient);
[0520] A context is adaptively selected using the magnitude relationship between the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient, and the absolute value of the third attribute coefficient is encoded using the adaptively selected context.
[0521] Adaptively selecting a context using the magnitude relationship between the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient can be understood as: if the absolute value of the first attribute coefficient is greater than the absolute value of the second attribute coefficient, one context is selected; if the absolute value of the first attribute coefficient is less than or equal to the absolute value of the second attribute coefficient, another context is selected.
[0522] Alternatively, if the absolute value of the first attribute coefficient is greater than or equal to the absolute value of the second attribute coefficient, a previous context is selected; if the absolute value of the first attribute coefficient is less than the absolute value of the second attribute coefficient, another context is selected.
[0523] Alternatively, if the absolute value of the first attribute coefficient is greater than the absolute value of the second attribute coefficient, select a context; if the absolute value of the first attribute coefficient is equal to the absolute value of the second attribute coefficient, select another context; if the absolute value of the first attribute coefficient is less than the absolute value of the second attribute coefficient, select another context.
[0524] If the absolute value of the first attribute coefficient is not 0, its sign is encoded;
[0525] If the absolute value of the second attribute coefficient is not 0, its sign is encoded;
[0526] If the absolute value of the third attribute coefficient is not 0, its sign is encoded.
[0527] Correspondingly, on the decoding side, the value of run length is decoded. When the value of run length is not 0, that is, starting from the current point, the three attribute coefficients value0=value1=value2 of the subsequent run length points are all equal to 0.
[0528] When the run length value is 0, decoding is performed as follows:
[0529] 1. Use fixed context decoding to determine whether the absolute value of the first attribute coefficient is equal to 0.
[0530] 2. If the first attribute coefficient is equal to 0, continue to use the fixed context to decode a flag bit to represent whether the absolute value of the second attribute coefficient is equal to 0;
[0531] 1) If the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient are both equal to 0, the absolute value of the third attribute coefficient is decoded using the fixed context (the third preset context), and the absolute value of the third attribute coefficient is its decoded value (the third decoded coefficient) plus one (for example, the third decoded coefficient is added by one to obtain the corresponding third attribute coefficient);
[0532] 2) If the absolute value of the first attribute coefficient is equal to 0 but the absolute value of the second attribute coefficient is not equal to 0, the absolute value of the second attribute coefficient is decoded using a fixed context (a second preset context), and the absolute value of the second attribute coefficient is its decoded value (the second decoded coefficient) plus one (for example, one is added to the second decoded coefficient to obtain the corresponding second attribute coefficient), and the absolute value of the third attribute coefficient is decoded using the fixed context;
[0533] 3. If the absolute value of the first attribute coefficient is not equal to 0, the absolute value of the first attribute coefficient is decoded using the fixed context (the first preset context). The absolute value of the first attribute coefficient is the decoded value (the first decoded coefficient) plus one (for example, the second decoded coefficient is added by one to obtain the corresponding second attribute coefficient). The absolute value of the second attribute coefficient is then decoded using the fixed context (the second preset context).
[0534] A context is adaptively selected using the magnitude relationship between the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient, and the absolute value of the third attribute coefficient is decoded using the adaptively selected context.
[0535] Adaptively selecting a context using the magnitude relationship between the absolute value of the first attribute coefficient and the absolute value of the second attribute coefficient can be understood as: if the absolute value of the first attribute coefficient is greater than the absolute value of the second attribute coefficient, one context is selected; if the absolute value of the first attribute coefficient is less than or equal to the absolute value of the second attribute coefficient, another context is selected.
[0536] Alternatively, if the absolute value of the first attribute coefficient is greater than or equal to the absolute value of the second attribute coefficient, a previous context is selected; if the absolute value of the first attribute coefficient is less than the absolute value of the second attribute coefficient, another context is selected.
[0537] Alternatively, if the absolute value of the first attribute coefficient is greater than the absolute value of the second attribute coefficient, select a context; if the absolute value of the first attribute coefficient is equal to the absolute value of the second attribute coefficient, select another context; if the absolute value of the first attribute coefficient is less than the absolute value of the second attribute coefficient, select yet another context.
[0538] If the absolute value of the first attribute coefficient is not 0, decode its sign;
[0539] If the absolute value of the second attribute coefficient is not 0, decode its sign;
[0540] If the absolute value of the third attribute coefficient is not 0, its sign is decoded.
[0541] It can be understood that in an embodiment of the present application, for the attribute coefficient of a color component of the current point, when determining the first index value corresponding to the first color component based on geometric information and / or zero-run value, the index value determined based on the geometric information, or the index value determined based on the zero-run value, can be determined as the first index value; or the index value determined based on the geometric information and the index value determined based on the zero-run value can be operated and processed to obtain the first index value.
[0542] It can be understood that in an embodiment of the present application, after determining the attribute coefficient of a color component of the current point, that is, after determining the first attribute coefficient, when determining the second index value corresponding to the second color component based on at least one of the absolute value of the first attribute coefficient, geometric information, and zero-run value, the second index value can be determined based on the index value determined based on the absolute value of the first attribute coefficient, or the index value determined based on the geometric information, or the index value determined based on the zero-run value; the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value can also be operated on to obtain the second index value.
[0543] It can be understood that in an embodiment of the present application, after determining the attribute coefficients of the two color components of the current point, that is, after determining the first attribute coefficient and the second attribute coefficient, when determining the third index value corresponding to the third color component based on the absolute value of the first attribute coefficient, the absolute value of the second attribute coefficient, the geometric information, and at least one of the zero-run value, the third index value can be determined based on the index value determined based on the absolute value of the first attribute coefficient, or the index value determined based on the absolute value of the second attribute coefficient, or the index value determined based on the geometric information, or the index value determined based on the zero-run value; the index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the absolute value of the second attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value can also be calculated and processed to obtain the third index value.
[0544] Furthermore, in an embodiment of the present application, after determining the index value, the coding coefficient (decoding coefficient) of the current point can be further determined based on the context indicated by the index value. The coding coefficient (decoding coefficient) can be a value obtained after encoding and decoding using the context indicated by the index value.
[0545] Furthermore, in an embodiment of the present application, after determining the number of coding coefficients (decoding coefficients) of the current point based on the context indicated by the index value, the attribute coefficients of the current point can be further determined based on the coding coefficients (decoding coefficients). The attribute coefficients can be related values of attribute information determined based on the coding coefficients (decoding coefficients).
[0546] It is understood that in the embodiment of the present application, the attribute coefficient of the current point can be the quantized residual or the quantized transformation coefficient of the attribute information of the current point. In other words, the attribute coefficient can be the quantized residual or the quantized transformation coefficient.
[0547] It should be noted that in an embodiment of the present application, a 1-bit flag (such as adaptive context identification information) can also be used to indicate whether the adaptive context selection mode is turned on. This flag can be 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 code stream, the value of the flag can be defaulted to a fixed value.
[0548] Correspondingly, the decoding end needs to decode the flag bit. If the flag bit does not appear in the bit stream, it will not be decoded. The default value of the flag bit is a fixed value.
[0549] It should be noted that in the embodiments of the present application, the adaptive context identification information can be understood as a flag indicating whether the adaptive context is used for a node in the point cloud. Specifically, the encoder can determine a variable as the adaptive context identification information, so that the adaptive context identification information can be determined by the value of the variable.
[0550] Exemplarily, in an embodiment of the present application, if the value of the adaptive context identification information is 1, it may indicate that the attribute coefficient of the current point is determined using the adaptive context; if the value of the adaptive context identification information is 0, it may indicate that the attribute coefficient of the current point is not determined using the adaptive context.
[0551] Of course, the adaptive context identification information setting process can also be omitted. That is, it can be preset whether to use the adaptive context to determine the attribute coefficients of the current point, or it can be preset whether to use the adaptive context to determine the attribute coefficients of one or more color components among all color components of the current point. In other words, whether to use the adaptive context for some or all color components can be independently determined without relying on the value of the adaptive context identification information.
[0552] An embodiment of the present application provides a point cloud encoding and decoding method, wherein the decoder determines an index value; determines a decoding coefficient of the current point based on the context indicated by the index value; and determines an attribute coefficient of the current point based on the decoding coefficient. The encoder determines an index value; determines an encoding coefficient of the current point based on the context indicated by the index value; and determines an attribute coefficient of the current point based on the decoding coefficient. That is, in an embodiment of the present application, when using the context to determine the attribute coefficient, full use can be made of the correlation between the already encoded / decoded attribute coefficients and the related parameters to adaptively select different contexts for encoding and decoding, thereby being able to introduce a variety of different adaptive context modes, and no longer being limited to using a fixed context for encoding and decoding attribute information, thereby improving the encoding and decoding performance of point cloud attributes.
[0553] Based on the above embodiment, in another embodiment of the present application, based on the same inventive concept as the above embodiment, FIG10 is a schematic diagram of the composition structure of an encoder. As shown in FIG10 , the encoder 20 may include: a first determining unit 21, wherein:
[0554] The first determining unit 21 is configured to determine an index value; determine a coding coefficient of a current point according to a context indicated by the index value; and determine an attribute coefficient of the current point according to the coding coefficient.
[0555] It is understood that in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular system. Furthermore, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.
[0556] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0557] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 20. The computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, it implements the method described in any one of the aforementioned embodiments.
[0558] Based on the composition of the above-mentioned encoder 20 and the computer-readable storage medium, Figure 11 is a second schematic diagram of the composition structure of the encoder. As shown in Figure 11, the encoder 20 may include: a first memory 22 and a first processor 23, a first communication interface 24 and a first bus system 25. The first memory 22, the first processor 23, and the first communication interface 24 are coupled together through the first bus system 25. It can be understood that the first bus system 25 is used to achieve connection and communication between these components. In addition to the data bus, the first bus system 25 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as the first bus system 25 in Figure 11. Among them,
[0559] The first communication interface 24 is used to receive and send signals during the process of sending and receiving information with other external network elements;
[0560] The first memory 22 is used to store a computer program that can be run on the first processor;
[0561] The first processor 23 is configured to determine an index value when running the computer program; determine a coding coefficient of a current point according to a context indicated by the index value; and determine an attribute coefficient of the current point according to the coding coefficient.
[0562] It is understood that the first memory 22 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. Among them, 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. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The first memory 22 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0563] The first processor 23 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits or software instructions in the first processor 23. The above-mentioned first processor 23 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the first memory 22. The first processor 23 reads the information in the first memory 22 and, in conjunction with its hardware, completes the steps of the above method.
[0564] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present application. Software code can be stored in memory and executed by processor. Memory can be implemented in processor or outside processor.
[0565] Optionally, as another embodiment, the first processor 23 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
[0566] FIG12 is a schematic diagram of the first structure of a decoder. As shown in FIG12 , the decoder 30 may include: a second determining unit 31; wherein,
[0567] The second determining unit 31 is configured to determine an index value; determine a coding coefficient of a current point according to a context indicated by the index value; and determine a property coefficient of the current point according to the decoding coefficient.
[0568] It is understood that in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular system. Furthermore, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.
[0569] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0570] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the decoder 30. The computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, it implements any one of the methods in the aforementioned embodiments.
[0571] Based on the composition of the above-mentioned decoder 30 and the computer-readable storage medium, Figure 13 is a second schematic diagram of the composition structure of the decoder. As shown in Figure 13, the decoder 30 may include: a second memory 32 and a second processor 33, a second communication interface 34 and a second bus system 35. The second memory 32 and the second processor 33, and the second communication interface 34 are coupled together through the second bus system 35. It can be understood that the second bus system 35 is used to realize the connection and communication between these components. In addition to the data bus, the second bus system 35 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the second bus system 35 in Figure 13. Among them,
[0572] The second communication interface 34 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0573] The second memory 32 is used to store a computer program that can be run on the second processor;
[0574] The second processor 33 is configured to determine an index value when running the computer program; determine a coding coefficient of a current point according to a context indicated by the index value; and determine an attribute coefficient of the current point according to the decoding coefficient.
[0575] It is understood that the second memory 32 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. Among them, 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. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The second memory 32 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0576] The second processor 33 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits or software instructions in the second processor 33. The above-mentioned second processor 33 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the second memory 32. The second processor 33 reads the information in the second memory 32 and, in conjunction with its hardware, completes the steps of the above method.
[0577] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, the technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present 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.
[0578] An embodiment of the present application provides an encoder and a decoder that, when using context to determine attribute coefficients, can fully utilize the correlation between the already encoded / decoded attribute coefficients and the related parameters to adaptively select different contexts for encoding and decoding, thereby being able to introduce a variety of different adaptive context modes, and no longer being limited to using a fixed context for encoding and decoding attribute information, thereby improving the encoding and decoding performance of point cloud attributes.
[0579] In another embodiment of the present application, the embodiment of the present application also provides a code stream, which is generated by bit encoding based on the information to be encoded; wherein the information to be encoded includes at least: adaptive context identification information of the current point, geometric information of the current point, and zero run value corresponding to the current point.
[0580] It should be noted that, in the embodiments of the present application, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.
[0581] The serial numbers of the above embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
[0582] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0583] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0584] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
[0585] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims. Industrial Applicability
[0586] The embodiment of the present application provides a point cloud encoding and decoding method, an encoder, a decoder, a code stream and a storage medium, wherein the decoder determines an index value; determines a decoding coefficient of the current point based on the context indicated by the index value; and determines an attribute coefficient of the current point based on the decoding coefficient. The encoder determines an index value; determines an encoding coefficient of the current point based on the context indicated by the index value; and determines an attribute coefficient of the current point based on the decoding coefficient. That is, in the embodiment of the present application, when using the context to determine the attribute coefficient, the correlation between the already encoded / decoded attribute coefficients and the related parameters can be fully utilized to adaptively select different contexts for encoding and decoding, thereby being able to introduce a variety of different adaptive context modes, and no longer being limited to using a fixed context for encoding and decoding attribute information, thereby improving the encoding and decoding performance of point cloud attributes.
Claims
1. A point cloud decoding method, applied to a decoder, comprising: Determine the index value; Determine a decoding coefficient of a current point according to the context indicated by the index value; The attribute coefficient of the current point is determined according to the decoded coefficient.
2. The method according to claim 1, wherein The index value includes at least one of a first index value, a second index value, and a third index value.
3. The method according to claim 2, wherein: The method further comprises: determining a first index value; Determine a first decoding coefficient of the current point according to a first context indicated by the first index value; A first attribute coefficient of the current point is determined according to the first decoding coefficient.
4. The method according to any one of claims 2 to 3, wherein: The method further comprises: determining a second index value; Determine a second decoding coefficient of the current point according to a second context indicated by the second index value; A second attribute coefficient of the current point is determined according to the second decoding coefficient.
5. The method according to any one of claims 2 to 4, wherein: The method further comprises: determining a third index value; Determine a third decoding coefficient of the current point according to a third context indicated by the third index value; A third attribute coefficient of the current point is determined according to the third decoding coefficient.
6. The method according to claim 5, wherein: The method further comprises: Decode the code stream to determine the geometric information of the current point and the zero-run value corresponding to the current point.
7. The method according to claim 6, wherein: The method further comprises: The index value is determined based on the geometric information and / or the zero-run value.
8. The method according to claim 6, wherein: The method further comprises: The index value is determined according to at least one of the absolute value of the first attribute coefficient, the geometric information, and the zero-run value.
9. The method according to claim 6, wherein: The method further comprises: The index value is determined according to at least one of an absolute value of the first attribute coefficient, an absolute value of the second attribute coefficient, the geometric information, and the zero-run value.
10. The method according to any one of claims 7 to 9, wherein: The method further comprises: performing an addition or subtraction operation on the zero-run value and the first value to determine a first operation result; The index value is determined according to the first operation result.
11. The method according to any one of claims 7 to 9, wherein: The method further comprises: performing an addition or subtraction operation on the zero-run value and the first value to determine a first operation result; determining a first numerical range corresponding to the first operation result; The index value is determined according to the first numerical range and the corresponding relationship between the first preset index value and the numerical range.
12. The method according to any one of claims 7 to 9, wherein: The method further comprises: Determining a second numerical range corresponding to the zero-run value; The index value is determined according to the second numerical range and the corresponding relationship between the second preset index value and the numerical range.
13. The method according to any one of claims 7 to 9, wherein: The method further comprises: Determining a position range corresponding to the geometric information; The index value is determined according to the position range and the corresponding relationship between the preset position range and the index value.
14. The method according to claim 8 or 9, wherein The method further comprises: The absolute value of the first attribute coefficient is set as the index value.
15. The method according to claim 8 or 9, wherein The method further comprises: determining a third numerical range corresponding to the absolute value of the first attribute coefficient; The index value is determined according to the third numerical range and the corresponding relationship between the third preset index value and the numerical range.
16. The method according to claim 8 or 9, wherein The method further comprises: performing an addition or subtraction operation on the absolute value of the first attribute coefficient and the second value to determine a second operation result; The index value is determined according to the second operation result.
17. The method according to claim 8 or 9, wherein The method further comprises: performing an addition or subtraction operation on the absolute value of the first attribute coefficient and the second value to determine a second operation result; determining a fourth numerical range corresponding to the second operation result; The index value is determined according to the fourth numerical range and the corresponding relationship between the fourth preset index value and the numerical range.
18. The method according to claim 9, wherein The method further comprises: The absolute value of the second attribute coefficient is set as the index value.
19. The method according to claim 9, wherein The method further comprises: determining a fifth numerical range corresponding to the absolute value of the second attribute coefficient; The index value is determined according to the fifth numerical range and the corresponding relationship between the fifth preset index value and the numerical range.
20. The method according to claim 9, wherein The method further comprises: performing an addition or subtraction operation on the absolute value of the second attribute coefficient and a third value to determine a third operation result; The index value is determined according to the third operation result.
21. The method according to claim 9, wherein The method further comprises: performing an addition or subtraction operation on the absolute value of the second attribute coefficient and a third value to determine a third operation result; Determining a sixth numerical range corresponding to the third operation result; The index value is determined according to the sixth numerical range and the corresponding relationship between the sixth preset index value and the numerical range.
22. The method according to any one of claims 10 to 13, wherein: The method further comprises: Determine an index value determined based on the geometric information, or an index value determined based on the zero-run value, as the first index value; or, An index value determined based on the geometric information and an index value determined based on the zero-run value are processed to obtain the first index value.
23. The method according to any one of claims 10 to 17, wherein: The method further comprises: Determine an index value determined based on the absolute value of the first attribute coefficient, or an index value determined based on the geometric information, or an index value determined based on the zero-run value as the second index value; or The index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value is processed to obtain the second index value.
24. The method according to any one of claims 10 to 21, wherein: The method further comprises: Determine an index value determined based on the absolute value of the first attribute coefficient, or an index value determined based on the absolute value of the second attribute coefficient, or an index value determined based on the geometric information, or an index value determined based on the zero-run value as the third index value; or The index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the absolute value of the second attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero run value is processed to obtain the third index value.
25. The method according to claim 5, wherein The method further comprises: Decoding the code stream to determine the adaptive context identification information of the current point; If the adaptive context identification information indicates that the attribute coefficient of the current point is determined using the adaptive context, the process of determining the first index value, and / or the second index value, and / or the third index value is executed.
26. The method according to claim 5, wherein The method further comprises: Determining the first decoding coefficient according to a first preset context; and / or, Determine the second decoding coefficient according to a second preset context; and / or, The third decoding coefficient is determined according to a third preset context.
27. The method according to claim 5, wherein The zero-run value corresponding to the current point includes: the zero-run value of the current point, or the previous zero-run value of the current point, or the previous non-zero zero-run value of the current point.
28. The method according to any one of claims 1 to 5, wherein: The method further comprises: If the attribute coefficients of the current point are not all zero, the bitstream is decoded to determine the signs of the non-zero attribute coefficients.
29. A point cloud encoding method, applied to an encoder, comprising: Determine the index value; Determine a coding coefficient of a current point according to the context indicated by the index value; The attribute coefficient of the current point is determined according to the encoding coefficient.
30. The method according to claim 29, wherein The index value includes at least one of a first index value, a second index value, and a third index value.
31. The method according to claim 30, wherein The method further comprises: determining a first index value; Determine a first coding coefficient of the current point according to a first context indicated by the first index value; A first attribute coefficient of the current point is determined according to the first encoding coefficient.
32. The method according to any one of claims 30-31, wherein: The method further comprises: determining a second index value; Determine a second coding coefficient of the current point according to a second context indicated by the second index value; A second attribute coefficient of the current point is determined according to the second encoding coefficient.
33. The method according to any one of claims 30 to 32, wherein: The method further comprises: determining a third index value; Determine a third coding coefficient of the current point according to a third context indicated by the third index value; A third attribute coefficient of the current point is determined according to the third encoding coefficient.
34. The method according to claim 33, wherein The method further comprises: Determine the geometric information of the current point and the zero-run value corresponding to the current point.
35. The method according to claim 34, wherein The method further comprises: The index value is determined based on the geometric information and / or the zero-run value.
36. The method of claim 34, wherein: The method further comprises: The index value is determined according to at least one of the absolute value of the first attribute coefficient, the geometric information, and the zero-run value.
37. The method of claim 34, wherein: The method further comprises: The index value is determined according to at least one of an absolute value of the first attribute coefficient, an absolute value of the second attribute coefficient, the geometric information, and the zero-run value.
38. The method according to any one of claims 35 to 37, wherein: The method further comprises: performing an addition or subtraction operation on the zero-run value and the first value to determine a first operation result; The index value is determined according to the first operation result.
39. The method according to any one of claims 35 to 37, wherein: The method further comprises: performing an addition or subtraction operation on the zero-run value and the first value to determine a first operation result; determining a first numerical range corresponding to the first operation result; The index value is determined according to the first numerical range and the corresponding relationship between the first preset index value and the numerical range.
40. The method according to any one of claims 35 to 37, wherein: The method further comprises: Determining a second numerical range corresponding to the zero-run value; The index value is determined according to the second numerical range and the corresponding relationship between the second preset index value and the numerical range.
41. The method according to any one of claims 35 to 37, wherein: The method further comprises: Determining a position range corresponding to the geometric information; The index value is determined according to the position range and the corresponding relationship between the preset position range and the index value.
42. The method according to claim 36 or 37, wherein The method further comprises: The absolute value of the first attribute coefficient is set as the index value.
43. The method according to claim 36 or 37, wherein The method further comprises: determining a third numerical range corresponding to the absolute value of the first attribute coefficient; The index value is determined according to the third numerical range and the corresponding relationship between the third preset index value and the numerical range.
44. The method according to claim 36 or 37, wherein The method further comprises: performing an addition or subtraction operation on the absolute value of the first attribute coefficient and the second value to determine a second operation result; The second operation result is determined as the index value.
45. The method according to claim 36 or 37, wherein The method further comprises: performing an addition or subtraction operation on the absolute value of the first attribute coefficient and the second value to determine a second operation result; determining a fourth numerical range corresponding to the second operation result; The index value is determined according to the fourth numerical range and the corresponding relationship between the fourth preset index value and the numerical range.
46. The method of claim 37, wherein: The method further comprises: The absolute value of the second attribute coefficient is set as the index value.
47. The method of claim 37, wherein: The method further comprises: determining a fifth numerical range corresponding to the absolute value of the second attribute coefficient; The index value is determined according to the fifth numerical range and the corresponding relationship between the fifth preset index value and the numerical range.
48. The method of claim 37, wherein The method further comprises: performing an addition or subtraction operation on the absolute value of the second attribute coefficient and a third value to determine a third operation result; The third operation result is determined as the index value.
49. The method of claim 37, wherein The method further comprises: performing an addition or subtraction operation on the absolute value of the second attribute coefficient and a third value to determine a third operation result; Determining a sixth numerical range corresponding to the third operation result; The index value is determined according to the sixth numerical range and the corresponding relationship between the sixth preset index value and the numerical range.
50. The method according to any one of claims 38 to 41, wherein The method further comprises: Determine an index value determined based on the geometric information, or an index value determined based on the zero-run value, as the first index value; or, An index value determined based on the geometric information and an index value determined based on the zero-run value are processed to obtain the first index value.
51. The method according to any one of claims 38 to 45, wherein: The method further comprises: Determine an index value determined based on the absolute value of the first attribute coefficient, or an index value determined based on the geometric information, or an index value determined based on the zero-run value as the second index value; or The index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero-run value is processed to obtain the second index value.
52. The method according to any one of claims 38 to 49, wherein: The method further comprises: Determine an index value determined based on the absolute value of the first attribute coefficient, or an index value determined based on the absolute value of the second attribute coefficient, or an index value determined based on the geometric information, or an index value determined based on the zero-run value as the third index value; or The index value determined based on the absolute value of the first attribute coefficient, and / or the index value determined based on the absolute value of the second attribute coefficient, and / or the index value determined based on the geometric information, and / or the index value determined based on the zero run value is processed to obtain the third index value.
53. The method of claim 33, wherein: The method further comprises: If it is determined to use the adaptive context to determine the attribute coefficient of the current point, the adaptive context identification information of the current point is set, and the adaptive context identification information of the current point is written into the bitstream.
54. The method of claim 33, wherein The method further comprises: Determining the first coding coefficient according to a first preset context; and / or, Determine the second coding coefficient according to a second preset context; and / or, The third coding coefficient is determined according to a third preset context.
55. The method of claim 33, wherein The zero-run value corresponding to the current point includes: the zero-run value of the current point, or the previous zero-run value of the current point, or the previous non-zero zero-run value of the current point.
56. The method according to any one of claims 29 to 33, wherein: The method further comprises: If the attribute coefficients of the current point are not all 0, the signs of the non-zero attribute coefficients are determined.
57. An encoder comprising a first determining unit, wherein: The first determining unit is configured to determine an index value; determine a coding coefficient of a current point according to a context indicated by the index value; and determine an attribute coefficient of the current point according to the coding coefficient.
58. An encoder 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; The first processor is configured to execute the method according to any one of claims 29 to 56 when running the computer program.
59. A decoder comprising a second determining unit, wherein: The second determining unit is configured to determine an index value; determine a coding coefficient of a current point according to a context indicated by the index value; and determine an attribute coefficient of the current point according to the decoding coefficient.
60. A decoder 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; The second processor is configured to execute the method according to any one of claims 1 to 28 when running the computer program.
61. A code stream, the code stream being generated by bit encoding based on information to be encoded; wherein, The information to be encoded includes at least: adaptive context identification information of the current point, geometric information of the current point, and a zero-run value corresponding to the current point.
62. A computer storage medium, wherein: The computer storage medium stores a computer program, which implements the method according to any one of claims 29 to 56 when executed by a first processor, or implements the method according to any one of claims 1 to 28 when executed by a second processor.