Point cloud coding and decoding method, device, equipment and storage medium
Patent Information
- Application Number
- CN202380088876.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-01-06
- Publication Date
- 2025-08-12
AI Technical Summary
In the existing point cloud encoding and decoding technology, the current node point prediction encoding and decoding method is single, resulting in low point cloud encoding and decoding performance and large conditional entropy, which affects encoding and decoding efficiency.
By determining the inter-frame decoding information of the current node, the contextual conditions that can be selected when increasing the number of encoding node points are predicted, and the number of points is predicted and decoded based on the inter-frame encoding and decoding information, thereby reducing the conditional entropy and improving the encoding and decoding performance of the point cloud.
The efficiency and performance of point cloud encoding and decoding are improved. By increasing the number of contextually accurate decoding points, the conditional entropy is reduced and the overall encoding and decoding performance is improved.
Smart Images

Figure CN120476590A_ABST
Abstract
Description
Point cloud encoding and decoding method, device, equipment and storage medium Technical Field
[0001] The present application relates to the field of point cloud technology, and in particular to a point cloud encoding and decoding method, apparatus, device and storage medium. Background Art
[0002] Capturing the surface of an object using a capture device creates point cloud data, which can contain hundreds of thousands or even more points. During video production, this point cloud data is transmitted between the point cloud encoding device and the point cloud decoding device in the form of point cloud media files. However, such a large number of points poses a challenge to transmission, so the point cloud encoding device must compress the point cloud data before transmission.
[0003] Point cloud compression is also known as point cloud encoding. During the point cloud encoding process, using infer direct mode coding (IDCM) can significantly reduce complexity for points that are isolated in geometric space. When using direct coding to encode and decode the current node, it is necessary to predict the number of points included in the current node. However, current methods for predicting the number of points included in the current node are relatively simple, which in turn reduces point cloud encoding and decoding performance.
[0004] Summary of the Invention
[0005] The embodiments of the present application provide a point cloud encoding and decoding method, apparatus, device, and storage medium, which increase the selectable context conditions when encoding the number of points of the node, thereby improving the encoding and decoding performance of the point cloud.
[0006] In a first aspect, an embodiment of the present application provides a point cloud decoding method, comprising:
[0007] Determine inter-frame decoding information corresponding to a current node, where the current node is a node to be decoded in a current frame to be decoded;
[0008] Based on the inter-frame decoding information corresponding to the current node, predictive decoding is performed on the number of points included in the current node.
[0009] In a second aspect, the present application provides a point cloud encoding method, comprising:
[0010] Determine inter-frame coding information corresponding to a current node, where the current node is a node to be coded in a current frame to be coded;
[0011] Based on the inter-frame coding information corresponding to the current node, predictive coding is performed on the points included in the current node.
[0012] In a third aspect, the present application provides a point cloud decoding device for executing the method of the first aspect or its respective implementations. Specifically, the device includes a functional unit for executing the method of the first aspect or its respective implementations.
[0013] In a fourth aspect, the present application provides a point cloud encoding device for executing the method of the second aspect or its respective implementations. Specifically, the device includes a functional unit for executing the method of the second aspect or its respective implementations.
[0014] In a fifth aspect, a point cloud decoder is provided, comprising a processor and a memory. The memory is configured to store a computer program, and the processor is configured to call and execute the computer program stored in the memory to perform the method of the first aspect or its respective implementations.
[0015] In a sixth aspect, a point cloud encoder is provided, comprising a processor and a memory. The memory is configured to store a computer program, and the processor is configured to call and execute the computer program stored in the memory to perform the method of the second aspect or its respective implementations.
[0016] In a seventh aspect, a point cloud encoding and decoding system is provided, comprising a point cloud encoder and a point cloud decoder. The point cloud decoder is configured to execute the method of the first aspect or its respective implementations, and the point cloud encoder is configured to execute the method of the second aspect or its respective implementations.
[0017] In an eighth aspect, a chip is provided for implementing the method described in any one of the first and second aspects above, or their respective implementations. Specifically, the chip includes a processor configured to load and execute a computer program from a memory, causing a device equipped with the chip to perform the method described in any one of the first and second aspects above, or their respective implementations.
[0018] In a ninth aspect, a computer-readable storage medium is provided for storing a computer program, which enables a computer to execute the method of any one of the first to second aspects or their respective implementations.
[0019] In a tenth aspect, a computer program product is provided, comprising computer program instructions, which enable a computer to execute the method of any one of the first to second aspects or their respective implementations.
[0020] In an eleventh aspect, a computer program is provided, which, when executed on a computer, enables the computer to execute the method in any one of the first to second aspects or their respective implementations.
[0021] In a twelfth aspect, a code stream is provided. The code stream is generated based on the method of the second aspect. Optionally, the code stream includes at least one of a first parameter and a second parameter.
[0022] Based on the above technical solution, when decoding the current node in the current decoding frame, the inter-frame decoding information corresponding to the current node is determined, and the inter-frame decoding information corresponding to the current node is used as context information to predict and decode the number of points of the current node, thereby increasing the selectable context conditions when encoding and decoding the number of points of the node, reducing the determined conditional entropy, and thus improving the decoding efficiency and performance of the point cloud. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1A is a schematic diagram of a point cloud;
[0024] Figure 1B is a partial enlarged view of the point cloud;
[0025] FIG2 is a schematic diagram of six viewing angles of a point cloud image;
[0026] FIG3 is a schematic block diagram of a point cloud encoding and decoding system according to an embodiment of the present application;
[0027] FIG4A is a schematic block diagram of a point cloud encoder provided in an embodiment of the present application;
[0028] FIG4B is a schematic block diagram of a point cloud decoder provided in an embodiment of the present application;
[0029] FIG5A is a schematic plan view;
[0030] FIG5B is a schematic diagram of node coding sequence;
[0031] FIG5C is a schematic diagram of a plane mark;
[0032] Figure 5D is a schematic diagram of sibling nodes;
[0033] Figure 5E is a schematic diagram of the intersection of the laser radar and the node;
[0034] FIG5F is a schematic diagram of neighborhood nodes at the same partition depth and the same coordinates;
[0035] FIG5G is a schematic diagram of neighboring nodes when the node is located at a lower plane position of the parent node;
[0036] FIG5H is a schematic diagram of neighboring nodes when the node is located at a high plane position of the parent node;
[0037] FIG5I is a schematic diagram of predictive coding of planar position information of a laser radar point cloud;
[0038] FIG6A is a schematic diagram of IDCM encoding;
[0039] FIG6B is a schematic diagram of coordinate transformation of a point cloud acquired by a rotating laser radar;
[0040] FIG6C is a schematic diagram of predictive coding in the X or Y axis direction;
[0041] FIG6D is a schematic diagram showing the angle of the X or Y plane predicted by the horizontal azimuth angle;
[0042] FIG6E is a schematic diagram of predictive coding of the X or Y axis;
[0043] 7A to 7C are schematic diagrams of geometric information encoding based on triangular facets;
[0044] FIG8 is a schematic diagram of a point cloud decoding method according to an embodiment of the present application;
[0045] FIG9 is a schematic diagram of an octree partition;
[0046] FIG10 is a schematic diagram of a prediction node;
[0047] FIG11 is a schematic diagram of a domain node;
[0048] Figure 12 is a schematic diagram of the corresponding nodes of the domain node;
[0049] FIG13A is a schematic diagram of a predicted node of a current node in a predicted reference frame;
[0050] FIG13B is a schematic diagram of the predicted nodes of the current node in two predicted reference frames;
[0051] FIG14A is a schematic diagram of IDCM encoding;
[0052] FIG14B is a schematic diagram of IDCM decoding;
[0053] FIG15 is a schematic diagram of a point cloud encoding method according to an embodiment of the present application;
[0054] FIG16 is a schematic block diagram of a point cloud decoding device provided in an embodiment of the present application;
[0055] FIG17 is a schematic block diagram of a point cloud encoding device provided in an embodiment of the present application;
[0056] FIG18 is a schematic block diagram of an electronic device provided in an embodiment of the present application;
[0057] Figure 19 is a schematic block diagram of the point cloud encoding and decoding system provided in an embodiment of the present application. DETAILED DESCRIPTION
[0058] The present application can be applied to the field of point cloud upsampling technology, for example, it can be applied to the field of point cloud compression technology.
[0059] To facilitate understanding of the embodiments of the present application, the following briefly introduces the relevant concepts involved in the embodiments of the present application:
[0060] A point cloud is a set of irregularly distributed discrete points in space that represent the spatial structure and surface properties of a three-dimensional object or scene. Figure 1A is a schematic diagram of a 3D point cloud image, and Figure 1B is a zoomed-in view of Figure 1A. As can be seen from Figures 1A and 1B, the point cloud surface is composed of densely distributed points.
[0061] 2D images contain information at every pixel, and their distribution is regular, so there's no need to record their location. However, the distribution of points in a point cloud in 3D space is random and irregular, so recording the location of every point in space is necessary to fully represent a point cloud. Similar to 2D images, each location in the data collection process has corresponding attribute information.
[0062] Point cloud data is a specific record format for point clouds. Points in a point cloud can include both their location information and attribute information. For example, the location information of a point can be its 3D coordinate information. This information can also be referred to as its geometric information. For example, the attribute information of a point can include color information, reflectance information, normal vector information, and so on. Color information reflects the color of an object, while reflectance information reflects the surface material of the object. The color information can be information in any color space. For example, the color information can be in RGB. Another example is luminance and chrominance (YCbCr, YUV) information. For example, Y represents luminance (Luma), Cb (U) represents blue color difference, Cr (V) represents red, and U and V represent chroma, which is used to describe color difference information. For example, in a point cloud obtained using laser measurement principles, the points in the point cloud can include their 3D coordinate information and the laser reflection intensity (reflectance) of the points. For another example, in a point cloud obtained using photogrammetry principles, the points in the point cloud can include their 3D coordinate information and their color information. For example, a point cloud is obtained by combining the principles of laser measurement and photogrammetry. The points in the point cloud may include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point. Figure 2 shows a point cloud image, where Figure 2 shows six viewing angles of the point cloud image. Table 1 shows the point cloud data storage format consisting of a file header information part and a data part:
[0063] Table 1
[0064]
[0065] In Table 1, the header information includes the data format, data representation type, the total number of point cloud points, and the content represented by the point cloud. For example, the point cloud in this example is in the ".ply" format, represented by ASCII code, with a total number of 207242 points. Each point has three-dimensional position information XYZ and three-dimensional color information RGB.
[0066] 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.
[0067] The ways to obtain point cloud data may include but are not limited to at least one of the following: (1) generation by computer equipment. Computer equipment can generate point cloud data based on virtual three-dimensional objects and virtual three-dimensional scenes. (2) 3D (3-Dimension) laser scanning acquisition. 3D laser scanning can obtain point cloud data of static real-world three-dimensional objects or three-dimensional scenes, and millions of point cloud data can be obtained per second; (3) 3D photogrammetry acquisition. 3D photography equipment (i.e., a group of cameras or camera equipment with multiple lenses and sensors) is used to collect real-world visual scenes to obtain point cloud data of real-world visual scenes. 3D photography can obtain point cloud data of dynamic real-world three-dimensional objects or three-dimensional scenes. (4) Point cloud data of biological tissues and organs can be obtained through medical equipment. In the medical field, point cloud data of biological tissues and organs can be obtained through medical equipment such as magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information.
[0068] Point clouds can be divided into dense point clouds and sparse point clouds according to the acquisition method.
[0069] Point clouds are divided into the following types according to the time series of the data:
[0070] The first type of static point cloud: the object is stationary and the device used to obtain the point cloud is also stationary;
[0071] The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;
[0072] The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.
[0073] Point clouds are divided into two categories according to their uses:
[0074] 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;
[0075] 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.
[0076] The aforementioned point cloud acquisition technologies reduce the cost and time required to acquire point cloud data, while improving data accuracy. This evolution in point cloud data acquisition has made it possible to acquire large amounts of point cloud data. However, as application demands grow, the processing of massive amounts of 3D point cloud data is facing bottlenecks due to storage space and transmission bandwidth limitations.
[0077] Taking a point cloud video with a frame rate of 30 fps (frames per second) as an example, each frame contains 700,000 points, each with coordinate information (xyz, float) and color information (RGB, uchar). Therefore, the data volume of a 10-second point cloud video is approximately 0.7 million points x (4 bytes x 3 + 1 byte x 3) x 30 fps x 10 seconds = 3.15 GB. For a 1280 x 720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 24 fps, the data volume for 10 seconds is approximately 1280 x 720 x 12 bits x 24 frames x 10 seconds, which is approximately 0.33 GB. A 10-second two-view 3D video has a data volume of approximately 0.33 x 2 = 0.66 GB. Therefore, the data volume of a point cloud video far exceeds that of a 2D or 3D video of the same length. Therefore, point cloud compression has become a key issue in promoting the development of the point cloud industry to better manage data, save server storage space, and reduce the transmission traffic and time between the server and client.
[0078] The following introduces the relevant knowledge of point cloud encoding and decoding.
[0079] Figure 3 is a schematic block diagram of a point cloud encoding and decoding system involved in an embodiment of the present application. It should be noted that Figure 3 is only an example, and the point cloud encoding and decoding system of the embodiment of the present application includes but is not limited to that shown in Figure 3. As shown in Figure 3, the point cloud encoding and decoding system 100 includes an encoding device 110 and a decoding device 120. The encoding device is used to encode (which can be understood as compression) the point cloud data to generate a code stream, and transmit the code stream to the decoding device. The decoding device decodes the code stream generated by the encoding device to obtain decoded point cloud data.
[0080] The encoding device 110 of the embodiment of the present application can be understood as a device with a point cloud encoding function, and the decoding device 120 can be understood as a device with a point cloud decoding function, that is, the embodiment of the present application includes a wider range of devices for the encoding device 110 and the decoding device 120, such as smartphones, desktop computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, point cloud game consoles, vehicle-mounted computers, etc.
[0081] In some embodiments, the encoding device 110 may transmit the encoded point cloud data (such as a code stream) to the decoding device 120 via the channel 130. The channel 130 may include one or more media and / or devices capable of transmitting the encoded point cloud data from the encoding device 110 to the decoding device 120.
[0082] In one example, the channel 130 includes one or more communication media that enable the encoding device 110 to transmit the encoded point cloud data directly to the decoding device 120 in real time. In this example, the encoding device 110 can modulate the encoded point cloud data according to a communication standard and transmit the modulated point cloud data to the decoding device 120. The communication media includes wireless communication media, such as radio frequency spectrum. Optionally, the communication media can also include wired communication media, such as one or more physical transmission lines.
[0083] In another example, channel 130 includes a storage medium that can store the point cloud data encoded by encoding device 110. The storage medium includes various locally accessible data storage media, such as optical disks, DVDs, and flash memory. In this example, decoding device 120 can retrieve the encoded point cloud data from the storage medium.
[0084] In another example, the channel 130 may include a storage server that can store the point cloud data encoded by the encoding device 110. In this example, the decoding device 120 can download the stored encoded point cloud data from the storage server. Alternatively, the storage server can store the encoded point cloud data and transmit the encoded point cloud data to the decoding device 120, such as a web server (e.g., for a website), a file transfer protocol (FTP) server, etc.
[0085] In some embodiments, the encoding device 110 includes a point cloud encoder 112 and an output interface 113. The output interface 113 may include a modulator / demodulator (modem) and / or a transmitter.
[0086] In some embodiments, the encoding device 110 may further include a point cloud source 111 in addition to the point cloud encoder 112 and the input interface 113 .
[0087] The point cloud source 111 may include at least one of a point cloud acquisition device (e.g., a scanner), a point cloud archive, a point cloud input interface, and a computer graphics system, wherein the point cloud input interface is used to receive point cloud data from a point cloud content provider, and the computer graphics system is used to generate point cloud data.
[0088] The point cloud encoder 112 encodes the point cloud data from the point cloud source 111 to generate a code stream. The point cloud encoder 112 transmits the encoded point cloud data directly to the decoding device 120 via the output interface 113. The encoded point cloud data can also be stored on a storage medium or storage server for subsequent reading by the decoding device 120.
[0089] In some embodiments, the decoding device 120 includes an input interface 121 and a point cloud decoder 122 .
[0090] In some embodiments, the decoding device 120 may further include a display device 123 in addition to the input interface 121 and the point cloud decoder 122 .
[0091] The input interface 121 includes a receiver and / or a modem and can receive the encoded point cloud data via the channel 130 .
[0092] The point cloud decoder 122 is used to decode the encoded point cloud data to obtain decoded point cloud data, and transmit the decoded point cloud data to the display device 123.
[0093] The decoded point cloud data is displayed on the display device 123. The display device 123 may be integrated with the decoding device 120 or external to the decoding device 120. The display device 123 may include various display devices, such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or other types of display devices.
[0094] In addition, Figure 3 is only an example, and the technical solution of the embodiment of the present application is not limited to Figure 3. For example, the technology of the present application can also be applied to unilateral point cloud encoding or unilateral point cloud decoding.
[0095] Current point cloud encoders can use two point cloud compression coding technology routes proposed by the Moving Picture Experts Group (MPEG) of the International Organization for Standardization: Video-based Point Cloud Compression (VPCC) and Geometry-based Point Cloud Compression (GPCC). VPCC projects a 3D point cloud onto a 2D image and uses existing 2D coding tools to encode the projected 2D image. GPCC uses a hierarchical structure to divide the point cloud into multiple units, encoding the entire point cloud by recording the division process.
[0096] The following uses the GPCC encoding and decoding framework as an example to illustrate the point cloud encoder and point cloud decoder applicable to the embodiments of the present application.
[0097] Figure 4A is a schematic block diagram of the point cloud encoder provided in an embodiment of the present application.
[0098] As can be seen from the above, points in a point cloud can include both their location information and their attribute information. Therefore, the encoding of points in a point cloud mainly includes location encoding and attribute encoding. In some examples, the location information of points in a point cloud is also called geometric information, and the corresponding location encoding of points in the point cloud can also be called geometric encoding.
[0099] In the GPCC coding framework, the geometric information of the point cloud and the corresponding attribute information are encoded separately.
[0100] As shown in Figure 4A below, the current geometric coding and decoding of G-PCC can be divided into octree-based geometric coding and decoding and prediction tree-based geometric coding and decoding.
[0101] The position encoding process involves preprocessing the points in the point cloud, such as coordinate transformation, quantization, and duplicate point removal. Next, geometric encoding is performed on the preprocessed point cloud, such as constructing an octree or prediction tree. Based on the constructed octree or prediction tree, geometric encoding is performed to form a geometric bitstream. Simultaneously, the position information of each point in the point cloud data is reconstructed based on the position information output by the constructed octree or prediction tree, resulting in a reconstructed value for each point's position information.
[0102] The attribute encoding process includes: given the reconstruction information of the input point cloud position information and the original value of the attribute information, selecting one of the three prediction modes for point cloud prediction, quantizing the predicted result, and performing arithmetic coding to form an attribute code stream.
[0103] As shown in Figure 4A, position encoding can be achieved through the following units:
[0104] Coordinate conversion (Tanmsform coordinates) unit 201, voxel (Voxelize) unit 202, octree partition (Analyze octree) unit 203, geometry reconstruction (Reconstruct geometry) unit 204, arithmetic encoding (Arithmetic enconde) unit 205, surface fitting unit (Analyze surface approximation) 206 and prediction tree construction unit 207.
[0105] The coordinate conversion unit 201 can be used to convert the world coordinates of a point in the point cloud into relative coordinates. For example, the geometric coordinates of the point are subtracted from the minimum value of the x, y, and z coordinate axes, which is equivalent to a DC removal operation, to convert the coordinates of the point in the point cloud from world coordinates to relative coordinates.
[0106] Voxelize unit 202, also known as the quantize and remove points unit, reduces the number of coordinates through quantization. After quantization, previously different points may be assigned the same coordinates. Based on this, duplicate points can be removed through deduplication. For example, multiple clouds with the same quantized position but different attribute information can be merged into a single cloud through attribute conversion. In some embodiments of the present application, voxel unit 202 is an optional unit module.
[0107] The octree partitioning unit 203 may encode the quantized point position information using an octree encoding scheme. For example, the point cloud may be partitioned using an octree, so that point positions correspond one-to-one with octree positions. Geometric encoding is performed by counting the point positions in the octree and setting their flags to 1.
[0108] In some embodiments, in the geometric information encoding process based on a triangle soup (trisoup), the point cloud is also octree-partitioned by the octree partitioning unit 203. However, unlike the geometric information encoding based on the octree, the trisoup does not need to divide the point cloud into unit cubes with a side length of 1X1X1 step by step. Instead, the division is stopped when the block (sub-block) has a side length of W. Based on the surface formed by the distribution of the point cloud in each block, at most twelve vertices (intersections) generated by the surface and the twelve edges of the block are obtained. The intersections are surface fitted by the surface fitting unit 206, and the fitted intersections are geometrically encoded.
[0109] The prediction tree construction unit 207 can encode the quantized point position information using a prediction tree encoding method. For example, the point cloud is divided into a prediction tree, so that the point positions correspond one-to-one with the positions of the nodes in the prediction tree. By counting the positions of the points in the prediction tree, different prediction modes are selected to predict the geometric position information of the nodes to obtain prediction residuals, and the geometric prediction residuals are quantized using quantization parameters. Finally, through continuous iteration, the prediction residuals of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary bitstream.
[0110] The geometric reconstruction unit 204 can perform position reconstruction based on the position information output by the octree partitioning unit 203 or the intersection points fitted by the surface fitting unit 206 to obtain a reconstructed value of the position information of each point in the point cloud data. Alternatively, the geometric reconstruction unit 204 can perform position reconstruction based on the position information output by the prediction tree construction unit 207 to obtain a reconstructed value of the position information of each point in the point cloud data.
[0111] The arithmetic coding unit 205 may perform entropy coding on the position information output by the octree analysis unit 203 or the intersection points fitted by the surface fitting unit 206, or the geometric prediction residual values output by the prediction tree construction unit 207 to generate a geometric code stream; the geometric code stream may also be referred to as a geometry bitstream.
[0112] Attribute encoding can be achieved through the following units:
[0113] A color conversion unit 210 , a transfer attributes unit 211 , a region adaptive hierarchical transform (RAHT) unit 212 , a generate LOD unit 213 , a lifting transform unit 214 , a quantize coefficients unit 215 , and an arithmetic coding unit 216 .
[0114] It should be noted that the point cloud encoder 200 may include more, fewer, or different functional components than those shown in FIG. 4A .
[0115] The color conversion unit 210 may be configured to convert the RGB color space of a point in the point cloud into a YCbCr format or other formats.
[0116] The recoloring unit 211 recolors the color information using the reconstructed geometric information so that the uncoded attribute information corresponds to the reconstructed geometric information.
[0117] After the original value of the point attribute information is converted by the recoloring unit 211, any transformation unit can be selected to transform the points in the point cloud. The transformation units may include: RAHT transformation 212 and lifting transformation unit 214. The lifting transformation relies on generating the level of detail (LOD).
[0118] Either the RAHT transform or the lifting transform can be understood as being used to predict the attribute information of a point in a point cloud to obtain a predicted value of the attribute information of the point, and then to obtain a residual value of the attribute information of the point based on the predicted value of the attribute information of the point. For example, the residual value of the attribute information of the point can be the original value of the attribute information of the point minus the predicted value of the attribute information of the point.
[0119] In one embodiment of the present application, the process of generating LOD by the LOD generation unit includes: obtaining the Euclidean distance between points based on the position information of the points in the point cloud; and dividing the points into different detail expression layers based on the Euclidean distance. In one embodiment, the Euclidean distances can be sorted and then Euclidean distances in different ranges can be divided into different detail expression layers. For example, a point can be randomly selected as the first detail expression layer. The Euclidean distances between the remaining points and the point are then calculated, and the points whose Euclidean distances meet the first threshold requirement are classified as the second detail expression layer. The centroid of the points in the second detail expression layer is obtained, and the Euclidean distances between the points other than the first and second detail expression layers and the centroid are calculated, and the points whose Euclidean distances meet the second threshold requirement are classified as the third detail expression layer. And so on, all points are classified into the detail expression layer. By adjusting the threshold of the Euclidean distance, the number of points in each LOD layer can be increased. It should be understood that the LOD division method can also be adopted in other ways, and this application is not limited to this.
[0120] It should be noted that the point cloud can be directly divided into one or more detail expression layers, or the point cloud can be first divided into multiple point cloud slices, and then each point cloud slice can be divided into one or more LOD layers.
[0121] For example, a point cloud can be divided into multiple point cloud tiles, each containing between 550,000 and 1.1 million points. Each point cloud tile can be considered a separate point cloud. Each point cloud tile can be further divided into multiple detail expression layers, each containing multiple points. In one embodiment, the detail expression layers can be divided based on the Euclidean distance between points.
[0122] The quantization unit 215 may be used to quantize the residual value of the attribute information of the point. For example, if the quantization unit 215 is connected to the RAHT transformation unit 212, the quantization unit 215 may be used to quantize the residual value of the attribute information of the point output by the RAHT transformation unit 212.
[0123] The arithmetic coding unit 216 may perform entropy coding on the residual value of the attribute information of the point using zero run length coding to obtain an attribute code stream. The attribute code stream may be bit stream information.
[0124] Figure 4B is a schematic block diagram of the point cloud decoder provided in an embodiment of the present application.
[0125] As shown in Figure 4B, the decoder 300 can obtain the point cloud code stream from the encoding device and obtain the position information and attribute information of the points in the point cloud by parsing the code. The decoding of the point cloud includes position decoding and attribute decoding.
[0126] The position decoding process includes: performing arithmetic decoding on the geometric code stream; constructing an octree and then merging it to reconstruct the point position information to obtain the reconstructed position information of the point; and performing coordinate transformation on the reconstructed position information of the point to obtain the point position information. The point position information can also be called the point's geometric information.
[0127] The attribute decoding process includes: obtaining the residual value of the attribute information of the point in the point cloud by parsing the attribute code stream; obtaining the residual value of the attribute information of the point after dequantization by dequantizing the residual value of the attribute information of the point; based on the reconstruction information of the point position information obtained in the position decoding process, selecting one of the following RAHT inverse transform and lifting inverse transform to perform point cloud prediction to obtain the predicted value, and adding the predicted value to the residual value to obtain the reconstructed value of the attribute information of the point; performing inverse color space conversion on the reconstructed value of the attribute information of the point to obtain the decoded point cloud.
[0128] As shown in Figure 4B, position decoding can be achieved by the following units:
[0129] Arithmetic decoding unit 301, octree reconstruction unit 302, surface reconstruction unit 303, geometry reconstruction unit 304, inverse transform coordinates unit 305 and prediction tree reconstruction unit 306.
[0130] Attribute encoding can be achieved through the following units:
[0131] an arithmetic decoding unit 310 , an inverse quantization unit 311 , an inverse RAHT transform unit 312 , a LOD generation unit 313 , an inverse lifting transform unit 314 , and an inverse color transform unit 315 .
[0132] It should be noted that decompression is the inverse process of compression. Similarly, the functions of each unit in the decoder 300 can refer to the functions of the corresponding units in the encoder 200. In addition, the point cloud decoder 300 may include more, fewer, or different functional components than those in Figure 4B.
[0133] For example, the decoder 300 can divide the point cloud into multiple LODs based on the Euclidean distance between points in the point cloud. The decoder 300 then decodes the attribute information of the points in the LODs in sequence. For example, the number of zeros (zero_cnt) in the zero-run encoding technique is calculated to decode the residual based on zero_cnt. The decoding framework 200 then dequantizes the decoded residual value and adds the dequantized residual value to the predicted value of the current point to obtain the reconstructed value of the point cloud until all point clouds are decoded. The current point will be used as the nearest neighbor of the subsequent LOD point, and the reconstructed value of the current point will be used to predict the attribute information of the subsequent point.
[0134] The above is the basic process of the point cloud codec based on the GPCC codec framework. With the development of technology, some modules or steps of the framework or process may be optimized. This application is applicable to the basic process of the point cloud codec based on the GPCC codec framework, but is not limited to this framework and process.
[0135] The following introduces octree-based geometric coding and prediction tree-based geometric coding.
[0136] The geometric encoding based on octree includes: first, coordinate transformation of the geometric information so that all point clouds are contained in a bounding box. Then quantization is performed. This step of quantization mainly plays a role of scaling. Due to the quantization rounding, the geometric information of some points is the same. The parameters are used to decide whether to remove duplicate points. The process of quantization and removal of duplicate points is also called voxelization. Next, the bounding box is continuously divided into trees (octree / quadtree / binary tree) in the order of breadth-first traversal, and the placeholder code of each node is encoded. In an implicit geometric division method, the bounding box of the point cloud is first calculated. Assume that the d x >d y >d zThe bounding box corresponds to a cuboid. When geometrically partitioning, the binary tree partitioning is first performed based on the x-axis to obtain two child nodes; until d is satisfied x =d y >d z When the conditions are met, the quadtree partitioning will be performed based on the x and y axes to obtain four child nodes; when d is finally satisfied x =d y =d z When the conditions are met, the octree partitioning will continue until the leaf node obtained by the partitioning is a 1x1x1 unit cube. The partitioning will stop and the points in the leaf node will be encoded to generate a binary code stream. In the process of binary tree / quadtree / octree partitioning, two parameters are introduced: K and M. Parameter K indicates the maximum number of binary tree / quadtree partitions before octree partitioning; parameter M is used to indicate that the minimum block side length corresponding to binary tree / quadtree partitioning is 2 M . At the same time, K and M must meet the following conditions: Assume d max =max(d x ,d y ,d z ),d min =min(d x ,d y ,d z ), parameter K satisfies: K>=d max -d min ; Parameter M satisfies: M>=d min The parameters K and M meet the above conditions because the priority of the partitioning method in the current G-PCC implicit geometric partitioning process is binary tree, quadtree and octree. When the node block size does not meet the conditions of binary tree / quadtree, the node will be partitioned into octree until the minimum unit of leaf node 1X1X1 is reached.
[0137] The octree-based geometric information coding mode can effectively encode the geometric information of the point cloud by utilizing the correlation between adjacent points in space. However, for some relatively flat nodes or nodes with planar characteristics, the coding efficiency of the point cloud geometric information can be further improved by using plane coding.
[0138] For example, as shown in Figure 5A, the (a) series belongs to the low plane position in the Z-axis direction, and the (b) series belongs to the high plane position in the Z-axis direction. Taking (a) as an example, it can be seen that the four occupied child nodes of the current node are all located in the low plane position of the current node in the Z-axis direction. Therefore, it can be considered that the current node belongs to a Z plane and is a low plane in the Z-axis direction. Similarly, (b) shows that the occupied child nodes of the current node are located in the high plane position of the current node in the Z-axis direction.
[0139] Taking (a) as an example, the efficiency of octree coding and plane coding is compared. As shown in Figure 5B, if the octree coding method is used for (a) in Figure 1, the placeholder information of the current node is represented as: 11001100. However, if the plane coding method is used, first, an identifier needs to be encoded to indicate that the current node is a plane in the Z-axis direction. Secondly, if the current node is a plane in the Z-axis direction, the plane position of the current node needs to be represented. Secondly, only the placeholder information of the low plane node in the Z-axis direction needs to be encoded (that is, the placeholder information of the four child nodes 0246). Therefore, encoding the current node based on the plane coding method only requires encoding 6 bits, which can reduce the representation of 2 bits compared to the original octree coding. Based on this analysis, plane coding has more obvious coding efficiency than octree coding. Therefore, for an occupied node, if the plane coding method is used in a certain dimension, as shown in Figure 5C, first, the plane identification (planarMode) and plane position (PlanePos) information of the current node in the dimension need to be represented, and then the occupancy information of the current node is encoded based on the plane information of the current node. It should be noted that: PlaneMode i (i=0,1,2): 0 means the current node is not a plane in the direction of i axis. When the node is a plane in the direction of i axis, PlanePosition i :0 means the current node is a plane in the direction of the i-axis and the plane position is a low plane, 1 means the current node is a high plane in the direction of the i-axis. For example, i=0 represents the X-axis, i=1 represents the Y-axis, and i=2 represents the Z-axis.
[0140] The following details how to determine whether a node meets the plane coding conditions in the current G-PCC standard and predictively encode the node plane identifier and plane position information when the node meets the plane coding conditions.
[0141] Currently, there are three types of conditions in G-PCC to determine whether a node meets the conditions for plane coding. The following describes them one by one:
[0142] The first method is to judge based on the plane probability of the node in each dimension.
[0143] First, determine the local area density (local_node_density) of the current node and the probability Prob(i) of the current node in each dimension.
[0144] When the local area density of a node is less than the threshold Th (Th = 3), the plane probability Prob(i) of the current node in three dimensions is compared with the thresholds Th0, Th1, and Th2, where Th0 < Th1 < Th2 (Th0 = 0.6, Th1 = 0.77, Th2 = 0.88). Next, Eligible i (i = 0, 1, 2) is used to indicate whether plane coding is started in each dimension, where Eligible i The judgment process is shown in formula (1). For example, if Eligible i >= threshold, it means that plane coding is started in the i-th dimension:
[0145] Eligible i = Prob(i) >= threshold (1)
[0146] It should be noted that threshold changes adaptively. For example, when Prob(0) > Prob(1) > Prob(2), the value of threshold is as shown in formula (2):
[0147] Eligible0 = Prob(0) >= Th0
[0148] Eligible1 = Prob(1) >= Th1
[0149] Eligible2 = Prob(2) >= Th2 (2)
[0150] Next, the update process of local_node_density and the update of Prob(i) are introduced.
[0151] In one example, Prob(i) is updated by the following formula (3):
[0152] Prob(i) new = (Lx Prob(i) + δ(coded node)) / L + 1 (3)
[0153] Where L = 255. When the coded node is a plane, it is 1; otherwise, it is 0.
[0154] In one example, local_node_density is updated by the following formula (4):
[0155] local_node_density new = local_node_density + 4 * numSiblings (4)
[0156] Among them, local_node_density is initialized to 4, numSiblings is the number of sibling nodes of the node, as shown in Figure 5D, the current node is the left node, the right node is the sibling node of the current node, and the number of sibling nodes of the current node is 5 (including itself).
[0157] The second method is to determine whether the nodes in the current layer meet the requirements of plane coding based on the point cloud density of the current layer.
[0158] The density of the points in the current layer is used to determine whether to perform plane coding on the nodes in the current layer. Assuming that the number of points in the current point cloud to be coded is pointCount, the number of points reconstructed after IDCM coding is numPointCountRecon, and because the octree is coded in the order of breadth-first traversal, the number of nodes to be coded in the current layer can be obtained as nodeCount. It is assumed that planarEligibleKOctreeDepth is used to indicate whether the current layer starts plane coding. The judgment process of planarEligibleKOctreeDepth is shown in formula (5):
[0159] planarEligibleKOctreeDepth=(pointCount-numPointCountRecon) <nodeCount*1.3 (5)
[0160] When planarEligibleKOctreeDepth is true, all nodes in the current layer are plane coded; otherwise, no plane coding is performed and only octree coding is used.
[0161] The third method is to determine whether the current node meets the requirements of plane coding based on the acquisition parameters of the lidar point cloud.
[0162] As shown in Figure 5E, the large cube node at the top is simultaneously traversed by two lasers, so the current node is not a plane in the Z-axis direction. The small cube node at the bottom is small enough that it cannot be traversed by both nodes simultaneously, so it is likely a plane. Therefore, based on the number of lasers corresponding to the current node, we can determine whether the current node meets the requirements for plane coding.
[0163] The following describes the predictive coding of plane identification information and plane position information for nodes that currently meet the plane coding conditions.
[0164] 1. Predictive Coding of Plane Marking Information
[0165] Currently, three contexts are used to encode plane identification information, that is, the plane representation in each dimension is designed separately.
[0166] The following introduces the encoding of planar position information of non-lidar point clouds and lidar point clouds respectively.
[0167] 1) Encoding of non-lidar point cloud planar position information
[0168] 1. Predictive coding of planar position information.
[0169] The plane position information is predictively coded based on the following information:
[0170] (1) Using the occupancy information of neighboring nodes, the plane position information of the current node is predicted to be three elements: predicted as low plane, predicted as high plane, and unpredictable;
[0171] (2) The spatial distance between the nodes at the same partition depth and the same coordinates as the current node and the current node is “close” or “far”;
[0172] (3) The plane position of the node at the same partition depth and the same coordinates as the current node;
[0173] (4) Coordinate dimension (i=0, 1, 2).
[0174] As shown in Figure 5F, the current node to be encoded is the left node, then the neighboring node is searched for as the right node at the same octree partition depth level and the same vertical coordinate, and the distance between the two nodes is judged as "near" and "far", and the plane position of the reference node is used.
[0175] In one example, as shown in FIG5G , the black node is the current node. If the current node is located on the lower plane of the parent node, the plane position of the current node is determined as follows:
[0176] a) If any of the child nodes 4 to 7 of the dashed node is occupied, and all the dot nodes are unoccupied, it is very likely that there is a plane in the current node, and the plane is at a lower position.
[0177] b) If the child nodes 4 to 7 of the dashed node are not occupied, and any dotted node is occupied, it is very likely that there is a plane in the current node, and the plane is at a higher position.
[0178] c) If the child nodes 4 to 7 of the dashed node are all empty nodes and the dotted nodes are all empty nodes, the plane position cannot be inferred and is therefore marked as unknown.
[0179] If any of the child nodes 4 to 7 of the dashed node are occupied and any of the dotted nodes are occupied, the plane position cannot be inferred and is therefore marked as unknown.
[0180] In another example, as shown in FIG5H , the black node is the current node. If the node is at a high plane position of the parent node, the plane position of the current node is determined as follows:
[0181] a) If any of the dot node's child nodes 4 to 7 is occupied, and the dashed node is not occupied, it is very likely that there is a plane in the current node, and the plane is at a lower position.
[0182] b) If the child nodes 4 to 7 of the dot node are not occupied, but the node with the dashed line is occupied, it is very likely that a plane exists in the current node, and the plane is located at a higher position.
[0183] c) If the child nodes 4 to 7 of the dot node are all unoccupied, and the dashed node is unoccupied, the plane position cannot be inferred and is therefore marked as unknown.
[0184] d) If one of the child nodes 4-7 of the dotted node is occupied and the dashed node is occupied, the plane position cannot be inferred and is therefore marked as unknown.
[0185] 2) Coding of LiDAR point cloud plane position information
[0186] Figure 5I shows the predictive coding of the plane position information of the laser radar point cloud. The plane position of the current node is predicted by using the laser radar acquisition parameters. The position is quantized into four intervals by using the intersection position of the current node and the laser ray, and finally used as the context of the plane position of the current node. The specific calculation process is as follows: Assume that the coordinates of the laser radar are (x Lidar ,y Lidar ,z Lidar ), the geometric coordinates of the current point are (x, y, z), then first calculate the vertical tangent value tanθ of the current point relative to the lidar. The calculation process is shown in formula (6):
[0187]
[0188] Because each laser has a certain offset angle relative to the laser radar, the relative tangent value tanθ of the current node relative to the laser is calculated. corr,L , the specific calculation process is shown in formula (7):
[0189]
[0190] Finally, the corrected tangent value of the current node is used to predict the plane position of the current node. Specifically, assuming that the tangent value of the lower boundary of the current node is tan(θ bottom), and the tangent value of the upper boundary is tan(θ top), according to tanθ corr,L The plane position is quantized into 4 quantization intervals, which are the contexts of the plane position.
[0191] However, the octree-based geometric information coding mode only has an efficient compression rate for points with correlation in space. For points that are isolated in the geometric space, the use of the Direct Coding Model (DCM) can greatly reduce the complexity. For all nodes in the octree, the use of DCM is not indicated by flag information, but is inferred from the parent node and neighbor information of the current node. There are three ways to determine whether the current node is eligible for DCM coding, as shown in Figure 6A:
[0192] (1) The current node has no sibling child nodes, that is, the parent node of the current node has only one child node, and the parent node of the parent node of the current node has only two occupied child nodes, that is, the current node has at most one neighbor node.
[0193] (2) The parent node of the current node has only one child node, the current node, and the six neighbor nodes that share a face with the current node are all empty nodes.
[0194] (3) The number of sibling nodes of the current node is greater than 1.
[0195] If the current node does not meet the DCM coding qualifications, it will be divided into octrees. If it meets the DCM coding qualifications, the number of points contained in the node will be further determined. When the number of points is less than the threshold 2, the node will be DCM-encoded, otherwise the octree division will continue. When the DCM coding mode is applied, it is first necessary to encode whether the current node is a true isolated point, that is, IDCM_flag. When IDCM_flag is true, the current node uses DCM coding, otherwise octree coding is still used. When the current node meets the DCM coding requirements, the DCM coding mode of the current node needs to be encoded. There are currently two DCM modes: 1: There is only one point (or multiple points, but they are duplicate points); 2: Contains two points. Finally, the geometric information of each point needs to be encoded. Assume that the side length of the node is 2 d When encoding each component of the node's geometric coordinates, d bits are required, and these bits are directly encoded into the bitstream. It is important to note that when encoding LiDAR point clouds, the efficiency of geometric information coding can be further improved by predictively encoding the three-dimensional coordinate information using LiDAR acquisition parameters.
[0196] Next, the IDCM encoding process is introduced in detail:
[0197] When the current node meets the direct coding mode (DCM), the number of points of the current node, numPoints, is first encoded. The number of points of the current node is encoded according to different DirectModes, specifically including the following methods:
[0198] 1. If the current node does not meet the requirements of the DCM node, exit directly (that is, the number of points is greater than 2 points and is not a duplicate point).
[0199] 2. If the number of points numPonts in the current node is less than or equal to 2, the encoding process is as follows:
[0200] 1) First, encode whether the numPonts of the current node is greater than 1;
[0201] 2) If the current node has only one point and the geometry coding environment is geometry lossless coding, the second point of the current node needs to be encoded to ensure that it is not a duplicate point.
[0202] 3. If the number of points numPonts in the current node is greater than 2, the encoding process is as follows:
[0203] 1) First, encode the numPonts of the current node to be less than or equal to 1;
[0204] 2) Secondly, encode whether the second point of the current node is a repeated point, and then encode whether the number of repeated points of the current node is greater than 1. When the number of repeated points is greater than 1, it is necessary to perform exponential Golomb decoding on the remaining number of repeated points.
[0205] After encoding the number of points in the current node, the coordinate information of the points contained in the current node is encoded. The following will introduce the lidar point cloud and the human eye point cloud separately.
[0206] Human eye point cloud
[0207] 1) If the current node contains only one point, the geometric information of the point in three dimensions will be directly encoded (Bypass coding).
[0208] 2) If the current node contains two points, the priority coding coordinate axis dirextAxis will be obtained by using the geometric coordinates of the points. It should be noted that the coordinate axes currently compared only include the x and y axes, not the z axis. Assuming that the geometric coordinates of the current node are nodePos, the priority coding coordinate axis is determined using the method shown in formula (8):
[0209] dirextAxis=!(nodePos[0] <nodePos[1]) (8)
[0210] That is, the axis with the smaller node coordinate geometric position is used as the coordinate axis dirextAxis for priority encoding.
[0211] Secondly, the geometry information of the priority-encoded coordinate axis dirextAxis is first encoded as follows, assuming that the bit depth of the geometry to be encoded corresponding to the priority-encoded axis is nodeSizeLog2, and assuming that the coordinates of the two points are pointPos[0] and pointPos[1] respectively:
[0212]
[0213] After encoding the priority axis dirextAxis, the geometric coordinates of the current point are directly encoded. Assuming that the remaining encoding bit depth of each point is nodeSizeLog2, the specific encoding process is as follows:
[0214] for(int axisIdx=0; axisIdx<3; ++axisIdx)
[0215] for(int mask=(1<<nodeSizeLog2[axisIdx])> >1;mask;mask>>1)
[0216] encodePosBit(!!(pointPos[axisIdx]&mask));
[0217] For LiDAR point clouds
[0218] 1) If the current node contains two points, the priority coding coordinate axis dirextAxis will be obtained by using the geometric coordinates of the points. Assuming that the geometric coordinates of the current node are nodePos, the priority coding coordinate axis is determined by the method shown in formula (9):
[0219] dirextAxis=!(nodePos[0] <nodePos[1]) (9)
[0220] That is, the axis with the smaller node coordinate geometric position is used as the coordinate axis dirextAxis for priority encoding. It should be noted here that the currently compared coordinate axes only include the x and y axes, and do not include the z axis.
[0221] Secondly, the geometry information of the priority-encoded coordinate axis dirextAxis is first encoded as follows, assuming that the bit depth of the geometry to be encoded corresponding to the priority-encoded axis is nodeSizeLog2, and assuming that the coordinates of the two points are pointPos[0] and pointPos[1] respectively:
[0222]
[0223] After encoding the priority encoding axis dirextAxis, the geometric coordinates of the current point are encoded.
[0224] Since the LiDAR point cloud can obtain the acquisition parameters of the LiDAR point cloud, the geometric coordinate information of the current node can be predicted, thereby further improving the efficiency of the geometric information encoding of the point cloud. Similarly, the geometric information nodePos of the current node is first used to obtain a directly encoded main axis direction, and then the geometric information of the already encoded direction is used to predict the geometric information of the other dimension. Assuming that the axis direction of the direct encoding is directAxis and the bit depth to be encoded in the direct encoding is nodeSizeLog2, the encoding method is as follows:
[0225] for(int mask=(1<<nodeSizeLog2)> >1;mask;mask>>1)
[0226] encodePosBit(!!(pointPos[directAxis]&mask));
[0227] It should be noted here that all geometric accuracy information in the directAxis direction will be encoded here.
[0228] After encoding all the precision of the directAxis coordinate direction, the LaserIdx corresponding to the current point will be calculated first, that is, pointLaserIdx in Figure 6B, and the LaserIdx of the current node will be calculated, that is, nodeLaserIdx. Then, the LaserIdx of the node, that is, nodeLaserIdx, will be used to predict the LaserIdx of the point, that is, pointLaserIdx. The LaserIdx of the node or point is calculated as follows:
[0229] Assume that the geometric coordinates of the point are pointPos, the starting coordinates of the laser ray are LidarOrigin, and the number of lasers is LaserNum, and the tangent value of each laser is tanθ i, the vertical offset position of each Laser is Z i ,but:
[0230]
[0231] After calculating the current point's LaserIdx, the pointLaserIdx of the point is first predictively encoded using the current node's LaserIdx. After encoding the current point's LaserIdx, the three-dimensional geometric information of the current point is predictively encoded using the LiDAR acquisition parameters.
[0232] The specific algorithm is shown in Figure 6C. First, the LaserIdx corresponding to the current point is used to obtain the corresponding horizontal azimuth prediction value, that is, Secondly, the node geometry information corresponding to the current point is used to obtain the horizontal azimuth angle corresponding to the node Among them, the horizontal azimuth The calculation method between the node geometry information is shown in formula (10), assuming that the geometric coordinates of the node are nodePos:
[0233]
[0234] By using the acquisition parameters of the laser radar, the number of rotation points of each laser, numPoints, can be obtained, which represents the number of points obtained by each laser ray rotating one circle. The rotation angular velocity deltaPhi of each laser can then be calculated using the number of rotation points of each laser, as shown in formula (11):
[0235]
[0236] As shown in FIG6D , the horizontal azimuth angle of the node is used And the horizontal azimuth of the previous Laser code point corresponding to the current point Calculate the predicted horizontal azimuth angle corresponding to the current point The specific calculation formula is shown in formula (12):
[0237]
[0238] Finally, as shown in FIG6E , by using the predicted value of the horizontal azimuth angle and the low plane horizontal azimuth of the current node and the horizontal azimuth of the high plane To predict the geometric information of the current node. The details are as follows:
[0239]
[0240]
[0241] int context=(angLel≥0&&angLeR≥0)||(angLel<0&&angLeR<0)? 0:2
[0242] int absAngleL=abs(angLel)
[0243] int absAngleR=abs(angLeR)
[0244] context+=absAngleL>absAngleR? 0:1
[0245] context+=maxAngle>minAngle<<1?4:0
[0246] After encoding the LaserIdx of the point, the Z-axis direction of the current point will be predicted and encoded using the LaserIdx corresponding to the current point. That is, the depth information radius of the cylindrical coordinate system is calculated by using the x and y information of the current point. Then, the tangent value of the current point and the vertical direction are obtained using the laser LaserIdx of the current point. The predicted value of the Z-axis direction of the current point, namely Z_pred, can be obtained:
[0247]
[0248] int tanTheta=tanθ laserIdx
[0249] int zOffset = Z laserIdx
[0250] Z_pred=radius×tanTheta-zOffset
[0251] Finally, Z_pred is used to predict the geometric information of the current point in the Z-axis direction to obtain the prediction residual Z_res, and Z_res is finally encoded.
[0252] It is important to note that when partitioning nodes into leaf nodes, the number of duplicate points in the leaf nodes must be encoded in the case of lossless geometric coding. Ultimately, the placeholder information for all nodes is encoded to generate a binary bitstream. Furthermore, G-PCC currently introduces a plane coding mode. During the geometric partitioning process, it determines whether the child nodes of the current node are in the same plane. If the child nodes of the current node meet the condition of being in the same plane, the child nodes of the current node are represented by that plane.
[0253] In octree-based geometric decoding, the decoder follows a breadth-first traversal. Before decoding each node's occupancy information, it first uses the reconstructed geometric information to determine whether the current node is for plane decoding or IDCM decoding. If the current node meets the requirements for plane decoding, it first decodes the plane identifier and plane position information of the current node. Then, based on the plane information, it decodes the current node's occupancy information. If the current node meets the requirements for IDCM decoding, it first decodes whether the current node is a true IDCM node. If so, it continues to parse the DCM decoding mode of the current node, then obtains the number of points in the current DCM node, and finally decodes the geometric information of each point. For nodes that do not meet either plane decoding or DCM decoding requirements, the current node's occupancy information is decoded. By continuously parsing in this way, the placeholder code of each node is obtained, and the node is continuously partitioned until a 1x1x1 unit cube is obtained. The number of points contained in each leaf node is parsed, and the geometrically reconstructed point cloud information is finally recovered.
[0254] The following is a detailed introduction to the IDCM decoding process:
[0255] The same process as encoding is used. First, a priori information is used to determine whether the node should start IDCM. The starting conditions of IDCM are as follows:
[0256] (1) The current node has no sibling child nodes, that is, the parent node of the current node has only one child node, and the parent node of the parent node of the current node has only two occupied child nodes, that is, the current node has at most one neighbor node.
[0257] (2) The parent node of the current node has only one child node, the current node, and the six neighbor nodes that share a face with the current node are all empty nodes.
[0258] (3) The number of sibling nodes of the current node is greater than 1.
[0259] When a node meets the conditions for DCM encoding, it first decodes whether the current node is a real DCM node, that is, IDCM_flag. When IDCM_flag is true, the current node adopts DCM encoding, otherwise it still adopts octree encoding.
[0260] Next, decode the number of points numPoints of the current node. The specific decoding method is as follows:
[0261] 1) First decode whether the numPonts of the current node is greater than 1;
[0262] 2) If the numPonts of the current node is greater than 1, continue decoding to see if the second point is a duplicate point. If the second point is not a duplicate point, it can be implicitly inferred that the second type of DCM mode contains only two points.
[0263] 3) If the numPonts of the current node obtained by decoding is less than or equal to 1, continue decoding whether the second point is a repeated point. If the second point is not a repeated point, it can be implicitly inferred that the second type of DCM mode is satisfied, which contains only one point; if the second point obtained by decoding is a repeated point, it can be inferred that the third type of DCM mode is satisfied, which contains multiple points, but they are all repeated points. Then continue decoding whether the number of repeated points is greater than 1 (entropy decoding). If it is greater than 1, continue decoding the number of remaining repeated points (using exponential Columbus decoding).
[0264] If the current node does not meet the requirements of the DCM node, that is, the number of points is greater than 2 points and it is not a duplicate point, exit directly.
[0265] After decoding the number of points in the current node, the coordinate information of the points contained in the current node is decoded. The following will introduce the lidar point cloud and the human eye point cloud separately.
[0266] Human eye point cloud
[0267] 1) If the current node contains only one point, the geometric information of the point in three dimensions will be directly decoded (Bypass coding);
[0268] 2) If the current node contains two points, the priority decoding axis dirextAxis will be obtained by using the geometric coordinates of the points. It should be noted that the coordinate axes currently compared only include the x and y axes, not the z axis. Assuming that the geometric coordinates of the current node are nodePos, the method shown in formula (13) is used to determine the priority encoding axis:
[0269] dirextAxis=!(nodePos[0] <nodePos[1])(13)
[0270] That is to say, the axis with the smaller node coordinate geometric position is used as the coordinate axis dirextAxis for priority decoding.
[0271] Secondly, decode the geometry information of the priority decoded coordinate axis dirextAxis as follows, assuming that the bit depth of the geometry to be decoded corresponding to the priority decoded axis is nodeSizeLog2, and assuming that the coordinates of the two points are pointPos[0] and pointPos[1] respectively:
[0272]
[0273] After decoding the priority decoding axis dirextAxis, the geometric coordinates of the current point are directly decoded. Assuming that the remaining encoding bit depth of each point is nodeSizeLog2, the specific decoding process is as follows, assuming that the coordinate information of the point is pointPos:
[0274]
[0275] For LiDAR point clouds
[0276] 1) If the current node contains two points, the priority decoding coordinate axis dirextAxis will be obtained by using the geometric coordinates of the points. Assuming that the geometric coordinates of the current node are nodePos, the priority encoding coordinate axis is determined by the method shown in formula (14):
[0277] dirextAxis=!(nodePos[0] <nodePos[1])(14)
[0278] That is to say, the axis with the smaller node coordinate geometric position is used as the coordinate axis dirextAxis for priority decoding. It should be noted here that the currently compared coordinate axes only include the x and y axes, and do not include the z axis.
[0279] Secondly, first decode the geometry information of the priority-encoded coordinate axis dirextAxis as follows, assuming that the bit depth of the geometry to be encoded corresponding to the priority-encoded axis is nodeSizeLog2, and assuming that the coordinates of the two points are pointPos[0] and pointPos[1] respectively:
[0280]
[0281] After decoding the priority decoding axis dirextAxis, the geometric coordinates of the current point are decoded.
[0282] Similarly, we first use the current node's geometry information nodePos to get a direct decoding main axis direction, and then use the geometry information of the decoded direction to decode the geometry information of the other dimension. Assuming that the axis direction of direct decoding is directAxis and the bit depth to be decoded in direct decoding is nodeSizeLog2, the decoding method is as follows:
[0283]
[0284] It should be noted here that all geometric accuracy information in the directAxis direction will be decoded here.
[0285] After decoding all the precision of the directAxis coordinate direction, the LaserIdx of the current node, i.e., nodeLaserIdx, is first calculated. Then, the LaserIdx of the node, i.e., nodeLaserIdx, is used to predict and decode the LaserIdx of the point, i.e., pointLaserIdx. The calculation method of the LaserIdx of the node or point is the same as that of the encoder. Finally, the LaserIdx of the current point and the predicted residual information of the LaserIdx of the node are decoded to obtain ResLaserIdx. The calculation formula is shown in Formula 15:
[0286] PointLaserIdx=nodeLaserIdx+ResLaserIdx (15)
[0287] After decoding the LaserIdx of the current point, the three-dimensional geometric information of the current point is predicted and decoded using the acquisition parameters of the laser radar.
[0288] Specifically, as shown in FIG6B , the LaserIdx corresponding to the current point is first used to obtain the corresponding predicted value of the horizontal azimuth angle, that is, Secondly, the node geometry information corresponding to the current point is used to obtain the horizontal azimuth angle corresponding to the node Assume that the geometric coordinates of the node are nodePos, and the horizontal azimuth is The calculation method between the node geometry information is shown in formula (16):
[0289]
[0290] By using the acquisition parameters of the laser radar, the number of rotation points of each laser, numPoints, can be obtained, which represents the number of points obtained by each laser ray rotating one circle. The rotation angular velocity deltaPhi of each laser can then be calculated using the number of rotation points of each laser, as shown in formula (17):
[0291]
[0292] Next, as shown in FIG6D , the horizontal azimuth angle of the node is used And the horizontal azimuth of the previous Laser code point corresponding to the current point Calculate the predicted horizontal azimuth angle corresponding to the current point The predicted value of the horizontal azimuth angle is calculated as shown in formula (18):
[0293]
[0294] Finally, by using the predicted value of the horizontal azimuth and the low plane horizontal azimuth of the current node and the horizontal azimuth of the high plane To predict the geometric information of the current node. The details are as follows:
[0295]
[0296]
[0297] int context=(angLel≥0&&angLeR≥0)||(angLel<0&&angLeR<0)? 0:2
[0298] int absAngleL=abs(angLel)
[0299] int absAngleR=abs(angLeR)
[0300] context+=absAngleL>absAngleR? 0:1
[0301] context+=maxAngle>minAngle<<1?4:0
[0302] After decoding the LaserIdx of the point, the Z-axis direction of the current point will be predicted and decoded using the LaserIdx corresponding to the current point. That is, the depth information radius of the cylindrical coordinate system is calculated by using the x and y information of the current point. Then, the tangent value of the current point and the vertical offset are obtained using the laser LaserIdx of the current point. Then, the predicted value of the Z-axis direction of the current point, namely Z_pred, can be obtained:
[0303]
[0304] int tanTheta=tanθ laserIdx
[0305] int zOffset = Z laserIdx
[0306] Z_pred=radius×tanTheta-zOffset
[0307] Finally, the decoded Z_res and Z_pred are used to reconstruct and restore the geometric information of the current point in the Z-axis direction.
[0308] In the trisoup (triangle soup)-based geometric information coding framework, geometric partitioning is also performed first. However, unlike geometric information coding based on binary trees, quad trees, and octrees, this method does not need to gradually partition the point cloud into unit cubes with side lengths of 1x1x1. Instead, the partitioning stops when the block (sub-block) has a side length of W. Based on the surface formed by the distribution of the point cloud in each block, the surface and the twelve edges of the block are obtained. The vertex coordinates of each block are encoded in sequence to generate a binary code stream.
[0309] When reconstructing point cloud geometry based on trisoup, the decoding end first decodes vertex coordinates to complete triangle reconstruction. This process is shown in Figures 7A to 7C. The block shown in Figure 7A contains three vertices (v1, v2, v3). The set of triangles formed by these three vertices in a certain order is called triangle soup, or trisoup, as shown in Figure 7B. Afterwards, sampling is performed on this set of triangles, and the resulting sampling points are used as the reconstructed point cloud within the block, as shown in Figure 7C.
[0310] The geometric coding based on the prediction tree includes: first, sorting the input point cloud. The currently used sorting methods include unordered, Morton order, azimuth order, and radial distance order. At the encoding end, the prediction tree structure is established by using two different methods, including: KD-Tree (high-latency slow mode) and using the lidar calibration information to divide each point into different Lasers and establish a prediction structure according to different Lasers (low-latency fast mode). Next, based on the structure of the prediction tree, each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain the prediction residual, and the geometric prediction residual is quantized using the quantization parameter. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.
[0311] Based on the geometric decoding of the prediction tree, the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream. Secondly, the geometric position prediction residual information and quantization parameters of each prediction node are obtained through parsing, and the prediction residual is dequantized to restore the reconstructed geometric position information of each node, finally completing the geometric reconstruction at the decoding end.
[0312] After the geometric encoding is completed, the geometric information is reconstructed. At present, attribute encoding is mainly performed on color information. First, the color information is converted from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, there are two main transformation methods. One is the distance-based lifting transformation that relies on LOD (Level of Detail) division, and the other is to directly perform RAHT (Region Adaptive Hierarchal Transform) transformation. Both methods will convert the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize and encode the coefficients to generate a binary code stream.
[0313] When using geometric information to predict attribute information, Morton codes can be used to perform nearest neighbor search. The Morton code corresponding to each point in the point cloud can be obtained from the geometric coordinates of the point. The specific method for calculating the Morton code is described as follows. For each component of the three-dimensional coordinate represented by a d-bit binary number, its three components can be expressed as formula (19):
[0314]
[0315] Among them, x l ,y l ,z l ∈{0,1} are the binary values corresponding to the highest bit (l=1) to the lowest bit (l=d) of x, y, and z respectively. The Morton code M is to cross-arrange x, y, and z starting from the highest bit. l ,y l ,z l To the lowest bit, the calculation formula of M is shown in the following formula (20):
[0316]
[0317] Among them, m l′ ∈{0,1} are the values of the highest bit (l′=1) to the lowest bit (l′=3d) of M. After obtaining the Morton code M of each point in the point cloud, the points in the point cloud are arranged in ascending order of the Morton code, and the weight w of each point is set to 1.
[0318] There are 4 general test conditions for GPCC:
[0319] Condition 1: The geometric position is limited and the attributes are lost;
[0320] Condition 2: Geometric position lossless, attribute lossy;
[0321] Condition 3: Geometric position lossless, attribute loss limited;
[0322] Condition 4: Geometric position and attributes are lossless.
[0323] The general test sequences include Cat1A, Cat1B, Cat3-fused, and Cat3-frame, a total of four categories. Among them, Cat2-frame point cloud only contains reflectance attribute information, Cat1A and Cat1B point clouds only contain color attribute information, and Cat3-fused point cloud contains both color and reflectance attribute information.
[0324] There are two technical routes of GPCC, which are distinguished by the algorithm used for geometric compression, and are divided into octree coding branch and prediction tree coding branch.
[0325] Among them, in the octree coding branch, at the encoding end, the bounding box is divided into sub-cubes in sequence, and the non-empty sub-cubes (containing points in the point cloud) are divided until the leaf node obtained by division is a 1X1X1 unit cube. The division stops when the division is completed. In the case of geometric lossless coding, the number of points contained in the leaf node needs to be encoded, and finally the geometric octree encoding is completed to generate a binary code stream. At the decoding end, the decoding end obtains the placeholder code of each node by continuous parsing in the order of breadth-first traversal, and continuously divides the nodes in sequence until the division is a 1x1x1 unit cube. In the case of geometric lossless decoding, the number of points contained in each leaf node needs to be parsed to finally recover the geometric reconstructed point cloud information.
[0326] In the prediction tree coding branch, the encoder establishes the prediction tree structure using two different approaches: a KD-Tree (high-latency, slow mode) and a low-latency, fast mode, where each point is assigned to a different laser using lidar calibration information and the prediction structure is established accordingly. Next, based on the prediction tree structure, each node in the tree is traversed, and the geometric position information of the node is predicted using different prediction modes to obtain a prediction residual. This geometric prediction residual is then quantized using a quantization parameter. Finally, through continuous iteration, the prediction residuals of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary bitstream. On the decoder side, the decoder continuously parses the bitstream to reconstruct the prediction tree structure. The geometric position prediction residual information and quantization parameters for each prediction node are then parsed and dequantized to recover the reconstructed geometric position information for each node, completing the geometric reconstruction at the decoder.
[0327] When directly encoding the current node, the encoder encodes the node's point count after determining that the node is eligible for direct encoding and decoding. Correspondingly, the decoder decodes the node's point count from the bitstream. However, current predictive encoding and decoding of the node's point count fails to consider temporal correlation, resulting in limited contextual conditions and a high conditional entropy. This, in turn, leads to poor point count encoding performance and low point cloud encoding efficiency.
[0328] In order to solve the above technical problems, the embodiment of the present application refers to the inter-frame information when encoding and decoding the points of the node. For example, based on the inter-frame encoding and decoding information corresponding to the current node, the points of the current node are encoded and decoded, thereby increasing the context conditions that can be selected when encoding and decoding the points, so that the determined conditional entropy is reduced, thereby improving the encoding and decoding efficiency and performance of the point cloud.
[0329] The following describes the point cloud encoding and decoding method involved in the embodiments of the present application in conjunction with specific embodiments.
[0330] First, taking the decoding end as an example, the point cloud decoding method provided in the embodiment of the present application is introduced.
[0331] FIG8 is a flow chart of a point cloud decoding method according to an embodiment of the present application. The point cloud decoding method according to an embodiment of the present application can be implemented by the point cloud decoding device or point cloud decoder shown in FIG3 or FIG4B above.
[0332] As shown in FIG8 , the point cloud decoding method of the embodiment of the present application includes:
[0333] S101: Determine inter-frame decoding information corresponding to a current node.
[0334] The current node is the node to be decoded in the current frame to be decoded.
[0335] As can be seen from the above, a point cloud includes geometric information and attribute information, and decoding of a point cloud includes geometric decoding and attribute decoding. The embodiments of the present application relate to geometric decoding of a point cloud.
[0336] In some embodiments, the geometric information of the point cloud is also referred to as the position information of the point cloud. Therefore, the geometric decoding of the point cloud is also referred to as the position decoding of the point cloud.
[0337] In the octree-based encoding method, the encoding end constructs an octree structure of the point cloud based on the geometric information of the point cloud. As shown in Figure 9, the point cloud is enclosed by a minimum rectangular block. The bounding box is first divided into 8 nodes by the octree to obtain 8 nodes. The occupied nodes among these 8 nodes, that is, the nodes including the points, are further divided into octrees, and so on, until the division is to the voxel level, for example, to a 1X1X1 cube. The point cloud octree structure obtained by such division includes multiple layers of nodes, for example, N layers. During encoding, the occupancy information of each layer is encoded layer by layer until the voxel-level leaf nodes of the last layer are encoded. That is to say, in octree encoding, the point cloud is divided into octrees, and finally the points in the point cloud are divided into the voxel-level leaf nodes of the octree. The encoding of the point cloud is achieved by encoding the entire octree.
[0338] Correspondingly, the decoder first decodes the point cloud geometry stream to obtain the occupancy information of the root node of the point cloud's octree. Based on this occupancy information, it determines the child nodes of the root node, that is, the nodes in the second layer of the octree. Next, it decodes the geometry stream to obtain the occupancy information of each node in the second layer. Based on this occupancy information, it determines the nodes in the third layer of the octree, and so on.
[0339] However, the octree-based geometric information encoding mode has an efficient compression rate for points with correlation in space, and for points in isolated positions in the geometric space, the use of direct encoding can greatly reduce the complexity and improve the encoding and decoding efficiency.
[0340] Since direct encoding directly encodes the geometric information of the points included in a node, if the node contains a large number of points, the compression effect of direct encoding is poor. Therefore, before performing direct encoding on a node in the octree, it is first determined whether the node can be encoded using direct encoding. If it is determined that the node can be encoded using direct encoding, the geometric information of the points included in the node is directly encoded using direct encoding. If it is determined that the node cannot be encoded using direct encoding, the node is further divided using the octree method.
[0341] Specifically, the encoder first determines whether the node is eligible for direct encoding. If so, it then determines whether the node's point count is less than or equal to a preset threshold. If so, the node is determined to be eligible for direct encoding. Next, the number of points in the node and the geometric information of each point are encoded into the bitstream. Correspondingly, after determining that the node is eligible for direct decoding, the decoder decodes the bitstream, obtains the node's point count and geometric information of each point, and performs geometric decoding of the node.
[0342] When decoding syntax elements, the more conditions the context model selects, the smaller the conditional entropy and the better the decoding performance. However, currently, when decoding the points of a node, inter-frame information is not considered, resulting in fewer selectable context conditions and a large conditional entropy. This leads to poor point entropy decoding performance and degrades point cloud decoding performance.
[0343] In order to solve the above problems, in an embodiment of the present application, the decoding end predicts and decodes the number of points of the current node based on the inter-frame decoding information corresponding to the current node, thereby increasing the context conditions that can be selected when decoding the points, so that the determined conditional entropy is reduced, thereby improving the decoding efficiency and decoding performance of the point cloud.
[0344] Specifically, the decoding end first determines the inter-frame decoding information corresponding to the current node.
[0345] It should be noted that the current frame to be decoded is a point cloud frame. In some embodiments, the current frame to be decoded is also referred to as the current frame, the current point cloud frame, or the point cloud frame to be decoded. The current node can be understood as any non-leaf node in the current frame to be decoded, which is a non-empty node. In other words, the current node is not a leaf node in the octree corresponding to the current frame to be decoded, that is, the current node is any middle node in the octree, and the current node is not a non-empty node, that is, it includes at least one point.
[0346] In addition, the inter-frame decoding information corresponding to the current node described in the embodiment of the present application generally refers to inter-frame geometric decoding information.
[0347] The embodiments of the present application do not limit the specific type of inter-frame decoding information corresponding to the current node; the information may be understood as any inter-frame geometric decoding information related to the current node. For example, the inter-frame decoding information corresponding to the current node may include inter-frame geometric decoding information related to the current node and / or inter-frame geometric decoding information related to the current frame to be decoded.
[0348] In some embodiments, the inter-frame decoding information corresponding to the current node includes at least one of geometric decoding information of N prediction nodes of the current node and first information corresponding to the current node. The N prediction nodes of the current node are prediction nodes of the current node in an inter-frame prediction reference frame, and the first information corresponding to the current node is used to indicate whether inter-frame decoding mode is allowed to be initiated for the current node.
[0349] At this time, determining the inter-frame decoding information corresponding to the current node in the above S101 includes the following step S101-A:
[0350] S101-A. Determine N prediction nodes of the current node in a prediction reference frame of a current frame to be decoded, and / or decode a point cloud code stream to obtain first information.
[0351] Wherein, N is a positive integer.
[0352] In an embodiment of the present application, when decoding a current node in a current frame to be decoded, the decoding end determines whether the current node is eligible for direct decoding. If the current node is determined to be eligible for direct decoding, the decoding end decodes the point count of the current node. Specifically, when decoding the point count of the current node, the decoding end first determines a predicted reference frame for the current frame to be decoded, and then determines N predicted nodes for the current node within the predicted reference frame. For example, FIG10 illustrates a predicted node for the current node within the predicted reference frame.
[0353] It should be noted that the embodiments of the present application do not limit the number of prediction reference frames for the current frame to be decoded. For example, the current frame to be decoded may have one prediction reference frame, or the current frame to be decoded may have multiple prediction reference frames. Furthermore, the embodiments of the present application do not limit the number N of prediction nodes for the current node, and this number is determined based on actual needs.
[0354] The embodiment of the present application does not limit the specific method of determining the prediction reference frame of the current frame to be decoded.
[0355] In some embodiments, one or several decoded frames before the current frame to be decoded are determined as prediction reference frames for the current frame to be decoded.
[0356] For example, if the current frame to be decoded is a P frame, the inter-frame reference frame of the P frame includes the previous frame of the P frame (i.e., the forward frame). Therefore, the previous frame of the current frame to be decoded (i.e., the forward frame) can be determined as the predicted reference frame of the current frame to be decoded.
[0357] For another example, if the current frame to be decoded is a B frame, the inter-frame reference frames of the B frame include the previous frame of the P frame (i.e., the forward frame) and the next frame of the P frame (i.e., the backward frame). Therefore, the previous frame of the current frame to be decoded (i.e., the forward frame) can be determined as the predicted reference frame of the current frame to be decoded.
[0358] In some embodiments, one or several decoded frames following the current frame to be decoded are determined as prediction reference frames for the current frame to be decoded.
[0359] For example, if the current frame to be decoded is a B frame, the next frame after the current frame to be decoded may be determined as a prediction reference frame for the current frame to be decoded.
[0360] In some embodiments, one or several decoded frames before the current frame to be decoded, and one or several decoded frames after the current frame to be decoded, are determined as prediction reference frames for the current frame to be decoded.
[0361] For example, if the current frame to be decoded is a B frame, the previous frame and the next frame of the current frame to be decoded can be determined as prediction reference frames of the current frame to be decoded. In this case, the current frame to be decoded has two prediction reference frames.
[0362] The following takes the current frame to be decoded including K prediction reference frames as an example to introduce the specific process of determining N prediction nodes of the current node in the prediction reference frames of the current frame to be decoded in S101-A.
[0363] In some embodiments, the decoding end selects at least one prediction reference frame from the K prediction reference frames based on the placeholder information of the node in the current frame to be decoded and the placeholder information of the node in each of the K prediction reference frames, and then searches for the predicted node of the current node in the at least one prediction reference frame. For example, at least one prediction reference frame whose placeholder information of the node is closest to the placeholder information of the node in the current frame to be decoded is selected from the K prediction reference frames, and then searches for the predicted node of the current node in the at least one prediction reference frame.
[0364] In some embodiments, the decoding end may determine N predicted nodes of the current node through the following steps S101-A1 and S101-A2:
[0365] S101-A1. For a k-th prediction reference frame among K prediction reference frames, determine at least one prediction node of a current node in the k-th prediction reference frame, where k is a positive integer less than or equal to K, and K is a positive integer;
[0366] S101-A2: Determine N prediction nodes of the current node based on at least one prediction node of the current node in K prediction reference frames.
[0367] In this embodiment, the decoding end determines at least one prediction node of the current node from each of the K prediction reference frames, and finally aggregates at least one prediction node in each of the K prediction reference frames to obtain N prediction nodes of the current node.
[0368] Among them, the process of the decoding end determining at least one prediction point of the current node in each of the K prediction reference frames is the same. For the sake of convenience of description, the kth prediction reference frame among the K prediction reference frames is used as an example for explanation.
[0369] The specific process of determining at least one prediction node of the current node in the kth prediction reference frame in the above S101-A1 is introduced below.
[0370] The embodiment of the present application does not limit the specific manner in which the decoding end determines at least one prediction node of the current node in the kth prediction reference frame.
[0371] Method 1: In the kth prediction reference frame, a prediction node of the current node is determined. For example, a node in the kth prediction reference frame that has the same partition depth as the current node is determined as the prediction node of the current node.
[0372] For example, assuming that the current node is located at the third level of the octree of the current frame to be decoded, the nodes at the third level of the octree in the k-th predicted reference frame can be obtained, and then the prediction node of the current node can be determined from these nodes.
[0373] In one example, if the number of prediction nodes of the current node in the kth prediction reference frame is 1, then among the points at which the kth prediction reference frame and the current node are at the same division depth, a node whose occupancy information is the smallest different from that of the current node can be selected, recorded as node 1, and node 1 is determined as a prediction node of the current node in the kth prediction reference frame.
[0374] In another example, if the number of prediction nodes of the current node in the kth prediction reference frame is greater than 1, the node 1 determined above and at least one domain node of node 1 in the kth prediction reference frame, such as at least one domain node that is coplanar, colinear, or co-point with node 1, are determined as the prediction nodes of the current node in the kth prediction reference frame.
[0375] Method 2, in the above S101-A1, determining at least one prediction node of the current node in the k-th prediction reference frame includes the following steps S101-A11 to S101-A13:
[0376] S101-A11. In a current frame to be decoded, determine M domain nodes of a current node, where the M domain nodes include the current node, and M is a positive integer.
[0377] S101-A12, for the i-th domain node among the M domain nodes, determine the corresponding node of the i-th domain node in the k-th prediction reference frame, where i is a positive integer less than or equal to M;
[0378] S101-A13. Determine at least one prediction node of the current node in the kth prediction reference frame based on the corresponding nodes of the M domain nodes in the kth prediction reference frame.
[0379] In this implementation, before determining at least one prediction node of the current node in the kth prediction reference frame, the decoding end first determines M domain nodes of the current node in the current frame to be decoded, and the M domain nodes include the current node itself.
[0380] It should be noted that in the embodiment of the present application, there is no restriction on the specific method of determining the M domain nodes of the current node.
[0381] In one example, the M domain nodes of the current node include at least one domain node among the domain nodes that are coplanar, colinear, and co-point with the current node in the current frame to be decoded. As shown in Figure 11, the current node includes 6 coplanar nodes, 12 colinear nodes, and 8 co-point nodes.
[0382] In another example, the M domain nodes of the current node may include not only at least one domain node in the current frame to be decoded that is coplanar, colinear, and co-point with the current node, but also other nodes within the reference neighborhood range. This embodiment of the present application does not impose any restrictions on this.
[0383] Based on the above steps, the decoding end determines the M domain nodes of the current node in the current frame to be decoded, determines the corresponding node of each of the M domain nodes in the k-th prediction reference frame, and then determines at least one prediction node of the current node in the k-th prediction reference frame based on the corresponding nodes of the M domain nodes in the k-th prediction reference frame.
[0384] The embodiment of the present application does not limit the specific implementation method of S101-A13.
[0385] In one possible implementation, at least one corresponding node is selected from the corresponding nodes of the M domain nodes in the k-th prediction reference frame as the at least one prediction node of the current node in the k-th prediction reference frame. For example, at least one corresponding node whose placeholder information has the smallest difference between the placeholder information of the M domain nodes in the k-th prediction reference frame and the placeholder information of the current node is selected from the corresponding nodes of the M domain nodes in the k-th prediction reference frame as the at least one prediction node of the current node in the k-th prediction reference frame. The method for determining the difference between the placeholder information of the corresponding node and the placeholder information of the current node can refer to the above-mentioned process for determining the difference in placeholder information, for example, performing an XOR operation on the placeholder information of the corresponding node and the placeholder information of the current node, and using the XOR operation result as the difference between the placeholder information of the corresponding node and the placeholder information of the current node.
[0386] In another possible implementation, the decoding end determines the corresponding nodes of the M domain nodes in the kth prediction reference frame as at least one prediction node for the current node in the kth prediction reference frame. For example, each of the M domain nodes has a corresponding node in the kth prediction reference frame, resulting in M corresponding nodes. These M corresponding nodes are determined as the prediction nodes for the current node in the kth prediction reference frame, for a total of M prediction nodes.
[0387] The above describes the process of determining at least one prediction node for the current node in the kth prediction reference frame. Thus, the decoder can use the same method as above to determine at least one prediction node for the current node in each of the K prediction reference frames.
[0388] For example, if the current frame to be decoded is a P frame, the K predicted reference frames include the forward frame of the current frame to be decoded. At this time, the decoding end can determine at least one prediction node of the current node in the forward frame based on the above steps. Exemplarily, as shown in Figure 13A, it is assumed that the current node includes 3 domain nodes, which are respectively recorded as node 11, node 12 (current node) and node 13. These 3 domain nodes correspond to a corresponding node in the forward frame, which are respectively recorded as node 21, node 22 and node 23, and then node 21, node 22 and node 23 are determined as the 3 prediction nodes of the current node in the forward frame, or 1 or 2 nodes are selected from node 21, node 22 and node 23 to be determined as 1 or 2 prediction nodes of the current node in the forward frame.
[0389] For another example, if the current frame to be decoded is a B frame, the K prediction reference frames include the forward frame and the backward frame of the current frame to be decoded. At this time, based on the above steps, the decoding end can determine at least one prediction node of the current node in the forward frame, and at least one prediction node of the current node in the backward frame. For example, as shown in Figure 13B, it is assumed that the current node includes three domain nodes, respectively recorded as node 11, node 12, and node 13. These three domain nodes correspond to a corresponding node in the forward frame, respectively, recorded as node 21, node 22, and node 23. These three domain nodes correspond to a corresponding node in the backward frame, respectively, recorded as node 41, node 42, and node 43. In this way, the decoding end can determine node 21, node 22, and node 23 as the three prediction nodes of the current node in the forward frame, or select one or two nodes from node 21, node 22, and node 23 to determine as one or two prediction nodes of the current node in the forward frame. Similarly, the decoding end can determine node 41, node 42 and node 43 as the three prediction nodes of the current node in the backward frame, or select one or two nodes from node 41, node 42 and node 43 as one or two prediction nodes of the current node in the backward frame.
[0390] After the decoding end determines at least one prediction node of the current node in each of the K prediction reference frames, it performs the above step S101-B, that is, determines N prediction nodes of the current node based on at least one prediction node of the current node in the K prediction reference frames.
[0391] In one example, at least one prediction node of the current node in K prediction reference frames is determined as N prediction nodes of the current node.
[0392] For example, K=2, that is, the K prediction reference frames include the first prediction reference frame and the second prediction reference frame. Assume that the current node has 2 prediction nodes in the first prediction reference frame and 3 prediction nodes in the second prediction reference frame. In this way, it can be determined that the current node has 5 prediction nodes, and N=5.
[0393] In another example, N prediction nodes of the current node are screened out from at least one prediction node of the current node in K prediction reference frames.
[0394] Continuing with the above example, assume K = 2, meaning the K prediction reference frames include the first prediction reference frame and the second prediction reference frame. Assume the current node has two prediction nodes in the first prediction reference frame and three prediction nodes in the second prediction reference frame. From these five prediction nodes, select three prediction nodes as the final prediction nodes for the current node. For example, from these five prediction nodes, select the three prediction nodes whose placeholder information differs minimally from the placeholder information of the current node and determine them as the final prediction nodes for the current node.
[0395] In the second method, after the decoding end determines the M domain nodes of the current node in the current frame to be decoded, it determines the corresponding node of each of the M domain nodes in the kth prediction reference frame, and then determines at least one prediction point of the current node in the kth prediction reference frame based on the corresponding node of each of the M domain nodes.
[0396] Mode 3, in the above S101-A1, determining at least one prediction node of the current node in the k-th prediction reference frame includes the following steps S101-B11 to S101-B13:
[0397] S101-B11, determining the corresponding node of the current node in the kth prediction reference frame;
[0398] S101-B12, determining at least one domain node of the corresponding node;
[0399] S101-B13. Determine at least one domain node as at least one prediction node of the current node in the k-th prediction reference frame.
[0400] In this method 3, for each of the K predicted reference frames, the decoding end first determines the corresponding node of the current node in each predicted reference frame. For example, the corresponding node 1 of the current node in the predicted reference frame 1 is determined, and the corresponding node 2 of the current node in the predicted reference frame 2 is determined. Then, the decoding end determines at least one domain node of each corresponding node. For example, at least one domain node of the corresponding node 1 is determined in the predicted reference frame 1, and at least one domain node of the corresponding node 2 is determined in the predicted reference frame 2. In this way, at least one domain node of the corresponding node 1 in the predicted reference frame 1 can be determined as at least one predicted node of the current node in the predicted reference frame 1, and at least one domain node of the corresponding node 2 in the predicted reference frame 2 can be determined as at least one predicted node of the current node in the predicted reference frame 2.
[0401] Determining the corresponding node of the i-th domain node in the k-th prediction reference frame in S101-A12 of the second method is essentially the same as determining the corresponding node of the current node in the k-th prediction reference frame in S101-B11 of the third method described above. For ease of description, the i-th domain node and the current node are referred to as the i-th node. The specific process of determining the corresponding node of the i-th node in the k-th prediction reference frame is described below.
[0402] The decoding end determines the corresponding node of the i-th node in the k-th prediction reference frame in at least the following ways:
[0403] In method 1, a node in the k-th prediction reference frame that has the same division depth as the i-th node is determined as the corresponding node of the i-th node.
[0404] For example, assuming that the i-th node is located at the third level of the octree of the current frame to be decoded, the nodes at the third level of the octree in the k-th prediction reference frame can be obtained, and the corresponding node of the i-th node can be determined from these nodes. For example, among the points in the k-th prediction reference frame that are at the same partition depth as the i-th node, the node whose placeholder information differs the least from that of the i-th node is selected and determined as the corresponding node of the i-th node in the k-th prediction reference frame.
[0405] Mode 2: The above-mentioned S101-A12 and S101-B11 include the following steps:
[0406] S101-A121, in the current frame to be decoded, determine the parent node of the i-th node as the i-th parent node;
[0407] S101-A122, determine the matching node of the i-th parent node in the k-th prediction reference frame as the i-th matching node;
[0408] S101-A123: Determine one of the child nodes of the i matching nodes as the corresponding node of the i-th node in the k-th prediction reference frame.
[0409] In this method 2, for the i-th node, the decoding end determines the parent node of the i-th node in the current frame to be decoded, and then determines the matching node of the parent node of the i-th prediction domain node in the k-th prediction reference frame. For ease of description, the parent node of the i-th node is recorded as the i-th parent node, and the matching node of the parent node of the i-th node in the k-th prediction reference frame is determined as the i-th matching node. Then, a child node of the child node of the i-th matching node is determined as the corresponding node of the i-th node in the k-th prediction reference frame, thereby accurately determining the corresponding node of the i-th node in the k-th prediction reference frame.
[0410] The specific process of determining the matching node of the i-th parent node in the k-th prediction reference frame in the above S101-A122 is introduced below.
[0411] The embodiment of the present application does not limit the specific method by which the decoding end determines the matching node of the i-th parent node in the k-th prediction reference frame.
[0412] In some embodiments, the partition depth of the i-th parent node in the current frame to be decoded is determined, for example, the i-th parent node is at the second level of the octree of the current frame to be decoded. In this way, the decoding end can determine one of the nodes in the k-th prediction reference frame that have the same partition depth as the i-th parent node as the matching node of the i-th parent node in the k-th prediction reference frame. For example, one of the nodes in the second level of the k-th prediction reference frame can be determined as the matching node of the i-th parent node in the k-th prediction reference frame.
[0413] In some embodiments, the decoding end determines a matching node for the i-th parent node in the k-th predicted reference frame based on the placeholder information of the i-th parent node. Specifically, since the placeholder information for the i-th parent node in the current frame to be decoded has been decoded, and the placeholder information for each node in the k-th predicted reference frame has also been decoded, the decoding end can search for a matching node for the i-th parent node in the k-th predicted reference frame based on the placeholder information of the i-th parent node.
[0414] For example, the node with the smallest difference between the placeholder information of the k-th prediction reference frame and the placeholder information of the i-th parent node is determined as the matching node of the i-th parent node in the k-th prediction reference frame.
[0415] For example, assuming the placeholder information of the i-th parent node is 11001101, the k-th predicted reference frame is searched for the node whose placeholder information has the smallest difference from the placeholder information 11001101. Specifically, the decoder performs an XOR operation on the placeholder information of the i-th parent node and the placeholder information of each node in the k-th predicted reference frame. The node with the smallest XOR result in the k-th predicted reference frame is determined as the matching node of the i-th parent node in the k-th predicted reference frame.
[0416] For example, assuming that the occupancy information of node 1 in the k-th predicted reference frame is 10001101, 11001101 and 10001101 are XORed, where the first bit of 11001101 and the first bit of 10001101 are both 1. Therefore, the XOR result of the first bit of the two is 0, the second bit of 11001101 is different from the second bit of 10001111, so the XOR result of the second bit of the two is 1, and so on. The XOR result of 11001101 and 10001111 is 0+1+0+0+0+0+1+0=2. According to this method, the decoding end can determine the XOR operation result of the occupancy information of the i-th parent node and the occupancy information of each node in the k-th predicted reference frame, and then determine the node in the k-th predicted reference frame with the smallest XOR operation with the occupancy information of the i-th parent node as the matching node of the i-th parent node in the k-th predicted reference frame.
[0417] Based on the above steps, the decoding end can determine the matching node of the i-th parent node in the k-th prediction reference frame. For ease of description, this matching node is recorded as the i-th matching node.
[0418] Next, the decoding end determines one of the child nodes of the i-th matching node as the corresponding node of the i-th domain node in the k-th prediction reference frame.
[0419] For example, the decoding end determines a default child node among the child nodes included in the i-th matching node as the corresponding node of the i-th node in the k-th prediction reference frame. Assume that the first child node of the i-th matching node is determined as the corresponding node of the i-th node in the k-th prediction reference frame.
[0420] For another example, the decoding end determines the first sequence number of the i-th node among the child nodes included in the parent node; and determines the child node with the first sequence number among the child nodes of the i-th matching node as the corresponding node of the i-th node in the k-th prediction reference frame. For example, as shown in FIG12 , the i-th node is the second child node of the i-th parent node, and in this case, the first sequence number is 2. In this way, the second child node of the i-th matching node can be determined as the corresponding node of the i-th node.
[0421] The above describes the process of determining the corresponding node of the i-th domain node among M domain nodes in the k-th prediction reference frame, and the corresponding node of the current node in the k-th prediction reference frame. Thus, the decoder can use Method 2 or Method 3 to determine the N prediction nodes for the current node in the prediction reference frame.
[0422] The following describes the process of determining the first information in S101-A.
[0423] As can be seen from the above, the first information is used to indicate whether the current node is allowed to start the inter-frame decoding mode. Exemplarily, the first information can be predFlag. If predFlag is 1, it means that the current node is allowed to start the inter-frame decoding mode. If predFlag is 0, it means that the current node is not allowed to start the inter-frame decoding mode.
[0424] In one example, the first information may be sequence-level information, indicating whether inter-frame decoding is enabled for the current point cloud sequence. The current point cloud sequence includes at least one point cloud frame, which includes the current frame to be decoded. Thus, the decoder can determine whether inter-frame decoding is enabled for the current node based on the sequence-level first information.
[0425] In another example, the first information is frame-level information, that is, the first information is used to indicate whether inter-frame decoding is allowed to be started for the current frame to be decoded. In this way, the decoding end can determine whether the current node has started inter-frame decoding based on the first frame-level information.
[0426] In another example, the first information is node-level information, that is, the first information is used to indicate whether the current node is allowed to start inter-frame decoding.
[0427] The embodiment of the present application does not limit the specific method for the decoding end to determine the first information.
[0428] In a possible implementation, the encoding end may encode the first information corresponding to the current node into a bitstream, so that the decoding end may obtain the first information corresponding to the current node by decoding the bitstream.
[0429] In another possible implementation, the decoding end may deduce whether the current node starts inter-frame decoding through relevant information, and further determine the first information corresponding to the current node.
[0430] After the decoding end determines the inter-frame decoding information corresponding to the current node based on the above steps, it executes the following step S102.
[0431] S102: Based on the inter-frame decoding information corresponding to the current node, predictively decode the number of points included in the current node.
[0432] Due to the correlation between adjacent frames of the point cloud, the embodiments of this application refer to the relevant information between frames when predicting the number of points at the current node based on the correlation between adjacent frames of the point cloud. Specifically, the number of points at the current node is predictively encoded based on the inter-frame encoding information corresponding to the current node, which increases the context conditions that can be selected when encoding the point number, reduces the conditional entropy, and reduces the codewords used to encode the point number, thereby improving the encoding and decoding efficiency and performance of the point cloud.
[0433] In one example, as shown in Figure 14A , the encoder's process for directly encoding the current node includes determining whether the current node is eligible for direct encoding. If so, setting IDCMEligible to true. Next, determining whether the number of points in the current node is less than a preset threshold. If so, direct encoding is used for the current node, specifically encoding the number of points in the current node and the geometric information of the midpoints in the current node.
[0434] Correspondingly, when decoding the current node, as shown in Figure 14B , the decoding end first determines whether the current node is eligible for direct decoding. If the decoding end determines that the current node is eligible for direct decoding, it sets IDCMEligible to true. Then, it decodes the points of the current node.
[0435] In an embodiment of the present application, when decoding the point number of the current node, the decoding end performs predictive decoding on the point number of the current node based on the inter-frame decoding information corresponding to the current node to improve the decoding performance of the point number.
[0436] It should be noted that, in the embodiment of the present application, the number of points of the current node is predicted and decoded based on the inter-frame decoding information corresponding to the current node, which can be understood as using the inter-frame decoding information corresponding to the current node as context to predict and decode the number of points of the current node. For example, the decoding end determines the index of the context model based on the inter-frame decoding information corresponding to the current node, and then, based on the index of the context model, determines the target context model from multiple preset context models, and uses the context model to decode the number of points of the current node to obtain the number of points included in the current node.
[0437] In some embodiments, the inter-frame decoding information corresponding to the current node includes geometric decoding information of N prediction nodes of the current node and at least one of the first information corresponding to the current node. In this case, the above S102 includes the following step S102-1:
[0438] S102-1. Based on the geometric decoding information of N predicted nodes and / or the first information, predict and decode the number of points of the current node.
[0439] For example, based on the geometric decoding information and / or the first information of the N predicted nodes, the index of the context model is determined, and then based on the index of the context model. Then, the corresponding context model is determined from the preset multiple context models, and the context model is used to decode the number of points of the current node to obtain the number of points included in the current node. That is, the embodiment of the present application improves the performance of decoding the number of points by adding context conditions (or context models), thereby improving the decoding efficiency of the point cloud.
[0440] In the embodiment of the present application, the geometric decoding information of the prediction node can be understood as any information involved in the geometric decoding process of the prediction node, including, for example, the number of points included in the prediction node, the placeholder information of the prediction node, the decoding method of the prediction node, etc.
[0441] In some embodiments, the geometric decoding information of a prediction node includes direct decoding information of the prediction node. The direct decoding information of the prediction node can be understood as information related to direct decoding of the prediction node. For example, the direct decoding information of the prediction node includes the number of points in the prediction node, geometric information of each point included in the prediction node, and information indicating whether the prediction node is decoded using direct decoding.
[0442] Based on this, the above S102-1 includes the following step S102-11:
[0443] S102-11. Based on the direct decoding information of the N prediction nodes and / or the first information, perform predictive decoding on the number of points of the current node.
[0444] In this embodiment, the decoding end uses the direct decoding information and / or the first information of the N predicted nodes of the current node as the context of the point number, predicts and decodes the point number of the current node, and then adds the context model corresponding to the point number, ensuring the accurate decoding of the point number, thereby improving the decoding efficiency of the point cloud.
[0445] In one example, if the current point cloud is encoded using the GPCC method, and the number of points included in the current node is less than or equal to 2, the current node is encoded using the direct encoding method.
[0446] Case 1: The number of points numPonts in the current node is less than or equal to 2. The encoding process is as follows:
[0447] 1) First, encode whether the numPonts of the current node is greater than 1;
[0448] 2) If the current node has only one point, it is necessary to encode that the second point of the current node is not a duplicate point.
[0449] Case 2: The number of points numPonts in the current node is greater than 2. The encoding process is as follows:
[0450] 1) First, encode whether the numPonts of the current node is greater than 1;
[0451] 2) Secondly, the second point of the current node is encoded as a repeated point;
[0452] 3) If the second point is a duplicate point, encode whether the third point of the current node is a duplicate point;
[0453] 4) If the third point is a duplicate point, use the Exponential Golomb coding method to encode the remaining number of duplicate points.
[0454] Specifically, during encoding and decoding, the first flag is used to indicate whether the number of points included in the current node is greater than 1, the second flag is used to indicate whether the second point of the current node is a repeated point, and the third flag is used to indicate whether the third point of the current node is a repeated point.
[0455] It should be noted that the context information used by the codec when encoding and decoding the above-mentioned first flag, second flag, and third flag may be the same or different, or may be partially the same and partially different, and this embodiment of the present application does not limit this. Exemplarily, at least one of the first flag, the second flag, and the third flag uses inter-frame information (such as direct decoding information of the prediction node) as context information for predictive encoding and decoding.
[0456] In some embodiments, the direct decoding information of the predicted node includes first direct decoding information. In this case, the predictive decoding of the point number of the current node based on the direct decoding information of the N predicted nodes in S102-11 includes the following step S102-11-A:
[0457] S102-11-A. Use the first direct decoding information of the N predicted nodes as context information and perform predictive decoding on the first flag corresponding to the current node, where the first flag is used to indicate whether the number of points included in the current node is greater than 1.
[0458] The embodiment of the present application does not limit the specific content of the first direct decoding information. In the embodiment of the present application, the decoding end uses the first direct decoding information of the N predicted nodes as context information to perform predictive decoding on the first flag corresponding to the current node, thereby improving the decoding efficiency of the first flag and thus improving the decoding performance of the point cloud.
[0459] In some embodiments, the above S102-11-A includes the following steps:
[0460] S102-11-A1. Determine an index of a first context model based on first direct decoding information of N prediction nodes;
[0461] S102-11-A2. Based on the index of the first context model, select the first context model from Q context models corresponding to the first flag, where Q is a positive integer greater than 1;
[0462] S102-11-A3. Use the first context model to predict and decode the first flag corresponding to the current node.
[0463] In the embodiment of the present application, the first flag corresponds to multiple context models, for example, Q context models. The embodiment of the present application does not limit the specific number of context models corresponding to the first flag, as long as Q is greater than 1. That is, in the embodiment of the present application, an optimal context model is selected from at least two context models to decode the first flag of the current node, so as to improve the decoding efficiency of the first flag.
[0464] Exemplarily, the first flag corresponds to multiple context models as shown in Table 2:
[0465] Table 2
[0466] Index context model 0 context model A1 context model B…………
[0467] In this way, the decoding end determines the index of the first context model based on the first direct decoding information of the N prediction nodes. Then, based on the index of the first context model, the first context model is selected from the Q context models corresponding to Table 2.
[0468] The following describes the specific process of determining the index of the first context model based on the first direct decoding information of the N prediction nodes in the above S102-11-A1.
[0469] Method 1: The above S102-11-A1 includes the following steps S102-11-A1-a1 and S102-11-A1-a2:
[0470] S102-11-A1-a1. For any prediction node among the N prediction nodes, determine a first numerical value corresponding to the prediction node based on first direct decoding information of the prediction node.
[0471] In this method, for each of the N prediction nodes, the first numerical value corresponding to the prediction node is determined based on the first direct decoding information of the prediction node, and finally the index of the first context model is determined based on the first numerical values corresponding to the N prediction nodes.
[0472] The following describes the process of determining the first value corresponding to the prediction node.
[0473] In some embodiments, the first direct decoding information of the prediction node includes at least one of second information and the number of points included in the prediction node, wherein the second information is used to indicate whether the prediction node meets the conditions for decoding in the direct decoding manner.
[0474] The embodiment of the present application does not limit the specific content of the second information, and it can be any information indicating whether the prediction node meets the direct decoding condition.
[0475] In one example, the second information includes direct decoding mode information of the prediction node. For example, if the direct decoding mode of the prediction node is direct decoding mode 1 or direct decoding mode 2, the prediction node is determined to meet the conditions for decoding using the direct decoding mode. If the direct decoding mode of the prediction node is direct decoding mode 0, the prediction node is determined to not meet the conditions for decoding using the direct decoding mode.
[0476] In another example, the second information includes a first identifier corresponding to the prediction node, for example, the first identifier is IDCM_flag. If the value of the first identifier is a first value (for example, 1), it is determined that the prediction node meets the conditions for decoding in the direct decoding mode. If the value of the first identifier is a second value (for example, 0), it is determined that the prediction node does not meet the conditions for decoding in the direct decoding mode.
[0477] At this time, the decoding end may determine the first value corresponding to the prediction node based on the second information of the prediction node and / or the number of points included in the prediction node.
[0478] Exemplarily, the decoding end determines the first value corresponding to the prediction node through the following steps:
[0479] Step 11: Determine a first sub-value based on the second information;
[0480] Step 12: Determine a second sub-value based on the number of points included in the prediction node;
[0481] Step 13: Determine a first numerical value corresponding to the prediction node based on the first sub-value and / or the second sub-value.
[0482] The embodiment of the present application does not limit the specific manner in which the decoding end determines the first sub-value based on the second information of the prediction node in step 11.
[0483] As can be seen above, the second information is used to indicate whether the predicted node meets the conditions for decoding using the direct decoding method, and thus the first sub-value can be determined to be a binary value. For example, if the second information indicates that the predicted node meets the conditions for decoding using the direct decoding method, the first sub-value is determined to be the first value; if the second information indicates that the predicted node does not meet the conditions for decoding using the direct decoding method, the first sub-value is determined to be the second value.
[0484] The embodiment of the present application does not limit the specific values of the third value and the fourth value.
[0485] Optionally, the first value is 1.
[0486] Optionally, the second value is 0.
[0487] The embodiment of the present application does not limit the manner in which the decoding end determines the second sub-value based on the number of points included in the prediction node in step 12.
[0488] In one example, the second sub-value is not a binary value, so the decoding end can determine the second sub-value based on the specific number of points included in the prediction node. For example, if the prediction node includes 1 point, the second sub-value is determined to be 1; if the prediction node includes 2 points, the second sub-value is determined to be 2; if the prediction node includes 3 or more points, the second sub-value is determined to be 3, and so on.
[0489] In another example, the above-mentioned second sub-value is a binary value. At this time, the decoding end predicts the number of points included in the node, and the way to determine the second sub-value can be: if the number of points included in the prediction node is greater than the first preset value, then the value of the second sub-value is determined to be the first value; if the number of points included in the prediction node is less than or equal to the first preset value, then the value of the second sub-value is determined to be the second value.
[0490] The embodiment of the present application does not limit the specific values of the first preset value, the first value, and the second value.
[0491] Optionally, the first preset value is 2,
[0492] Optionally, the first value is 0.
[0493] Optionally, the second value is 1.
[0494] That is, if the number of points included in the prediction node is less than or equal to 2, the second sub-value is determined to be 1; if the number of points included in the prediction node is greater than 2, the second sub-value is determined to be 0.
[0495] Next, the decoding end determines the first numerical value corresponding to the prediction node based on the first sub-value and / or the second sub-value determined above.
[0496] As can be seen from the above, in the embodiment of the present application, determining the first value corresponding to the prediction node specifically includes the following situations:
[0497] In case 1, if the first direct decoding information of the prediction node includes the second information but does not include the number of points included in the prediction node, the decoding end determines the first sub-value based on the second information of the prediction node. For example, if the second information indicates that the prediction node meets the conditions for decoding by direct decoding, the value of the first sub-value is determined to be a third value (e.g., 1); if the second information indicates that the prediction node does not meet the conditions for decoding by direct decoding, the value of the first sub-value is determined to be a fourth value (e.g., 0). Subsequently, the first sub-value is determined to be the first numerical value corresponding to the prediction node.
[0498] In case 2, if the first direct decoding information of the prediction node includes the number of points included in the prediction node and does not include the second information, the decoding end determines the second sub-value based on the number of points included in the prediction node. For example, if the number of points included in the prediction node is greater than a first preset value (e.g., 2), the second sub-value is determined to be the first value (e.g., 0); if the number of points included in the prediction node is less than or equal to the first preset value (e.g., 2), the second sub-value is determined to be the second value (e.g., 1). Subsequently, the second sub-value is determined to be the first numerical value corresponding to the prediction node.
[0499] Case 3: If the direct decoding information of the prediction node includes second information and includes the number of points included in the prediction node, the decoding end determines the first sub-value based on the second information of the prediction node. For example, if the second information indicates that the prediction node meets the conditions for decoding by direct decoding, the value of the first sub-value is determined to be the first value (e.g., 1); if the second information indicates that the prediction node does not meet the conditions for decoding by direct decoding, the value of the first sub-value is determined to be the second value (e.g., 0). Next, the decoding end determines the second sub-value based on the number of points included in the prediction node. For example, if the number of points included in the prediction node is greater than a first preset value (e.g., 2), the value of the second sub-value is determined to be the first value (e.g., 0); if the number of points included in the prediction node is less than or equal to the first preset value (e.g., 2), the value of the second sub-value is determined to be the second value (e.g., 1). Finally, based on the first sub-value and the second sub-value, the first numerical value corresponding to the prediction node is determined. For example, the sum of the first sub-value and the second sub-value is determined as the first numerical value corresponding to the prediction node.
[0500] Based on the above steps, the first value corresponding to each prediction node in the N prediction nodes of the current node can be determined.
[0501] S102-11-A1-a2. Determine the index of the first context model based on the first numerical values corresponding to the N prediction nodes.
[0502] Based on the above steps, the decoding end determines the first values corresponding to the N prediction nodes, and then determines the index of the first context model based on the first values corresponding to the N prediction nodes.
[0503] Determining the index of the first context model based on the first values corresponding to the N prediction nodes includes at least the following implementation methods:
[0504] Method 1: Determine the average value of the sum of the first numerical values corresponding to the N prediction nodes as the index of the first context model.
[0505] Mode 2, S102-11-A1-a2 includes the following steps S102-11-A1-a2-1 to S102-11-A1-a2-3:
[0506] S102-11-A1-a2-1. Determine first weights corresponding to each of the N prediction nodes;
[0507] S102-11-A1-a2-2. Perform weighted processing on the first values corresponding to the N prediction nodes based on the first weight to obtain a first weighted prediction value;
[0508] S102-11-A1-a2-3. Determine the index of the first context model based on the first weighted prediction value.
[0509] In method 2, if the current node includes multiple prediction nodes, i.e., N prediction nodes, when determining the index of the first context model based on the first numerical values corresponding to the N prediction nodes, a weight, i.e., the first weight, can be determined for each of the N prediction nodes. In this way, the first numerical values corresponding to each prediction node can be weighted based on the first weight of each prediction node, and then the index of the first context model can be determined based on the final weighted result, thereby improving the accuracy of determining the index of the first context model based on the geometric decoding information of the N prediction nodes.
[0510] The embodiment of the present application does not limit the determination of the first weights corresponding to the N prediction nodes.
[0511] In some embodiments, the first weight corresponding to each of the N prediction nodes is a preset value. As can be seen from the above, the N prediction nodes are determined based on the M domain nodes of the current node. Assuming that prediction node 1 is the prediction node corresponding to domain node 1, if domain node 1 is a coplanar node with the current node, then the first weight of prediction node 1 is the preset weight 1. If domain node 1 is a colinear node with the current node, then the first weight of prediction node 1 is the preset weight 2. If domain node 1 is a co-point node with the current node, then the first weight of prediction node 1 is the preset weight 3.
[0512] In some embodiments, for each of the N prediction nodes, a first weight corresponding to the prediction node is determined based on the distance between the domain node corresponding to the prediction node and the current node. For example, the smaller the distance between the domain node and the current node, the stronger the inter-frame correlation between the prediction node corresponding to the domain node and the current node, and thus the greater the first weight of the prediction node.
[0513] For example, taking prediction node 1 among N prediction nodes as an example, assuming that prediction node 1 is the corresponding point of domain node 1 among the M domain nodes of the current node in the prediction reference frame, the first weight of prediction node 1 can be determined based on the distance between domain node 1 and the current node. For example, the inverse of the distance between domain node 1 and the current node is determined as the first weight of prediction node 1.
[0514] In one example, if domain node 1 is a coplanar node of the current node, the first weight of the predicted node 1 is 1; if domain node 1 is a colinear node of the current node, the first weight of the predicted node 1 is a preset weight. If domain node 1 is a common node of the current node, the first weight of predicted node 1 is the preset weight
[0515] In one example, if domain node 1 is a coplanar node of the current node, the first weight of predicted node 1 is If domain node 1 is a collinear node of the current node, the first weight of prediction node 1 is the preset weight If domain node 1 is a common node of the current node, the first weight of predicted node 1 is the preset weight
[0516] In some embodiments, based on the above steps, after determining the weight corresponding to each prediction node in the N prediction nodes, the weight is normalized, and the normalized weight is used as the final first weight of the prediction node.
[0517] The embodiment of the present application does not limit the specific method of obtaining the first weighted prediction value by weighting the first numerical values corresponding to N prediction nodes based on the first weight.
[0518] In one example, based on the first weight, a weighted average is performed on the first values corresponding to the N prediction nodes to obtain a first weighted prediction value.
[0519] In another example, based on the first weight, a weighted sum is performed on the first numerical values corresponding to the N prediction nodes to obtain a first weighted prediction value.
[0520] After determining the first weighted prediction value based on the method steps, the index of the first context model is determined based on the first weighted prediction value, that is, the above S102-11-A1-a2-3 includes at least the following examples:
[0521] Example 1: Determine the first weighted prediction value as the index of the first context model.
[0522] Example 2: Determine the weighted prediction value range in which the first weighted prediction value is located, and determine the index corresponding to the range as the index of the first context model, that is, one weighted prediction value range corresponds to one context model.
[0523] In some embodiments, the decoding end may also adopt the following second method to determine the index of the first context model.
[0524] Method 2: If K is greater than 1, determine the second weighted prediction value corresponding to each of the K prediction reference frames, and then determine the index of the first context model based on the second weighted prediction values corresponding to the K prediction reference frames. In this case, the above S102-11-A1 includes the following steps S102-11-A1-b1 to S102-11-A1-a4:
[0525] S102-11-A1-b1. For a j-th prediction reference frame among the K prediction reference frames, determine, based on first directly decoded information of a prediction node of a current node in the j-th prediction reference frame, a first value corresponding to the prediction node in the j-th prediction reference frame, where j is a positive integer less than or equal to K.
[0526] S102-11-A1-b2, determining a first weight corresponding to the prediction node, and performing weighted processing on the first value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a second weighted prediction value corresponding to the j-th prediction reference frame;
[0527] S102-11-A1-b3. Determine the index of the first context model based on the second weighted prediction values corresponding to the K predicted reference frames.
[0528] In this second approach, when determining the index of the first context model, each of the K predicted reference frames is considered separately as separate context information. Specifically, the first direct decoding information of the prediction node included in each of the K predicted reference frames is determined, and the second weighted prediction value corresponding to each predicted reference frame is determined. Then, based on the second weighted prediction value corresponding to each predicted reference frame, the index of the first context model is determined, thereby achieving accurate selection of the first context model and improving the decoding efficiency of the point cloud.
[0529] In the embodiment of the present application, the specific method in which the decoding end determines the second weighted prediction value corresponding to each of the K prediction reference frames is the same. For the sake of convenience of description, the j-th prediction reference frame among the K prediction reference frames is used as an example for illustration.
[0530] In an embodiment of the present application, the current node includes at least one prediction node in the j-th prediction reference frame, so that the first value of the at least one prediction node is determined based on the first direct decoding information of the at least one prediction node in the j-th prediction reference frame.
[0531] For example, the j-th predicted reference frame includes two prediction nodes of the current node, which are respectively recorded as prediction node 1 and prediction node 2. Then, based on the first direct decoding information of prediction node 1, the first value of prediction node 1 is determined, and based on the first direct decoding information of prediction node 2, the first value of prediction node 2 is determined.
[0532] After the decoding end determines the first value of at least one prediction node included in the j-th prediction reference frame, it determines the first weight corresponding to each of the at least one prediction node, and performs weighted processing on the first value corresponding to the at least one prediction node based on the first weight to obtain a second weighted prediction value corresponding to the j-th prediction reference frame.
[0533] In one example, based on the first weight, a weighted average is performed on the first values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a second weighted prediction value corresponding to the j-th prediction reference frame.
[0534] In another example, based on the first weight, a weighted sum is performed on the first values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a second weighted prediction value corresponding to the j-th prediction reference frame.
[0535] The process of determining the first weight may refer to the description of the above embodiment and will not be repeated here.
[0536] The above introduces the process of determining the second weighted prediction value corresponding to the j-th prediction reference frame among the K prediction reference frames. The second weighted prediction values corresponding to other prediction reference frames among the K prediction reference frames are determined in accordance with the method corresponding to the j-th prediction reference frame.
[0537] After the decoding end determines the second weighted prediction value corresponding to each of the K predicted reference frames, it executes the above step S102-11-A1-b3.
[0538] The present application does not limit the specific method of determining the index of the first context model based on the second weighted prediction value corresponding to K prediction reference frames.
[0539] In some embodiments, the decoding end determines the average value of the second weighted prediction values corresponding to the K predicted reference frames as the index of the first context model.
[0540] In some embodiments, the decoding end determines second weights corresponding to the K predicted reference frames, and performs weighted processing on second weighted prediction values corresponding to the K predicted reference frames based on the second weights to obtain an index of the first context model.
[0541] In this embodiment, the decoding end first determines the second weight corresponding to each of the K prediction reference frames. The embodiment of the present application does not limit the determination of the second weight corresponding to each of the K prediction reference frames.
[0542] In some embodiments, the second weight corresponding to each of the K predicted reference frames is a preset value. As can be seen from the above, the K predicted reference frames are forward frames and / or backward frames of the current frame to be decoded. Assuming that predicted reference frame 1 is the forward frame of the current frame to be decoded, the second weight corresponding to predicted reference frame 1 is the preset weight 1. If predicted reference frame 1 is the backward frame of the current frame to be decoded, the second weight corresponding to predicted reference frame 1 is the preset weight 2.
[0543] In some embodiments, the second weight corresponding to the predicted reference frame is determined based on the time difference between the predicted reference frame and the current frame to be decoded. In an embodiment of the present application, each point cloud includes time information, and the time information can be the time when the point cloud acquisition device acquires the point cloud of the frame. Based on this, the smaller the time difference between the predicted reference frame and the current frame to be decoded, the stronger the inter-frame correlation between the predicted reference frame and the current frame to be decoded, and thus the larger the second weight corresponding to the predicted reference frame. For example, the inverse of the time difference between the predicted reference frame and the current frame to be decoded can be determined as the second weight corresponding to the predicted reference frame.
[0544] After determining the second weight corresponding to each of the K predicted reference frames, weighted processing is performed on the second weighted prediction values corresponding to the K predicted reference frames based on the second weight to obtain an index of the first context model.
[0545] For example, assuming K=2, for example, the current frame to be decoded includes 2 prediction reference frames, and these 2 prediction reference frames include the forward frame and backward frame of the current frame to be decoded. Assuming that the second weight corresponding to the forward frame is W1 and the second weight corresponding to the backward frame is W2, based on W1 and W2, the second weighted prediction value corresponding to the forward frame and the second weighted prediction value corresponding to the backward frame are weighted to obtain the index of the first context model.
[0546] In one example, based on the second weight, weighted averaging is performed on the second weighted prediction values corresponding to the K prediction reference frames to obtain an index of the first context model.
[0547] For example, continuing with the above, assuming that the K prediction reference frames include forward frames and backward frames, the second weight corresponding to the forward frame is W1, and the second weight corresponding to the backward frame is W2, then the index of the first context model corresponding to the current node can be determined based on the following formula (21):
[0548] Index of the first context model = (W1×second weighted prediction value 1+W2×second weighted prediction value 2) / 2 (21)
[0549] Among them, the second weighted prediction value 1 is the second weighted prediction value corresponding to the forward frame, and the second weighted prediction value 2 is the second weighted prediction value corresponding to the backward frame.
[0550] In another example, based on the second weight, the second weighted prediction values corresponding to the K prediction reference frames are weightedly summed to obtain the index of the first context model.
[0551] For example, continuing with the above, assuming that the K prediction reference frames include forward frames and backward frames, the second weight corresponding to the forward frame is W1, and the second weight corresponding to the backward frame is W2, then the index of the first context model corresponding to the current node can be determined based on the following formula (22):
[0552] Index of the first context model = W1 x second weighted prediction value 1 + W2 x second weighted prediction value 2 (22)
[0553] After determining the index of the first context model based on the above steps, the decoder selects the first context model from the Q context models corresponding to the first flag. It then uses this first context model to decode the first flag corresponding to the current node, and then determines the point count of the current node based on the first flag.
[0554] In some embodiments, if the first flag corresponding to the current node indicates that the number of points included in the current node is greater than 1, it is determined that the current node includes 2 points.
[0555] In some embodiments, if the first flag corresponding to the current node indicates that the number of points included in the current node is less than or equal to 1, the method of the embodiment of the present application further includes the following step A:
[0556] Step A: Use the second direct decoding information of the N predicted nodes as context information to perform predictive decoding on the second flag corresponding to the current node, where the second flag is used to indicate whether the second point of the current node is a repeated point.
[0557] In this embodiment, if the decoding end decodes the first flag corresponding to the current node and obtains that the first flag indicates that the number of points included in the current node is less than or equal to 1, the decoding end continues to decode the second flag corresponding to the current node to determine whether the second point of the current node is a duplicate point.
[0558] In an embodiment of the present application, the second direct decoding information of the N predicted nodes is used as context information to perform predictive decoding on the second flag corresponding to the current node, thereby achieving efficient decoding of the second flag.
[0559] In some embodiments, step A includes the following steps:
[0560] Step A1: determining an index of a second context model based on second direct decoding information of N prediction nodes;
[0561] Step A2: Based on the index of the second context model, select the second context model from P context models corresponding to the second flag, where P is a positive integer greater than 1;
[0562] Step A3: Use the second context model to predict and decode the second flag corresponding to the current node.
[0563] In the embodiment of the present application, the second flag corresponds to multiple context models, for example, P context models. The embodiment of the present application does not limit the specific number of context models corresponding to the second flag, as long as P is greater than 1. In other words, in the embodiment of the present application, an optimal context model is selected from at least two context models to decode the second flag of the current node, so as to improve the decoding efficiency of the second flag.
[0564] The specific process of determining the index of the second context model based on the second direct decoding information of the N prediction nodes in the above step A1 is introduced below.
[0565] Method 1: Step A1 includes the following steps A1-11 and A1-12:
[0566] Step A1-11: For any prediction node among the N prediction nodes, determine a second value corresponding to the prediction node based on the second direct decoding information of the prediction node.
[0567] In this method, for each of the N prediction nodes, the second numerical value corresponding to the prediction node is determined based on the second direct decoding information of the prediction node, and finally the index of the second context model is determined based on the second numerical values corresponding to the N prediction nodes.
[0568] The following describes the process of determining the second value corresponding to the prediction node.
[0569] In some embodiments, the second direct decoding information of the predicted node includes second information and third information, wherein the second information indicates whether the predicted node meets the conditions for decoding in a direct decoding manner, and the third information indicates whether the second point of the predicted node is a repeated point.
[0570] At this time, the decoding end may determine the second value corresponding to the prediction node based on the second information and / or third information of the prediction node.
[0571] Exemplarily, the decoding end determines the second value corresponding to the prediction node through the following steps:
[0572] Step 21: Determine a first sub-value based on the second information;
[0573] Step 22: Determine a third sub-value based on the third information;
[0574] Step 23: Determine a second numerical value corresponding to the prediction node based on the first sub-value and / or the third sub-value.
[0575] The process of determining the first sub-value based on the second information can refer to the description of step 11 above, which will not be repeated here.
[0576] Among them, based on the third information, the method for determining the third sub-value can be: if the third information indicates that the second point of the predicted node is a repeated point, then the value of the third sub-value is determined to be the first value; if the third information indicates that the second point of the predicted node is not a repeated point, then the value of the third sub-value is determined to be the second value.
[0577] Next, the decoding end determines the second value corresponding to the prediction node based on the first sub-value and / or third sub-value determined above. For example, the first sub-value is determined as the second value corresponding to the prediction node. Alternatively, the third sub-value is determined as the second value corresponding to the prediction node. Alternatively, the second value corresponding to the prediction node is determined based on the first sub-value and the third sub-value, for example, the sum of the first sub-value and the third sub-value is determined as the second value corresponding to the prediction node.
[0578] Based on the above steps, the second value corresponding to each of the N prediction nodes of the current node can be determined. Then, the following steps A1-12 are executed:
[0579] Step A1-12: Determine the index of the second context model based on the second numerical values corresponding to the N prediction nodes.
[0580] After determining the second values corresponding to the N prediction nodes based on the above steps, the decoding end determines the index of the second context model based on the second values corresponding to the N prediction nodes.
[0581] Wherein, determining the index of the second context model based on the second numerical values corresponding to the N prediction nodes includes at least the following implementation methods:
[0582] Method 1: Determine the average value of the sum of the second numerical values corresponding to the N prediction nodes as the index of the second context model.
[0583] Mode 2, step A1-12 includes the following steps A1-121 to A1-123:
[0584] Step A1-121: Determine a first weight corresponding to the prediction node;
[0585] Step A1-122: Based on the first weight, weight the second values corresponding to the N prediction nodes to obtain a third weighted prediction value;
[0586] Step A1-123: Determine the index of the second context model based on the third weighted prediction value.
[0587] In method 2, if the current node includes multiple prediction nodes, i.e., N prediction nodes, when determining the index of the second context model based on the second numerical values corresponding to the N prediction nodes, a weight, i.e., the first weight, can be determined for each of the N prediction nodes. In this way, the second numerical values corresponding to each prediction node can be weighted based on the first weight of each prediction node, and then the index of the second context model can be determined based on the final weighted result, thereby improving the accuracy of determining the index of the second context model based on the geometric decoding information of the N prediction nodes.
[0588] The embodiment of the present application does not limit the specific method of obtaining the second weighted prediction value by weighting the second numerical values corresponding to N prediction nodes based on the first weight.
[0589] In one example, based on the first weight, a weighted average is performed on the second values corresponding to the N prediction nodes to obtain a third weighted prediction value.
[0590] In another example, based on the first weight, a weighted sum is performed on the second values corresponding to the N prediction nodes to obtain a third weighted prediction value.
[0591] After determining the third weighted prediction value based on the method steps, the index of the second context model is determined based on the third weighted prediction value, that is, the above steps A1-123 include at least the following examples:
[0592] Example 1: Determine the third weighted prediction value as the index of the second context model.
[0593] Example 2: Determine the weighted prediction value range in which the third weighted prediction value is located, and determine the index corresponding to the range as the index of the second context model.
[0594] In some embodiments, the decoding end may also adopt the following second method to determine the index of the second context model.
[0595] Method 2: If K is greater than 1, determine the fourth weighted prediction value corresponding to each of the K prediction reference frames, and then determine the index of the second context model based on the fourth weighted prediction values corresponding to the K prediction reference frames. In this case, the above step A1 includes the following steps A1-21 to A1-24:
[0596] Step A1-21: for a j-th prediction reference frame among the K prediction reference frames, determine a second value corresponding to the prediction node in the j-th prediction reference frame based on second direct decoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K;
[0597] Step A1-22: Determine a first weight corresponding to the prediction node, and perform weighted processing on the second value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame;
[0598] Step A1-23: Determine the index of the second context model based on the fourth weighted prediction values corresponding to the K prediction reference frames.
[0599] In this second approach, when determining the index of the second context model, each of the K predicted reference frames is considered separately as separate context information. Specifically, the second direct decoding information of the prediction node included in each of the K predicted reference frames is determined, and the fourth weighted prediction value corresponding to each predicted reference frame is determined. Then, based on the fourth weighted prediction value corresponding to each predicted reference frame, the index of the second context model is determined, thereby achieving accurate selection of the second context model and improving the decoding efficiency of the point cloud.
[0600] In the embodiment of the present application, the specific method in which the decoding end determines the fourth weighted prediction value corresponding to each of the K prediction reference frames is the same. For the sake of convenience of description, the j-th prediction reference frame among the K prediction reference frames is used as an example for illustration.
[0601] In an embodiment of the present application, the current node includes at least one prediction node in the j-th prediction reference frame, so that the second value of the at least one prediction node is determined based on the second direct decoding information of the at least one prediction node in the j-th prediction reference frame.
[0602] For example, the j-th prediction reference frame includes two prediction nodes of the current node, which are respectively recorded as prediction node 1 and prediction node 2. Then, based on the second direct decoding information of prediction node 1, the second value of prediction node 1 is determined, and based on the second direct decoding information of prediction node 2, the second value of prediction node 2 is determined.
[0603] After the decoding end determines the second value of at least one prediction node included in the j-th prediction reference frame, it determines the first weight corresponding to each of the at least one prediction node, and performs weighted processing on the second value corresponding to the at least one prediction node based on the first weight to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame.
[0604] In one example, based on the first weight, a weighted average is performed on the second values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame.
[0605] In another example, based on the first weight, a weighted sum is performed on the second values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame.
[0606] The process of determining the first weight may refer to the description of the above embodiment and will not be repeated here.
[0607] The above introduces the process of determining the fourth weighted prediction value corresponding to the j-th prediction reference frame among the K prediction reference frames. The fourth weighted prediction values corresponding to other prediction reference frames among the K prediction reference frames are determined in accordance with the method corresponding to the j-th prediction reference frame.
[0608] After the decoding end determines the fourth weighted prediction value corresponding to each of the K prediction reference frames, it executes the above steps A1-23.
[0609] The present application does not limit the specific method of determining the index of the second context model based on the fourth weighted prediction value corresponding to K prediction reference frames.
[0610] In some embodiments, the decoding end determines the average value of the fourth weighted prediction values corresponding to the K predicted reference frames as the index of the second context model.
[0611] In some embodiments, the decoding end determines second weights corresponding to the K predicted reference frames, and performs weighted processing on fourth weighted prediction values corresponding to the K predicted reference frames based on the second weights to obtain an index of the second context model.
[0612] For example, assuming K=2, for example, the current frame to be decoded includes 2 prediction reference frames, and these 2 prediction reference frames include the forward frame and backward frame of the current frame to be decoded. Assuming that the second weight corresponding to the forward frame is W1 and the second weight corresponding to the backward frame is W2, based on W1 and W2, the fourth weighted prediction value corresponding to the forward frame and the fourth weighted prediction value corresponding to the backward frame are weighted to obtain the index of the second context model.
[0613] In one example, based on the second weight, weighted averaging is performed on the fourth weighted prediction values corresponding to the K prediction reference frames to obtain an index of the second context model.
[0614] In another example, based on the second weight, the fourth weighted prediction values corresponding to the K prediction reference frames are weightedly summed to obtain the index of the second context model.
[0615] After determining the index of the second context model based on the above steps, the decoder selects a second context model from the P context models corresponding to the second flag. It then uses this second context model to decode the second flag corresponding to the current node, and then determines the point count of the current node based on the second flag.
[0616] In some embodiments, if the second flag corresponding to the current node indicates that the second point of the current node is not a repeated point, it is determined that the current node includes one point.
[0617] In some embodiments, if the second flag corresponding to the current node indicates that the second point of the current node is a duplicate point, the method of the embodiment of the present application further includes the following step B:
[0618] Step B: Use the third direct decoding information of the N predicted nodes as context information to perform predictive decoding on the third flag corresponding to the current node, where the third flag is used to indicate whether the third point of the current node is a repeated point.
[0619] In this embodiment, if the decoding end decodes the second flag corresponding to the current node and obtains that the second flag indicates that the second point of the current node is a repeated point, the decoding end continues to decode the third flag corresponding to the current node to determine whether the third point of the current node is a repeated point.
[0620] In an embodiment of the present application, the third direct decoding information of N predicted nodes is used as context information to perform predictive decoding on the third flag corresponding to the current node, thereby achieving efficient decoding of the third flag.
[0621] In some embodiments, the above step B includes the following steps:
[0622] Step B1: determining an index of a third context model based on third direct decoding information of N prediction nodes;
[0623] Step B2: Based on the index of the third context model, select the third context model from R context models corresponding to the third flag, where R is a positive integer greater than 1;
[0624] Step B3: Use the third context model to predict and decode the third flag corresponding to the current node.
[0625] In the embodiment of the present application, the third flag corresponds to multiple context models, for example, R context models. The embodiment of the present application does not limit the specific number of context models corresponding to the third flag, as long as R is greater than 1. That is, in the embodiment of the present application, an optimal context model is selected from at least two context models to decode the third flag of the current node, so as to improve the decoding efficiency of the third flag.
[0626] The following describes the specific process of determining the index of the third context model based on the third direct decoding information of the N prediction nodes in the above step B1.
[0627] Method 1: Step B1 includes the following steps B1-11 and B1-12:
[0628] Step B1-11: For any prediction node among the N prediction nodes, determine a third value corresponding to the prediction node based on the third direct decoding information of the prediction node.
[0629] In this method, for each of the N prediction nodes, the third numerical value corresponding to the prediction node is determined based on the third direct decoding information of the prediction node, and finally the index of the third context model is determined based on the third numerical values corresponding to the N prediction nodes.
[0630] The following describes the process of determining the third value corresponding to the prediction node.
[0631] In some embodiments, the third direct decoding information of the predicted node includes second information and fourth information, wherein the second information indicates whether the predicted node meets the conditions for decoding in a direct decoding manner, and the fourth information indicates whether the third point of the predicted node is a repeated point.
[0632] At this time, the decoding end may determine the third value corresponding to the prediction node based on the second information and / or the fourth information of the prediction node.
[0633] Exemplarily, the decoding end determines the third value corresponding to the prediction node through the following steps:
[0634] Step 31: Determine a first sub-value based on the second information;
[0635] Step 32: Determine a fourth sub-value based on the fourth information;
[0636] Step 23: Determine a third numerical value corresponding to the prediction node based on the first sub-value and / or the fourth sub-value.
[0637] The process of determining the first sub-value based on the second information can refer to the description of step 11 above, which will not be repeated here.
[0638] Among them, based on the fourth information, the method for determining the fourth sub-value can be: if the fourth information indicates that the third point of the predicted node is a repeated point, then the value of the fourth sub-value is determined to be the first value; if the fourth information indicates that the third point of the predicted node is not a repeated point, then the value of the fourth sub-value is determined to be the second value.
[0639] Next, the decoding end determines the third value corresponding to the prediction node based on the first sub-value and / or fourth sub-value determined above. For example, the first sub-value may be determined as the third value corresponding to the prediction node. Alternatively, the fourth sub-value may be determined as the third value corresponding to the prediction node. Alternatively, the third value corresponding to the prediction node may be determined based on the first and fourth sub-values, for example, the sum of the first and fourth sub-values may be determined as the third value corresponding to the prediction node.
[0640] Based on the above steps, the third value corresponding to each of the N prediction nodes of the current node can be determined. Then, the following steps B1-12 are executed:
[0641] Step B1-12: Determine the index of the third context model based on the third numerical values corresponding to the N prediction nodes.
[0642] After determining the third values corresponding to the N prediction nodes based on the above steps, the decoding end determines the index of the third context model based on the third values corresponding to the N prediction nodes.
[0643] Wherein, determining the index of the third context model based on the third values corresponding to the N prediction nodes includes at least the following implementation methods:
[0644] Method 1: Determine the average value of the sum of the third numerical values corresponding to the N prediction nodes as the index of the third context model.
[0645] In mode 2, step B1-12 includes the following steps B1-121 to B1-123:
[0646] Step B1-121: Determine a first weight corresponding to the prediction node;
[0647] Step B1-122: Based on the first weight, weight the third values corresponding to the N prediction nodes to obtain a fifth weighted prediction value;
[0648] Step B1-123: Determine the index of the third context model based on the fifth weighted prediction value.
[0649] In method 2, if the current node includes multiple prediction nodes, i.e., N prediction nodes, when determining the index of the third context model based on the third numerical values corresponding to the N prediction nodes, a weight, i.e., the first weight, can be determined for each of the N prediction nodes. In this way, the third numerical values corresponding to each prediction node can be weighted based on the first weight of each prediction node, and then the index of the third context model can be determined based on the final weighted result, thereby improving the accuracy of determining the index of the third context model based on the geometric decoding information of the N prediction nodes.
[0650] The embodiment of the present application does not limit the specific method of performing weighted processing on the third numerical values corresponding to N prediction nodes based on the first weight to obtain the fifth weighted prediction value.
[0651] In one example, based on the first weight, a weighted average is performed on the third values corresponding to the N prediction nodes to obtain a fifth weighted prediction value.
[0652] In another example, based on the first weight, a weighted sum is performed on the third values corresponding to the N prediction nodes to obtain a fifth weighted prediction value.
[0653] After the fifth weighted prediction value is determined based on the method steps, the index of the third context model is determined based on the fifth weighted prediction value. That is, the above step B1-123 includes at least the following examples:
[0654] Example 1: Determine the fifth weighted prediction value as the index of the third context model.
[0655] Example 2: Determine the weighted prediction value range in which the fifth weighted prediction value is located, and determine the index corresponding to the range as the index of the third context model.
[0656] In some embodiments, the decoding end may also adopt the following second method to determine the index of the third context model.
[0657] Method 2: If K is greater than 1, determine the sixth weighted prediction value corresponding to each of the K prediction reference frames, and then determine the index of the third context model based on the sixth weighted prediction values corresponding to the K prediction reference frames. In this case, the above step B1 includes the following steps B1-21 to B1-24:
[0658] Step B1-21: for the j-th prediction reference frame among the K prediction reference frames, determine a third value corresponding to the prediction node in the j-th prediction reference frame based on third directly decoded information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K;
[0659] Step B1-22: Determine a first weight corresponding to the prediction node, and perform weighted processing on the third value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame;
[0660] Step B1-23: Determine the index of the third context model based on the sixth weighted prediction values corresponding to the K prediction reference frames.
[0661] In this second approach, when determining the index of the third context model, each of the K predicted reference frames is considered separately as separate context information. Specifically, the third direct decoding information of the prediction node included in each of the K predicted reference frames is determined, and the sixth weighted prediction value corresponding to each predicted reference frame is determined. Then, based on the sixth weighted prediction value corresponding to each predicted reference frame, the index of the third context model is determined, thereby achieving accurate selection of the third context model and improving the decoding efficiency of the point cloud.
[0662] In the embodiment of the present application, the specific method in which the decoding end determines the sixth weighted prediction value corresponding to each of the K prediction reference frames is the same. For the sake of convenience of description, the j-th prediction reference frame among the K prediction reference frames is used as an example for illustration.
[0663] In an embodiment of the present application, the current node includes at least one prediction node in the j-th prediction reference frame, so that the third value of the at least one prediction node is determined based on the third direct decoding information of the at least one prediction node in the j-th prediction reference frame.
[0664] For example, the j-th prediction reference frame includes two prediction nodes of the current node, which are respectively recorded as prediction node 1 and prediction node 2. Then, based on the third direct decoding information of prediction node 1, the third value of prediction node 1 is determined, and based on the third direct decoding information of prediction node 2, the third value of prediction node 2 is determined.
[0665] After the decoding end determines the third value of at least one prediction node included in the j-th prediction reference frame, it determines the first weight corresponding to each of the at least one prediction node, and performs weighted processing on the third value corresponding to the at least one prediction node based on the first weight to obtain the sixth weighted prediction value corresponding to the j-th prediction reference frame.
[0666] In one example, based on the first weight, a weighted average is performed on the third values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame.
[0667] In another example, based on the first weight, a weighted sum is performed on the third values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame.
[0668] The process of determining the first weight may refer to the description of the above embodiment and will not be repeated here.
[0669] The above introduces the process of determining the sixth weighted prediction value corresponding to the j-th prediction reference frame among the K prediction reference frames. The sixth weighted prediction values corresponding to other prediction reference frames among the K prediction reference frames are determined in accordance with the method corresponding to the j-th prediction reference frame.
[0670] After the decoding end determines the sixth weighted prediction value corresponding to each of the K prediction reference frames, it executes the above steps B1-23.
[0671] The present application does not limit the specific method of determining the index of the third context model based on the sixth weighted prediction value corresponding to K prediction reference frames.
[0672] In some embodiments, the decoding end determines the average value of the sixth weighted prediction values corresponding to the K prediction reference frames as the index of the third context model.
[0673] In some embodiments, the decoding end determines second weights corresponding to the K predicted reference frames, and performs weighted processing on the sixth weighted prediction values corresponding to the K predicted reference frames based on the second weights to obtain an index of the third context model.
[0674] For example, assuming K=2, for example, the current frame to be decoded includes 2 prediction reference frames, and these 2 prediction reference frames include the forward frame and backward frame of the current frame to be decoded. Assuming that the second weight corresponding to the forward frame is W1 and the second weight corresponding to the backward frame is W2, based on W1 and W2, the sixth weighted prediction value corresponding to the forward frame and the sixth weighted prediction value corresponding to the backward frame are weighted to obtain the index of the third context model.
[0675] In one example, based on the second weight, the sixth weighted prediction values corresponding to the K prediction reference frames are weighted averaged to obtain the index of the third context model.
[0676] In another example, based on the second weight, the sixth weighted prediction values corresponding to the K prediction reference frames are weightedly summed to obtain the index of the third context model.
[0677] After determining the index of the third context model based on the above steps, the decoder selects a third context model from the R context models corresponding to the third flag. The decoder then uses this third context model to decode the third flag corresponding to the current node, and then determines the point count of the current node based on the third flag.
[0678] For example, if the third flag corresponding to the current node indicates that the third point of the current node is not a repeated point, it is determined that the current node includes two points, and these two points are repeated points.
[0679] For another example, if the third flag corresponding to the current node indicates that the third point of the current node is a repeated point, then the decoding of the remaining repeated points of the current node continues.
[0680] In a specific example, the point cloud decoding method of the embodiment of the present application includes the following steps:
[0681] Step 1: Use the first direct decoding information of N predicted nodes as context information to perform predictive decoding on the first flag corresponding to the current node.
[0682] Exemplarily, the first direct decoding information includes the following content:
[0683] a) IDCM mode of the prediction node, i.e. PredDCMode(0,1,2);
[0684] b) Whether the number of points in the prediction node PredNumPoints is greater than 1.
[0685] The specific implementation process of the above step 1 can refer to the description of the above embodiment and will not be repeated here.
[0686] Step 2: Determine whether the number of points of the current node indicated by the first flag is greater than 1.
[0687] Based on the above step 1, the first flag is decoded and obtained. If the first flag is true, that is, the number of points of the current node is greater than 1, then step 3 is executed. At this time, it means that the current node includes 2 points, and the 2 points are non-repeated points.
[0688] If the first flag is false, which means the number of points of the current node is less than or equal to 1, then execute step 4.
[0689] Step 3: The current node includes two non-repeated points.
[0690] Step 4: Use the second direct decoding information of the N predicted nodes as context information to perform predictive decoding on the second flag corresponding to the current node.
[0691] Exemplarily, the second direct decoding information includes the following content:
[0692] a) IDCM mode of the prediction node, i.e. PredDCMode(0,1,2);
[0693] b) Whether the second point in the prediction node is a duplicate point. If the number of points in the prediction node is less than 2, it is assumed to be not a duplicate point.
[0694] The specific implementation process of the above step 5 can refer to the description of the above embodiment and will not be repeated here.
[0695] Step 5: Determine whether the second point of the current node is a duplicate point.
[0696] If the second flag is false, it means that the second point of the current node is not a duplicate point. In this case, step 6 is executed to determine that the current node includes only one point.
[0697] If the second flag is true, that is, it means that the second point of the current node is a duplicate point, then step 7 is executed, which means that the current node includes multiple duplicate points.
[0698] Step 6: The current node includes 1 point.
[0699] Step 7: Use the third direct decoding information of the N predicted nodes as context information to perform predictive decoding on the third flag corresponding to the current node.
[0700] Exemplarily, the third direct decoding information includes the following content:
[0701] a) IDCM mode of the prediction node, i.e. PredDCMode(0,1,2);
[0702] b) Whether the third point in the prediction node is a duplicate point. If the number of points in the prediction node is less than 2, it is assumed to be not a duplicate point.
[0703] The specific implementation process of the above step 7 can refer to the description of the above embodiment and will not be repeated here.
[0704] Step 8: Determine whether the third point of the current node is a duplicate point.
[0705] If the third flag is false, it means that the third point of the current node is not a duplicate point. In this case, step 9 is executed to determine that the current node includes two points, and these two points are duplicate points.
[0706] If the third flag is true, that is, the third point of the current node is a duplicate point, then step 10 is executed. This indicates that there may be other duplicate points in the current node.
[0707] Step 9: The current node includes 2 duplicate points.
[0708] Step 10: Decode the number of remaining repeated points of the current node.
[0709] The point cloud decoding method provided in an embodiment of the present application determines the inter-frame decoding information corresponding to the current node when decoding the current node in the current decoding frame, and uses the inter-frame decoding information corresponding to the current node as context information to predict and decode the number of points of the current node, thereby increasing the selectable context conditions when decoding the number of points, reducing the determined conditional entropy, and thus improving the decoding efficiency and performance of the point cloud.
[0710] The above takes the decoding end as an example to introduce in detail the point cloud decoding method provided in the embodiment of the present application. The following takes the encoding end as an example to introduce the point cloud encoding method provided in the embodiment of the present application.
[0711] Figure 15 is a schematic diagram of a point cloud coding method according to an embodiment of the present application. The point cloud coding method according to the embodiment of the present application can be implemented by the point cloud coding device shown in Figure 3 or Figure 4A above.
[0712] As shown in FIG15 , the point cloud encoding method of the embodiment of the present application includes:
[0713] S201: Determine inter-frame coding information corresponding to the current node.
[0714] The current node is the node to be encoded in the current frame to be encoded.
[0715] As can be seen from the above, a point cloud includes geometric information and attribute information, and encoding of a point cloud includes geometric encoding and attribute encoding. The embodiments of the present application relate to geometric encoding of a point cloud.
[0716] In some embodiments, the geometric information of the point cloud is also referred to as the position information of the point cloud. Therefore, the geometric encoding of the point cloud is also referred to as the position encoding of the point cloud.
[0717] In the octree-based encoding method, the encoding end constructs an octree structure of the point cloud based on the geometric information of the point cloud. As shown in Figure 9, the point cloud is enclosed by a minimum rectangular block. The bounding box is first divided into 8 nodes by the octree to obtain 8 nodes. The occupied nodes among these 8 nodes, that is, the nodes including the points, are further divided into octrees, and so on, until the division is to the voxel level, for example, to a 1X1X1 cube. The point cloud octree structure obtained by such division includes multiple layers of nodes, for example, N layers. During encoding, the occupancy information of each layer is encoded layer by layer until the voxel-level leaf nodes of the last layer are encoded. That is to say, in octree encoding, the point cloud is divided into octrees, and finally the points in the point cloud are divided into the voxel-level leaf nodes of the octree. The encoding of the point cloud is achieved by encoding the entire octree.
[0718] However, the octree-based geometric information coding mode has an efficient compression rate for points with correlation in space, and for points in isolated positions in the geometric space, the use of direct coding can greatly reduce the complexity and improve the coding efficiency.
[0719] Since direct encoding directly encodes the geometric information of the points included in a node, if the node contains a large number of points, the compression effect of direct encoding is poor. Therefore, before performing direct encoding on a node in the octree, it is first determined whether the node can be encoded using direct encoding. If it is determined that the node can be encoded using direct encoding, the geometric information of the points included in the node is directly encoded using direct encoding. If it is determined that the node cannot be encoded using direct encoding, the node is further divided using the octree method.
[0720] Specifically, the encoder first determines whether the node is eligible for direct encoding. If so, it then determines whether the node's point count is less than or equal to a preset threshold. If so, it determines that the node can be encoded using direct encoding. Next, the number of points in the node and the geometric information of each point are encoded into the bitstream. Correspondingly, after determining that the node is eligible for direct encoding, the encoder encodes the bitstream to obtain the node's point count and the geometric information of each point, thereby implementing geometric encoding for the node.
[0721] When encoding syntax elements, the more conditions the context model selects, the smaller the conditional entropy and the better the encoding performance. However, when encoding the number of nodes, inter-frame information is not considered. This results in fewer selectable context conditions and a large conditional entropy, which leads to poor entropy encoding performance of the number of points and reduces the encoding performance of the point cloud.
[0722] In order to solve the above problems, in an embodiment of the present application, the encoding end predictively encodes the number of points of the current node based on the inter-frame coding information corresponding to the current node, thereby increasing the context conditions that can be selected when encoding the point number, so that the determined conditional entropy is reduced, thereby improving the coding efficiency and coding performance of the point cloud.
[0723] Specifically, the encoding end first determines the inter-frame coding information corresponding to the current node.
[0724] The embodiments of the present application do not limit the specific type of inter-frame coding information corresponding to the current node, and can be understood as any inter-frame geometric coding information related to the current node. For example, the inter-frame coding information corresponding to the current node may include relevant inter-frame geometric coding information of the current node and / or relevant inter-frame geometric coding information of the current frame to be coded.
[0725] In some embodiments, the inter-frame coding information corresponding to the current node includes at least one of geometric coding information of N prediction nodes of the current node and first information corresponding to the current node. The N prediction nodes of the current node are prediction nodes of the current node in an inter-frame prediction reference frame, and the first information corresponding to the current node is used to indicate whether inter-frame coding mode is allowed to be activated for the current node.
[0726] At this time, determining the inter-frame coding information corresponding to the current node in the above S201 includes the following step S201-A:
[0727] S201-A. Determine N prediction nodes of the current node in a prediction reference frame of a current frame to be encoded, and / or encode a point cloud code stream to obtain first information.
[0728] Wherein, N is a positive integer.
[0729] The embodiment of the present application does not limit the specific method of determining the prediction reference frame of the current frame to be encoded.
[0730] In some embodiments, one or several encoded frames before the current frame to be encoded are determined as prediction reference frames for the current frame to be encoded.
[0731] In some embodiments, one or several encoded frames following the current frame to be encoded are determined as prediction reference frames for the current frame to be encoded.
[0732] In some embodiments, one or several encoded frames before the current frame to be encoded, and one or several encoded frames after the current frame to be encoded, are determined as prediction reference frames for the current frame to be encoded.
[0733] The following takes the current frame to be encoded including K prediction reference frames as an example to introduce the specific process of determining N prediction nodes of the current node in the prediction reference frames of the current frame to be encoded in S201-A.
[0734] In some embodiments, the encoder may determine N prediction nodes of the current node through the following steps S201-A1 and S201-A2:
[0735] S201-A1. For a k-th prediction reference frame among K prediction reference frames, determine at least one prediction node of a current node in the k-th prediction reference frame, where k is a positive integer less than or equal to K, and K is a positive integer;
[0736] S201-A2: Determine N prediction nodes of the current node based on at least one prediction node of the current node in K prediction reference frames.
[0737] In this embodiment, the encoding end determines at least one prediction node of the current node from each of the K prediction reference frames, and finally aggregates at least one prediction node in each of the K prediction reference frames to obtain N prediction nodes of the current node.
[0738] Among them, the process of the encoding end determining at least one prediction point of the current node in each of the K prediction reference frames is the same. For the sake of convenience of description, the kth prediction reference frame among the K prediction reference frames is used as an example for explanation.
[0739] The specific process of determining at least one prediction node of the current node in the kth prediction reference frame in the above S201-A1 is introduced below.
[0740] The embodiment of the present application does not limit the specific manner in which the encoder determines at least one prediction node of the current node in the kth prediction reference frame.
[0741] Method 1: In the kth prediction reference frame, a prediction node of the current node is determined. For example, a node in the kth prediction reference frame that has the same partition depth as the current node is determined as the prediction node of the current node.
[0742] Method 2, in the above S201-A1, determining at least one prediction node of the current node in the k-th prediction reference frame includes the following steps S201-A11 to S201-A13:
[0743] S201-A11. In a current frame to be encoded, determine M domain nodes of a current node, where the M domain nodes include the current node, and M is a positive integer.
[0744] S201-A12: for the i-th domain node among the M domain nodes, determine the corresponding node of the i-th domain node in the k-th prediction reference frame, where i is a positive integer less than or equal to M;
[0745] S201-A13. Determine at least one prediction node of the current node in the kth prediction reference frame based on the corresponding nodes of the M domain nodes in the kth prediction reference frame.
[0746] Based on the above steps, the encoding end determines the M domain nodes of the current node in the current frame to be encoded, determines the corresponding node of each of the M domain nodes in the k-th prediction reference frame, and then determines at least one prediction node of the current node in the k-th prediction reference frame based on the corresponding nodes of the M domain nodes in the k-th prediction reference frame.
[0747] The embodiment of the present application does not limit the specific implementation method of S201-A13.
[0748] In one possible implementation, at least one corresponding node is selected from the corresponding nodes of the M domain nodes in the k-th prediction reference frame as the at least one prediction node of the current node in the k-th prediction reference frame. For example, at least one corresponding node whose placeholder information has the smallest difference between the placeholder information of the M domain nodes in the k-th prediction reference frame and the placeholder information of the current node is selected from the corresponding nodes of the M domain nodes in the k-th prediction reference frame as the at least one prediction node of the current node in the k-th prediction reference frame. The method for determining the difference between the placeholder information of the corresponding node and the placeholder information of the current node can refer to the above-mentioned process for determining the difference in placeholder information, for example, performing an XOR operation on the placeholder information of the corresponding node and the placeholder information of the current node, and using the XOR operation result as the difference between the placeholder information of the corresponding node and the placeholder information of the current node.
[0749] In another possible implementation, the encoder determines the corresponding nodes of the M domain nodes in the kth prediction reference frame as at least one prediction node for the current node in the kth prediction reference frame. For example, each of the M domain nodes has a corresponding node in the kth prediction reference frame, resulting in M corresponding nodes. These M corresponding nodes are determined as the prediction nodes for the current node in the kth prediction reference frame, for a total of M prediction nodes.
[0750] After the encoder determines at least one prediction node of the current node in each of the K prediction reference frames, it performs the above step S201-B, that is, determines N prediction nodes of the current node based on at least one prediction node of the current node in the K prediction reference frames.
[0751] In the second method, after the encoding end determines the M domain nodes of the current node in the current frame to be encoded, it determines the corresponding node of each of the M domain nodes in the kth prediction reference frame, and then determines at least one prediction point of the current node in the kth prediction reference frame based on the corresponding node of each of the M domain nodes.
[0752] Mode 3, in the above S201-A1, determining at least one prediction node of the current node in the k-th prediction reference frame includes the following steps S201-B11 to S201-B13:
[0753] S201-B11, determining the corresponding node of the current node in the kth prediction reference frame;
[0754] S201-B12, determining at least one domain node of the corresponding node;
[0755] S201-B13. Determine at least one domain node as at least one prediction node of the current node in the k-th prediction reference frame.
[0756] In this method 3, for each of the K predicted reference frames, the encoding end first determines the corresponding node of the current node in each predicted reference frame. For example, the corresponding node 1 of the current node in the predicted reference frame 1 is determined, and the corresponding node 2 of the current node in the predicted reference frame 2 is determined. Next, the encoding end determines at least one domain node of each corresponding node. For example, at least one domain node of the corresponding node 1 is determined in the predicted reference frame 1, and at least one domain node of the corresponding node 2 is determined in the predicted reference frame 2. In this way, at least one domain node of the corresponding node 1 in the predicted reference frame 1 can be determined as at least one predicted node of the current node in the predicted reference frame 1, and at least one domain node of the corresponding node 2 in the predicted reference frame 2 can be determined as at least one predicted node of the current node in the predicted reference frame 2.
[0757] Determining the corresponding node of the i-th domain node in the k-th prediction reference frame in S201-A12 of the second method is essentially the same as determining the corresponding node of the current node in the k-th prediction reference frame in S201-B11 of the third method described above. For ease of description, the i-th domain node and the current node are referred to as the i-th node. The specific process of determining the corresponding node of the i-th node in the k-th prediction reference frame is described below.
[0758] The encoder determines the corresponding node of the i-th node in the k-th prediction reference frame in at least the following ways:
[0759] In method 1, a node in the k-th prediction reference frame that has the same division depth as the i-th node is determined as the corresponding node of the i-th node.
[0760] Mode 2: The above-mentioned S201-A12 and S201-B11 include the following steps:
[0761] S201-A121, in the current frame to be encoded, determine the parent node of the i-th node as the i-th parent node;
[0762] S201-A122, determine the matching node of the i-th parent node in the k-th prediction reference frame as the i-th matching node;
[0763] S201-A123: Determine one of the child nodes of the i matching nodes as the corresponding node of the i-th node in the k-th prediction reference frame.
[0764] In this method 2, for the i-th node, the encoding end determines the parent node of the i-th node in the current frame to be encoded, and then determines the matching node of the parent node of the i-th prediction domain node in the k-th prediction reference frame. For ease of description, the parent node of the i-th node is recorded as the i-th parent node, and the matching node of the parent node of the i-th node in the k-th prediction reference frame is determined as the i-th matching node. Then, a child node of the child node of the i-th matching node is determined as the corresponding node of the i-th node in the k-th prediction reference frame, thereby accurately determining the corresponding node of the i-th node in the k-th prediction reference frame.
[0765] The specific process of determining the matching node of the i-th parent node in the k-th prediction reference frame in the above S201-A122 is introduced below.
[0766] The embodiment of the present application does not limit the specific method by which the encoder determines the matching node of the i-th parent node in the k-th prediction reference frame.
[0767] In some embodiments, the partition depth of the i-th parent node in the current frame to be encoded is determined, for example, the i-th parent node is at the second level of the octree of the current frame to be encoded. In this way, the encoder can determine one of the nodes in the k-th prediction reference frame that have the same partition depth as the i-th parent node as the matching node of the i-th parent node in the k-th prediction reference frame. For example, one of the nodes in the second level of the k-th prediction reference frame can be determined as the matching node of the i-th parent node in the k-th prediction reference frame.
[0768] In some embodiments, the encoder determines a matching node for the i-th parent node in the k-th predicted reference frame based on the placeholder information of the i-th parent node. Specifically, since the placeholder information for the i-th parent node in the current frame to be encoded has been encoded, and the placeholder information for each node in the k-th predicted reference frame has also been encoded, the encoder can search for a matching node for the i-th parent node in the k-th predicted reference frame based on the placeholder information of the i-th parent node.
[0769] Based on the above steps, the encoder can determine the matching node of the i-th parent node in the k-th prediction reference frame. For ease of description, this matching node is recorded as the i-th matching node.
[0770] Next, the encoder determines one of the child nodes of the i-th matching node as the corresponding node of the i-th domain node in the k-th prediction reference frame.
[0771] For example, the encoder determines a default child node among the child nodes included in the i-th matching node as the corresponding node of the i-th node in the k-th prediction reference frame. Assume that the first child node of the i-th matching node is determined as the corresponding node of the i-th node in the k-th prediction reference frame.
[0772] For another example, the encoder determines the first sequence number of the i-th node among the child nodes included in the parent node; and determines the child node with the first sequence number among the child nodes of the i-th matching node as the corresponding node of the i-th node in the k-th prediction reference frame. For example, as shown in FIG12 , the i-th node is the second child node of the i-th parent node, and in this case, the first sequence number is 2. In this way, the second child node of the i-th matching node can be determined as the corresponding node of the i-th node.
[0773] The above describes the process of determining the corresponding node of the i-th domain node among M domain nodes in the k-th prediction reference frame, and the corresponding node of the current node in the k-th prediction reference frame. Thus, the encoder can use Method 2 or Method 3 to determine the N prediction nodes for the current node in the prediction reference frame.
[0774] The following describes the process of determining the first information in S201-A.
[0775] As can be seen from the above, the first information is used to indicate whether the current node is allowed to start the inter-frame coding mode. Exemplarily, the first information can be predFlag. If predFlag is 1, it means that the current node is allowed to start the inter-frame coding mode. If predFlag is 0, it means that the current node is not allowed to start the inter-frame coding mode.
[0776] After the encoder determines the inter-frame coding information corresponding to the current node based on the above steps, it executes the following step S202.
[0777] S202: Based on the inter-frame coding information corresponding to the current node, predictive coding is performed on the points included in the current node.
[0778] Due to the correlation between adjacent frames of the point cloud, the present embodiment references inter-frame related information when predicting the number of points at the current node. Specifically, the number of points at the current node is predictively encoded based on the inter-frame encoding information corresponding to the current node. This increases the contextual conditions available for encoding the points, reduces conditional entropy, and reduces the number of codewords used to encode the points, thereby improving the encoding efficiency and performance of the point cloud.
[0779] In some embodiments, the inter-frame coding information corresponding to the current node includes geometric coding information of N prediction nodes of the current node and at least one of the first information corresponding to the current node. In this case, the above S202 includes the following step S202-1:
[0780] S202-1. Based on the geometric coding information of N predicted nodes and / or the first information, predictively encode the number of points of the current node.
[0781] In some embodiments, the geometric coding information of a prediction node includes direct coding information of the prediction node. The direct coding information of the prediction node can be understood as information related to direct coding of the prediction node. For example, the direct coding information of the prediction node includes the number of points in the prediction node, geometric information of each point included in the prediction node, and information indicating whether the prediction node is encoded using direct coding.
[0782] Based on this, the above S202-1 includes the following step S202-11:
[0783] S202-11. Based on the direct coding information of the N prediction nodes and / or the first information, perform predictive coding on the number of points of the current node.
[0784] In this embodiment, the encoding end uses the direct encoding information and / or the first information of the N predicted nodes of the current node as the context of the point number, performs predictive encoding on the point number of the current node, and thereby adds a context model corresponding to the point number, ensuring the accurate encoding of the point number, thereby improving the encoding efficiency of the point cloud.
[0785] In one example, if the current point cloud is encoded using the GPCC method, and the number of points included in the current node is less than or equal to 2, the current node is encoded using the direct encoding method.
[0786] Case 1: The number of points numPonts in the current node is less than or equal to 2. The encoding process is as follows:
[0787] 1) First, encode whether the numPonts of the current node is greater than 1;
[0788] 2) If the current node has only one point, it is necessary to encode that the second point of the current node is not a duplicate point.
[0789] Case 2: The number of points numPonts in the current node is greater than 2. The encoding process is as follows:
[0790] 1) First, encode whether the numPonts of the current node is greater than 1;
[0791] 2) Secondly, the second point of the current node is encoded as a repeated point;
[0792] 3) If the second point is a duplicate point, encode whether the third point of the current node is a duplicate point;
[0793] 4) If the third point is a duplicate point, use the Exponential Golomb coding method to encode the remaining number of duplicate points.
[0794] Specifically, during encoding, the first flag is used to indicate whether the number of points included in the current node is greater than 1, the second flag is used to indicate whether the second point of the current node is a repeated point, and the third flag is used to indicate whether the third point of the current node is a repeated point.
[0795] It should be noted that the context information used by the encoding end when encoding the first flag, the second flag, and the third flag may be the same or different, or may be partially the same and partially different, and this embodiment of the application does not limit this. Exemplarily, at least one of the first flag, the second flag, and the third flag uses inter-frame information (e.g., direct decoding information of the prediction node) as context information for predictive encoding.
[0796] The following describes the predictive encoding process of the first flag, the second flag, and the third flag at the encoding end.
[0797] In some embodiments, the direct coding information of the prediction node includes first direct coding information. In this case, the predictive coding of the point number of the current node based on the direct coding information of the N prediction nodes in S202-11 includes the following step S202-11-A:
[0798] S202-11-A. Use the first direct encoding information of the N prediction nodes as context information and perform predictive encoding on the first flag corresponding to the current node. The first flag is used to indicate whether the number of points included in the current node is greater than 1.
[0799] The embodiment of the present application does not limit the specific content of the first direct encoding information. In the embodiment of the present application, the encoding end uses the first direct encoding information of the N predicted nodes as context information and performs predictive encoding on the first flag corresponding to the current node, thereby improving the encoding efficiency of the first flag and thus improving the encoding performance of the point cloud.
[0800] In some embodiments, the above S202-11-A includes the following steps:
[0801] S202-11-A1. Determine an index of a first context model based on first direct encoding information of N prediction nodes;
[0802] S202-11-A2. Based on the index of the first context model, select the first context model from Q context models corresponding to the first flag, where Q is a positive integer greater than 1;
[0803] S202-11-A3. Use the first context model to predictively encode the first flag corresponding to the current node.
[0804] The following describes the specific process of determining the index of the first context model based on the first direct encoding information of the N prediction nodes in the above S202-11-A1.
[0805] Method 1: The above S202-11-A1 includes the following steps S202-11-A1-a1 and S202-11-A1-a2:
[0806] S202-11-A1-a1. For any prediction node among the N prediction nodes, determine a first numerical value corresponding to the prediction node based on first direct encoding information of the prediction node.
[0807] In this method, for each of the N prediction nodes, the first numerical value corresponding to the prediction node is determined based on the first direct encoding information of the prediction node, and finally the index of the first context model is determined based on the first numerical values corresponding to the N prediction nodes.
[0808] The following describes the process of determining the first value corresponding to the prediction node.
[0809] In some embodiments, the first direct encoding information of the prediction node includes at least one of second information and the number of points included in the prediction node, wherein the second information is used to indicate whether the prediction node meets the conditions for encoding in the direct encoding manner.
[0810] At this time, the encoder may determine the first value corresponding to the prediction node based on the second information of the prediction node and / or the number of points included in the prediction node.
[0811] Exemplarily, the encoder determines the first value corresponding to the prediction node through the following steps:
[0812] Step 11: Determine a first sub-value based on the second information;
[0813] Step 12: Determine a second sub-value based on the number of points included in the prediction node;
[0814] Step 13: Determine a first numerical value corresponding to the prediction node based on the first sub-value and / or the second sub-value.
[0815] As can be seen above, the second information is used to indicate whether the prediction node meets the conditions for encoding using the direct encoding method, and thus the first sub-value can be determined to be a binary value. For example, if the second information indicates that the prediction node meets the conditions for encoding using the direct encoding method, the first sub-value is determined to be the first value; if the second information indicates that the prediction node does not meet the conditions for encoding using the direct encoding method, the first sub-value is determined to be the second value.
[0816] In another example, the above-mentioned second sub-value is a binary value. At this time, the number of points included in the prediction node of the encoding end can be used to determine the second sub-value: if the number of points included in the prediction node is greater than the first preset value, the value of the second sub-value is determined to be the first value; if the number of points included in the prediction node is less than or equal to the first preset value, the value of the second sub-value is determined to be the second value.
[0817] Next, the encoder determines the first numerical value corresponding to the prediction node based on the first sub-value and / or the second sub-value determined above.
[0818] Based on the above steps, the first value corresponding to each prediction node in the N prediction nodes of the current node can be determined.
[0819] S202-11-A1-a2. Determine an index of a first context model based on first numerical values corresponding to the N prediction nodes.
[0820] After determining the first values corresponding to the N prediction nodes based on the above steps, the encoder determines the index of the first context model based on the first values corresponding to the N prediction nodes.
[0821] Determining the index of the first context model based on the first values corresponding to the N prediction nodes includes at least the following implementation methods:
[0822] Method 1: Determine the average value of the sum of the first numerical values corresponding to the N prediction nodes as the index of the first context model.
[0823] Mode 2, S202-11-A1-a2 includes the following steps S202-11-A1-a2-1 to S202-11-A1-a2-3:
[0824] S202-11-A1-a2-1. Determine first weights corresponding to the N prediction nodes respectively;
[0825] S202-11-A1-a2-2. Perform weighted processing on the first values corresponding to the N prediction nodes based on the first weight to obtain a first weighted prediction value;
[0826] S202-11-A1-a2-3. Determine the index of the first context model based on the first weighted prediction value.
[0827] In method 2, if the current node includes multiple prediction nodes, i.e., N prediction nodes, when determining the index of the first context model based on the first numerical values corresponding to the N prediction nodes, a weight, i.e., the first weight, can be determined for each of the N prediction nodes. In this way, the first numerical values corresponding to each prediction node can be weighted based on the first weight of each prediction node, and then the index of the first context model can be determined based on the final weighted result, thereby improving the accuracy of determining the index of the first context model based on the geometric coding information of the N prediction nodes.
[0828] The embodiment of the present application does not limit the determination of the first weights corresponding to the N prediction nodes.
[0829] In some embodiments, for each of the N prediction nodes, a first weight corresponding to the prediction node is determined based on the distance between the domain node corresponding to the prediction node and the current node. For example, the smaller the distance between the domain node and the current node, the stronger the inter-frame correlation between the prediction node corresponding to the domain node and the current node, and thus the greater the first weight of the prediction node.
[0830] The embodiment of the present application does not limit the specific method of obtaining the first weighted prediction value by weighting the first numerical values corresponding to N prediction nodes based on the first weight.
[0831] In one example, based on the first weight, a weighted average is performed on the first values corresponding to the N prediction nodes to obtain a first weighted prediction value.
[0832] In another example, based on the first weight, a weighted sum is performed on the first numerical values corresponding to the N prediction nodes to obtain a first weighted prediction value.
[0833] After determining the first weighted prediction value based on the method steps, the index of the first context model is determined based on the first weighted prediction value, that is, the above S202-11-A1-a2-3 includes at least the following examples:
[0834] Example 1: Determine the first weighted prediction value as the index of the first context model.
[0835] Example 2: Determine the weighted prediction value range in which the first weighted prediction value is located, and determine the index corresponding to the range as the index of the first context model, that is, one weighted prediction value range corresponds to one context model.
[0836] In some embodiments, the encoding end may also adopt the following second method to determine the index of the first context model.
[0837] Method 2: If K is greater than 1, determine the second weighted prediction value corresponding to each of the K prediction reference frames, and then determine the index of the first context model based on the second weighted prediction values corresponding to the K prediction reference frames. In this case, the above S202-11-A1 includes the following steps S202-11-A1-b1 to S202-11-A1-a4:
[0838] S202-11-A1-b1. For a j-th prediction reference frame among the K prediction reference frames, determine, based on first direct coding information of a prediction node of a current node in the j-th prediction reference frame, a first value corresponding to the prediction node in the j-th prediction reference frame, where j is a positive integer less than or equal to K.
[0839] S202-11-A1-b2, determining a first weight corresponding to the prediction node, and performing weighted processing on the first value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a second weighted prediction value corresponding to the j-th prediction reference frame;
[0840] S202-11-A1-b3. Determine the index of the first context model based on the second weighted prediction values corresponding to the K predicted reference frames.
[0841] In this second approach, when determining the index of the first context model, each of the K predicted reference frames is considered separately as separate context information. Specifically, the first direct coding information of the prediction node included in each of the K predicted reference frames is determined, and the second weighted prediction value corresponding to each predicted reference frame is determined. Then, based on the second weighted prediction value corresponding to each predicted reference frame, the index of the first context model is determined, thereby achieving accurate selection of the first context model and improving the coding efficiency of the point cloud.
[0842] In the embodiment of the present application, the specific method in which the encoding end determines the second weighted prediction value corresponding to each of the K prediction reference frames is the same. For the sake of convenience of description, the j-th prediction reference frame among the K prediction reference frames is used as an example for illustration.
[0843] In an embodiment of the present application, the current node includes at least one prediction node in the j-th prediction reference frame, so that the first value of the at least one prediction node is determined based on the first direct encoding information of the at least one prediction node in the j-th prediction reference frame.
[0844] After the encoding end determines the first value of at least one prediction node included in the j-th prediction reference frame, it determines the first weight corresponding to the at least one prediction node, and performs weighted processing on the first value corresponding to the at least one prediction node based on the first weight to obtain a second weighted prediction value corresponding to the j-th prediction reference frame.
[0845] In one example, based on the first weight, a weighted average is performed on the first values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a second weighted prediction value corresponding to the j-th prediction reference frame.
[0846] In another example, based on the first weight, a weighted sum is performed on the first values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a second weighted prediction value corresponding to the j-th prediction reference frame.
[0847] After the encoder determines the second weighted prediction value corresponding to each of the K prediction reference frames, it executes the above step S202-11-A1-b3.
[0848] The present application does not limit the specific method of determining the index of the first context model based on the second weighted prediction value corresponding to K prediction reference frames.
[0849] In some embodiments, the encoding end determines the average value of the second weighted prediction values corresponding to the K predicted reference frames as the index of the first context model.
[0850] In some embodiments, the encoding end determines second weights corresponding to K predicted reference frames, and performs weighted processing on second weighted prediction values corresponding to the K predicted reference frames based on the second weights to obtain an index of the first context model.
[0851] In this embodiment, the encoder first determines the second weight corresponding to each of the K prediction reference frames. This embodiment of the application does not limit the determination of the second weight corresponding to each of the K prediction reference frames.
[0852] In some embodiments, the second weight corresponding to the predicted reference frame is determined based on the time difference between the predicted reference frame and the current frame to be encoded. In an embodiment of the present application, each point cloud includes time information, and the time information can be the time when the point cloud acquisition device acquires the point cloud of the frame. Based on this, if the time difference between the predicted reference frame and the current frame to be encoded is smaller, the inter-frame correlation between the predicted reference frame and the current frame to be encoded is stronger, and thus the second weight corresponding to the predicted reference frame is larger. For example, the inverse of the time difference between the predicted reference frame and the current frame to be encoded can be determined as the second weight corresponding to the predicted reference frame.
[0853] After determining the second weight corresponding to each of the K predicted reference frames, weighted processing is performed on the second weighted prediction values corresponding to the K predicted reference frames based on the second weight to obtain an index of the first context model.
[0854] In one example, based on the second weight, weighted averaging is performed on the second weighted prediction values corresponding to the K prediction reference frames to obtain an index of the first context model.
[0855] In another example, based on the second weight, the second weighted prediction values corresponding to the K prediction reference frames are weightedly summed to obtain the index of the first context model.
[0856] After determining the index of the first context model based on the above steps, the encoder selects a first context model from the Q context models corresponding to the first flag, and then uses the first context model to encode the first flag corresponding to the current node.
[0857] The following describes the predictive encoding process of the second flag at the encoding end.
[0858] Step A: Use the second direct coding information of the N predicted nodes as context information to perform predictive coding on the second flag corresponding to the current node, where the second flag is used to indicate whether the second point of the current node is a repeated point.
[0859] In this embodiment, if the current node includes one point, or the current node includes multiple repeated points, the encoding end needs to encode a second flag to indicate whether the second point of the current block is a repeated point.
[0860] In an embodiment of the present application, the second direct encoding information of the N prediction nodes is used as context information to perform predictive encoding on the second flag corresponding to the current node, thereby achieving efficient encoding of the second flag.
[0861] In some embodiments, step A includes the following steps:
[0862] Step A1: determining an index of a second context model based on second direct coding information of N prediction nodes;
[0863] Step A2: Based on the index of the second context model, select the second context model from P context models corresponding to the second flag, where P is a positive integer greater than 1;
[0864] Step A3: Use the second context model to perform predictive coding on the second flag corresponding to the current node.
[0865] In the embodiment of the present application, the second flag corresponds to multiple context models, for example, P context models. The embodiment of the present application does not limit the specific number of context models corresponding to the second flag, as long as P is greater than 1. That is, in the embodiment of the present application, an optimal context model is selected from at least two context models to encode the second flag of the current node, so as to improve the encoding efficiency of the second flag.
[0866] The specific process of determining the index of the second context model based on the second direct coding information of the N prediction nodes in the above step A1 is introduced below.
[0867] Method 1: Step A1 includes the following steps A1-11 and A1-12:
[0868] Step A1-11: For any prediction node among the N prediction nodes, determine a second value corresponding to the prediction node based on the second direct encoding information of the prediction node.
[0869] In this method, for each of the N prediction nodes, the second numerical value corresponding to the prediction node is determined based on the second direct encoding information of the prediction node, and finally the index of the second context model is determined based on the second numerical values corresponding to the N prediction nodes.
[0870] The following describes the process of determining the second value corresponding to the prediction node.
[0871] In some embodiments, the second direct encoding information of the predicted node includes second information and third information, wherein the second information indicates whether the predicted node meets the conditions for encoding in a direct encoding manner, and the third information indicates whether the second point of the predicted node is a repeated point.
[0872] At this time, the encoder may determine the second value corresponding to the prediction node based on the second information and / or third information of the prediction node.
[0873] Exemplarily, the encoder determines the second value corresponding to the prediction node through the following steps:
[0874] Step 21: Determine a first sub-value based on the second information;
[0875] Step 22: Determine a third sub-value based on the third information;
[0876] Step 23: Determine a second numerical value corresponding to the prediction node based on the first sub-value and / or the third sub-value.
[0877] The process of determining the first sub-value based on the second information can refer to the description of step 11 above, which will not be repeated here.
[0878] Among them, based on the third information, the method for determining the third sub-value can be: if the third information indicates that the second point of the predicted node is a repeated point, then the value of the third sub-value is determined to be the first value; if the third information indicates that the second point of the predicted node is not a repeated point, then the value of the third sub-value is determined to be the second value.
[0879] Next, the encoder determines the second value corresponding to the prediction node based on the first sub-value and / or the third sub-value determined above.
[0880] Based on the above steps, the second value corresponding to each of the N prediction nodes of the current node can be determined. Then, the following steps A1-12 are executed:
[0881] Step A1-12: Determine the index of the second context model based on the second numerical values corresponding to the N prediction nodes.
[0882] Wherein, determining the index of the second context model based on the second numerical values corresponding to the N prediction nodes includes at least the following implementation methods:
[0883] Method 1: Determine the average value of the sum of the second numerical values corresponding to the N prediction nodes as the index of the second context model.
[0884] Mode 2, step A1-12 includes the following steps A1-121 to A1-123:
[0885] Step A1-121: Determine a first weight corresponding to the prediction node;
[0886] Step A1-122: Based on the first weight, weight the second values corresponding to the N prediction nodes to obtain a third weighted prediction value;
[0887] Step A1-123: Determine the index of the second context model based on the third weighted prediction value.
[0888] The embodiment of the present application does not limit the specific method of obtaining the second weighted prediction value by weighting the second numerical values corresponding to N prediction nodes based on the first weight.
[0889] In one example, based on the first weight, a weighted average is performed on the second values corresponding to the N prediction nodes to obtain a third weighted prediction value.
[0890] In another example, based on the first weight, a weighted sum is performed on the second values corresponding to the N prediction nodes to obtain a third weighted prediction value.
[0891] After determining the third weighted prediction value based on the method steps, the index of the second context model is determined based on the third weighted prediction value, that is, the above steps A1-123 include at least the following examples:
[0892] Example 1: Determine the third weighted prediction value as the index of the second context model.
[0893] Example 2: Determine the weighted prediction value range in which the third weighted prediction value is located, and determine the index corresponding to the range as the index of the second context model.
[0894] In some embodiments, the encoding end may also adopt the following second method to determine the index of the second context model.
[0895] Method 2: If K is greater than 1, determine the fourth weighted prediction value corresponding to each of the K prediction reference frames, and then determine the index of the second context model based on the fourth weighted prediction values corresponding to the K prediction reference frames. In this case, the above step A1 includes the following steps A1-21 to A1-24:
[0896] Step A1-21: for a j-th prediction reference frame among the K prediction reference frames, determine a second value corresponding to the prediction node in the j-th prediction reference frame based on second direct coding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K;
[0897] Step A1-22: Determine a first weight corresponding to the prediction node, and perform weighted processing on the second value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame;
[0898] Step A1-23: Determine the index of the second context model based on the fourth weighted prediction values corresponding to the K prediction reference frames.
[0899] In the embodiment of the present application, the specific method in which the encoding end determines the fourth weighted prediction value corresponding to each of the K prediction reference frames is the same. For the sake of convenience of description, the j-th prediction reference frame among the K prediction reference frames is used as an example for illustration.
[0900] In an embodiment of the present application, the current node includes at least one prediction node in the j-th prediction reference frame, so that the second value of the at least one prediction node is determined based on the second direct encoding information of the at least one prediction node in the j-th prediction reference frame.
[0901] After the encoding end determines the second value of at least one prediction node included in the j-th prediction reference frame, it determines the first weight corresponding to each of the at least one prediction node, and performs weighted processing on the second value corresponding to the at least one prediction node based on the first weight to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame.
[0902] In one example, based on the first weight, a weighted average is performed on the second values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame.
[0903] In another example, based on the first weight, a weighted sum is performed on the second values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame.
[0904] After the encoder determines the fourth weighted prediction value corresponding to each of the K prediction reference frames, it executes the above steps A1-23.
[0905] The present application does not limit the specific method of determining the index of the second context model based on the fourth weighted prediction value corresponding to K prediction reference frames.
[0906] In some embodiments, the encoding end determines the average value of the fourth weighted prediction values corresponding to the K prediction reference frames as the index of the second context model.
[0907] In some embodiments, the encoding end determines second weights corresponding to the K predicted reference frames, and performs weighted processing on fourth weighted prediction values corresponding to the K predicted reference frames based on the second weights to obtain an index of the second context model.
[0908] In one example, based on the second weight, weighted averaging is performed on the fourth weighted prediction values corresponding to the K prediction reference frames to obtain an index of the second context model.
[0909] In another example, based on the second weight, the fourth weighted prediction values corresponding to the K prediction reference frames are weightedly summed to obtain the index of the second context model.
[0910] After determining the index of the second context model based on the above steps, the encoder selects a second context model from the P context models corresponding to the second flag, and then uses the second context model to encode the second flag corresponding to the current node.
[0911] The following describes the predictive encoding process of the third flag at the encoding end.
[0912] Step B: Use the third direct coding information of the N predicted nodes as context information to perform predictive coding on the third flag corresponding to the current node, where the third flag is used to indicate whether the third point of the current node is a repeated point.
[0913] In this embodiment, if the second point of the current node is a repeated point, the encoding end continues to encode the third flag corresponding to the current node to indicate whether the third point of the current node is a repeated point.
[0914] In some embodiments, the above step B includes the following steps:
[0915] Step B1: determining an index of a third context model based on third direct coding information of the N prediction nodes;
[0916] Step B2: Based on the index of the third context model, select the third context model from R context models corresponding to the third flag, where R is a positive integer greater than 1;
[0917] Step B3: Use the third context model to perform predictive coding on the third flag corresponding to the current node.
[0918] The following describes the specific process of determining the index of the third context model based on the third direct coding information of the N prediction nodes in the above step B1.
[0919] Method 1: Step B1 includes the following steps B1-11 and B1-12:
[0920] Step B1-11: For any prediction node among the N prediction nodes, determine a third value corresponding to the prediction node based on the third direct coding information of the prediction node.
[0921] In this method, for each of the N prediction nodes, the third numerical value corresponding to the prediction node is determined based on the third direct encoding information of the prediction node, and finally the index of the third context model is determined based on the third numerical values corresponding to the N prediction nodes.
[0922] The following describes the process of determining the third value corresponding to the prediction node.
[0923] In some embodiments, the third direct encoding information of the predicted node includes second information and fourth information, wherein the second information indicates whether the predicted node meets the conditions for encoding in a direct encoding manner, and the fourth information indicates whether the third point of the predicted node is a repeated point.
[0924] At this time, the encoder may determine the third value corresponding to the prediction node based on the second information and / or fourth information of the prediction node.
[0925] Exemplarily, the encoder determines the third value corresponding to the prediction node through the following steps:
[0926] Step 31: Determine a first sub-value based on the second information;
[0927] Step 32: Determine a fourth sub-value based on the fourth information;
[0928] Step 23: Determine a third numerical value corresponding to the prediction node based on the first sub-value and / or the fourth sub-value.
[0929] The process of determining the first sub-value based on the second information can refer to the description of step 11 above, which will not be repeated here.
[0930] Among them, based on the fourth information, the method for determining the fourth sub-value can be: if the fourth information indicates that the third point of the predicted node is a repeated point, then the value of the fourth sub-value is determined to be the first value; if the fourth information indicates that the third point of the predicted node is not a repeated point, then the value of the fourth sub-value is determined to be the second value.
[0931] Next, the encoder determines a third value corresponding to the prediction node based on the first sub-value and / or the fourth sub-value determined above.
[0932] Based on the above steps, the third value corresponding to each of the N prediction nodes of the current node can be determined. Then, the following steps B1-12 are executed:
[0933] Step B1-12: Determine the index of the third context model based on the third numerical values corresponding to the N prediction nodes.
[0934] Method 1: Determine the average value of the sum of the third numerical values corresponding to the N prediction nodes as the index of the third context model.
[0935] In mode 2, step B1-12 includes the following steps B1-121 to B1-123:
[0936] Step B1-121: Determine a first weight corresponding to the prediction node;
[0937] Step B1-122: Based on the first weight, weight the third values corresponding to the N prediction nodes to obtain a fifth weighted prediction value;
[0938] Step B1-123: Determine the index of the third context model based on the fifth weighted prediction value.
[0939] The embodiment of the present application does not limit the specific method of performing weighted processing on the third numerical values corresponding to N prediction nodes based on the first weight to obtain the fifth weighted prediction value.
[0940] In one example, based on the first weight, a weighted average is performed on the third values corresponding to the N prediction nodes to obtain a fifth weighted prediction value.
[0941] In another example, based on the first weight, a weighted sum is performed on the third values corresponding to the N prediction nodes to obtain a fifth weighted prediction value.
[0942] After the fifth weighted prediction value is determined based on the method steps, the index of the third context model is determined based on the fifth weighted prediction value. That is, the above step B1-123 includes at least the following examples:
[0943] Example 1: Determine the fifth weighted prediction value as the index of the third context model.
[0944] Example 2: Determine the weighted prediction value range in which the fifth weighted prediction value is located, and determine the index corresponding to the range as the index of the third context model.
[0945] In some embodiments, the encoding end may also adopt the following second method to determine the index of the third context model.
[0946] Method 2: If K is greater than 1, determine the sixth weighted prediction value corresponding to each of the K prediction reference frames, and then determine the index of the third context model based on the sixth weighted prediction values corresponding to the K prediction reference frames. In this case, the above step B1 includes the following steps B1-21 to B1-24:
[0947] Step B1-21: for the j-th prediction reference frame among the K prediction reference frames, determine a third value corresponding to the prediction node in the j-th prediction reference frame based on third direct coding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K;
[0948] Step B1-22: Determine a first weight corresponding to the prediction node, and perform weighted processing on the third value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame;
[0949] Step B1-23: Determine the index of the third context model based on the sixth weighted prediction values corresponding to the K prediction reference frames.
[0950] In this second approach, when determining the index of the third context model, each of the K predicted reference frames is considered separately as separate context information. Specifically, the third direct coding information of the prediction node included in each of the K predicted reference frames is determined, and the sixth weighted prediction value corresponding to each predicted reference frame is determined. Then, based on the sixth weighted prediction value corresponding to each predicted reference frame, the index of the third context model is determined, thereby achieving accurate selection of the third context model and improving the coding efficiency of the point cloud.
[0951] In the embodiment of the present application, the specific method in which the encoding end determines the sixth weighted prediction value corresponding to each of the K prediction reference frames is the same. For the sake of convenience of description, the j-th prediction reference frame among the K prediction reference frames is used as an example for illustration.
[0952] In an embodiment of the present application, the current node includes at least one prediction node in the j-th prediction reference frame, so that the third value of the at least one prediction node is determined based on the third direct encoding information of the at least one prediction node in the j-th prediction reference frame.
[0953] After the encoding end determines the third value of at least one prediction node included in the j-th prediction reference frame, it determines the first weight corresponding to each of the at least one prediction node, and performs weighted processing on the third value corresponding to the at least one prediction node based on the first weight to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame.
[0954] In one example, based on the first weight, a weighted average is performed on the third values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame.
[0955] In another example, based on the first weight, a weighted sum is performed on the third values corresponding to the prediction nodes in the j-th prediction reference frame to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame.
[0956] After the encoder determines the sixth weighted prediction value corresponding to each of the K prediction reference frames, it executes the above steps B1-23.
[0957] In some embodiments, the encoding end determines the average value of the sixth weighted prediction values corresponding to the K prediction reference frames as the index of the third context model.
[0958] In some embodiments, the encoding end determines second weights corresponding to the K predicted reference frames, and performs weighted processing on the sixth weighted prediction values corresponding to the K predicted reference frames based on the second weights to obtain an index of the third context model.
[0959] In one example, based on the second weight, the sixth weighted prediction values corresponding to the K prediction reference frames are weighted averaged to obtain the index of the third context model.
[0960] In another example, based on the second weight, the sixth weighted prediction values corresponding to the K prediction reference frames are weightedly summed to obtain the index of the third context model.
[0961] After determining the index of the third context model based on the above steps, the encoder selects a third context model from the R context models corresponding to the third flag, and then uses the third context model to encode the third flag corresponding to the current node.
[0962] In some embodiments, if the third point of the current node is a repeated point, the encoding end continues to encode the remaining repeated points of the current node.
[0963] The following describes two cases: the number of points of the current node is less than or equal to 2, and the number of points of the current node is greater than 2.
[0964] Case 1: If the number of points of the current node is less than or equal to 2, the point cloud encoding method of the embodiment of the present application includes the following steps:
[0965] Step c1: Use the first directly coded information of the N predicted nodes as context information to perform predictive coding on the first flag corresponding to the current node.
[0966] Exemplarily, the first direct coding information includes the following content:
[0967] a) IDCM mode of the prediction node, i.e. PredDCMode(0,1,2);
[0968] b) Whether the number of points in the prediction node PredNumPoints is greater than 1.
[0969] The specific implementation process of the above step c1 can refer to the description of the above embodiment and will not be repeated here.
[0970] If the current node includes two non-repeated points, the first flag is set to true.
[0971] If the current node includes only one point, the first flag is set to false and the following step 02 is executed.
[0972] Step c2: Use the second direct coding information of the N prediction nodes as context information to perform predictive coding on the second flag corresponding to the current node.
[0973] Exemplarily, the second direct coding information includes the following content:
[0974] a) IDCM mode of the prediction node, i.e. PredDCMode(0,1,2);
[0975] b) Whether the second point in the prediction node is a duplicate point. If the number of points in the prediction node is less than 2, it is assumed to be not a duplicate point.
[0976] The specific implementation process of the above step c2 can refer to the description of the above embodiment and will not be repeated here.
[0977] Case 2: If the number of points of the current node is greater than 2, the point cloud encoding method of the embodiment of the present application includes the following steps:
[0978] Step d1: Use the first directly coded information of the N predicted nodes as context information to perform predictive coding on the first flag corresponding to the current node.
[0979] Exemplarily, the first direct coding information includes the following content:
[0980] a) IDCM mode of the prediction node, i.e. PredDCMode(0,1,2);
[0981] b) Whether the number of points in the prediction node PredNumPoints is greater than 1.
[0982] The specific implementation process of the above step d1 can refer to the description of the above embodiment and will not be repeated here.
[0983] If the current node includes multiple repeated points, the first flag is set to false, and the following step d2 is executed.
[0984] Step d2: Use the second direct coding information of the N prediction nodes as context information to perform predictive coding on the second flag corresponding to the current node.
[0985] Exemplarily, the second direct coding information includes the following content:
[0986] a) IDCM mode of the prediction node, i.e. PredDCMode(0,1,2);
[0987] b) Whether the second point in the prediction node is a duplicate point. If the number of points in the prediction node is less than 2, it is assumed to be not a duplicate point.
[0988] The specific implementation process of the above step d2 can refer to the description of the above embodiment and will not be repeated here.
[0989] If the second point of the current node is a duplicate point, the second flag is set to true, and step d3 is executed.
[0990] Step d3: Use the third directly coded information of the N predicted nodes as context information to perform predictive coding on the third flag corresponding to the current node.
[0991] Exemplarily, the third direct coding information includes the following content:
[0992] a) IDCM mode of the prediction node, i.e. PredDCMode(0,1,2);
[0993] b) Whether the third point in the prediction node is a duplicate point. If the number of points in the prediction node is less than 2, it is assumed to be not a duplicate point.
[0994] The specific implementation process of the above step d3 can refer to the description of the above embodiment and will not be repeated here.
[0995] If the third point of the current node is a repeated point, the third flag is set to true, and step d4 is executed.
[0996] Step d4: Encode the remaining number of repeated points using Exponential Golomb coding.
[0997] The point cloud coding method provided in the embodiment of the present application determines the inter-frame coding information corresponding to the current node when encoding the current node in the current coding frame, and uses the inter-frame coding information corresponding to the current node as context information to predict the number of points of the current node, thereby increasing the selectable context conditions when encoding the point number, reducing the determined conditional entropy, and thus improving the coding efficiency and performance of the point cloud.
[0998] It should be understood that Figures 8 to 15 are merely examples of the present application and should not be understood as limiting the present application.
[0999] The preferred embodiments of the present application are described in detail above in conjunction with the accompanying drawings. However, the present application is not limited to the specific details in the above embodiments. Within the technical concept of the present application, a variety of simple modifications can be made to the technical solution of the present application, and these simple modifications all fall within the scope of protection of the present application. For example, the various specific technical features described in the above specific embodiments can be combined in any suitable manner unless there is any contradiction. In order to avoid unnecessary repetition, the present application will not further explain various possible combinations. For another example, the various different embodiments of the present application can also be arbitrarily combined, and as long as they do not violate the ideas of the present application, they should also be regarded as the contents disclosed in the present application.
[1000] It should also be understood that in the various method embodiments of the present application, the size of the sequence numbers of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application. In addition, in the embodiments of the present application, the term "and / or" is merely a description of the association relationship of associated objects, indicating that three types of relationships can exist. Specifically, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the related objects before and after are in an "or" relationship.
[1001] The above describes in detail the method embodiment of the present application in conjunction with Figures 8 to 15, and the following describes in detail the device embodiment of the present application in conjunction with Figures 16 to 17.
[1002] Figure 16 is a schematic block diagram of the point cloud decoding device provided in an embodiment of the present application.
[1003] As shown in FIG16 , the point cloud decoding device 10 may include:
[1004] A determining unit 11 is configured to determine inter-frame decoding information corresponding to a current node, where the current node is a node to be decoded in a current frame to be decoded;
[1005] The decoding unit 12 is configured to perform predictive decoding on the number of points included in the current node based on the inter-frame decoding information corresponding to the current node.
[1006] In some embodiments, the inter-frame decoding information includes at least one of geometric decoding information of N prediction nodes of the current node and first information corresponding to the current node, where the first information is used to indicate whether the current node allows the inter-frame decoding mode to be started. The determination unit 11 is specifically configured to determine the N prediction nodes of the current node in a prediction reference frame of the current frame to be decoded, and / or determine the first information, where N is a positive integer;
[1007] The decoding unit 12 is specifically configured to perform predictive decoding on the number of points included in the current node based on the geometric decoding information of the N predicted nodes and / or the first information.
[1008] In some embodiments, the geometric decoding information of the prediction node includes direct decoding information of the prediction node, and the decoding unit 12 is specifically used to predict and decode the number of points of the current node based on the direct decoding information of the N prediction nodes and / or the first information.
[1009] In some embodiments, the current frame to be decoded includes K prediction reference frames, and the determination unit 11 is specifically used to determine, for the kth prediction reference frame among the K prediction reference frames, at least one prediction node of the current node in the kth prediction reference frame, where k is a positive integer less than or equal to K, and K is a positive integer; and determine N prediction nodes of the current node based on at least one prediction node of the current node in the K prediction reference frames.
[1010] In some embodiments, the determination unit 11 is specifically used to determine the M domain nodes of the current node in the current frame to be decoded, where the M domain nodes include the current node, and M is a positive integer; for the i-th domain node among the M domain nodes, determine the corresponding node of the i-th domain node in the k-th prediction reference frame, where i is a positive integer less than or equal to M; based on the corresponding nodes of the M domain nodes in the k-th prediction reference frame, determine at least one prediction node of the current node in the k-th prediction reference frame.
[1011] In some embodiments, the determination unit 11 is specifically used to determine the corresponding node of the current node in the kth prediction reference frame; determine at least one domain node of the corresponding node; and determine the at least one domain node as at least one prediction node of the current node in the kth prediction reference frame.
[1012] In some embodiments, the determination unit 11 is specifically used to determine the parent node of the i-th node in the current frame to be decoded as the i-th parent node, the i-th node being the i-th domain node or the current node; determine the matching node of the i-th parent node in the k-th prediction reference frame as the i-th matching node; and determine one of the child nodes of the i-th matching node as the corresponding node of the i-th node in the k-th prediction reference frame.
[1013] In some embodiments, the determining unit 11 is specifically configured to determine a matching node of the i-th parent node in the k-th prediction reference frame based on the occupancy information of the i-th parent node.
[1014] In some embodiments, the determination unit 11 is specifically configured to determine the node whose placeholder information in the k-th prediction reference frame has the smallest difference with the placeholder information of the i-th parent node as the matching node of the i-th parent node in the k-th prediction reference frame.
[1015] In some embodiments, the determination unit 11 is specifically used to determine the first serial number of the i-th node among the child nodes included in the parent node; and determine the child node with the first serial number among the child nodes of the i-th matching node as the corresponding node of the i-th node in the k-th predicted reference frame.
[1016] In some embodiments, the determining unit 11 is specifically configured to determine corresponding nodes of the M domain nodes in the k-th prediction reference frame as at least one prediction node of the current node in the k-th prediction reference frame.
[1017] In some embodiments, the determining unit 11 is specifically configured to determine at least one prediction node of the current node in the K prediction reference frames as the N prediction nodes of the current node.
[1018] In some embodiments, if the current frame to be decoded is a P frame, the K prediction reference frames include a forward frame of the current frame to be decoded.
[1019] In some embodiments, if the current frame to be decoded is a B frame, the K prediction reference frames include a forward frame and a backward frame of the current frame to be decoded.
[1020] In some embodiments, the direct decoding information of the prediction node includes first direct decoding information, and the decoding unit 12 is specifically used to use the first direct decoding information of the N prediction nodes as context information to perform predictive decoding on the first flag corresponding to the current node, where the first flag is used to indicate whether the number of points included in the current node is greater than 1.
[1021] In some embodiments, the decoding unit 12 is specifically used to determine the index of the first context model based on the first direct decoding information of the N prediction nodes; based on the index of the first context model, select the first context model from the Q context models corresponding to the first flag, where Q is a positive integer greater than 1; and use the first context model to predict and decode the first flag corresponding to the current node.
[1022] In some embodiments, the decoding unit 12 is specifically used to determine, for any one of the N prediction nodes, a first numerical value corresponding to the prediction node based on the first direct decoding information of the prediction node; and determine an index of the first context model based on the first numerical values corresponding to the N prediction nodes.
[1023] In some embodiments, the decoding unit 12 is specifically used to determine a first weight corresponding to the prediction node; based on the first weight, weighted processing is performed on the first numerical values corresponding to the N prediction nodes to obtain a first weighted prediction value; based on the first weighted prediction value, the index of the first context model is determined.
[1024] In some embodiments, if K is greater than 1, the decoding unit 12 is specifically used to determine, for the j-th prediction reference frame among the K prediction reference frames, a first numerical value corresponding to the prediction node in the j-th prediction reference frame based on the first direct decoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; determine a first weight corresponding to the prediction node, and perform weighted processing on the first numerical value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a second weighted prediction value corresponding to the j-th prediction reference frame; and determine an index of the first context model based on the second weighted prediction values corresponding to the K prediction reference frames.
[1025] In some embodiments, the decoding unit 12 is specifically used to determine the second weights corresponding to the K predicted reference frames; based on the second weights, weighted processing is performed on the second weighted prediction values corresponding to the K predicted reference frames respectively to obtain the index of the first context model.
[1026] In some embodiments, the first direct decoding information includes at least one of second information and the number of points of the prediction node, the second information indicates whether the prediction node meets the conditions for decoding by the direct decoding method, and the decoding unit 12 is specifically used to determine the first sub-value based on the second information; determine the second sub-value based on the number of points of the prediction node; and determine the first numerical value corresponding to the prediction node based on the first sub-value and / or the second sub-value.
[1027] In some embodiments, the decoding unit 12 is specifically used to determine that the value of the second sub-value is the first value if the number of points included in the prediction node is greater than the first preset value; if the number of points included in the prediction node is less than or equal to the first preset value, determine that the value of the second sub-value is the second value.
[1028] In some embodiments, the decoding unit 12 is further configured to determine that the current node includes 2 points if the first flag corresponding to the current node indicates that the number of points included in the current node is greater than 1.
[1029] In some embodiments, the direct decoding information of the predicted node includes second direct decoding information, and the decoding unit 12 is further used to use the second direct decoding information of the N predicted nodes as context information, and perform predictive decoding on the second flag corresponding to the current node if the first flag corresponding to the current node indicates that the number of points included in the current node is less than or equal to 1. The second flag is used to indicate whether the second point of the current node is a repeated point.
[1030] In some embodiments, the decoding unit 12 is specifically used to determine the index of the second context model based on the second direct decoding information of the N prediction nodes; based on the index of the second context model, select the second context model from the P context models corresponding to the second flag, where P is a positive integer greater than 1; and use the second context model to predict and decode the second flag corresponding to the current node.
[1031] In some embodiments, the decoding unit 12 is specifically used to determine, for any one of the N prediction nodes, a second numerical value corresponding to the prediction node based on the second direct decoding information of the prediction node; and determine an index of the second context model based on the second numerical values corresponding to the N prediction nodes.
[1032] In some embodiments, the decoding unit 12 is specifically used to determine a first weight corresponding to the prediction node; based on the first weight, weighted processing is performed on the second numerical values corresponding to the N prediction nodes to obtain a third weighted prediction value; based on the third weighted prediction value, the index of the second context model is determined.
[1033] In some embodiments, if K is greater than 1, the decoding unit 12 is specifically used to determine, for the j-th prediction reference frame among the K prediction reference frames, the second numerical value corresponding to the prediction node in the j-th prediction reference frame based on the second direct decoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; determine the first weight corresponding to the prediction node, and weightedly process the second numerical value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame; and determine the index of the second context model based on the fourth weighted prediction values corresponding to the K prediction reference frames.
[1034] In some embodiments, the decoding unit 12 is specifically used to determine the second weights corresponding to the K predicted reference frames; based on the second weights, the fourth weighted prediction values corresponding to the K predicted reference frames are weighted to obtain the index of the second context model.
[1035] In some embodiments, the second direct decoding information includes at least one of second information and third information, the second information indicates whether the predicted node meets the conditions for decoding by the direct decoding method, and the third information indicates whether the second point of the predicted node is a repeated point. The decoding unit 12 is specifically used to determine the first sub-value based on the second information; determine the third sub-value based on the third information; and determine the second numerical value corresponding to the predicted node based on the first sub-value and / or the third sub-value.
[1036] In some embodiments, the decoding unit 12 is specifically configured to determine that the value of the third sub-value is the first value if the third information indicates that the second point of the prediction node is a repeated point; and to determine that the value of the third sub-value is the second value if the third information indicates that the second point of the prediction node is not a repeated point.
[1037] In some embodiments, the decoding unit 12 is further configured to determine that the current node includes 1 point if the second flag corresponding to the current node indicates that the second point of the current node is not the repeated point 1.
[1038] In some embodiments, the direct decoding information of the predicted node includes third direct decoding information, and the decoding unit 12 is further used to use the third direct decoding information of the N predicted nodes as context information to perform predictive decoding on the third flag corresponding to the current node if the second flag corresponding to the current node indicates that the second point of the current node is a repeated point. The third flag is used to indicate whether the third point of the current node is a repeated point.
[1039] In some embodiments, the decoding unit 12 is specifically used to determine the index of the third context model based on the third direct decoding information of the N prediction nodes; based on the index of the third context model, select the third context model from the R context models corresponding to the third flag, where R is a positive integer greater than 1; and use the third context model to predict and decode the third flag corresponding to the current node.
[1040] In some embodiments, the decoding unit 12 is specifically used to determine, for any one of the N prediction nodes, a third numerical value corresponding to the prediction node based on the third direct decoding information of the prediction node; and determine an index of the third context model based on the third numerical values corresponding to the N prediction nodes.
[1041] In some embodiments, the decoding unit 12 is specifically used to determine a first weight corresponding to the prediction node; based on the first weight, weighted processing is performed on the third numerical values corresponding to the N prediction nodes to obtain a fifth weighted prediction value; based on the fifth weighted prediction value, the index of the third context model is determined.
[1042] In some embodiments, if K is greater than 1, the decoding unit 12 is specifically used to determine, for the j-th prediction reference frame among the K prediction reference frames, a third numerical value corresponding to the prediction node in the j-th prediction reference frame based on the third direct decoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; determine a first weight corresponding to the prediction node, and perform weighted processing on the third numerical value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame; and determine an index of the third context model based on the sixth weighted prediction value corresponding to the K prediction reference frames.
[1043] In some embodiments, the decoding unit 12 is specifically used to determine the second weights corresponding to the K predicted reference frames; based on the second weights, the sixth weighted prediction values corresponding to the K predicted reference frames are weighted to obtain the index of the third context model.
[1044] In some embodiments, the third direct decoding information includes at least one of the second information and the fourth information, the second information indicates whether the predicted node meets the conditions for decoding by the direct decoding method, and the fourth information indicates whether the third point of the predicted node is a repeated point. In some embodiments, the decoding unit 12 is specifically used to determine the first sub-value based on the second information; determine the fourth sub-value based on the fourth information; and determine the third numerical value corresponding to the predicted node based on the first sub-value and / or the fourth sub-value.
[1045] In some embodiments, the decoding unit 12 is specifically configured to determine that the value of the fourth sub-value is the first value if the fourth information indicates that the third point of the prediction node is a repeated point; and to determine that the value of the fourth sub-value is the second value if the fourth information indicates that the third point of the prediction node is not a repeated point.
[1046] In some embodiments, the decoding unit 12 is further configured to decode the number of remaining repeated points included in the current node if the third flag indicates that the third point of the current node is a repeated point.
[1047] In some embodiments, the decoding unit 12 is specifically configured to determine that the value of the first sub-value is a first value if the second information indicates that the prediction node meets the conditions for decoding by the direct decoding method; and to determine that the value of the first sub-value is a second value if the second information indicates that the prediction node does not meet the conditions for decoding by the direct decoding method.
[1048] In some embodiments, the second information includes direct decoding mode information of the prediction node.
[1049] In some embodiments, the decoding unit 12 is specifically configured to determine a first weight corresponding to the prediction node based on a distance between a domain node corresponding to the prediction node and the current node.
[1050] In some embodiments, the decoding unit 12 is specifically configured to determine a second weight corresponding to the predicted reference frame based on a time difference between the predicted reference frame and the current frame to be decoded.
[1051] It should be understood that the device embodiment and the method embodiment may correspond to each other, and similar descriptions can refer to the method embodiment. To avoid repetition, no further description is given here. Specifically, the point cloud decoding device 10 shown in FIG16 may correspond to the corresponding subject in the point cloud decoding method of the embodiment of the present application, and the aforementioned and other operations and / or functions of the various units in the point cloud decoding device 10 are respectively for implementing the corresponding processes in the point cloud decoding method. For the sake of brevity, no further description is given here.
[1052] Figure 17 is a schematic block diagram of the point cloud encoding device provided in an embodiment of the present application.
[1053] As shown in FIG17 , the point cloud encoding device 20 includes:
[1054] A determination unit 21 is configured to determine inter-frame coding information corresponding to a current node, where the current node is a node to be coded in a current frame to be coded;
[1055] The encoding unit 22 is configured to perform predictive encoding on the points included in the current node based on the inter-frame encoding information corresponding to the current node.
[1056] In some embodiments, the inter-frame coding information includes geometric coding information of N prediction nodes of the current node and at least one of the first information corresponding to the current node, and the first information is used to indicate whether the current node is allowed to start the inter-frame coding mode. The determination unit 21 is specifically used to determine the N prediction nodes of the current node in the predicted reference frame of the current frame to be encoded, and / or determine the first information, where N is a positive integer; correspondingly, the encoding unit 22 is specifically used to perform predictive coding on the number of points included in the current node based on the geometric coding information of the N prediction nodes and / or the first information.
[1057] In some embodiments, the geometric coding information of the prediction node includes direct coding information of the prediction node, and the coding unit 22 is specifically used to predict the number of points of the current node based on the direct coding information of the N prediction nodes and / or the first information.
[1058] In some embodiments, the current frame to be encoded includes K prediction reference frames, and the determination unit 21 is specifically used to determine, for the kth prediction reference frame among the K prediction reference frames, at least one prediction node of the current node in the kth prediction reference frame, where k is a positive integer less than or equal to K, and K is a positive integer; and determine N prediction nodes of the current node based on at least one prediction node of the current node in the K prediction reference frames.
[1059] In some embodiments, the determination unit 21 is specifically used to determine the M domain nodes of the current node in the current frame to be encoded, where the M domain nodes include the current node, and M is a positive integer; for the i-th domain node among the M domain nodes, determine the corresponding node of the i-th domain node in the k-th prediction reference frame, where i is a positive integer less than or equal to M; based on the corresponding nodes of the M domain nodes in the k-th prediction reference frame, determine at least one prediction node of the current node in the k-th prediction reference frame.
[1060] In some embodiments, the determination unit 21 is specifically used to determine the corresponding node of the current node in the kth prediction reference frame; determine at least one domain node of the corresponding node; and determine the at least one domain node as at least one prediction node of the current node in the kth prediction reference frame.
[1061] In some embodiments, the determination unit 21 is specifically used to determine the parent node of the i-th node in the current frame to be encoded as the i-th parent node, the i-th node being the i-th domain node or the current node; determine the matching node of the i-th parent node in the k-th prediction reference frame as the i-th matching node; and determine one of the child nodes of the i-matching node as the corresponding node of the i-th node in the k-th prediction reference frame.
[1062] In some embodiments, the determining unit 21 is specifically configured to determine a matching node of the i-th parent node in the k-th prediction reference frame based on the occupancy information of the i-th parent node.
[1063] In some embodiments, the determination unit 21 is specifically configured to determine the node whose placeholder information in the k-th prediction reference frame has the smallest difference with the placeholder information of the i-th parent node as the matching node of the i-th parent node in the k-th prediction reference frame.
[1064] In some embodiments, the determination unit 21 is specifically used to determine the first serial number of the i-th node among the child nodes included in the parent node; and determine the child node with the first serial number among the child nodes of the i-th matching node as the corresponding node of the i-th node in the k-th predicted reference frame.
[1065] In some embodiments, the determining unit 21 is specifically configured to determine corresponding nodes of the M domain nodes in the k-th prediction reference frame as at least one prediction node of the current node in the k-th prediction reference frame.
[1066] In some embodiments, the determining unit 21 is specifically configured to determine at least one prediction node of the current node in the K prediction reference frames as the N prediction nodes of the current node.
[1067] In some embodiments, if the current frame to be encoded is a P frame, the K prediction reference frames include a forward frame of the current frame to be encoded.
[1068] In some embodiments, if the current frame to be encoded is a B frame, the K prediction reference frames include a forward frame and a backward frame of the current frame to be encoded.
[1069] In some embodiments, the direct encoding information of the prediction node includes first direct encoding information, and the encoding unit 22 is specifically used to use the first direct encoding information of the N prediction nodes as context information to perform predictive encoding on the first flag corresponding to the current node, where the first flag is used to indicate whether the number of points included in the current node is greater than 1.
[1070] In some embodiments, the encoding unit 22 is specifically used to determine the index of the first context model based on the first direct encoding information of the N prediction nodes; based on the index of the first context model, select the first context model from the Q context models corresponding to the first flag, where Q is a positive integer greater than 1; and use the first context model to predictively encode the first flag corresponding to the current node.
[1071] In some embodiments, the encoding unit 22 is specifically used to determine, for any one of the N prediction nodes, a first numerical value corresponding to the prediction node based on the first direct encoding information of the prediction node; and determine an index of the first context model based on the first numerical values corresponding to the N prediction nodes.
[1072] In some embodiments, the encoding unit 22 is specifically used to determine a first weight corresponding to the prediction node; based on the first weight, weighted processing is performed on the first numerical values corresponding to the N prediction nodes to obtain a first weighted prediction value; based on the first weighted prediction value, the index of the first context model is determined.
[1073] In some embodiments, if K is greater than 1, the encoding unit 22 is specifically used to deter...
Claims
1. A point cloud decoding method, characterized in that: include: Determine inter-frame decoding information corresponding to a current node, wherein the current node is a node to be decoded in a current frame to be decoded; Based on the inter-frame decoding information corresponding to the current node, the number of points included in the current node is predicted and decoded.
2. The method according to claim 1, characterized in that: The inter-frame decoding information includes at least one of geometric decoding information of N prediction nodes of the current node and first information corresponding to the current node, the first information is used to indicate whether the current node allows the inter-frame decoding mode to be started, and the inter-frame decoding information corresponding to the current node is determined, including: In the prediction reference frame of the current frame to be decoded, determine N prediction nodes of the current node, and / or determine the first information, where N is a positive integer; The predicting and decoding the number of points included in the current node based on the inter-frame decoding information corresponding to the current node includes: Based on the geometric decoding information of the N predicted nodes and / or the first information, the number of points included in the current node is predicted and decoded.
3. The method according to claim 2, characterized in that The geometric decoding information of the prediction node includes direct decoding information of the prediction node, and the predictive decoding of the number of points included in the current node based on the geometric decoding information of the N prediction nodes and / or the first information includes: Based on the direct decoding information of the N prediction nodes and / or the first information, the number of points of the current node is predicted and decoded.
4. The method according to claim 3, characterized in that The current frame to be decoded includes K prediction reference frames, and determining N prediction nodes of the current node in the prediction reference frames of the current frame to be decoded includes: For a k-th prediction reference frame among the K prediction reference frames, determining at least one prediction node of the current node in the k-th prediction reference frame, where k is a positive integer less than or equal to K, and K is a positive integer; Based on at least one prediction node of the current node in the K prediction reference frames, N prediction nodes of the current node are determined.
5. The method according to claim 4, characterized in that The determining at least one prediction node of the current node in the k-th prediction reference frame comprises: In the current frame to be decoded, determine M domain nodes of the current node, the M domain nodes include the current node, and M is a positive integer; For an i-th domain node among the M domain nodes, determine a corresponding node of the i-th domain node in the k-th prediction reference frame, where i is a positive integer less than or equal to M; Based on the corresponding nodes of the M domain nodes in the k-th prediction reference frame, at least one prediction node of the current node in the k-th prediction reference frame is determined.
6. The method according to claim 4, characterized in that The determining at least one prediction node of the current node in the k-th prediction reference frame comprises: Determine a corresponding node of the current node in the k-th prediction reference frame; Determining at least one domain node of the corresponding node; The at least one domain node is determined as at least one prediction node of the current node in the k-th prediction reference frame.
7. The method according to claim 5 or 6, characterized in that: The method further comprises: In the current frame to be decoded, determine the parent node of the ith node as the ith parent node, the ith node being the ith domain node or the current node; Determine a matching node of the i-th parent node in the k-th prediction reference frame as the i-th matching node; One of the child nodes of the i matching nodes is determined as the corresponding node of the i-th node in the k-th prediction reference frame.
8. The method according to claim 7, characterized in that The determining a matching node of the i-th parent node in the k-th prediction reference frame includes: Based on the placeholder information of the i-th parent node, a matching node of the i-th parent node in the k-th prediction reference frame is determined.
9. The method according to claim 8, characterized in that The determining, based on the placeholder information of the i-th parent node, a matching node of the i-th parent node in the k-th prediction reference frame includes: A node whose placeholder information in the k-th prediction reference frame has the smallest difference with the placeholder information of the i-th parent node is determined as a matching node of the i-th parent node in the k-th prediction reference frame.
10. The method according to claim 7, characterized in that The step of determining one of the child nodes of the i matching nodes as a corresponding node of the i-th node in the k-th prediction reference frame includes: Determine the first sequence number of the i-th node among the child nodes included in the parent node; The child node with the first sequence number among the child nodes of the i-th matching node is determined as the corresponding node of the i-th node in the k-th prediction reference frame.
11. The method according to claim 5, characterized in that The determining, based on corresponding nodes of the M domain nodes in the kth prediction reference frame, at least one prediction node of the current node in the kth prediction reference frame comprises: The corresponding nodes of the M domain nodes in the k-th prediction reference frame are determined as at least one prediction node of the current node in the k-th prediction reference frame.
12. The method according to claim 4, characterized in that The determining, based on at least one prediction node of the current node in the K prediction reference frames, N prediction nodes of the current node comprises: At least one prediction node of the current node in the K prediction reference frames is determined as N prediction nodes of the current node.
13. The method according to claim 4, characterized in that If the current frame to be decoded is a P frame, the K prediction reference frames include a forward frame of the current frame to be decoded.
14. The method according to claim 4, characterized in that If the current frame to be decoded is a B frame, the K prediction reference frames include a forward frame and a backward frame of the current frame to be decoded.
15. The method according to claim 4, characterized in that The direct decoding information of the prediction node includes first direct decoding information, and based on the direct decoding information of the N prediction nodes, predictive decoding is performed on the number of points included in the current node, including: The first direct decoding information of the N prediction nodes is used as context information to perform predictive decoding on a first flag corresponding to the current node, where the first flag is used to indicate whether the number of points included in the current node is greater than 1.
16. The method according to claim 15, characterized in that The using the first direct decoding information of the N prediction nodes as context information to perform predictive decoding on the first flag corresponding to the current node includes: Determining an index of a first context model based on first direct decoding information of the N prediction nodes; Based on the index of the first context model, selecting the first context model from Q context models corresponding to the first flag, where Q is a positive integer greater than 1; Using the first context model, predictive decoding is performed on a first flag corresponding to the current node.
17. The method according to claim 16, characterized in that The determining, based on the first direct decoding information of the N prediction nodes, an index of the first context model comprises: For any prediction node among the N prediction nodes, determining a first value corresponding to the prediction node based on first direct decoding information of the prediction node; Based on first numerical values corresponding to the N prediction nodes, an index of the first context model is determined.
18. The method according to claim 17, characterized in that The determining, based on the first values corresponding to the N prediction nodes, an index of the first context model includes: Determining a first weight corresponding to the prediction node; Based on the first weight, weighting the first values corresponding to the N prediction nodes to obtain a first weighted prediction value; Based on the first weighted prediction value, determine the index of the first context model.
19. The method according to claim 16, characterized in that If the K is greater than 1, determining the index of the first context model based on the first direct decoding information of the N prediction nodes includes: For a j-th prediction reference frame among the K prediction reference frames, determining a first value corresponding to the prediction node in the j-th prediction reference frame based on first direct decoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; Determine a first weight corresponding to the prediction node, and perform weighted processing on a first value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a second weighted prediction value corresponding to the j-th prediction reference frame; Based on the second weighted prediction values corresponding to the K prediction reference frames, an index of the first context model is determined.
20. The method according to claim 19, characterized in that The determining, based on the second weighted prediction values corresponding to the K prediction reference frames, the index of the first context model comprises: Determine second weights corresponding to the K prediction reference frames; Based on the second weight, weighted processing is performed on the second weighted prediction values corresponding to the K prediction reference frames respectively to obtain an index of the first context model.
21. The method according to claim 17 or 19, characterized in that The first direct decoding information includes at least one of second information and the number of points of the prediction node, the second information indicating whether the prediction node satisfies the condition for decoding by the direct decoding method, and determining a first value corresponding to the prediction node based on the first direct decoding information of the prediction node includes: Based on the second information, determining a first sub-value; Determining a second sub-value based on the number of points of the prediction node; Based on the first sub-value and / or the second sub-value, a first numerical value corresponding to the prediction node is determined.
22. The method according to claim 21, characterized in that The determining the second sub-value based on the number of points of the prediction node comprises: If the number of points included in the prediction node is greater than a first preset value, determining that the value of the second sub-value is the first value; If the number of points included in the prediction node is less than or equal to a first preset value, the value of the second sub-value is determined to be a second value.
23. The method according to claim 15, characterized in that The method further comprises: If the first flag corresponding to the current node indicates that the number of points included in the current node is greater than 1, it is determined that the current node includes 2 points.
24. The method according to claim 15, characterized in that The direct decoding information of the prediction node includes second direct decoding information, and the method further includes: If the first flag corresponding to the current node indicates that the number of points included in the current node is less than or equal to 1, the second direct decoding information of the N predicted nodes is used as context information to predict and decode the second flag corresponding to the current node, and the second flag is used to indicate whether the second point of the current node is a repeated point.
25. The method according to claim 24, characterized in that The using the second direct decoding information of the N prediction nodes as context information to perform predictive decoding on the second flag corresponding to the current node includes: Determining an index of a second context model based on the second direct decoding information of the N prediction nodes; Based on the index of the second context model, selecting the second context model from P context models corresponding to the second flag, where P is a positive integer greater than 1; The second context model is used to predict and decode the second flag corresponding to the current node.
26. The method according to claim 25, characterized in that The determining, based on the second direct decoding information of the N prediction nodes, an index of the second context model comprises: For any prediction node among the N prediction nodes, determining a second value corresponding to the prediction node based on second direct decoding information of the prediction node; Based on second numerical values corresponding to the N prediction nodes, an index of the second context model is determined.
27. The method according to claim 26, characterized in that The determining, based on the second values corresponding to the N prediction nodes, an index of the second context model includes: Determining a first weight corresponding to the prediction node; Based on the first weight, weighting the second values corresponding to the N prediction nodes to obtain a third weighted prediction value; Based on the third weighted prediction value, determine the index of the second context model.
28. The method according to claim 25, characterized in that If K is greater than 1, determining the index of the second context model based on the second direct decoding information of the N prediction nodes includes: For a j-th prediction reference frame among the K prediction reference frames, determining a second value corresponding to the prediction node in the j-th prediction reference frame based on second direct decoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; Determine a first weight corresponding to the prediction node, and perform weighted processing on the second value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame; Based on the fourth weighted prediction values corresponding to the K prediction reference frames, an index of the second context model is determined.
29. The method according to claim 28, characterized in that The determining, based on the fourth weighted prediction values corresponding to the K prediction reference frames, the index of the second context model comprises: Determine second weights corresponding to the K prediction reference frames; Based on the second weight, the fourth weighted prediction values corresponding to the K prediction reference frames are weighted to obtain the index of the second context model.
30. The method according to claim 26 or 28, characterized in that The second direct decoding information includes at least one of second information and third information, the second information indicates whether the prediction node satisfies the condition for decoding by the direct decoding method, and the third information indicates whether the second point of the prediction node is a repeated point. Based on the second direct decoding information of the prediction node, determining the second value corresponding to the prediction node includes: Based on the second information, determining a first sub-value; Based on the third information, determining a third sub-value; Based on the first sub-value and / or the third sub-value, a second numerical value corresponding to the prediction node is determined.
31. The method according to claim 30, characterized in that The determining, based on the third information, a third sub-value comprises: If the third information indicates that the second point of the predicted node is a duplicate point, determining that the value of the third sub-value is the first value; If the third information indicates that the second point of the predicted node is not a repeated point, the value of the third sub-value is determined to be the second value.
32. The method according to claim 24, characterized in that The method further comprises: If the second flag corresponding to the current node indicates that the second point of the current node is not the repeated point 1, it is determined that the current node includes 1 point.
33. The method according to claim 24, characterized in that The direct decoding information of the prediction node includes third direct decoding information, and the method further includes: If the second flag corresponding to the current node indicates that the second point of the current node is a repeated point, the third direct decoding information of the N predicted nodes is used as context information to predict and decode the third flag corresponding to the current node, and the third flag is used to indicate whether the third point of the current node is a repeated point.
34. The method according to claim 33, characterized in that The using the third direct decoding information of the N prediction nodes as context information to perform predictive decoding on the third flag corresponding to the current node includes: Determining an index of a third context model based on third direct decoding information of the N prediction nodes; Based on the index of the third context model, selecting the third context model from R context models corresponding to the third flag, where R is a positive integer greater than 1; The third context model is used to predict and decode the third flag corresponding to the current node.
35. The method according to claim 34, characterized in that The determining, based on the third direct decoding information of the N prediction nodes, an index of the third context model comprises: For any prediction node among the N prediction nodes, determining a third value corresponding to the prediction node based on third direct decoding information of the prediction node; Based on third numerical values corresponding to the N prediction nodes, an index of the third context model is determined.
36. The method according to claim 35, characterized in that The determining, based on the third values corresponding to the N prediction nodes, an index of the third context model includes: Determining a first weight corresponding to the prediction node; Based on the first weight, weighting the third values corresponding to the N prediction nodes to obtain a fifth weighted prediction value; Based on the fifth weighted prediction value, an index of the third context model is determined.
37. The method according to claim 34, characterized in that If the K is greater than 1, determining the index of the third context model based on the third direct decoding information of the N prediction nodes includes: For a j-th prediction reference frame among the K prediction reference frames, determining a third value corresponding to the prediction node in the j-th prediction reference frame based on third direct decoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; Determine a first weight corresponding to the prediction node, and perform weighted processing on a third value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame; Based on the sixth weighted prediction values corresponding to the K prediction reference frames, an index of the third context model is determined.
38. The method according to claim 37, characterized in that The step of determining the index of the third context model based on the sixth weighted prediction values corresponding to the K prediction reference frames includes: Determine second weights corresponding to the K prediction reference frames; Based on the second weight, weighted processing is performed on the sixth weighted prediction values corresponding to the K prediction reference frames respectively to obtain an index of the third context model.
39. The method according to claim 35 or 37, characterized in that The third direct decoding information includes at least one of second information and fourth information, the second information indicates whether the prediction node satisfies a condition for decoding in the direct decoding manner, and the fourth information indicates whether a third point of the prediction node is a repeated point, wherein determining a third value corresponding to the prediction node based on the third direct decoding information of the prediction node includes: Based on the second information, determining a first sub-value; Based on the fourth information, determining a fourth sub-value; Based on the first sub-value and / or the fourth sub-value, a third numerical value corresponding to the prediction node is determined.
40. The method according to claim 39, characterized in that The determining, based on the fourth information, a fourth sub-value, comprises: If the fourth information indicates that the third point of the predicted node is a repeated point, determining that the value of the fourth subvalue is the first value; If the fourth information indicates that the third point of the predicted node is not a repeated point, the value of the fourth sub-value is determined to be the second value.
41. The method according to claim 33, characterized in that The method further comprises: If the third flag indicates that the third point of the current node is a repeated point, the number of remaining repeated points included in the current node is decoded.
42. The method of claim 21, 30 or 39, wherein: The determining the first sub-value based on the second information includes: If the second information indicates that the prediction node satisfies the condition for decoding in the direct decoding manner, determining that the value of the first subvalue is a first value; If the second information indicates that the prediction node does not satisfy the condition for decoding in the direct decoding manner, the value of the first sub-value is determined to be a second value.
43. The method of claim 21, 30 or 39, wherein: The second information includes direct decoding mode information of the prediction node.
44. The method of claim 18, 19, 27, 28, 36 or 37, wherein: Determining a first weight corresponding to the prediction node includes: Based on the distance between the domain node corresponding to the prediction node and the current node, a first weight corresponding to the prediction node is determined.
45. The method of claim 20, 29 or 38, wherein: The determining the second weights corresponding to the K prediction reference frames includes: Based on the time difference between the predicted reference frame and the current frame to be decoded, a second weight corresponding to the predicted reference frame is determined.
46. A point cloud encoding method, characterized in that: include: Determine inter-frame coding information corresponding to a current node, where the current node is a node to be coded in a current frame to be coded; Based on the inter-frame coding information corresponding to the current node, predictive coding is performed on the points included in the current node.
47. The method according to claim 46, characterized in that The inter-frame coding information includes at least one of geometric coding information of N prediction nodes of the current node and first information corresponding to the current node, the first information is used to indicate whether the current node allows the inter-frame coding mode to be started, and the inter-frame coding information corresponding to the current node is determined, including: In a prediction reference frame of the current frame to be encoded, determine N prediction nodes of the current node, and / or determine the first information, where N is a positive integer; The predictive coding of the number of points included in the current node based on the inter-frame coding information corresponding to the current node includes: Based on the geometric coding information of the N predicted nodes and / or the first information, predictive coding is performed on the number of points included in the current node.
48. The method according to claim 47, characterized in that The geometric coding information of the prediction node includes direct coding information of the prediction node, and the predictive coding of the number of points included in the current node based on the geometric coding information of the N prediction nodes and / or the first information includes: Based on the direct coding information of the N prediction nodes and / or the first information, predictive coding is performed on the number of points of the current node.
49. The method according to claim 48, characterized in that The current frame to be encoded includes K prediction reference frames, and determining N prediction nodes of the current node in the prediction reference frames of the current frame to be encoded includes: For a k-th prediction reference frame among the K prediction reference frames, determining at least one prediction node of the current node in the k-th prediction reference frame, where k is a positive integer less than or equal to K, and K is a positive integer; Based on at least one prediction node of the current node in the K prediction reference frames, N prediction nodes of the current node are determined.
50. The method according to claim 49, characterized in that The determining at least one prediction node of the current node in the k-th prediction reference frame comprises: In the current frame to be encoded, determine M domain nodes of the current node, the M domain nodes include the current node, and M is a positive integer; For an i-th domain node among the M domain nodes, determine a corresponding node of the i-th domain node in the k-th prediction reference frame, where i is a positive integer less than or equal to M; Based on the corresponding nodes of the M domain nodes in the k-th prediction reference frame, at least one prediction node of the current node in the k-th prediction reference frame is determined.
51. The method according to claim 49, characterized in that The determining at least one prediction node of the current node in the k-th prediction reference frame comprises: Determine a corresponding node of the current node in the k-th prediction reference frame; Determining at least one domain node of the corresponding node; The at least one domain node is determined as at least one prediction node of the current node in the k-th prediction reference frame.
52. The method according to claim 50 or 51, characterized in that The method further comprises: In the current frame to be encoded, determine the parent node of the ith node as the ith parent node, the ith node being the ith domain node or the current node; Determine a matching node of the i-th parent node in the k-th prediction reference frame as the i-th matching node; One of the child nodes of the i matching nodes is determined as the corresponding node of the i-th node in the k-th prediction reference frame.
53. The method according to claim 52, characterized in that The determining a matching node of the i-th parent node in the k-th prediction reference frame includes: Based on the placeholder information of the i-th parent node, a matching node of the i-th parent node in the k-th prediction reference frame is determined.
54. The method according to claim 53, characterized in that The determining, based on the placeholder information of the i-th parent node, a matching node of the i-th parent node in the k-th prediction reference frame includes: A node whose placeholder information in the k-th prediction reference frame has the smallest difference with the placeholder information of the i-th parent node is determined as a matching node of the i-th parent node in the k-th prediction reference frame.
55. The method according to claim 54, characterized in that The step of determining one of the child nodes of the i matching nodes as a corresponding node of the i-th node in the k-th prediction reference frame includes: Determine the first sequence number of the i-th node among the child nodes included in the parent node; The child node with the first sequence number among the child nodes of the i-th matching node is determined as the corresponding node of the i-th node in the k-th prediction reference frame.
56. The method of claim 50, wherein: The determining, based on corresponding nodes of the M domain nodes in the kth prediction reference frame, at least one prediction node of the current node in the kth prediction reference frame comprises: The corresponding nodes of the M domain nodes in the k-th prediction reference frame are determined as at least one prediction node of the current node in the k-th prediction reference frame.
57. The method according to claim 49, characterized in that The determining, based on at least one prediction node of the current node in the K prediction reference frames, N prediction nodes of the current node comprises: At least one prediction node of the current node in the K prediction reference frames is determined as N prediction nodes of the current node.
58. The method according to claim 49, characterized in that If the current frame to be encoded is a P frame, the K prediction reference frames include a forward frame of the current frame to be encoded.
59. The method according to claim 49, characterized in that If the current frame to be encoded is a B frame, the K prediction reference frames include a forward frame and a backward frame of the current frame to be encoded.
60. The method according to claim 49, characterized in that The direct coding information of the prediction node includes first direct coding information, and based on the direct coding information of the N prediction nodes, predictive coding is performed on the number of points included in the current node, including: The first direct encoding information of the N prediction nodes is used as context information to perform predictive encoding on a first flag corresponding to the current node, where the first flag is used to indicate whether the number of points included in the current node is greater than 1.
61. The method according to claim 60, characterized in that The step of using the first direct encoding information of the N prediction nodes as context information and performing predictive encoding on the first flag corresponding to the current node includes: Determining an index of a first context model based on the first direct encoding information of the N prediction nodes; Based on the index of the first context model, selecting the first context model from Q context models corresponding to the first flag, where Q is a positive integer greater than 1; Using the first context model, predictive encoding is performed on a first flag corresponding to the current node.
62. The method according to claim 61, characterized in that The determining, based on the first direct encoding information of the N prediction nodes, an index of the first context model comprises: For any prediction node among the N prediction nodes, determining a first value corresponding to the prediction node based on first direct encoding information of the prediction node; Based on first numerical values corresponding to the N prediction nodes, an index of the first context model is determined.
63. The method according to claim 62, characterized in that The determining, based on the first values corresponding to the N prediction nodes, an index of the first context model includes: Determining a first weight corresponding to the prediction node; Based on the first weight, weighting the first values corresponding to the N prediction nodes to obtain a first weighted prediction value; Based on the first weighted prediction value, determine the index of the first context model.
64. The method according to claim 61, characterized in that If K is greater than 1, determining the index of the first context model based on the first direct encoding information of the N prediction nodes includes: For a j-th prediction reference frame among the K prediction reference frames, determining a first value corresponding to the prediction node in the j-th prediction reference frame based on first direct encoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; Determine a first weight corresponding to the prediction node, and perform weighted processing on a first value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a second weighted prediction value corresponding to the j-th prediction reference frame; Based on the second weighted prediction values corresponding to the K prediction reference frames, an index of the first context model is determined.
65. The method according to claim 64, characterized in that The determining, based on the second weighted prediction values corresponding to the K prediction reference frames, the index of the first context model comprises: Determine second weights corresponding to the K prediction reference frames; Based on the second weight, weighted processing is performed on the second weighted prediction values corresponding to the K prediction reference frames respectively to obtain an index of the first context model.
66. The method according to claim 62 or 64, characterized in that The first direct encoding information includes at least one of second information and the number of points of the prediction node, the second information indicating whether the prediction node satisfies the condition for encoding by the direct encoding method, and determining a first value corresponding to the prediction node based on the first direct encoding information of the prediction node includes: Based on the second information, determining a first sub-value; Determining a second sub-value based on the number of points of the prediction node; Based on the first sub-value and / or the second sub-value, a first numerical value corresponding to the prediction node is determined.
67. The method according to claim 66, characterized in that The determining the second sub-value based on the number of points of the prediction node comprises: If the number of points included in the prediction node is greater than a first preset value, determining that the value of the second sub-value is the first value; If the number of points included in the prediction node is less than or equal to a first preset value, the value of the second sub-value is determined to be a second value.
68. The method according to claim 60, characterized in that The direct encoding information of the prediction node includes second direct encoding information, and the method further includes: The second direct encoding information of the N predicted nodes is used as context information to perform predictive encoding on a second flag corresponding to the current node, where the second flag is used to indicate whether the second point of the current node is a repeated point.
69. The method according to claim 68, characterized in that The step of using the second direct encoding information of the N prediction nodes as context information and performing predictive encoding on the second flag corresponding to the current node includes: Determining an index of a second context model based on the second direct encoding information of the N prediction nodes; Based on the index of the second context model, selecting the second context model from P context models corresponding to the second flag, where P is a positive integer greater than 1; The second context model is used to perform predictive encoding on a second flag corresponding to the current node.
70. The method according to claim 69, characterized in that The determining, based on the second direct encoding information of the N prediction nodes, an index of the second context model comprises: For any prediction node among the N prediction nodes, determining a second value corresponding to the prediction node based on second direct encoding information of the prediction node; Based on second numerical values corresponding to the N prediction nodes, an index of the second context model is determined.
71. The method according to claim 70, characterized in that The determining, based on the second values corresponding to the N prediction nodes, an index of the second context model includes: Determining a first weight corresponding to the prediction node; Based on the first weight, weighting the second values corresponding to the N prediction nodes to obtain a third weighted prediction value; Based on the third weighted prediction value, determine the index of the second context model.
72. The method of claim 69, wherein: If K is greater than 1, determining the index of the second context model based on the second direct encoding information of the N prediction nodes includes: For a j-th prediction reference frame among the K prediction reference frames, determining a second numerical value corresponding to the prediction node in the j-th prediction reference frame based on second direct encoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; Determine a first weight corresponding to the prediction node, and perform weighted processing on the second value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a fourth weighted prediction value corresponding to the j-th prediction reference frame; Based on the fourth weighted prediction values corresponding to the K prediction reference frames, an index of the second context model is determined.
73. The method according to claim 72, characterized in that The determining, based on the fourth weighted prediction values corresponding to the K prediction reference frames, the index of the second context model comprises: Determine second weights corresponding to the K prediction reference frames; Based on the second weight, the fourth weighted prediction values corresponding to the K prediction reference frames are weighted to obtain the index of the second context model.
74. The method according to claim 70 or 72, characterized in that The second direct encoding information includes at least one of second information and third information, the second information indicates whether the prediction node satisfies the condition for encoding by the direct encoding method, and the third information indicates whether the second point of the prediction node is a repeated point. Based on the second direct encoding information of the prediction node, determining the second value corresponding to the prediction node includes: Based on the second information, determining a first sub-value; Based on the third information, determining a third sub-value; Based on the first sub-value and / or the third sub-value, a second numerical value corresponding to the prediction node is determined.
75. The method according to claim 74, characterized in that The determining, based on the third information, a third sub-value comprises: If the third information indicates that the second point of the predicted node is a duplicate point, determining that the value of the third subvalue is the first value; If the third information indicates that the second point of the predicted node is not a repeated point, the value of the third sub-value is determined to be the second value.
76. The method of claim 68, wherein: The direct encoding information of the prediction node includes third direct encoding information, and the method further includes: If the second point of the current node is a repeated point, the third direct encoding information of the N predicted nodes is used as context information to perform predictive encoding on the third flag corresponding to the current node, and the third flag is used to indicate whether the third point of the current node is a repeated point.
77. The method according to claim 76, characterized in that The using the third direct encoding information of the N prediction nodes as context information to perform predictive encoding on the third flag corresponding to the current node includes: Determining an index of a third context model based on the third direct encoding information of the N prediction nodes; Based on the index of the third context model, selecting the third context model from R context models corresponding to the third flag, where R is a positive integer greater than 1; The third flag corresponding to the current node is predictively encoded using the third context model.
78. The method according to claim 77, characterized in that The determining, based on the third direct encoding information of the N prediction nodes, an index of the third context model comprises: For any prediction node among the N prediction nodes, determining a third value corresponding to the prediction node based on third direct encoding information of the prediction node; Based on third numerical values corresponding to the N prediction nodes, an index of the third context model is determined.
79. The method according to claim 78, characterized in that The determining, based on the third values corresponding to the N prediction nodes, an index of the third context model includes: Determining a first weight corresponding to the prediction node; Based on the first weight, weighting the third values corresponding to the N prediction nodes to obtain a fifth weighted prediction value; Based on the fifth weighted prediction value, an index of the third context model is determined.
80. The method of claim 77, wherein: If the K is greater than 1, determining the index of the third context model based on the third direct encoding information of the N prediction nodes includes: For a j-th prediction reference frame among the K prediction reference frames, determining a third value corresponding to the prediction node in the j-th prediction reference frame based on third direct encoding information of the prediction node of the current node in the j-th prediction reference frame, where j is a positive integer less than or equal to K; Determine a first weight corresponding to the prediction node, and perform weighted processing on a third value corresponding to the prediction node in the j-th prediction reference frame based on the first weight to obtain a sixth weighted prediction value corresponding to the j-th prediction reference frame; Based on the sixth weighted prediction values corresponding to the K prediction reference frames, an index of the third context model is determined.
81. The method according to claim 80, characterized in that The step of determining the index of the third context model based on the sixth weighted prediction values corresponding to the K prediction reference frames includes: Determine second weights corresponding to the K prediction reference frames; Based on the second weight, weighted processing is performed on the sixth weighted prediction values corresponding to the K prediction reference frames respectively to obtain an index of the third context model.
82. The method according to claim 78 or 80, characterized in that The third direct encoding information includes at least one of second information and fourth information, the second information indicates whether the prediction node satisfies a condition for encoding by the direct encoding method, and the fourth information indicates whether a third point of the prediction node is a repeated point, wherein determining a third value corresponding to the prediction node based on the third direct encoding information of the prediction node includes: Based on the second information, determining a first sub-value; Based on the fourth information, determining a fourth sub-value; Based on the first sub-value and / or the fourth sub-value, a third numerical value corresponding to the prediction node is determined.
83. The method according to claim 82, characterized in that The determining, based on the fourth information, a fourth sub-value, comprises: If the fourth information indicates that the third point of the predicted node is a repeated point, determining that the value of the fourth subvalue is the first value; If the fourth information indicates that the third point of the predicted node is not a repeated point, the value of the fourth sub-value is determined to be the second value.
84. The method of claim 76, wherein: The method further comprises: If the third flag indicates that the third point of the current node is a repeated point, the number of remaining repeated points included in the current node is encoded.
85. The method of claim 66, 74 or 82, wherein: The determining the first sub-value based on the second information includes: If the second information indicates that the prediction node satisfies the condition for encoding in the direct encoding mode, determining that the value of the first subvalue is a first value; If the second information indicates that the prediction node does not meet the condition for encoding in the direct encoding manner, the value of the first sub-value is determined to be a second value.
86. The method of claim 66, 74 or 82, wherein: The second information includes direct encoding mode information of the prediction node.
87. The method of claim 63, 64, 71, 72, 79 or 80, wherein: Determining a first weight corresponding to the prediction node includes: Based on the distance between the domain node corresponding to the prediction node and the current node, a first weight corresponding to the prediction node is determined.
88. The method of claim 65, 73 or 81, wherein: The determining the second weights corresponding to the K prediction reference frames includes: Based on the time difference between the predicted reference frame and the current frame to be encoded, a second weight corresponding to the predicted reference frame is determined.
89. A point cloud decoding device, characterized in that: include: A determination unit, configured to determine inter-frame decoding information corresponding to a current node, wherein the current node is a node to be decoded in a current frame to be decoded; A decoding unit is used to predict and decode the number of points included in the current node based on the inter-frame decoding information corresponding to the current node.
90. A point cloud encoding device, characterized in that: include: A determination unit, configured to determine inter-frame coding information corresponding to a current node, wherein the current node is a node to be coded in a current frame to be coded; The encoding unit is used to perform predictive encoding on the number of points included in the current node based on the inter-frame encoding information corresponding to the current node.
91. An electronic device, characterized in that: include: Processor and memory; The memory is used to store computer programs; The processor is used to call and run the computer program stored in the memory to perform the method according to any one of claims 1 to 45 or 46 to 88.
92. A computer-readable storage medium, characterized in that Used to store a computer program, the computer program causing a computer to execute the method according to any one of claims 1 to 45 or 46 to 88.