Coding and decoding method, encoder, decoder, code stream and storage medium
Patent Information
- Application Number
- CN202380102709.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-09
- Publication Date
- 2026-05-15
AI Technical Summary
In the inter-frame attribute prediction coding of point clouds, prediction accuracy still needs to be improved.
In the encoding and decoding method, the prediction method is determined based on the type of the current encoding and decoding unit, and attribute prediction is performed using reference frame information corresponding to different types of decoding units.
It improves the accuracy of inter-frame attribute prediction, adapts to the diversity of different types of codec units, and improves codec efficiency.
Smart Images

Figure CN122055976A_ABST
Abstract
Description
Coding and decoding method, encoder, decoder, code stream and storage medium Technical Field
[0001] The embodiments of the present application relate to the field of point cloud compression technology, and in particular to a coding and decoding method, an encoder, a decoder, a code stream, and a storage medium. Background Art
[0002] In the geometry-based Point Cloud Compression (G-PCC) codec framework or video-based Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), the geometric information and attribute information of the point cloud are encoded separately.
[0003] At present, attribute information encoding mainly targets the encoding of color information. In color information encoding, there are two main transformation methods: one is the distance-based lifting transformation that relies on the level of detail (LOD) division, and the other is the direct region adaptive hierarchical transform (RAHT).
[0004] However, in the related schemes of attribute RAHT inter-frame prediction coding, there is still a need to further improve the accuracy of inter-frame attribute prediction.
[0005] Summary of the Invention
[0006] The embodiments of the present application provide a coding and decoding method, an encoder, a decoder, a code stream, and a storage medium, which can improve the accuracy of inter-frame attribute prediction.
[0007] The technical solution of the embodiment of the present application can be implemented as follows:
[0008] In a first aspect, an embodiment of the present application provides a decoding method, applied to a decoder, the method comprising:
[0009] Parsing the bitstream to determine first syntax element information of a current decoding unit of a current frame, where the first syntax element information represents a type of the decoding unit; different types of decoding units correspond to different reference information of reference frames;
[0010] Based on the type of the current decoding unit indicated by the first syntax element, the current node is predicted to obtain a property prediction value of the current node.
[0011] In a second aspect, an embodiment of the present application provides an encoding method, applied to an encoder, the method comprising:
[0012] determining at least one reference list based on index information of the coded frame;
[0013] Performing pre-estimation based on the at least one reference list to determine a type of a current coding unit of a current frame, and using first syntax element information to indicate the type of the current coding unit;
[0014] Based on the type of the current coding unit, the current node is predicted to obtain an attribute prediction value of the current node.
[0015] In a third aspect, an embodiment of the present application provides a decoder, comprising:
[0016] The decoding part is configured to parse the bitstream and determine first syntax element information of a current decoding unit of a current frame, where the first syntax element information represents a type of the decoding unit; different types of decoding units correspond to different reference information of reference frames;
[0017] The first prediction part is configured to predict the current node based on the type of the current decoding unit indicated by the first syntax element to obtain a property prediction value of the current node.
[0018] In a fourth aspect, an embodiment of the present application provides a decoder, comprising: a first memory and a first processor; wherein,
[0019] The first memory is used to store a computer program that can be run on the first processor; the first processor is used to execute the decoding method as described in the embodiment of the present application when running the computer program.
[0020] In a fifth aspect, an embodiment of the present application provides an encoder, comprising:
[0021] A second determining part is configured to determine at least one reference list based on index information of the decoded frame; and pre-estimate based on the at least one reference list to determine a type of a current coding unit of the current frame, and use first syntax element information to indicate the type of the current coding unit;
[0022] The second prediction part is configured to predict the current node based on the type of the current coding unit to obtain a property prediction value of the current node.
[0023] In a sixth aspect, an embodiment of the present application provides an encoder, comprising: a second memory and a second processor; wherein,
[0024] The second memory is used to store a computer program that can be run on the second processor; the second processor is used to execute the encoding method as described in the embodiment of the present application when running the computer program.
[0025] In the seventh aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding based on the information to be encoded; wherein the information to be encoded includes at least: first syntax element information, second syntax element information, current frame index, reference index information, first weighting coefficient, second weighting coefficient, first weighting coefficient index, second weighting coefficient index, and quantized AC coefficient residual value.
[0026] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a first processor, it implements the decoding method described in the embodiment of the present application, or when it is executed by a second processor, it implements the encoding method described in the embodiment of the present application.
[0027] Embodiments of the present application provide a coding and decoding method, an encoder, a decoder, a bitstream, and a storage medium. For example, in the coding and decoding method, when determining the attribute prediction value of the current node, the type of the current coding and decoding unit is first determined. Based on the type of the current coding and decoding unit, different predictions are then performed to determine the attribute prediction value of the current node. In this way, the codec can perform targeted and diverse attribute predictions based on the types of different coding and decoding units, which helps improve the accuracy of inter-frame attribute prediction. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] FIG1A is a schematic diagram of an exemplary three-dimensional point cloud image provided in an embodiment of the present application;
[0029] FIG1B is a partially enlarged view of an exemplary three-dimensional point cloud image provided in an embodiment of the present application;
[0030] FIG2A is a schematic diagram of six viewing angles of an exemplary point cloud image provided in an embodiment of the present application;
[0031] FIG2B is a schematic diagram of an exemplary data storage format corresponding to a point cloud image provided in an embodiment of the present application;
[0032] FIG3 is a schematic diagram of an exemplary point cloud encoding and decoding network architecture provided in an embodiment of the present application;
[0033] FIG4A is a schematic diagram of a composition framework of an exemplary G-PCC encoder provided in an embodiment of the present application;
[0034] FIG4B is a schematic diagram of a composition framework of an exemplary G-PCC decoder provided in an embodiment of the present application;
[0035] FIG5A is a schematic diagram of an exemplary low-plane position in the Z-axis direction provided in an embodiment of the present application;
[0036] FIG5B is a schematic diagram of an exemplary high plane position in the Z-axis direction provided in an embodiment of the present application;
[0037] FIG6 is a schematic diagram of an exemplary node encoding sequence provided in an embodiment of the present application;
[0038] FIG7A is a schematic diagram of an exemplary planar identification information provided in an embodiment of the present application;
[0039] FIG7B is a schematic diagram of another exemplary planar identification information provided in an embodiment of the present application;
[0040] FIG8 is a schematic diagram of an exemplary sibling node of a current node provided in an embodiment of the present application;
[0041] FIG9 is a schematic diagram of an exemplary intersection between a laser radar and a node provided in an embodiment of the present application;
[0042] FIG10 is a schematic diagram of an exemplary neighborhood node at the same division depth and the same coordinates provided in an embodiment of the present application;
[0043] 11A-11C are schematic diagrams of exemplary current nodes located at the lower plane of a parent node provided by embodiments of the present application;
[0044] 12A-12C are schematic diagrams of exemplary current nodes located at the high plane position of the parent node provided in an embodiment of the present application;
[0045] FIG13 is a schematic diagram of predictive coding of an exemplary laser radar point cloud planar position information provided in an embodiment of the present application;
[0046] FIG14 is a schematic diagram of an exemplary IDCM encoding provided in an embodiment of the present application;
[0047] FIG15 is a schematic diagram of coordinate transformation of a point cloud acquired by an exemplary rotating laser radar according to an embodiment of the present application;
[0048] FIG16 is a schematic diagram of an exemplary predictive coding in the X-axis or Y-axis direction provided by an embodiment of the present application;
[0049] FIG17A is a schematic diagram of an exemplary method of predicting the Y-plane angle by using the horizontal azimuth angle according to an embodiment of the present application;
[0050] FIG17B is a schematic diagram of an exemplary method of predicting the X-plane angle by using the horizontal azimuth angle according to an embodiment of the present application;
[0051] FIG18 is another exemplary schematic diagram of predictive coding in the X-axis or Y-axis direction provided by an embodiment of the present application;
[0052] FIG19A is a schematic diagram of three intersection points included in an exemplary sub-block provided in an embodiment of the present application;
[0053] FIG19B is a schematic diagram of an exemplary triangular facet set fitted using three intersection points provided in an embodiment of the present application;
[0054] FIG19C is a schematic diagram of an exemplary upsampling of a triangle face set provided in an embodiment of the present application;
[0055] FIG20 is a schematic diagram of an exemplary distance-based LOD construction process provided in an embodiment of the present application;
[0056] FIG21 is a schematic diagram of a visualization result of an exemplary LOD generation process provided in an embodiment of the present application;
[0057] FIG22 is a schematic diagram of an exemplary encoding process for attribute prediction provided in an embodiment of the present application;
[0058] FIG23 is a schematic diagram of the composition of an exemplary pyramid structure provided in an embodiment of the present application;
[0059] FIG24 is a schematic diagram of another exemplary pyramid structure according to an embodiment of the present application;
[0060] FIG25 is a schematic diagram of an exemplary LOD structure of inter-layer nearest neighbor search provided in an embodiment of the present application;
[0061] FIG26 is a schematic diagram of an exemplary structure for performing nearest neighbor search based on spatial relationships provided in an embodiment of the present application;
[0062] FIG27A is a schematic diagram of an exemplary coplanar spatial relationship provided in an embodiment of the present application;
[0063] FIG27B is a schematic diagram of an exemplary coplanar and colinear spatial relationship provided in an embodiment of the present application;
[0064] FIG27C is a schematic diagram of an exemplary spatial relationship of coplanarity, colinearity, and co-pointness provided in an embodiment of the present application;
[0065] FIG28 is a schematic diagram of an exemplary inter-layer prediction based on fast search provided in an embodiment of the present application;
[0066] FIG29 is a schematic diagram of an exemplary LOD structure for nearest neighbor search within an attribute layer according to an embodiment of the present application;
[0067] FIG30 is a schematic diagram of an exemplary intra-layer prediction based on fast search provided in an embodiment of the present application;
[0068] FIG31 is a schematic diagram of an exemplary block-based neighborhood search structure provided in an embodiment of the present application;
[0069] FIG32 is a schematic diagram of an exemplary encoding process of a lifting transformation provided in an embodiment of the present application;
[0070] FIG33 is a schematic diagram of an exemplary RAHT attribute transformation coding structure provided in an embodiment of the present application;
[0071] FIG34 is a schematic diagram of an exemplary RAHT transformation process along the x, y, and z directions provided in an embodiment of the present application;
[0072] FIG35A is a schematic diagram of an exemplary RAHT forward conversion process provided in an embodiment of the present application;
[0073] FIG35B is a schematic diagram of an exemplary RAHT inverse transformation process provided in an embodiment of the present application;
[0074] FIG36 is a schematic diagram of the structure of an exemplary attribute coding block provided in an embodiment of the present application;
[0075] FIG37 is a schematic diagram of an overall process of an exemplary RAHT attribute prediction transform coding provided by an embodiment of the present application;
[0076] FIG38 is a schematic diagram of an exemplary neighborhood prediction relationship of a current block provided by an embodiment of the present application;
[0077] FIG39 is a schematic diagram of an exemplary attribute transformation coefficient calculation process provided in an embodiment of the present application;
[0078] FIG40 is a schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application;
[0079] FIG41 is a first schematic diagram of an exemplary bidirectional decoding structure provided in an embodiment of the present application;
[0080] FIG42 is a second schematic diagram of an exemplary bidirectional decoding structure provided in an embodiment of the present application;
[0081] FIG43 is a third schematic diagram of an exemplary bidirectional decoding structure provided in an embodiment of the present application;
[0082] FIG44 is a schematic diagram of an implementation flow of a decoding method provided in an embodiment of the present application;
[0083] FIG45 is a schematic diagram showing the principle of bidirectional inter-frame attribute prediction provided by an embodiment of the present application;
[0084] FIG46 is a schematic diagram of a RAHT coding layer provided in an embodiment of the present application;
[0085] FIG47 is a first structural diagram of a decoder provided in an embodiment of the present application;
[0086] FIG48 is a first structural diagram of an encoder provided in an embodiment of the present application;
[0087] FIG49 is a second structural diagram of a decoder provided in an embodiment of the present application;
[0088] Figure 50 is a second structural schematic diagram of the encoder provided in an embodiment of the present application. DETAILED DESCRIPTION
[0089] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
[0090] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0091] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0092] It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
[0093] Point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0094] A point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene. Figure 1A shows a three-dimensional point cloud image and Figure 1B shows a partially enlarged view of the three-dimensional point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.
[0095] Two-dimensional images contain information at every pixel, and their distribution is regular, so there's no need to record their location information. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so recording the location of each point in space is necessary to fully represent a point cloud. Similar to two-dimensional images, each location in the acquisition process has corresponding attribute information, typically an RGB color value, which reflects the object's color. For point clouds, in addition to color information, each point's corresponding attribute information often includes reflectance values, which reflect the surface texture of the object. Therefore, point cloud data typically includes geometric information consisting of three-dimensional position information, three-dimensional color information, and attribute information consisting of one-dimensional reflectance information. Points in a point cloud can include both position information and attribute information. For example, the position information of a point can be its three-dimensional coordinate information (x, y, z). The position information of a point can also be referred to as its geometric information. For example, the attribute information of a point can include color information (three-dimensional color information) and / or reflectance (one-dimensional reflectance information r). For example, the color information can be information in any color space, such as RGB information. Here, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, the color information can be luminance and chrominance (YCbCr, YUV) information. Here, Y represents brightness (Luma), Cb (U) represents the blue color difference, and Cr (V) represents the red color difference.
[0096] For example, a point cloud generated using laser measurement principles can include both its 3D coordinate information and its reflectivity. For another example, a point cloud generated using photogrammetry principles can include both its 3D coordinate information and its 3D color information. For another example, a point cloud generated using a combination of laser measurement and photogrammetry principles can include both its 3D coordinate information, its reflectivity value, and its 3D color information.
[0097] Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles of the point cloud image, while Figure 2B consists of a file header and data. The header includes the data format, data representation type, the total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud is in ".ply" format, represented by ASCII code, with a total of 207,242 points. Each point has 3D coordinate information (x, y, z) and 3D color information (r, g, b).
[0098] Point clouds can be divided into the following categories according to the acquisition method:
[0099] Static point cloud: the object is stationary and the device that acquires the point cloud is also stationary;
[0100] Dynamic point cloud: The object is moving, but the device that obtains the point cloud is stationary;
[0101] Dynamic point cloud acquisition: The device used to acquire the point cloud is in motion.
[0102] For example, point clouds can be divided into two categories according to their usage:
[0103] 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;
[0104] 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.
[0105] 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.
[0106] Point clouds are primarily collected through computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can obtain point clouds of static real-world 3D objects or scenes, generating millions of point clouds per second; and 3D photogrammetry can obtain point clouds of dynamic real-world 3D objects or scenes, generating tens of millions of point clouds per second. These technologies reduce the cost and time required to acquire point cloud data while improving data accuracy. While changes in point cloud data acquisition methods have made it possible to acquire large amounts of point cloud data, the processing of this massive amount of 3D point cloud data is facing bottlenecks due to storage space and transmission bandwidth constraints, as application demands grow.
[0107] For example, taking a point cloud video with a frame rate of 30 frames per second (fps), each frame contains 700,000 points, and each point has coordinate information (xyz, float) and color information (RGB, uchar). Therefore, the data volume of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 seconds = 3.15 GB, where 1 byte is 10 bits. For a 1280 × 720 2D 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 × 720 × 12 bits × 24 fps × 10 seconds ≈ 0.33 GB. The data volume of a 10-second two-view 3D video is approximately 0.33 × 2 = 0.66 GB. This shows that the data volume of a point cloud video far exceeds that of 2D and 3D videos of the same length. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.
[0108] That is to say, since the point cloud is a collection of massive points, storing the point cloud not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of the point cloud at the network layer without compression. Therefore, the point cloud needs to be compressed.
[0109] Currently, the point cloud coding framework that can compress point clouds can be the geometry-based Point Cloud Compression (G-PCC) codec framework or the video-based Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by AVS. The G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, which can be based on the Point Cloud Compression Test Platform (Test Model Compression 13, TMC13). The V-PCC codec framework can be used to compress the second type of dynamic point clouds, which can be based on the Point Cloud Compression Test Platform (Test Model Compression 2, TMC2). Therefore, the G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2.
[0110] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG3 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application. As shown in FIG3 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
[0111] Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
[0112] The following describes the related technologies using the G-PCC encoding and decoding framework as an example.
[0113] As you can understand, in the point cloud G-PCC codec framework, the point cloud data to be encoded is first divided into multiple slices through slice partitioning. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
[0114] Figure 4A shows a schematic diagram of the G-PCC encoder architecture. As shown in Figure 4A, during the geometry encoding process, the geometric information is transformed so that the entire point cloud is contained within a bounding box. Quantization is then performed. This quantization step primarily serves a scaling purpose. Due to quantization rounding, the geometric information of some point clouds becomes identical. Parameters are then used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. The bounding box is then partitioned into an octree or a prediction tree is constructed. During this process, arithmetic coding is performed on the points in the leaf nodes of the partition to generate a binary geometry bitstream. Alternatively, arithmetic coding is performed on the intersection points (vertices) generated by the partition (surface fitting is performed based on the intersection points) to generate a binary geometry bitstream. During the attribute encoding process, after the geometry encoding is completed and the geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometry information is then used to recolor the point cloud so that the unencoded attribute information corresponds to the reconstructed geometry information. Attribute encoding is mainly performed on color information. In the color information encoding process, there are two main transformation methods. One is the distance-based lifting transformation that relies on the level of detail (LOD) division, and the other is the direct region adaptive hierarchical transformation (RAHT). Both methods convert color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients. Then, the quantized coefficients are arithmetically encoded to generate a binary attribute bit stream.
[0115] Figure 4B shows a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 4B, for the acquired binary bit stream, the geometric bit stream and attribute bit stream in the binary bit stream are first decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree / reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning / RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometric information and attribute information.
[0116] It should be noted that, as shown in FIG4A or FIG4B , the current geometric coding and decoding of G-PCC can be divided into octree-based geometric coding and decoding (marked by a dotted box) and prediction tree-based geometric coding and decoding (marked by a dotted box).
[0117] For Octree geometry encoding (OctGeomEnc), the octree-based geometry encoding includes: first, coordinate conversion 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 (such as octrees, quadtrees, binary trees, etc.) in the order of breadth-first traversal, and the placeholder code of each node is encoded. In related technologies, a company proposed an implicit geometric division method. First, the bounding box of the point cloud is calculated. Assume d x >d y >d z , the bounding box corresponds to a cuboid. When geometrically partitioning, the binary tree partitioning will be 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 1×1×1 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 minThe reason why the parameters K and M meet the above conditions is that in the current G-PCC geometric implicit partitioning process, the priority of the partitioning method is binary tree, quadtree and octree. When the node block size does not meet the conditions of binary tree / quadtree, the node will be divided into octree until the minimum unit of leaf node is 1×1×1. 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.
[0118] Exemplarily, Figure 5A and Figure 5B provide a kind of plane position schematic diagram.Wherein, Figure 5A shows a kind of low plane position schematic diagram in the Z-axis direction, and Figure 5B shows a kind of high plane position schematic diagram in the Z-axis direction.As shown in Figure 5A, here (a), (a0), (a1), (a2), (a3) all belong to the low plane position in the Z-axis direction. Taking (a) as an example, it can be seen that the four child nodes occupied in the current node are all located at the low plane position of the current node in the Z-axis direction, so it can be considered that the current node belongs to a Z plane and is a low plane in the Z-axis direction. Similarly, as shown in Figure 5B, here (b), (b0), (b1), (b2), (b3) all belong to the high plane position in the Z-axis direction. Taking (b) as an example, it can be seen that the four child nodes occupied in the current node are located at the high plane position of the current node in the Z-axis direction, so it can be considered that the current node belongs to a Z plane and is a high plane in the Z-axis direction.
[0119] Taking (a) in Figure 5A as an example, the efficiency of octree encoding and plane encoding is compared. Figure 6 provides a schematic diagram of the node encoding sequence, that is, node encoding is performed in the order of 0, 1, 2, 3, 4, 5, 6, and 7 as shown in Figure 6. Here, if octree encoding is used for (a) in Figure 5A, the placeholder information of the current node is represented as: 11001100. However, if plane encoding is used, first, an identifier must 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 must also be represented. Finally, only the placeholder information of the lower plane node in the Z-axis direction needs to be encoded (i.e., the placeholder information of the four child nodes 0, 2, 4, and 6). Therefore, encoding the current node based on plane encoding only requires 6 bits, which can reduce the representation by 2 bits compared to the related art octree encoding. Based on this analysis, plane encoding has significantly higher coding efficiency than octree encoding. Therefore, for an occupied node, if a plane encoding method is used in a certain dimension, it is first necessary to represent the plane identification (planarMode) and plane position (PlanePos) information of the current node in that dimension, and then encode the occupancy information of the current node based on the plane information of the current node. For example, FIG7A shows a schematic diagram of plane identification information. As shown in FIG7A, there is a low plane in the Z-axis direction; correspondingly, the value of the plane identification information is true (true) or 1, that is, planarMode_ Z = true; the plane position information is the low plane (low), that is, PlanePosition_ Z =low. FIG7B shows another schematic diagram of plane identification information. As shown in FIG7B, here it is not a plane in the Z-axis direction; correspondingly, the value of the plane identification information is false or 0, that is, planarMode_ Z =false.
[0120] It should be noted that for PlaneMode_ i :0 means the current node is not a plane in the i-axis direction, 1 means the current node is a plane in the i-axis direction. If the current node is a plane in the i-axis direction, then for PlanePosition_ i : 0 means the current node is a plane in the i-axis direction and the plane position is low, 1 means the current node is a high plane in the i-axis direction. Here, i represents the coordinate dimension, which can be the X-axis direction, Y-axis direction, or Z-axis direction, so i = 0, 1, 2.
[0121] In the G-PCC standard, when determining whether a node meets the conditions for planar coding and when the node meets the conditions for planar coding, predictive coding of the planar identifier and planar position information of the node is required.
[0122] In the embodiments of the present application, there are three judgment conditions in the current G-PCC standard for determining whether a node meets the planar coding. The following will explain them in detail one by one.
[0123] 1. Judge according to the planar probability of the node in each dimension.
[0124] (1) Determine the local area density (local_node_density) of the current node;
[0125] (2) Determine the probability Prob(i) of the current node in each dimension.
[0126] When the local area density of the node is less than the threshold Th (for example, Th = 3), the planar probabilities Prob(i) of the current node in the three coordinate dimensions are compared with the thresholds Th0, Th1, and Th2, where Th0 < Th1 < Th2 (for example, Th0 = 0.6, Th1 = 0.77, Th2 = 0.88). Here, Eligible i (i = 0, 1, 2) represents whether planar coding is enabled in each dimension: Eligible i = Prob(i) >= threshold.
[0127] It should be noted that the threshold is adaptively changed. For example, when Prob(0) > Prob(1) > Prob(2), then Eligible i is set as follows: Eligible0 = Prob(?) >= Th0; Eligible1 = Prob(1) >= Th1; Eligible2 = Prob(2) >= Th2.
[0128] When Prob(1) > Prob(0) > Prob(2), then Eligible i is set as follows: Eligible0 = Prob(0) >= Th1; Eligible1 = Prob(1) >= Th0; Eligible2 = Prob(2) >= Th2.
[0129] Here, the update of Prob(i) is specifically as follows: Prob(i) new = (L × Prob(i) + δ(coded node)) / L + 1
[0130] It should be noted that there is a "?" in the translation of line 24 which needs to be replaced according to the correct content in the original Chinese text. Also, the "δ(coded node)" in line 34 may need further clarification depending on the specific context.Where L = 255; in addition, if the coded node is a plane, δ(coded node) is 1; otherwise, δ(coded node) is 0.
[0131] Here, the update of local_node_density is as follows: local_node_density new =local_node_density+4*numSiblings
[0132] Where local_node_density is initialized to 4, and numSiblings is the number of sibling nodes of the node. For example, FIG8 shows a schematic diagram of the sibling nodes of the current node. As shown in FIG8 , the current node is a node filled with slashes, and the nodes filled with grids are sibling nodes. Then, the number of sibling nodes of the current node is 5 (including the current node itself).
[0133] Second, determine whether the current layer nodes meet the plane coding requirements based on the point cloud density of the current layer.
[0134] The density of the current layer points is used to determine whether to perform planar coding on the nodes of the current layer. Assuming that the number of points in the current point cloud to be coded is pointCount, the number of points reconstructed by the inferred direct coding model (IDCM) coding is numPointCountRecon, and because the octree is coded based on the order of breadth-first traversal, the number of nodes to be coded in the current layer can be obtained as nodeCount. Then, the assumption to determine whether to start planar coding in the current layer is planarEligibleKOctreeDepth, specifically: planarEligibleK OctreeDepth = (pointCount-numPointCountRecon) <nodeCount×1.3。
[0135] Among them, if (pointCount-numPointCountRecon) is less than nodeCount×1.3, then planarEligibleK OctreeDepth is true; if (pointCount-numPointCountRecon) is not less than nodeCount×1.3, then planarEligibleKOctreeDepth is false. In this way, when planarEligibleKOctreeDepth is true, all nodes in the current layer are planar coded; otherwise, all nodes in the current layer are not planar coded and only octree coding is used.
[0136] 3. Determine whether the current node meets the plane coding requirements based on the acquisition parameters of the lidar point cloud.
[0137] Figure 9 shows a schematic diagram of the intersection of a laser radar and a node. As shown in Figure 9, a node filled with a grid is simultaneously traversed by two laser beams, so the current node is not a plane in the direction perpendicular to the Z axis. A node filled with a diagonal line is small enough to be traversed by two laser beams simultaneously, so it is possible that the node filled with a diagonal line is a plane in the direction perpendicular to the Z axis.
[0138] Furthermore, for nodes that meet the plane coding conditions, predictive coding may be performed on the plane identification information and the plane position information.
[0139] First, predictive coding of plane identification information.
[0140] Here, only three context information are used for encoding, that is, the plane identification in each coordinate dimension is separately designed for context.
[0141] Secondly, predictive coding of plane position information.
[0142] It should be understood that for the encoding of non-lidar point cloud planar position information, the predictive encoding of the planar position information may include:
[0143] (a) 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;
[0144] (b) Spatial distance between nodes at the same partition depth and coordinates as the current node and the current node: “near” and “far”;
[0145] (c) If the node at the same partition depth and the same coordinates as the current node is a plane, determine the plane position of the node;
[0146] (d) Coordinate dimension (i=0, 1, 2).
[0147] It should be noted that in an embodiment of the present application, after determining the spatial distance between the node at the same division depth and the same coordinates as the current node and the current node, if the spatial distance is less than the preset distance threshold, then the spatial distance can be determined to be "near"; or, if the spatial distance is greater than the preset distance threshold, then the spatial distance can be determined to be "far".
[0148] For example, Figure 10 shows a schematic diagram of neighboring nodes at the same partition depth and coordinates. As shown in Figure 10, the bold large cube represents the parent node, the small grid-filled cube inside it represents the current node, and the vertex position of the current node is shown. The small white-filled cube represents neighboring nodes at the same partition depth and coordinates. The distance between the current node and the neighboring node is the spatial distance, which can be judged as "near" or "far." In addition, if the neighboring node is a plane, the planar position of the neighboring node is also required.
[0149] In this way, as shown in Figure 10, the current node is a small cube filled with a grid, and the neighboring node is a small cube filled with white 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.
[0150] Furthermore, in the embodiment of the present application, Figures 11A-11C show schematic diagrams of the current node being located at the lower plane position of the parent node. Figures 11A-11C show three examples of the current node being located at the lower plane position of the parent node. Specific descriptions are as follows:
[0151] ① If any of the child nodes 4 to 7 of the point fill node is occupied, and all the grid fill nodes are not occupied, it is very likely that there is a plane in the current node (filled with a slash), and the plane is located lower.
[0152] ② If the child nodes 4 to 7 of the point fill node are not occupied, and any grid fill node is occupied, it is very likely that there is a plane in the current node (filled with diagonal lines), and the plane is located higher.
[0153] ③ If the child nodes 4 to 7 of the point fill node are all empty nodes and the grid fill nodes are all empty nodes, the plane position cannot be inferred and is therefore marked as unknown.
[0154] ④ If any of the child nodes 4 to 7 of the point fill node is occupied and any of the grid fill nodes is occupied, the plane position cannot be inferred at this time, so it is marked as unknown.
[0155] In the embodiment of the present application, Figures 12A-12C show schematic diagrams of the current node being located at the high plane position of the parent node. Figures 12A-12C show three examples of the current node being located at the high plane position of the parent node. The specific description is as follows:
[0156] ① If any of the child nodes 4 to 7 of the grid fill node is occupied, and the point fill node is not occupied, it is very likely that there is a plane in the current node (filled with diagonal lines), and the plane position is low.
[0157] ② If the child nodes 4 to 7 of the grid fill node are not occupied, and the point fill node is occupied, it is very likely that there is a plane in the current node (filled with a slash), and the plane position is higher.
[0158] ③If the child nodes 4 to 7 of the grid fill node are all unoccupied, and the point fill node is unoccupied, the plane position cannot be inferred at this time, so it is marked as unknown.
[0159] ④ If one of the child nodes 4 to 7 of the grid fill node is occupied and the point fill node is occupied, the plane position cannot be inferred at this time and is therefore marked as unknown.
[0160] It should also be understood that, with respect to the coding of the laser radar point cloud plane position information, FIG13 shows a schematic diagram of the predictive coding of the laser radar point cloud plane position information. As shown in FIG13, when the laser radar emission angle is θ bottom When , it can be mapped to the bottom virtual plane; when the laser radar emission angle is θ top At this time, it can be mapped to the high plane (Top virtual plane).
[0161] That is, by using the laser radar acquisition parameters to predict the plane position of the current node, and by using the position where the current node intersects with the laser ray to quantize the position into multiple intervals, the final result is the context information 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 node are (x, y, z), then first calculate the vertical tangent value tanθ of the current node relative to the lidar, the calculation formula is as follows:
[0162] Furthermore, because each laser has a certain offset angle relative to the laser radar, it is also necessary to calculate the relative tangent value tanθ of the current node relative to the laser corr,L , the specific calculation is as follows:
[0163] Finally, the relative tangent value tanθ of the current node will be used corr,L To predict the plane position of the current node, as follows, assuming that the tangent value of the lower boundary of the current node is tan(θ bottom ), the tangent value of the upper boundary is tan(θ top ), according to tanθ corr,L The plane position is quantized into four quantization intervals, that is, the context information of the plane position is determined.
[0164] However, the octree-based geometric information coding mode only has an efficient compression rate for points that are correlated 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 follows:
[0165] (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.
[0166] (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.
[0167] (3) The number of sibling nodes of the current node is greater than 1.
[0168] Exemplarily, FIG14 provides a schematic diagram of IDCM coding. If the current node does not have the DCM coding qualification, it will be divided into octrees. If it has the DCM coding qualification, the number of points contained in the node will be further determined. When the number of points is less than a threshold (for example, 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 is DCM-encoded, 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: (a) there is only one point (or multiple points, but they are duplicate points); (b) there are two points. Finally, the geometric information of each point needs to be encoded. Assuming 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.
[0169] Furthermore, the IDCM encoding process is described in detail below.
[0170] When the current node meets the DCM encoding mode, the number of points of the current node, numPoints, is encoded first; the number of points of the current node is encoded according to different DirectModes:
[0171] 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).
[0172] 2. If the number of points numPonts in the current node is less than or equal to 2, the encoding process is as follows:
[0173] 1) First encode whether the numPonts of the current node is greater than 1;
[0174] 2) If the current node has only one point and the geometry coding environment is geometry lossless coding, it is necessary to encode the second point of the current node to ensure that it is not a duplicate point.
[0175] 3. If the number of points numPonts in the current node is greater than 2, the encoding process is as follows:
[0176] 1) First encode the numPonts of the current node to be less than or equal to 1;
[0177] 2) Secondly, it is encoded that the second point of the current node is a repeated point, and then it is encoded whether the number of repeated points of the current node is greater than 1. When the number of repeated points is greater than 1, the remaining number of repeated points needs to be exponentially decoded.
[0178] 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 in detail.
[0179] (1) Point cloud facing the human eye.
[0180] (1) If the current node contains only one point, the geometric information of the point in three dimensions will be directly encoded (Bypass coding);
[0181] (2) If the current node contains two points, the first 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-axis and y-axis, not the z-axis. Assuming that the geometric coordinates of the current node are nodePos, the judgment method is as follows: dirextAxis = !(nodePos[0]<nodePos[1])
[0182] That is, the axis with the smallest node coordinate geometry position will be used as the priority encoding axis dirextAxis, and then the geometry information of the priority encoding axis dirextAxis will be encoded as follows. Assume that the encoding geometry bit depth corresponding to the priority encoding axis is nodeSizeLog2, and assume that the coordinates of the two points are pointPos[0] and pointPos[1]. The specific encoding process is as follows:
[0183] After encoding the priority axis dirextAxis, continue to directly encode the geometric coordinates of the current node. Assuming that the remaining encoding bit depth of each point is nodeSizeLog2, the specific encoding process is as follows: for(int axisIdx=0;axisIdx<3;++axisIdx) for(int mask=(1<<nodeSizeLog2[axisIdx])> >1;mask;mask>>1) encodePosBit(!!(pointPos[axisIdx]&mask)).
[0184] (2) LiDAR point cloud.
[0185] If the current node contains two points, the priority coded coordinate axis dirextAxis will be obtained first by using the geometric coordinates of the points. Assuming that the geometric coordinates of the current node are nodePos, the judgment method is as follows: dirextAxis = !(nodePos[0]<nodePos[1])
[0186] That is, the axis with the smaller node coordinate geometry position will be used as the priority encoding axis dirextAxis. It should be noted that the currently compared coordinate axes only include the x-axis and y-axis, not the z-axis. Then, the geometric information of the priority encoded coordinate axis dirextAxis is first encoded as follows, assuming that the encoding geometry bit depth corresponding to the priority encoded axis is nodeSizeLog2, and assuming that the coordinates of the two points are pointPos[0] and pointPos[1]. The specific encoding process is as follows:
[0187] After encoding the priority-encoded coordinate axis dirextAxis, the geometric coordinates of the current node are encoded.
[0188] Since the laser radar point cloud can obtain the acquisition parameters of the laser radar point cloud, the geometric coordinate information of the current node can be predicted by using it, thereby further improving the efficiency of the geometric information encoding of the point cloud. Similarly, first use the geometric information nodePos of the current node to obtain a directly encoded main axis direction, and then use the geometric information of the encoded direction to predict the geometric information of another dimension. Also assuming that the axis direction of the direct encoding is directAxis, and assuming that the bit depth of the direct encoding is nodeSizeLog2, the encoding method is as follows: for(int mask=(1<<nodeSizeLog2)> >1;mask;mask>>1) encodePosBit(!!(pointPos[directAxis]&mask)).
[0189] It should be noted here that all geometric accuracy information in the directAxis direction will be encoded here.
[0190] For example, Figure 15 provides a schematic diagram of coordinate transformation for obtaining point clouds using a rotating laser radar. In the Cartesian coordinate system, the (x, y, z) coordinates of each node can be converted to Indicates. In addition, the laser scanner can perform laser scanning at a preset angle, and different θ(i) can be obtained under different values of i. For example, when i is equal to 1, θ(1) can be obtained, and the corresponding scanning angle is -15°; when i is equal to 2, θ(2) can be obtained, and the corresponding scanning angle is -13°; when i is equal to 10, θ(10) can be obtained, and the corresponding scanning angle is +13°; when i is equal to 9, θ(19) can be obtained, and the corresponding scanning angle is +15°.
[0191] In this way, after encoding all the precision of the directAxis coordinate direction, the LaserIdx corresponding to the current point will be calculated first, that is, the pointLaserIdx number in Figure 15, and the LaserIdx of the current node, that is, nodeLaserIdx; secondly, the LaserIdx of the node, that is, nodeLaserIdx, will be used to predict the LaserIdx of the point, that is, pointLaserIdx. The calculation method of the LaserIdx of the node or point is as follows. Assuming that the geometric coordinates of the point are pointPos, the starting coordinates of the laser ray are LidarOrigin, and assuming that the number of Lasers is LaserNum, the tangent value of each Laser is tanθ i , the vertical offset position of each Laser is Z i ,but:
[0192] After calculating the current point's LaserIdx, the LaserIdx of the current node is first used to predictively encode the pointLaserIdx. After encoding the current point's LaserIdx, the three-dimensional geometric information of the current point is predictively encoded using the LiDAR acquisition parameters.
[0193] For example, FIG16 shows a schematic diagram of predictive coding in the X-axis or Y-axis direction. As shown in FIG16 , the box filled with a grid represents the current node, and the box filled with a slash represents the already coded node. Here, the LaserIdx corresponding to the current point is first used to obtain the corresponding predicted value of the horizontal azimuth, that is, Secondly, the node geometry information corresponding to the current point is used to obtain the horizontal azimuth angle corresponding to the node Assuming that the geometric coordinates of the node are nodePos, the horizontal azimuth angle The calculation method between the node geometry information is as follows:
[0194] By using the acquisition parameters of the laser radar, we can get the number of rotation points of each laser, numPoints, which represents the number of points obtained by each laser ray rotating one circle. Then, we can use the number of rotation points of each laser to calculate the rotation angular velocity deltaPhi of each laser. The calculation method is as follows:
[0195] Furthermore, using the horizontal azimuth angle of the node 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 That is, the predicted value of the horizontal azimuth angle as shown in Figure 17A and Figure 17B. Figure 17A shows a schematic diagram of predicting the angle of the Y plane through the horizontal azimuth angle, and Figure 17B shows a schematic diagram of predicting the angle of the X plane through the horizontal azimuth angle. Here, the predicted value of the horizontal azimuth angle corresponding to the current point is The calculation is as follows:
[0196] For example, FIG18 shows another schematic diagram of predictive coding in the X-axis or Y-axis direction. As shown in FIG18 , the portion filled with a grid (left side) represents a low plane, and the portion filled with dots (right side) represents a high plane. Indicates the low plane horizontal azimuth of the current node, Indicates the horizontal azimuth of the current node’s high plane. Indicates the predicted horizontal azimuth angle corresponding to the current node.
[0197] Thus, by using the predicted value of the horizontal azimuth and the low plane horizontal azimuth of the current node and the high plane horizontal azimuth To predict the geometric information of the current node. The details are as follows: int context=(angLel≥0&&angLeR≥0)||(angLel<0&&angLeR<0)? 0:2; int minAngle=std∷min(abs(angLel),abs(angLeR)); int maxAngle=std∷max(abs(angLel),abs(angLeR)); context+=maxAngle>minAngle? 0:1; context+=maxAngle>minAngle? 0:4.
[0198] After encoding the LaserIdx of the point, the Z-axis direction of the current point will be predicted using the LaserIdx corresponding to the current point. That is, the depth information radius of the radar 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 LaserIdx of the current point. The predicted value of the Z-axis direction of the current point, namely Z_pred, can be obtained. The details are as follows: int tanTheta=tanθ laserIdx ; int zOffset = Z laserIdx ; Z_pred=radius×tanTheta-zOffset.
[0199] Furthermore, Z_pred is used to perform predictive coding on the geometric information of the current point in the Z-axis direction to obtain the prediction residual Z_res, and finally Z_res is encoded.
[0200] 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.
[0201] For 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 1×1×1 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.
[0202] The following is a detailed introduction to the IDCM decoding process.
[0203] Similar to the processing at the encoding end, we first use prior information to determine whether the node should start IDCM. The starting conditions of IDCM are as follows:
[0204] (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.
[0205] (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.
[0206] (3) The number of sibling nodes of the current node is greater than 1.
[0207] Furthermore, when a node meets the conditions for DCM coding, it is first decoded to determine whether the current node is a true DCM node, that is, IDCM_flag; when IDCM_flag is true, the current node adopts DCM coding, otherwise it still adopts octree coding.
[0208] Next, decode the number of points numPoints of the current node. The specific decoding method is as follows:
[0209] i) First decode whether numPonts of the current node is greater than 1;
[0210] ii) 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;
[0211] iii) If the numPonts of the current node obtained by decoding is less than or equal to 1, continue decoding to see if 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 pattern 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 pattern is satisfied, which contains multiple points, but they are all repeated points, then continue decoding to see if the number of repeated points is greater than 1 (entropy decoding), and if it is greater than 1, continue decoding the number of remaining repeated points (using exponential Columbus decoding).
[0212] If the current node does not meet the requirements of the DCM node, it will exit directly (that is, the number of points is greater than 2 points and it is not a duplicate point).
[0213] 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 in detail.
[0214] (1) Point cloud facing the human eye.
[0215] (1) If the current node contains only one point, the geometric information of the point in three dimensions will be directly decoded (Bypass coding);
[0216] (2) If the current node contains two points, the first coordinate axis to be decoded is 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 judgment method is as follows: dirextAxis = (nodePos[0] < nodePos[1])
[0217] That is, the axis with the smallest node coordinate geometry position will be used as the priority decoding axis dirextAxis, and then the geometry information of the priority decoding axis dirextAxis will be decoded first in the following way. Assume that the geometry bit depth to be decoded corresponding to the priority decoding axis is nodeSizeLog2, and assume that the coordinates of the two points are pointPos[0] and pointPos[1]. The specific encoding process is as follows:
[0218] After decoding the prioritized axis dirextAxis, the geometric coordinates of the current point are directly decoded. Assuming the remaining encoding bit depth of each point is nodeSizeLog2 and the coordinate information of the point is pointPos, the specific decoding process is as follows:
[0219] (2) LiDAR point cloud.
[0220] If the current node contains two points, the priority decoding coordinate axis dirextAxis will be obtained first by using the geometric coordinates of the points. Assuming that the geometric coordinates of the current node are nodePos, the judgment method is as follows: dirextAxis = ! (nodePos[0] < nodePos[1]) (11)
[0221] That is, the axis with the smaller node coordinate geometry position will be used as the priority decoding axis dirextAxis. It should be noted that the currently compared coordinate axes only include the x-axis and y-axis, not the z-axis. Secondly, the priority encoded coordinate axis dirextAxis geometry information is first decoded as follows, assuming that the encoding geometry bit depth corresponding to the priority decoded axis is nodeSizeLog2, and assuming that the coordinates of the two points are pointPos[0] and pointPos[1]. The specific encoding process is as follows:
[0222] After decoding the priority coordinate axis dirextAxis, the geometric coordinates of the current point are decoded.
[0223] 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:
[0224] It should be noted here that all geometric accuracy information in the directAxis direction will be decoded here.
[0225] After decoding all the accuracies of the directAxis coordinate direction, the LaserIdx of the current node, i.e., nodeLaserIdx, is calculated first. Secondly, 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 encoding end. Finally, the predicted residual information of the LaserIdx of the current point and the LaserIdx of the node is decoded to obtain ResLaserIdx. The decoding method is as follows: PointLaserIdx = nodeLaserIdx + ResLaserIdx
[0226] 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. The specific algorithm is as follows:
[0227] As shown in Figure 11, 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 Assuming the geometric coordinates of the node are nodePos, the horizontal azimuth angle is The calculation method between the node geometry information is as follows:
[0228] By using the acquisition parameters of the laser radar, we can get the number of rotation points of each laser, numPoints, which represents the number of points obtained by each laser ray rotating one circle. Then, we can use the number of rotation points of each laser to calculate the rotation angular velocity deltaPhi of each laser. The calculation method is as follows:
[0229] Furthermore, using the horizontal azimuth angle of the node 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 That is, the predicted value of the horizontal azimuth angle as shown in Figures 17A and 17B. The calculation method is as follows:
[0230] Thus, 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 and decode the geometric information of the current node. The details are as follows: int context=(angLel≥0&&angLeR≥0)||(angLel<0&&angLeR<0)? 0:2; int absAngleL=abs(angLel); int absAngleR=abs(angLeR); context+=absAngleL>absAngleR? 0:1; context+=maxAngle>minAngle<<1? 4:0.
[0231] After decoding the LaserIdx of the completed 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 radar 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 LaserIdx of the current point. The predicted value of the Z-axis direction of the current point, namely Z_pred, can be obtained. The details are as follows: int tanTheta=tanθ laserIdx ; int zOffset = Z laserIdx; Z_pred=radius×tanTheta-zOffset.
[0232] Furthermore, 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.
[0233] For triangle soup (trisoup)-based geometric information coding, geometric partitioning must also be performed first in the trisoup-based geometric information coding framework. However, unlike geometric information coding based on binary trees, quadtrees, and octrees, this method does not require step-by-step partitioning of the point cloud into unit cubes with side lengths of 1×1×1. Instead, the partitioning stops when the sub-blocks (blocks) have 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.
[0234] For trisoup-based point cloud geometry reconstruction, when performing point cloud geometry reconstruction at the decoding end, the vertex coordinates are first decoded to complete the triangle face reconstruction. This process is shown in Figures 19A, 19B, and 19C. Among them, there are three intersection points (v1, v2, v3) in the block shown in Figure 19A. The set of triangle faces formed by these three intersection points in a certain order is called triangle soup, or trisoup, as shown in Figure 19B. Afterwards, sampling is performed on the triangle face set, and the obtained sampling points are used as the reconstructed point cloud within the block, as shown in Figure 19C.
[0235] For predictive geometry coding (PredGeomTree), the following steps are involved: first, sort the input point cloud. Currently, the sorting methods used include unordered, Morton order, azimuth order, and radial distance order. At the encoding end, the prediction tree structure is established using two different methods: KD-Tree (high-latency slow mode) and low-latency fast mode (using lidar calibration information). When using lidar calibration information, each point is divided into different lasers, and a prediction tree structure is established according to the different lasers. 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 parameter are encoded to generate a binary code stream.
[0236] For geometric decoding based on 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.
[0237] After the geometric encoding is completed, the geometric information needs to be 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 partitioning, and the other is to directly perform RAHT transformation. Both methods will convert the color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through transformation. Finally, the coefficients are quantized and encoded to generate a binary code stream, as shown in Figures 4A and 4B.
[0238] Furthermore, 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 below. For a three-dimensional coordinate represented by a d-bit binary number for each component, its three components can be expressed as:
[0239] in, The highest bits of x, y, and z respectively To the lowest position The corresponding binary value. The Morton code M is x, y, z starting from the highest bit, arranged in sequence To the lowest bit, the calculation formula of M is as follows:
[0240] in, The highest bit of M To the lowest position 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 value w of each point is set to 1.
[0241] It can also be understood that for the G-PCC codec framework, the general test conditions are as follows:
[0242] (1) There are 4 test conditions:
[0243] Condition 1: The geometric position is limited and the attributes are lost;
[0244] Condition 2: Geometric position lossless, attribute lossy;
[0245] Condition 3: Geometric position lossless, attribute loss limited;
[0246] Condition 4: Geometric position and attributes are lossless.
[0247] (2) The general test sequence includes four categories: Cat1A, Cat1B, Cat3-fused, and Cat3-frame. Among them, Cat2-frame point cloud only contains reflectance attribute information, Cat1A and Cat1B point clouds only contain color attribute information, and Cat3-fused point cloud contains both color and reflectance attribute information.
[0248] (3) Technical routes: There are two types in total, which are distinguished by the algorithm used for geometric compression.
[0249] Technical route 1: Octree encoding branch.
[0250] 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 again until the leaf node obtained is a 1×1×1 unit cube. 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.
[0251] At the decoding end, the decoding end obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and continuously divides the nodes in turn until a 1×1×1 unit cube is obtained. In the case of geometric lossless decoding, it is necessary to parse the number of points contained in each leaf node and finally recover the geometrically reconstructed point cloud information.
[0252] Technical route 2: prediction tree encoding branch.
[0253] On the encoding side, the prediction tree structure is established using two different methods: based on KD-Tree (high-latency slow mode) and using lidar calibration information (low-latency fast mode). Using lidar calibration information, each point can be divided into different lasers, and the prediction tree structure is established according to different lasers. 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.
[0254] At the decoding end, the decoding end continuously analyzes the code stream to reconstruct the prediction tree structure. Secondly, it obtains the geometric position prediction residual information and quantization parameters of each prediction node through analysis, and inverse quantizes the prediction residual to restore the reconstructed geometric position information of each node, finally completing the geometric reconstruction at the decoding end.
[0255] It should also be noted that as shown in Fig. 4A or Fig. 4B, the current G-PCC coding framework includes three attribute coding methods: Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT). Among them, the first two perform point cloud prediction coding based on the generation order of LoD, while RAHT adaptively transforms the attribute information from bottom to top according to the construction levels of the octree. The following will introduce these three point cloud attribute coding methods specifically.
[0256] (a) Predictive coding of point cloud attribute information.
[0257] Currently, the attribute prediction module of G-PCC adopts a nearest neighbor attribute prediction coding scheme based on a Level-of-details (LoDs) structure. The construction methods of LoD include a distance-based LoD construction scheme, a fixed sampling rate-based LoD construction scheme, and an octree-based LoD construction scheme, etc. In the distance threshold-based LoD construction scheme, the point cloud is first sorted by Morton before constructing LoD to ensure strong attribute correlation between adjacent points. Fig. 20 is a schematic diagram of a distance-based LoD construction process. As shown in Fig. 20, according to L Manhattan distances (dl) preset by the user in advance, l = 0, 1, … L - 1; the point cloud is divided into L different point cloud detail levels (Rl), l = 0, 1, … L - 1, where (dl)l = 0, 1, … L - 1 satisfies dl < dl-1. The LoD construction process is as follows:
[0258] (1) First, mark all points in the point cloud as unvisited, and establish a set V to store the set of visited points; (2) For each iteration l, traverse the points in the point cloud. If the current point has been visited, ignore it; otherwise, calculate the minimum distance D from the current point to the point set V. If D < dl, ignore the point; otherwise, mark the current point as visited and add the current point to the refinement level Rl and the point set V; (3) The points in the detail level LoDl are composed of the points in the refinement levels R0, R1, R2…Rl; (4) Continuously repeat the above steps until all points are marked as visited.
[0259] Based on the LOD structure, the attribute value of each point is linearly weighted predicted using the attribute reconstruction values of points in the same or higher LOD layer. The maximum number of reference prediction neighbors is determined by the encoder's high-level syntax elements. For each point attribute, the encoder uses a rate-distortion optimization algorithm to select a weighted prediction using the attributes of the N nearest neighbors found, or a single nearest neighbor for prediction. Finally, the selected prediction mode and prediction residual are encoded.
[0260] Among them, N represents the number of predicted points in the nearest neighbor point set of point i, Pi represents the sum of the N nearest neighbor points of point i, Dm represents the spatial geometric distance from the nearest neighbor point m to the current point i, Attrm represents the attribute value of the nearest neighbor point m after reconstruction, Attr i ′ represents the attribute prediction value of the current point i, and the number of points N is a preset value.
[0261] To balance attribute coding efficiency and parallel processing between different LOD layers, a switch is introduced in the encoder's high-level syntax elements to control whether to use intra-LOD prediction. If turned on, intra-LOD prediction is enabled, allowing predictions to be made using points within the same LOD layer. Note that when the number of LOD layers is 1, intra-LOD prediction is always used.
[0262] Figure 21 shows a visualization of the LOD generation process. This provides a subjective example of the distance-based LOD generation process. Specifically (from left to right): points in the first layer represent the outer contours of the point cloud; as the number of detail layers increases, the point cloud details become increasingly clear.
[0263] Figure 22 is a schematic diagram of the attribute prediction encoding process. As shown in Figure 22, for the specific process of G-PCC attribute prediction, for the original point cloud, the three nearest neighbors of the Kth point are first searched, and then attribute prediction is performed. The difference between the attribute prediction value of the Kth point and the original attribute value of the Kth point is calculated to obtain the prediction residual of the Kth point. Quantization and arithmetic coding are then performed to finally generate the attribute bit rate.
[0264] (i) Optimal prediction value selection:
[0265] After the LOD is constructed, according to the generation order of LOD, the three nearest neighboring points of the current point to be encoded are first found from the encoded data points. The attribute reconstruction values of these three nearest neighboring points are used as candidate prediction values of the current point to be encoded; then, the optimal prediction value is selected from them according to the rate-distortion optimization (RDO). For example, when encoding the attribute value of point P2 in Figure 20, the prediction variable index of the attribute value of the nearest neighbor point P4 is set to 1; the attribute prediction variable indexes of the second nearest neighbor point P5 and the third nearest neighbor point P0 are set to 2 and 3 respectively; the prediction variable index of the weighted average of points P0, P5 and P4 is set to 0, as shown in Table 1; finally, RDO is used to select the best prediction variable. The formula for weighted average is as follows:
[0266] in, Represents the spatial geometric weight of the neighboring point j to the current point i:
[0267] Represents the attribute prediction value of the current point i, j represents the index of the three neighboring points, Represents the attribute value after reconstruction of the neighboring points, x i ,y i ,z i is the geometric position coordinate of the current point i, x ij ,y ij ,z ij is the geometric coordinate of the neighboring point j.
[0268] For example, Table 1 provides an example of candidate prediction item samples for an attribute code.
[0269] Table 1
[0270] (ii) Attribute prediction residuals and quantification:
[0271] The attribute prediction value of the current point i is obtained through the above prediction (k is the total number of points in the point cloud). Let (a i ) i∈0…k-1 is the original value of the attribute of the current point, then the attribute residual (r i ) i∈0…k-1 Denoted as:
[0272] Further quantify the prediction residuals:
[0273] Among them, Q iIt represents the quantized attribute residual of the current point i, Qs is the quantization step (Qs), which can be calculated by the quantization parameter QP (QP) specified by CTC.
[0274] (iii) The encoding end reconstructs the attribute value:
[0275] The purpose of reconstruction at the encoding end is to predict the subsequent points. Before reconstructing the attribute value, the residual must be dequantized. is the residual after inverse quantization:
[0276] and predicted value Add up to get the reconstruction value of point i
[0277] There are currently two main types of algorithms for attribute nearest neighbor search based on LOD partitioning: intra-frame nearest neighbor search and inter-frame nearest neighbor search. The inter-frame nearest neighbor search algorithm is detailed below, while the intra-frame nearest neighbor search can be divided into inter-layer nearest neighbor search and intra-layer nearest neighbor search.
[0278] (i) Intra-frame nearest neighbor search:
[0279] Intra-frame nearest neighbor search is divided into two algorithms: inter-layer nearest neighbor search and intra-layer nearest neighbor search. After LOD division, it resembles a pyramid structure, as shown in Figure 23.
[0280] In a specific implementation, for inter-layer nearest neighbor search, the pyramid structure is shown in FIG24. FIG25 is a pyramid structure for inter-layer nearest neighbor search.
[0281] Schematic diagram of the LOD construction process of neighbor search. As shown in Figure 25, different LOD layers are obtained based on geometric information division.
[0282] LOD0, LOD1 and LOD2 use the points in LOD0 to predict the attributes of the points in the next layer of LOD in the nearest neighbor search between layers
[0283] In the process.
[0284] The entire process of searching for the nearest neighbor within a frame is described in detail below.
[0285] During the entire LOD partitioning process, there are three sets: O(k), L(k), and I(k). Among them, k is the index of the LOD layer during LOD partitioning, and I(k) is the input point set during the current LOD layer partitioning. After LOD partitioning, the O(k) set and L(k) set are obtained. The O(k) set stores the sampling point set, and L(k) is the point set in the current LOD layer. The entire LOD partitioning process is as follows:
[0286] (1) Initialization.
[0287] if k=0,L(k)←{}; otherwise,L(k)←L(k-1);
[0288] O(k)←{};
[0289] (2) Using the LOD partitioning algorithm, the sampling points are stored in O(k), and the remaining points are divided into L(k);
[0290] (3) When the next iteration is performed, I←O(k).
[0291] It should be noted here that since the entire LOD division process is based on the Morton code, O(k), L(k) and I(k) store the Morton code index corresponding to the point.
[0292] When performing inter-layer nearest neighbor search, that is, the points in the L(k) set perform nearest neighbor search in the O(k) set, the search algorithm is as follows:
[0293] Taking the nearest neighbor search based on spatial relationships as an example, when predicting the current point P, the neighbor search is performed by using the parent block (Block B) corresponding to point P. As shown in Figure 26, points in the neighbor blocks that are coplanar or colinear with the current parent block are searched for attributes.
[0294] Figure 27A shows a schematic diagram of a coplanar spatial relationship, where there are 6 spatial blocks that have a relationship with the current parent block. Figure 27B shows a schematic diagram of a coplanar and colinear spatial relationship, where there are 18 spatial blocks that have a relationship with the current parent block. Figure 27C shows a schematic diagram of a coplanar, colinear, and co-point spatial relationship, where there are 26 spatial blocks that have a relationship with the current parent block.
[0295] First, the coordinates of the current point are used to obtain the corresponding spatial block. Second, a nearest neighbor search is performed in the previously encoded LOD layer to find the spatial blocks that are coplanar, colinear, and co-point with the current block to obtain the N nearest neighbors of the current point.
[0296] After performing coplanar, colinear, and co-point nearest neighbor searches, if the N nearest neighbors of the current point are still not found, the N nearest neighbors of the current point will be found based on a fast search algorithm. The specific algorithm is as follows:
[0297] As shown in Figure 28, when performing inter-attribute layer prediction, the geometric coordinates of the current point to be encoded are first used to obtain the Morton code corresponding to the current point. Secondly, based on the Morton code of the current point, the first reference point (j) with a value greater than the Morton code of the current point is found in the reference frame. Then, the nearest neighbor search is performed within the range of [j-searchRange, j+searchRange].
[0298] The rest of the specific algorithms for updating the nearest neighbor are the same as the inter-frame nearest neighbor search algorithm and will not be described in detail here. The specific algorithms will be mentioned in the inter-frame nearest neighbor search algorithm.
[0299] In another specific implementation, for the nearest neighbor search within a layer, Figure 29 shows a schematic diagram of the LOD structure of the nearest neighbor search within an attribute layer. As shown in Figure 29, if the intra-layer prediction algorithm is turned on, that is, the syntax element EnableRefferingSameLoD=1, then the nearest neighbor search within the layer can be allowed. For example, for the LOD1 layer, the nearest neighbor point of the current point P6 can be P1, which is not allowed in other layers; if the syntax element EnableRefferingSameLoD=0, then inter-layer search is allowed in other layers. For example, for the LOD1 layer, the nearest neighbor point of the current point P6 can be P4. That is to say, when the intra-layer prediction algorithm is turned on, the nearest neighbor search will be performed in the same layer LOD and the set of encoded points in the same layer to obtain the N nearest neighbors of the current point (the inter-layer nearest neighbor search is also performed).
[0300] When performing prediction within the attribute layer, a nearest neighbor search is performed based on a fast search algorithm. The specific algorithm is shown in Figure 30. The current point is represented by a grid. Assuming the Morton code index of the current point is i, the nearest neighbor search is performed in [i+1, i+searchRange]. The specific nearest neighbor search algorithm is consistent with the inter-frame block-based fast search algorithm and is not described in detail here.
[0301] (ii) Nearest neighbor search between frames:
[0302] Figure 28 is a schematic diagram of attribute inter-frame prediction. As shown in Figure 28, when performing attribute inter-frame prediction, the geometric coordinates of the current point to be encoded are first used to obtain the Morton code corresponding to the current point. Then, based on the Morton code of the current point, the first reference point (j) with a Morton code greater than the current point is found in the reference frame. Then, the nearest neighbor search is performed within the range [j-searchRange, j+searchRange].
[0303] The current nearest neighbor search within and between frames is based on block-based neighborhood search, as shown in Figure 31. As shown in Figure 31, when performing neighborhood search for the current point (Morton code index is i), the points in the reference frame are first divided into N (N=3) layers according to the Morton code. The specific division algorithm is as follows:
[0304] First layer: Assume that the points of the reference frame are numPoints, first divide the points in the reference frame into M (M=2 5 =32) points are divided into one block;
[0305] Second layer: Based on the first layer, the blocks of the first layer are also processed every M (M=2 5 =32) blocks are divided into one block;
[0306] The third layer: Based on the second layer, the blocks of the first layer are also processed every M (M=2 5 =32) blocks are divided into one block;
[0307] Finally, the predicted structure shown in Figure 31 is obtained.
[0308] When performing attribute prediction based on the prediction structure shown in Figure 31, assuming that the Morton code index of the current point to be encoded is i, first obtain the first point in the reference frame whose Morton code is greater than or equal to the current point, with index j. Then, the block index of the reference point is calculated based on j. The specific calculation method is as follows:
[0309] First layer: BucketSize_0 = 2 5 =32;
[0310] Second layer: BucketSize_1=2 5 =32×BucketSize_0=1024;
[0311] Third layer: BucketSize_2=2 5 =32×BucketSize_1=32768.
[0312] Assume that the reference range in the prediction frame of the current point is [j-searchRange, j+searchRange], use j-searchRange to calculate the starting index of the third layer, and use j+searchRange to calculate the ending index of the third layer; secondly, first determine whether some blocks in the second layer need to be searched for the nearest neighbor in the blocks of the third layer, and then go to the second layer, and determine whether a search is needed for each block in the first layer. If some blocks in the first layer need to be searched for the nearest neighbor, then the midpoints of some blocks in the first layer will be judged point by point to update the nearest neighbor.
[0313] The following is an introduction to the algorithm based on index calculation block. Assuming that the Morton code index corresponding to the current point is index, then the index of the corresponding third-level block is: idx_2 = index / BucketSize_2
[0314] After obtaining the block index idx_2 of the third layer, the start index and end index of the block corresponding to the current block in the second layer can be obtained using idx_2: startIdx1=idx_2×BucketSize_1 endIdx=idx_2×BucketSize_1+BucketSize_1-1
[0315] Similarly, the index of the first layer block is obtained based on the index of the second layer block based on the same algorithm.
[0316] When performing a block-based nearest neighbor search, we first determine whether the current block needs to be searched for the nearest neighbor. This is called filtering the nearest neighbor search for the block. Each spatial block can be obtained through two variables: minPos and maxPos. MinPos represents the minimum value of the block, and maxPos represents the maximum value of the block.
[0317] Assume that the distance to the farthest point among the N nearest neighbors of the current point is Dist, the coordinates of the point to be encoded are (x, y, z), and the current block is represented by (minPos, maxPos), where minPos is the minimum value of the three dimensions of the bounding box and maxPos is the maximum value of the three dimensions of the bounding box. The distance D between the current point and the bounding box is calculated as follows: int dx = int(std::max(std::max(minPos[0]-point[0],0),point[0]-maxPos[0])); int dy = int(std::max(std::max(minPos[1]-point[1],0),point[1]-maxPos[1])); int dz = int(std::max(std::max(minPos[2]-point[2],0),point[2]-maxPos[2])); D = dx+dy+dz;
[0318] When D is less than or equal to Dist, the points in the current block will be traversed.
[0319] (b) Lifting transform encoding of point cloud attribute information.
[0320] Figure 32 is a schematic diagram of the encoding process of a lifting transform. The lifting transform also predicts the attributes of the point cloud based on LOD. The difference from the predictive transform is that the lifting transform first divides the LOD into high and low layers, predicts in the reverse order of the LOD generation layer, and introduces an update operator in the prediction process to update the quantized weights of the low-level LOD midpoints to improve the accuracy of the prediction. This is because the attribute values of the low-level LOD midpoints are frequently used to predict the attribute values of the high-level LOD midpoints, and the points in the low-level LOD should have greater influence.
[0321] Step 1: Segmentation process.
[0322] The segmentation process is to divide the complete LOD layer into a low LOD layer L(N) and a high LOD layer H(N). If a point cloud has three LOD layers, namely (LOD l ) l=0,1,2 , after segmentation, LOD2 is the high LOD layer, denoted as H(N), (LOD l ) l=0,1 It is the low LOD layer, denoted as L(N).
[0323] Step 2: Prediction process.
[0324] The point in the high-level LOD selects the attribute information of the nearest neighbor point from the low-level as the attribute prediction value P(N) of the current point to be coded. The prediction residual D(N) is recorded as: D(N) = H(N) - P(N)#
[0325] Step 3: Update process.
[0326] Update the attribute prediction residual D(N) in the high-level LOD to obtain U(N), and use U(N) to improve the attribute value of the midpoint of the low-level LOD, as shown in the following formula: L′(N)=L(N)+U(N)
[0327] The above process will iterate continuously until the lowest LOD according to the order of LOD from high to low.
[0328] Because the LOD-based prediction scheme makes points in the lower LOD layers more influential, the transformation scheme based on the lifting wavelet transform introduces quantization weights and updates the prediction residual based on the prediction residual D(N) and the distance between the prediction point and the adjacent points. Finally, the quantization weights used in the transformation process are used to adaptively quantize the prediction residual. It is important to note that the quantization weight value of each point can be determined by geometric reconstruction at the decoding end, so the quantization weights should not be encoded.
[0329] (c) Region-adaptive hierarchical transformation.
[0330] The Regional Adaptive Hierarchical Transform (RAHT) is a Haar wavelet transform that transforms point cloud attribute information from the spatial domain to the frequency domain, further reducing the correlation between point cloud attributes. Its main concept is to transform the nodes in each layer in the X, Y, and Z dimensions in a bottom-up manner according to the octree structure (as shown in Figure 34), and iterate until the root node of the octree. As shown in Figure 33, the basic concept is to perform a wavelet transform based on the hierarchical structure of the octree, associate attribute information with the octree nodes, and recursively transform the attributes of occupied nodes under the same parent node in a bottom-up manner, transforming the nodes in each layer in the X, Y, and Z dimensions until the root node of the octree is reached. During the hierarchical transformation process, the low-pass / low-frequency (DC) coefficients obtained after the transformation of the nodes in the same layer are passed to the nodes in the next layer for further transformation, while all high-pass / high-frequency (AC) coefficients can be encoded using an arithmetic coder.
[0331] During the transformation process, the DC coefficients (direct current components) of the transformed nodes at the same layer are passed to the previous layer for further transformation, while the AC coefficients (alternating current components) of each layer are quantized and encoded. The main transformation processes are described below.
[0332] FIG35A is a schematic diagram of a RAHT forward transformation process, and FIG35B is a schematic diagram of a RAHT inverse transformation process. For the transformation and inverse transformation process corresponding to RAHT, assuming that g′ L,2x,y,z and g′L,2x+1,y,z are the DC coefficients of two neighboring points in the L layer. After linear transformation, the information of the L-1 layer is the AC coefficient f′ L-1,x,y,z and DC coefficient g′ L-1,x,y,z ; Then, f′ L-1,x,y,z No more transformation will be performed, and quantization coding will be performed directly, g′ L-1,x,y,z The nearest neighbor will continue to be searched for transformation. If no neighbor is found, it will be directly passed to the L-2 layer. That is, the RAHT transformation is only effective for nodes with neighbor points. Nodes without neighbor points will be directly passed to the previous layer. In the above transformation process, g′ L,2x,y,z The weights (the number of non-empty child nodes in the node) corresponding to g′L, 2x+2, y, and z are w′ respectively. L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), g′ L-1,x,y,z The weight is w′ L-1,x,y,z , then the general transformation formula is:
[0333] Among them, T w0,w1 is the transformation matrix:
[0334] The transformation matrix will be updated as the weights corresponding to each point change adaptively. The above process will be iterated and updated continuously according to the partitioning structure of the octree until the root node of the octree is reached.
[0335] In a specific implementation method, for regional adaptive hierarchical intra-frame prediction transform coding, prediction can be performed based on RAHT transform coding. As shown in Figure 33, RAHT attribute transform is based on the order of the octree hierarchy, and the transformation is continuously performed from the voxel level until the root node is obtained, thereby completing the hierarchical transform coding of the entire attribute. In the prediction transform coding, attribute prediction transform coding is also performed based on the hierarchical order of the octree, but the transformation is continuously performed from the root node to the voxel level. In each RAHT attribute transformation process, attribute prediction transform coding is performed based on a 2×2×2 block. The specific example is shown in Figure 36. As shown in Figure 36, it can be seen that the grid filling block is the current block to be encoded, and the diagonal filling block is some neighboring blocks that are coplanar and colinear with the current block to be encoded. Among them, the attributes of the current block are normalized in the following way: A node =∑ p∈node attribute(p); w node =∑ pεnode 1={p∈node}; a node =A node / w node .
[0336] First, the attributes of the current block can be obtained by the attributes of the points contained in the current block, namely: A node By simply adding the attributes of the points in the current block, and then normalizing the attributes of the current block with the number of points in the current block, the mean value a of the current block attribute is obtained. node The attribute transform coding is performed using the mean value of the current block attribute. The specific coding process is shown in Figure 37.
[0337] As shown in Figure 37, the overall process of RAHT attribute prediction transform coding is shown. (a) is the current block and some coplanar and colinear neighboring blocks, (b) is the normalized block, (c) is the upsampled block, (d) is the attribute of the current block, and (e) is the attribute of the predicted block obtained by linear weighted fitting using the neighboring attributes of the current block. Finally, attribute transformation is performed on both to obtain DC and AC coefficients, and the AC coefficients are predictively coded.
[0338] The predicted attributes of the current block can be obtained by linear fitting as shown in Figure 38. As shown in Figure 38, 19 neighboring blocks of the current block are first obtained. Then, the spatial geometric distance between the neighboring blocks and each sub-block of the current block is used to perform a linear weighted prediction of the attributes of each sub-block. Finally, the predicted block attributes obtained using the linear weighting are transformed. The specific attribute transformation is shown in Figure 39.
[0339] In Figure 39, (d) represents the original value of the attribute, and the corresponding attribute transformation coefficient is as follows:
[0340] (e) represents the attribute prediction value, and the corresponding attribute transformation coefficient is as follows:
[0341] By subtracting the original value of the attribute from the predicted value of the attribute, the prediction residual can be obtained as follows:
[0342] In another specific implementation method 1, for regional adaptive hierarchical inter-frame prediction transform coding, in the G-PCC attribute inter-frame prediction coding scheme, if the inter-frame prediction coding scheme is started, the RAHT attribute transform coding structure is first constructed based on the geometric information of the current node to be coded, that is, the nodes are continuously merged at the voxel level until the root node of the entire RAHT transform tree is obtained, thereby completing the transform coding hierarchical structure of the entire attribute. Secondly, according to the RAHT attribute transform coding structure, the root node is divided to obtain N child nodes (N is less than or equal to 8) of each node. First, the attributes of the N child nodes are independently orthogonally transformed using the RAHT transform to obtain DC coefficients and AC coefficients. Then, the AC coefficients of the N child nodes are subjected to attribute inter-frame prediction in the following manner. The process is as follows:
[0343] The inter-frame prediction node of the current node is valid: that is, if the same-position node exists, the attribute of the prediction node is directly used as the attribute prediction value of the current node to be encoded; wherein, the current node to be encoded can also be understood as the current node.
[0344] The current node can find a node with exactly the same position as the current node in the cache of the reference frame: that is, if the same-position node exists, the AC coefficients of the M child nodes contained in the same-position node are directly used as the AC coefficient attribute prediction values of the N child nodes of the current node.
[0345] It should be noted that, if the AC coefficient of the prediction node is not zero, the AC coefficient of the prediction node is directly used as the AC coefficient prediction value.
[0346] If the inter-frame prediction node for the current node is invalid (i.e., if the co-located node does not exist), the attribute prediction value of the adjacent node within the frame is used as the attribute prediction value of the node to be encoded. Furthermore, based on this, the existing RAHT inter-frame coding selects the optimal RAHT coding mode for each layer: intra-frame prediction coding or inter-frame prediction coding. If the cost of the intra-frame prediction coding mode is less than the cost of the inter-frame prediction coding mode, RAHT intra-frame prediction is performed on the current layer; otherwise, RAHT inter-frame prediction is performed.
[0347] In the above-mentioned G-PCC attribute RAHT inter-frame prediction coding, when the inter-frame attribute prediction coding is turned on, when the attributes of the current node are inter-frame predicted, the reconstructed attribute information of the co-located node of the reference frame is used for prediction coding. Specifically, the position of the node to be coded is used to obtain the co-located node in the reference frame (that is, the spatial position is exactly the same). If the co-located node can be found in the reference frame, the attributes of the co-located node will be used to perform inter-frame prediction on the attributes of the current node to be coded. Otherwise, the attribute information of the current node is intra-frame predicted (that is, the attribute prediction value of the adjacent node in the frame is used as the attribute prediction value of the node to be coded). Based on this coding scheme, the attribute coding efficiency of the point cloud can be further improved. Furthermore, the existing method only performs prediction coding based on the reconstructed attribute information of the node with the same reference frame, but does not consider other factors.
[0348] Based on the above analysis, in an embodiment of the present application, a scheme for implementing inter-frame prediction coding based on the type of codec unit is provided. This scheme first introduces the concept of the type of codec unit in the RAHT attribute inter-frame prediction coding. Based on the different types of codec units, it is determined whether to make a reference to a unidirectional prediction list, a bidirectional prediction list, or no reference to a prediction list. Secondly, based on a single or bidirectional reference list, or the reconstructed attributes / reconstructed AC coefficients of neighboring nodes in the frame, attribute inter-frame prediction coding is performed on the attribute AC coefficients of the current node to be coded. Compared with the above-mentioned prediction coding scheme, such a coding scheme can flexibly perform predictions in different prediction methods for different coding units. In this way, for each node to be coded, the reference object for inter-frame prediction can be selected, which is not necessarily the same type as the original coding scheme, and is more flexible and diverse, thereby more effectively improving the coding and decoding efficiency.
[0349] The present application provides a decoding method, which is applied to a decoder. FIG40 is a schematic diagram of an implementation flow of the decoding method provided in the present application. As shown in FIG40 , the decoding method includes the following steps S101 to S102:
[0350] S101, parsing a bitstream to determine first syntax element information of a current decoding unit of a current frame, where the first syntax element information represents a type of the decoding unit; different types of decoding units correspond to different reference information of reference frames;
[0351] S102: Based on the type of the current decoding unit indicated by the first syntax element, predict the current node to obtain an attribute prediction value of the current node.
[0352] In an embodiment of the present application, for the point cloud decoding method, the decoder can parse the code stream to obtain syntax element information and other decoding-related information, and perform decoding processing on the current node.
[0353] The premise for implementing the decoding method provided in the embodiment of the present application is that before the decoder decodes the current node, the decoder will determine the type of decoding unit for the current decoding unit where the current node is located, and the decoder will perform different decoding processing based on the type of the current decoding unit where the current node is located.
[0354] In the embodiment of the present application, the decoding unit can be any one of the frame level, block level, slice level or RAHT decoding level, and the embodiment of the present application is not limited.
[0355] It should be noted that in the embodiment of the present application, the decoder can decode multiple frames in the current sequence according to the decoding order. For the decoding process of each frame, the decoder then parses each coding unit separately until the decoding of the node is parsed.
[0356] In the embodiment of the present application, the decoding process of a decoder for a node is introduced.
[0357] In S101, when decoding the current node, the decoder can parse the bitstream to obtain the first syntax element information corresponding to the current decoding unit in which the current node is located. This first syntax element information is generated by the encoder when encoding the current coding unit. The first syntax element information is used to indicate the type of the decoding unit. Therefore, the decoder can determine the type of the current decoding unit in which the current node is located by parsing the first syntax element information in the bitstream.
[0358] It should be noted that there are three types of decoding units: a first type, a second type, and a third type.
[0359] The reference information of the reference frames corresponding to the first type, the second type and the third type are different. The reference information here can be understood as the index number of the reference index information.
[0360] In an embodiment of the present application, the third type represents that the current decoding unit has no reference index information; the second type represents that the current decoding unit has at most one reference index information; and the first type represents that the current decoding unit has at most two reference index information.
[0361] For example, in the embodiment of the present application, the first type of decoding unit can be represented as a B decoding unit, the second type of decoding unit can be represented as a P decoding unit, and the third type of decoding unit can be represented as an I decoding unit. The definitions are as follows:
[0362] I decoding unit: the current decoding unit has no reference index information;
[0363] P decoding unit: The current decoding unit has at most one reference index information;
[0364] B decoding unit: The current decoding unit can have up to two reference index information.
[0365] In S102, since the decoder has determined the type of the current decoding unit, the decoder predicts the current node based on the type of the current decoding unit indicated by the first syntax element and adopts the reference attribute information corresponding to the type of the current decoding unit to obtain the attribute prediction value of the current node.
[0366] In the embodiment of the present application, different types of decoding units correspond to different reference information of reference frames. Therefore, the decoder can perform different forms of decoding processing on the nodes included in the decoding unit according to the different types of decoding units.
[0367] It is understood that when determining the attribute prediction value of the current node, the type of the current decoding unit is first determined. Based on the type of the current decoding unit, different predictions are then performed to determine the attribute prediction value of the current node. This allows the decoder to perform targeted and diverse attribute predictions based on different decoding unit types, helping to improve the accuracy of inter-frame attribute prediction.
[0368] In the embodiment of the present application, the decoding method when the current decoding unit is of the first type may further include: S1021 to S1024. As follows:
[0369] S1021: When the type of the current decoding unit indicated by the first syntax element information is the first type, parse and determine two reference index information of the current decoding unit;
[0370] S1022. Determine a first reference frame and a second reference frame based on two reference index information;
[0371] S1023. Search, based on the acquired geometric information of the current node, for a first co-located node of the parent node of the current node in the first reference frame, and search for a second co-located node of the parent node of the current node in the second reference frame;
[0372] S1024: Perform inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node.
[0373] In an embodiment of the present application, when the first syntax element information indicates that the type of the current decoding unit is the first type, it means that all nodes of the current decoding unit can refer to two reference index information when making predictions. Therefore, the decoder can parse the code stream to obtain the two reference index information corresponding to the current decoding unit transmitted by the encoder. The decoder can determine the corresponding first reference frame and second reference frame information from at least one reference list based on the two reference index information obtained by parsing. Then, based on the geometric information of the current node, the first co-located node of the parent node of the current node is searched in the first reference frame, and the second co-located node of the parent node of the current node is searched in the second reference frame.
[0374] It should be noted that, in the embodiment of the present application, the decoding method provided in the embodiment of the present application can be used for all nodes other than the first root node. For a root node without a parent node, the prediction process can be directly performed by finding its co-located node in the reference frame, which is not limited in the embodiment of the present application.
[0375] In an embodiment of the present application, the decoder may first determine the parent node of the current node based on the geometric information of the current node.
[0376] In this embodiment of the present application, the first and second co-located nodes refer to nodes that have the same geometric information / geometric coordinates as the parent node of the current node in the first and second reference frames. In this embodiment of the present application, the current frame, the first reference frame, and the second reference frame can be understood as different point cloud frames.
[0377] In the embodiment of the present application, there is no limitation on the relationship between the first reference frame and the second reference frame and the current frame. The first reference frame and the second reference frame can be two frames forward of the current frame or two frames backward of the current frame. Alternatively, the first reference frame can be the forward reference frame of the current frame and the second reference frame can be the backward reference frame of the current frame.
[0378] In the embodiment of the present application, the decoder performs inter-frame attribute prediction on the current node based on the first co-located node and the second co-located node to obtain the attribute prediction value of the current node, including:
[0379] Method 1: When the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is determined based on the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node.
[0380] Method 2: When the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the second child node of the second co-located node.
[0381] Method three: when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the first child node of the first co-located node.
[0382] Method 4: When the first co-located node does not exist in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is determined based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
[0383] It should be noted that in the embodiment of the present application, the parent node of the current node is used to determine the co-located node in the reference frame. However, when the existence of the co-located node is determined, multiple child nodes of the co-located node are determined based on the independent orthogonal transformation of the co-located node, and the prediction node corresponding to the current node is determined from the multiple child nodes, and the attribute reconstruction value of the predicted node is used to determine the attribute prediction value of the current node.
[0384] For method one, the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node are weighted according to the first weighting coefficient of the attribute reconstruction value of the first child node of the first co-located node and the second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node to obtain the attribute prediction value of the current node.
[0385] The first weighting coefficient is equal to the first value, and the second weighting coefficient is equal to the second value.
[0386] In some embodiments of the present application, the first weighting coefficient is determined based on the interval between the acquisition time of the current frame and the first reference frame; or, the first weighting coefficient is determined based on the geometric information of the current node and the attribute distribution information of the first child node.
[0387] In some embodiments of the present application, the second weighting coefficient is determined according to the interval between the acquisition time of the current frame and the second reference frame; or,
[0388] A second weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the second child node.
[0389] In some embodiments of the present application, a code stream is parsed to obtain a first weighting coefficient and a second weighting coefficient.
[0390] In some embodiments of the present application, a code stream is parsed to obtain a first weighting coefficient index and a second weighting coefficient index; based on the first weighting coefficient index and the second weighting coefficient index, the first weighting coefficient and the second weighting coefficient are determined from a coefficient list.
[0391] For example, in some embodiments, the first weighting coefficient is equal to the first value, and the second weighting coefficient is equal to the second value. That is, the first weighting coefficient and the second weighting coefficient are predefined values, which may be equal or unequal, but their sum is equal to 1.
[0392] In other embodiments, the first weighting coefficient may be determined based on the time interval between the acquisition of the current frame and the first reference frame; and / or the second weighting coefficient may be determined based on the time interval between the acquisition of the current frame and the second reference frame. For example, the longer the time interval, the larger the value of the weighting coefficient. If the time interval between the acquisition of the current frame and the first reference frame is greater than the time interval between the acquisition of the current frame and the second reference frame, the first weighting coefficient is smaller than the second weighting coefficient.
[0393] In some embodiments, a mapping table between acquisition time intervals and weighting coefficients can be predefined. In this way, the decoder can determine the first and second weighting coefficients by looking up the table based on the weighted index of the coefficients. Of course, determining the weighting coefficients based on this table lookup method is not limited to this. In short, the corresponding weighting coefficients can be determined based on the acquisition time interval between two frames.
[0394] In some further embodiments, the encoder may also determine the first weighting coefficient and the second weighting coefficient as follows: determine the rate-distortion costs of multiple candidate weighting coefficient groups; wherein the candidate weighting coefficient groups include a first candidate weighting coefficient of the attribute reconstruction value of the first co-located node and a second candidate weighting coefficient of the attribute reconstruction value of the second co-located node; select a candidate weighting coefficient group with the smallest rate-distortion cost from the multiple candidate weighting coefficient groups; use the first candidate weighting coefficient in the candidate weighting coefficient group with the smallest rate-distortion cost as the first weighting coefficient, and use the second candidate weighting coefficient in the candidate weighting coefficient group with the smallest rate-distortion cost as the second weighting coefficient.
[0395] It can be understood that at the encoding end, since the actual attribute value of the current node is known, the rate-distortion cost of the candidate weighting coefficient group can be determined. Accordingly, the method further includes: the encoder writes the first weighting coefficient and the second weighting coefficient obtained based on the rate-distortion cost into the bitstream, and the decoder can obtain the first weighting coefficient and the second weighting coefficient by parsing the bitstream. The method further includes: the encoder determines the first weighting coefficient index and the second weighting coefficient index of the first weighting coefficient and the second weighting coefficient index from the coefficient list for the first weighting coefficient and the second weighting coefficient obtained based on the rate-distortion cost, and writes them into the bitstream, and the decoder can obtain the first weighting coefficient index and the second weighting coefficient index by parsing the bitstream.
[0396] The above embodiment describes a method for determining the attribute prediction value of the current node when both the first and second co-located nodes exist. It is understandable that the first co-located node may not exist in the first reference frame, and / or the second co-located node may not exist in the second reference frame. In this case, how to perform inter-frame attribute prediction on the current node based on the first and second co-located nodes to obtain the attribute prediction value of the current node?
[0397] For method 2, when the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding second child node of the second co-located node.
[0398] For method three, when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding first child node of the first co-located node.
[0399] In some embodiments of the present application, the implementation of the first method or the implementation of S1024 may further include:
[0400] S201: When a first co-located node exists in a first reference frame and a second co-located node exists in a second reference frame, determine a first difference in the number of occupied child nodes between the first co-located node and the parent node of the current node based on placeholder information of the first co-located node and the parent node of the current node;
[0401] S202: Determine a second difference in the number of occupied child nodes between the second co-located node and the parent node of the current node based on the placeholder information of the second co-located node and the parent node of the current node.
[0402] S203: Determine a first weighting coefficient for the attribute reconstruction value of the first child node and a second weighting coefficient for the attribute reconstruction value of the second child node of the second co-located node according to a relationship between the first difference number and the second difference number;
[0403] S204 : Using the first weighting coefficient and the second weighting coefficient, weight the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node to determine the attribute prediction value of the current node.
[0404] In some embodiments, determining a first weighting coefficient for the reconstructed attribute value of the first child node and a second weighting coefficient for the reconstructed attribute value of the second child node of the second co-located node based on a relationship between the first difference number and the second difference number includes at least one of the following:
[0405] (1) In the case where the first difference number is equal to the second difference number, the first weighting coefficient is determined to be equal to the second weighting coefficient.
[0406] (2) When the first difference number is smaller than the second difference number, the first weighting coefficient is determined to be larger than the second weighting coefficient.
[0407] (3) In the case where the first difference number is greater than the second difference number, the first weighting coefficient is determined to be smaller than the second weighting coefficient.
[0408] Exemplarily, in some embodiments, when the first difference number is less than the second difference number, the attribute prediction value of the current node is equal to the attribute reconstruction value of the first child node of the first co-located node, that is, the first weighting coefficient is 1 and the second weighting coefficient is 0; when the first difference number is greater than the second difference number, the attribute prediction value of the current node is equal to the attribute reconstruction value of the second child node of the second co-located node, that is, the first weighting coefficient is 0 and the second weighting coefficient is 1.
[0409] It should be noted that the first child node is the predicted node corresponding to the current node after the first co-located node is transformed; the second child node is the predicted node corresponding to the current node after the second co-located node is transformed.
[0410] It can be understood that the occupancy information of the first co-located node, the second co-located node, and the parent node of the current node all records the occupancy status of their respective child nodes. The smaller the difference in the number of occupied child nodes between the parent node of the current node and the co-located node, the stronger the geometric correlation between the corresponding two point clouds / frames. Correspondingly, the stronger the attribute correlation between the two point clouds / frames, the greater the temporal redundancy between them. Therefore, when the first difference in the number of occupied child nodes between the first co-located node and the parent node of the current node is less than the second difference in the number of occupied child nodes between the second co-located node and the parent node of the current node, it indicates that there is greater temporal redundancy between the current frame and the first reference frame than between the current frame and the second reference frame. Therefore, in this case, the attribute prediction value of the current node can be determined based on the attribute reconstruction value of the first child node of the first co-located node. For example, the attribute reconstruction value of the first child node of the first co-located node can be directly used as the attribute prediction value of the current node; in this way, compared to determining the attribute prediction value of the current node based on the attribute reconstruction value of the second child node of the second co-located node in this case, temporal redundancy can be better compressed, thereby improving the encoding and decoding performance of the point cloud. Similarly, when the first difference number is greater than the second difference number, determining the attribute prediction value of the current node based on the attribute reconstruction value of the second child node of the second co-located node can better compress time redundancy and thus improve the encoding and decoding performance of the point cloud compared to determining the attribute prediction value of the current node based on the attribute reconstruction value of the first child node of the first co-located node.
[0411] In the embodiment of the present application, the decoding method when the current decoding unit is of the second type may further include: S1025 to S1028. As follows:
[0412] S1025: When the type of the current decoding unit indicated by the first syntax element information is the second type, parse and determine reference index information of the current decoding unit;
[0413] S1026: Determine a third reference frame based on a reference index information;
[0414] S1027. Search for a third co-located node of the parent node of the current node in the third reference frame according to the obtained geometric information of the current node.
[0415] S1028. Perform inter-frame attribute prediction on the current node according to the third co-located node to obtain an attribute prediction value of the current node.
[0416] In an embodiment of the present application, when the first syntax element information indicates that the type of the current decoding unit is the second type, it means that all nodes of the current decoding unit can refer to a reference index information when making predictions. Therefore, the decoder can parse the bitstream to obtain a reference index information corresponding to the current decoding unit transmitted by the encoder. Based on the reference index information obtained by parsing, the decoder can determine the information of the corresponding third reference frame from at least one reference list. Then, based on the geometric information of the current node, the third co-located node of the parent node of the current node is searched in the first reference frame.
[0417] It should be noted that, in the embodiment of the present application, the decoding method provided in the embodiment of the present application can be used for all nodes other than the first root node. For a root node without a parent node, the prediction process can be directly performed by finding its co-located node in the reference frame, which is not limited in the embodiment of the present application.
[0418] In an embodiment of the present application, the decoder may first determine the parent node of the current node based on the geometric information of the current node.
[0419] In this embodiment of the present application, a third co-located node refers to a node that has the same geometric information / geometric coordinates as the parent node of the current node in the third reference frame. In this embodiment of the present application, the current frame and the third reference frame can be understood as different point cloud frames. In some embodiments, the point cloud arrangement structure of the current frame and the third reference frame is a RAHT attribute transform decoding structure.
[0420] In an embodiment of the present application, the third reference frame is a forward reference frame of the current frame, or the third reference frame is a backward reference frame of the current frame, which is not limited in the embodiment of the present application.
[0421] In the embodiment of the present application, the decoder performs inter-frame attribute prediction on the current node based on the third co-located node to obtain the attribute prediction value of the current node, including:
[0422] (1) when a third co-located node exists in a third reference frame, determining an attribute prediction value of the current node according to an attribute reconstruction value of a third child node of the third co-located node;
[0423] (2) When the third co-located node does not exist in the third reference frame, the attribute prediction value of the current node is determined based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
[0424] Exemplarily, when a third co-located node exists in a third reference frame, the attribute reconstruction value of the third child node of the third co-located node is equal to the attribute prediction value of the current node.
[0425] In an embodiment of the present application, the decoding method for when the current decoding unit is of the third type may also include: when the type of the current decoding unit indicated by the first syntax element information is the third type, determining the attribute prediction value of the current node based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
[0426] In some embodiments of the present application, reference index information is determined through a reference list. The present application embodiment includes a process for establishing a reference list.
[0427] In some embodiments of the present application, at least one first reference list is determined based on index information of a decoded frame; the first reference list represents a storage location mapping relationship of reference frame indexes.
[0428] In some embodiments of the present application, the at least one first reference list includes: two first reference lists; the reference index information includes: reference list index information;
[0429] Determining the first reference frame and the second reference frame based on two reference index information includes: determining the first reference frame index and the second reference frame index from two first reference lists according to the respective reference list index information; and determining the first reference frame and the second reference frame based on the first reference frame index and the second reference frame index.
[0430] In some embodiments of the present application, at least one first reference list includes: a first reference list; reference index information includes: reference list index information; determining a third reference frame based on a reference index information includes: determining a third reference frame index from a first reference list according to a reference list index information; determining a third reference frame based on the third reference frame index.
[0431] In some embodiments of the present application, at least one second reference list is determined based on index information of the decoded frame; the second reference list represents a storage location mapping relationship of the reference frames.
[0432] In some embodiments of the present application, the at least one second reference list includes: two second reference lists; the reference index information includes: reference frame index information;
[0433] Determining the first reference frame and the second reference frame based on the two reference index information includes: determining the first reference frame and the second reference frame from two second reference lists according to the respective reference frame index information.
[0434] In some embodiments of the present application, the at least one second reference list includes: a second reference list; the reference index information includes: reference frame index information;
[0435] Determining the third reference frame based on a reference index information includes: determining the third reference frame from a second reference list according to the reference frame index information.
[0436] It should be noted that the reference index information can be a reference list index or a reference frame index directly. However, the reference list index saves more codewords in transmission than the reference frame index.
[0437] In an embodiment of the present application, the decoder can construct at least one reference list, and based on different mapping relationships, it can be divided into a first reference list and a second reference list. The embodiment of the present application does not limit the construction method of the reference list.
[0438] In some embodiments of the present application, the current frame index of the current frame is determined; after the current frame is decoded, the next frame is decoded in a decoding order until the current sequence is decoded, and the frame index of each frame is determined; based on the frame index of each frame, the decoded frames are arranged to obtain a decoding sequence.
[0439] In some embodiments of the present application, a code stream is parsed to determine second syntax element information of a current coding unit, where the second syntax element information indicates a current frame index.
[0440] It should be noted that in the embodiment of the present application, the decoding order and the playback order of the current sequence are not necessarily consistent. Therefore, it is necessary to parse or determine the current frame index of the current decoding unit during the decoding process so that when the decoding is completed, the frame indexes can be re-sorted to determine the decoding sequence.
[0441] Exemplarily, the following description is given by taking the case where the first type of decoding unit is a B decoding unit, the second type of decoding unit is a P decoding unit, and the third type of decoding unit is an I decoding unit.
[0442] It should be noted that in existing RAHT attribute inter-frame prediction, only forward reference frames are referenced to predict the attributes of the current frame to be decoded. This inter-frame prediction decoding scheme can effectively remove attribute redundancy between adjacent decoded frames to a certain extent. However, for nodes in subsequent decoded frames, not only forward adjacent frames can be used as reference frames, but also more forward reference frames can be referenced to perform inter-frame attribute prediction for the current node. As shown in Figure 41, the decoding order of the constructed reference list is: 07123456. When encoding the attributes of frame 1, only the attribute values in frame 0 can be referenced. However, when decoding frame 2, not only the attribute values in frame 1 can be referenced, but also the attribute values of nodes in frame 0. Based on this, when multiple reference frames are available for subsequent decoded frames, the attributes of multiple reference frames can be utilized to further remove attribute redundancy between the current frame to be decoded and the forward reference frames, thereby further improving the efficiency of point cloud attribute decoding.
[0443] An embodiment of the present application can propose a bidirectional reference inter-frame prediction coding scheme based on RAHT attribute coding. When RAHT encoding is performed on the attribute, a bidirectional prediction reference list is introduced, and the reconstructed attributes in the bidirectional reference list are used to predict and decode the attributes in the current decoding frame.
[0444] For example, as shown in Figure 42, frame 0 belongs to the I decoding unit, frame 1 belongs to the P decoding unit, and frames 2 to 7 belong to the B decoding unit. In the embodiment of the present application, the decoding unit is not limited, that is, the decoding unit can be a frame, a tile, a slice, or a RAHT decoding layer, etc.
[0445] For B coding units, each node in the coding unit can have more reference nodes than P coding units, that is, more reference attribute information can be provided for each coding node. In the embodiment of the present application, there is no restriction on how to select and use multiple reference attributes for inter-frame prediction, that is, the RDO coding end algorithm can be used to select an optimal prediction mode for each node, or the attributes of multiple co-located nodes can be used for weighted prediction, etc. In this way, for each node to be encoded, the reference objects for inter-frame prediction can be selected more than the original coding scheme, thereby more effectively removing the time slot redundancy characteristics between adjacent coding frames.
[0446] Furthermore, due to the introduction of bidirectional reference frames, there will be a situation where the decoding order and playback order of the decoded frames are inconsistent. Therefore, it is necessary to add a syntax element to each decoding unit to indicate the playback order of the current decoding unit, that is, the current frame index of the current decoding unit, so that after the decoding end completes the decoding point cloud information, it can rearrange the decoding units in the playback order according to the frame index of the decoding unit. For example, the bidirectional decoding structure can be shown in Figure 42 or Figure 43. In Figure 42, the decoding order of the reference list constructed is: 01234567. In Figure 43, the decoding order of the reference list constructed is: 07421365. And 1 frame, 3 frames, and 5 frames are B decoding units, 2 frames, 4 frames, 6 frames, and 7 frames are P decoding units, and 0 frame is an I decoding unit.
[0447] It should be noted that for the bidirectional decoding structure shown in Figure 41, the decoding order is consistent with the original playback order, but for the bidirectional decoding structures shown in Figures 42 and 43, the decoding order is inconsistent with the original playback order.
[0448] In an embodiment of the present application, for each decoding unit, it is first necessary to define the playback order of the current decoding unit, so that the decoding end can rearrange the frames according to the playback order after completing the decoding; secondly, for each decoding unit, when there is no reference index information, that is, the current decoding unit is an I decoding unit, only intra-frame prediction can be performed. When there is at most one reference index information, that is, the current decoding unit is a P decoding unit, intra-frame prediction or inter-frame prediction can be used, and the information of the reference frame for inter-frame prediction is obtained in the reference list through the reference index information. When there are at most two reference index information, that is, the current decoding unit is a B decoding unit, intra-frame decoding or inter-frame prediction can be used, and the information of the reference frame for inter-frame prediction is obtained in the reference list through the reference index. The embodiment of the present application does not limit the construction of the reference list, and it can be constructed in the manner shown in Figures 41 to 43, and other construction methods are also not limited.
[0449] In some embodiments of the present application, in the RAHT inter-frame prediction transform coding scheme, the above-mentioned attribute prediction value refers to the AC coefficient prediction value, and the above-mentioned attribute reconstruction value refers to the AC coefficient reconstruction value. Based on this, in some embodiments, the attribute prediction value of the current node is the AC coefficient prediction value of the current node; the decoding method further includes:
[0450] Parse the bitstream to obtain the AC coefficient residual value of the current node;
[0451] Determine the reconstructed AC coefficient value of the current node according to the AC coefficient residual value and the AC coefficient predicted value of the current node;
[0452] An independent orthogonal inverse transform is performed on the AC coefficient reconstruction value of the current node to obtain the attribute reconstruction value of the current node. The attribute reconstruction value obtained by the independent orthogonal inverse transform is not the AC coefficient reconstruction value.
[0453] The embodiment of the present application provides an encoding method. FIG44 is a schematic diagram of an implementation flow of the decoding method provided in the embodiment of the present application. As shown in FIG44 , the encoding method includes S301-S303:
[0454] S301. Determine at least one reference list based on index information of a coded frame;
[0455] S302: Perform pre-estimation based on at least one reference list to determine the type of a current coding unit of a current frame, and use first syntax element information to indicate the type of the current coding unit;
[0456] S303: Based on the type of the current coding unit, predict the current node to obtain an attribute prediction value of the current node.
[0457] In an embodiment of the present application, the encoder may determine at least one reference list based on information related to an encoded frame. Based on the at least one reference list, the encoder may select different numbers of reference frames, or no reference frames, to pre-estimate the current coding unit. The number of reference index information of the reference frame with the best encoding performance is selected, and the type of the current coding unit may be determined based on the determined number of reference index information.
[0458] It should be noted that the types of coding units may include three types: a first type, a second type and a third type.
[0459] The reference information of the reference frames corresponding to the first type, the second type and the third type are different. The reference information here can be understood as the index number of the reference index information.
[0460] In some embodiments of the present application, the type of the current coding unit is the third type, indicating that the current coding unit has no reference index information;
[0461] The type of the current coding unit is the second type, indicating that the current coding unit has at most one reference index information;
[0462] The type of the current coding unit is the first type, indicating that the current coding unit has at most two reference index information.
[0463] For example, in the embodiment of the present application, the first type of coding unit can be represented as a B coding unit, the second type of coding unit can be represented as a P coding unit, and the third type of coding unit can be represented as an I coding unit. The definitions are as follows:
[0464] I coding unit: the current coding unit has no reference index information;
[0465] P coding unit: The current coding unit has at most one reference index information;
[0466] B coding unit: The current coding unit can have up to two reference index information.
[0467] In an embodiment of the present application, since the encoder has determined the type of the current coding unit, the encoder predicts the current node based on the type of the current coding unit in the form of reference attribute information corresponding to the type of the current coding unit to obtain the attribute prediction value of the current node.
[0468] In the embodiment of the present application, different types of coding units correspond to different reference information of reference frames. Therefore, the encoder can perform different forms of encoding processing on the nodes contained in the coding units according to different types of coding units.
[0469] In the embodiment of the present application, the first syntax element information may be used to indicate the type of the current coding unit, and the first syntax element information may be written into the bitstream for use by the decoder during decoding.
[0470] It is understood that when determining the attribute prediction value of the current node, the type of the current coding unit is first determined. Based on the type of the current coding unit, different predictions are then performed to determine the attribute prediction value of the current node. This allows the encoder to perform targeted and diverse attribute predictions based on different coding unit types, helping to improve the accuracy of inter-frame attribute prediction.
[0471] In some embodiments of the present application, performing pre-estimation based on at least one reference list to determine the type of the current coding unit includes:
[0472] Based on at least one reference list, two different reference lists are selected to pre-estimate a current coding unit to determine a first rate-distortion cost with a minimum rate-distortion cost, and a different reference list is selected to pre-estimate the current coding unit to determine a second rate-distortion cost with a minimum rate-distortion cost;
[0473] Pre-estimating the current coding unit using intra-frame prediction to determine the third rate-distortion cost;
[0474] A type of a current coding unit is determined according to the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost.
[0475] In some embodiments of the present application, determining the type of the current coding unit according to the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost includes:
[0476] If the smallest of the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost is the first rate-distortion cost, determining that the type of the current coding unit is the first type;
[0477] If the smallest of the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost is the second rate-distortion cost, determining that the type of the current coding unit is the second type;
[0478] If the smallest of the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost is the third rate-distortion cost, it is determined that the type of the current coding unit is the third type.
[0479] In the embodiment of the present application, the encoding method for when the current encoding unit is of the first type may further include: S3031 to S3033. As follows:
[0480] S3031. When the type of the current coding unit is the first type, determine a first reference frame and a second reference frame of the current coding unit based on two reference lists in at least one reference list;
[0481] S3032. Search, based on the acquired geometric information of the current node, for a first co-located node of the parent node of the current node in the first reference frame, and search for a second co-located node of the parent node of the current node in the second reference frame;
[0482] S3033: Perform inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node.
[0483] In an embodiment of the present application, when the type of the current coding unit is the first type, it means that all nodes of the current coding unit can refer to two reference index information when predicting. Therefore, the encoder obtains two reference index information corresponding to the current coding unit. The encoder can determine the corresponding first reference frame and second reference frame information from at least one reference list based on the two reference index information obtained. Then, based on the geometric information of the current node, the first co-located node of the parent node of the current node is searched in the first reference frame, and the second co-located node of the parent node of the current node is searched in the second reference frame.
[0484] It should be noted that, in the embodiment of the present application, the encoding method provided in the embodiment of the present application can be used for all nodes other than the first root node. For a root node without a parent node, the prediction process can be directly performed by finding its co-located node in the reference frame, which is not limited in the embodiment of the present application.
[0485] In an embodiment of the present application, the encoder may first determine the parent node of the current node based on the geometric information of the current node.
[0486] In an embodiment of the present application, the first co-located node and the second co-located node refer to nodes that have the same geometric information / geometric coordinates as the parent node of the current node in the first reference frame and the second reference frame. In an embodiment of the present application, the current frame, the first reference frame and the second reference frame can be understood as different point cloud frames. In some embodiments, the arrangement structure of the point clouds of the current frame, the first reference frame and the second reference frame is a RAHT attribute transform coding structure. The encoder can construct a RAHT attribute transform coding structure based on the geometric information of the node, that is, continuously merge nodes at the voxel level until the root node of the entire RAHT transform tree is obtained. For example, as shown in Figure 45, the first reference frame is 421, the second reference frame is 422, and the current frame is 423. Assuming that the parent node of the current node is 4231, its first co-located node and second co-located node are the nodes indicated by the arrows in Figure 42.
[0487] In the embodiment of the present application, there is no limitation on the relationship between the first reference frame and the second reference frame and the current frame. The first reference frame and the second reference frame can be two frames forward of the current frame or two frames backward of the current frame. Alternatively, the first reference frame can be the forward reference frame of the current frame and the second reference frame can be the backward reference frame of the current frame.
[0488] In the embodiment of the present application, the encoder performs inter-frame attribute prediction on the current node based on the first co-located node and the second co-located node to obtain the attribute prediction value of the current node, including:
[0489] Method 1: When the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is determined based on the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node.
[0490] Method 2: When the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the second child node of the second co-located node.
[0491] Method three: when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the first child node of the first co-located node.
[0492] Method 4: When the first co-located node does not exist in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is determined based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
[0493] It should be noted that in the embodiment of the present application, the parent node of the current node is used to determine the co-located node in the reference frame. However, when the existence of the co-located node is determined, multiple child nodes of the co-located node are determined based on the independent orthogonal transformation of the co-located node, and the prediction node corresponding to the current node is determined from the multiple child nodes, and the attribute reconstruction value of the predicted node is used to determine the attribute prediction value of the current node.
[0494] For method one, the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node are weighted according to the first weighting coefficient of the attribute reconstruction value of the first child node of the first co-located node and the second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node to obtain the attribute prediction value of the current node.
[0495] The first weighting coefficient is equal to the first value, and the second weighting coefficient is equal to the second value.
[0496] In some embodiments of the present application, the first weighting coefficient is determined based on the interval between the acquisition time of the current frame and the first reference frame; or, the first weighting coefficient is determined based on the geometric information of the current node and the attribute distribution information of the first child node.
[0497] In some embodiments of the present application, the second weighting coefficient is determined according to the interval between the acquisition time of the current frame and the second reference frame; or,
[0498] A second weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the second child node.
[0499] In some embodiments of the present application, rate-distortion costs of a plurality of candidate weighting coefficient groups are determined from the coefficient list; wherein the candidate weighting coefficient groups include a first candidate weighting coefficient of a property reconstruction value of a first co-located node and a second candidate weighting coefficient of a property reconstruction value of a second co-located node;
[0500] Selecting a candidate weighting coefficient group with the smallest rate-distortion cost from a plurality of candidate weighting coefficient groups;
[0501] The first candidate weighting coefficient in the candidate weighting coefficient group with the minimum rate-distortion cost is used as the first weighting coefficient, and the second candidate weighting coefficient in the candidate weighting coefficient group with the minimum rate-distortion cost is used as the second weighting coefficient.
[0502] In some embodiments of the present application, the first weighting coefficient and the second weighting coefficient are written into the bitstream; or,
[0503] A first weighting coefficient index of the first weighting coefficient and a second weighting coefficient index of the second weighting coefficient are written into the code stream.
[0504] For example, in some embodiments, the first weighting coefficient is equal to the first value, and the second weighting coefficient is equal to the second value. That is, the first weighting coefficient and the second weighting coefficient are predefined values, which may be equal or unequal, but their sum is equal to 1.
[0505] In other embodiments, the first weighting coefficient may be determined based on the time interval between the acquisition of the current frame and the first reference frame; and / or the second weighting coefficient may be determined based on the time interval between the acquisition of the current frame and the second reference frame. For example, the longer the time interval, the larger the value of the weighting coefficient. If the time interval between the acquisition of the current frame and the first reference frame is greater than the time interval between the acquisition of the current frame and the second reference frame, the first weighting coefficient is smaller than the second weighting coefficient.
[0506] In some embodiments, a mapping table between acquisition time intervals and weighting coefficients can be predefined. Thus, the encoder can determine the first and second weighting coefficients by looking up the table based on the coefficient weighting index. Of course, determining the weighting coefficients based on this table lookup method is not limited to this. In short, any weighting coefficient can be determined based on the acquisition time interval between two frames.
[0507] In some further embodiments, the encoder may also determine the first weighting coefficient and the second weighting coefficient as follows: determine the rate-distortion costs of multiple candidate weighting coefficient groups; wherein the candidate weighting coefficient groups include a first candidate weighting coefficient of the attribute reconstruction value of the first co-located node and a second candidate weighting coefficient of the attribute reconstruction value of the second co-located node; select the candidate weighting coefficient group with the smallest rate-distortion cost from the multiple candidate weighting coefficient groups; use the first candidate weighting coefficient in the candidate weighting coefficient group with the smallest rate-distortion cost as the first weighting coefficient, and use the second candidate weighting coefficient in the candidate weighting coefficient group with the smallest rate-distortion cost as the second weighting coefficient.
[0508] It can be understood that at the encoding end, since the actual attribute value of the current node is known, the rate-distortion cost of the candidate weighting coefficient group can be determined. Accordingly, the encoder writes the first and second weighting coefficients obtained based on the rate-distortion cost into the bitstream, and the decoder can obtain the first and second weighting coefficients by parsing the bitstream. The method also includes: the encoder determines the first and second weighting coefficient indices of the first and second weighting coefficients obtained based on the rate-distortion cost from the coefficient list, and writes them into the bitstream, so that the decoder can obtain the first and second weighting coefficient indices by parsing the bitstream.
[0509] The above embodiment describes a method for determining the attribute prediction value of the current node when both the first and second co-located nodes exist. It is understandable that the first co-located node may not exist in the first reference frame, and / or the second co-located node may not exist in the second reference frame. In this case, how to perform inter-frame attribute prediction on the current node based on the first and second co-located nodes to obtain the attribute prediction value of the current node?
[0510] For method 2, when the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding second child node of the second co-located node.
[0511] For method three, when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding first child node of the first co-located node.
[0512] In some embodiments of the present application, the implementation of the first method or the implementation of S3033 may further include:
[0513] S401: When a first co-located node exists in a first reference frame and a second co-located node exists in a second reference frame, determine a first difference in the number of occupied child nodes between the first co-located node and the parent node of the current node based on placeholder information of the first co-located node and the parent node of the current node;
[0514] S402: Determine a second difference in the number of occupied child nodes between the second co-located node and the parent node of the current node based on the placeholder information of the second co-located node and the parent node of the current node.
[0515] S403: Determine a first weighting coefficient for the attribute reconstruction value of the first child node and a second weighting coefficient for the attribute reconstruction value of the second child node of the second co-located node according to a relationship between the first difference number and the second difference number;
[0516] S404 : Using the first weighting coefficient and the second weighting coefficient, weight the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node to determine the attribute prediction value of the current node.
[0517] In some embodiments, determining a first weighting coefficient for the reconstructed attribute value of the first child node and a second weighting coefficient for the reconstructed attribute value of the second child node of the second co-located node based on a relationship between the first difference number and the second difference number includes at least one of the following:
[0518] (1) In the case where the first difference number is equal to the second difference number, the first weighting coefficient is determined to be equal to the second weighting coefficient.
[0519] (2) When the first difference number is smaller than the second difference number, the first weighting coefficient is determined to be larger than the second weighting coefficient.
[0520] (3) In the case where the first difference number is greater than the second difference number, the first weighting coefficient is determined to be smaller than the second weighting coefficient.
[0521] Exemplarily, in some embodiments, when the first difference number is less than the second difference number, the attribute prediction value of the current node is equal to the attribute reconstruction value of the first child node of the first co-located node, that is, the first weighting coefficient is 1 and the second weighting coefficient is 0; when the first difference number is greater than the second difference number, the attribute prediction value of the current node is equal to the attribute reconstruction value of the second child node of the second co-located node, that is, the first weighting coefficient is 0 and the second weighting coefficient is 1.
[0522] It should be noted that the first child node is the predicted node corresponding to the current node after the first co-located node is transformed; the second child node is the predicted node corresponding to the current node after the second co-located node is transformed.
[0523] It can be understood that the occupancy information of the first co-located node, the second co-located node, and the parent node of the current node all records the occupancy status of their respective child nodes. The smaller the difference in the number of occupied child nodes between the parent node of the current node and the co-located node, the stronger the geometric correlation between the corresponding two point clouds / frames. Correspondingly, the stronger the attribute correlation between the two point clouds / frames, the greater the temporal redundancy between them. Therefore, when the first difference in the number of occupied child nodes between the first co-located node and the parent node of the current node is less than the second difference in the number of occupied child nodes between the second co-located node and the parent node of the current node, it indicates that there is greater temporal redundancy between the current frame and the first reference frame than between the current frame and the second reference frame. Therefore, in this case, the attribute prediction value of the current node can be determined based on the attribute reconstruction value of the first child node of the first co-located node. For example, the attribute reconstruction value of the first child node of the first co-located node can be directly used as the attribute prediction value of the current node; in this way, compared to determining the attribute prediction value of the current node based on the attribute reconstruction value of the second child node of the second co-located node in this case, temporal redundancy can be better compressed, thereby improving the encoding and decoding performance of the point cloud. Similarly, when the first difference number is greater than the second difference number, determining the attribute prediction value of the current node based on the attribute reconstruction value of the second child node of the second co-located node can better compress time redundancy and thus improve the encoding and decoding performance of the point cloud compared to determining the attribute prediction value of the current node based on the attribute reconstruction value of the first child node of the first co-located node.
[0524] In the embodiment of the present application, the decoding method when the current coding unit is of the second type may further include: S3034 to S3036. As follows:
[0525] S3034. When the type of the current coding unit is the second type, determine a third reference frame of the current coding unit based on a reference list in the at least one reference list;
[0526] S3035. Search for a third co-located node of the parent node of the current node in the third reference frame according to the obtained geometric information of the current node.
[0527] S3036: Perform inter-frame attribute prediction on the current node according to the third co-located node to obtain an attribute prediction value of the current node.
[0528] In an embodiment of the present application, when the type of the current coding unit is the second type, it means that all nodes of the current coding unit can refer to a reference index information when predicting. Therefore, the encoder can obtain a reference index information corresponding to the current coding unit. Based on the obtained reference index information, the encoder can determine the information of the corresponding third reference frame from at least one reference list. Then, based on the geometric information of the current node, the encoder searches for the third co-located node of the parent node of the current node in the first reference frame.
[0529] It should be noted that, in the embodiment of the present application, the encoding method provided in the embodiment of the present application can be used for all nodes other than the first root node. For a root node without a parent node, the prediction process can be directly performed by finding its co-located node in the reference frame, which is not limited in the embodiment of the present application.
[0530] In an embodiment of the present application, the encoder may first determine the parent node of the current node based on the geometric information of the current node.
[0531] In this embodiment of the present application, a third co-located node refers to a node that has the same geometric information / geometric coordinates as the parent node of the current node in the third reference frame. In this embodiment of the present application, the current frame and the third reference frame can be understood as different point cloud frames. In some embodiments, the point cloud arrangement structure of the current frame and the third reference frame is a RAHT attribute transform coding structure.
[0532] In an embodiment of the present application, the third reference frame is a forward reference frame of the current frame, or the third reference frame is a backward reference frame of the current frame, which is not limited in the embodiment of the present application.
[0533] In the embodiment of the present application, the encoder performs inter-frame attribute prediction on the current node based on the third co-located node to obtain the attribute prediction value of the current node, including:
[0534] (1) when a third co-located node exists in a third reference frame, determining an attribute prediction value of the current node according to an attribute reconstruction value of a third child node of the third co-located node;
[0535] (2) When the third co-located node does not exist in the third reference frame, the attribute prediction value of the current node is determined based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
[0536] Exemplarily, when a third co-located node exists in a third reference frame, the attribute reconstruction value of the third child node of the third co-located node is equal to the attribute prediction value of the current node.
[0537] In an embodiment of the present application, the encoding method for when the current coding unit is of the third type may further include: when the type of the current coding unit is the third type, determining the attribute prediction value of the current node based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
[0538] In some embodiments of the present application, two reference index information corresponding to the first reference frame and the second reference frame are written into the bitstream; or,
[0539] Reference index information corresponding to the first reference frame is written into the bitstream, where the reference index information includes reference list index information or reference frame index information.
[0540] It should be noted that the reference index information can be a reference list index or a reference frame index directly. However, the reference list index saves more codewords in transmission than the reference frame index.
[0541] In some embodiments of the present application, reference index information is determined through a reference list. The present application embodiment includes a process for establishing a reference list.
[0542] In some embodiments of the present application, determining at least one reference list based on index information of an encoded frame includes:
[0543] At least one first reference list is determined based on index information of the encoded frame; the first reference list represents a storage location mapping relationship of the reference frame index.
[0544] In some embodiments of the present application, the at least one first reference list includes: two first reference lists;
[0545] Determining a first reference frame and a second reference frame of a current coding unit based on two reference lists in the at least one reference list includes:
[0546] Determine a first reference frame index and a second reference frame index from the two first reference lists respectively;
[0547] Based on the first reference frame index and the second reference frame index, a first reference frame and a second reference frame are determined, respectively.
[0548] In some embodiments of the present application, the at least one first reference list includes: a first reference list;
[0549] Determining a third reference frame of a current coding unit based on a reference list in the at least one reference list includes:
[0550] Determining a third reference frame index from a first reference list;
[0551] Based on the third reference frame index, a third reference frame is determined.
[0552] In some embodiments of the present application, determining at least one reference list based on index information of an encoded frame includes:
[0553] At least one second reference list is determined based on index information of the encoded frame; the second reference list represents a storage location mapping relationship of the reference frames.
[0554] In some embodiments of the present application, the at least one second reference list includes: two second reference lists;
[0555] Determining a first reference frame and a second reference frame of a current coding unit based on two reference lists in the at least one reference list includes:
[0556] From the two second reference lists, a first reference frame and a second reference frame are determined respectively.
[0557] In some embodiments of the present application, the at least one second reference list includes: a second reference list;
[0558] Determining a third reference frame of a current coding unit based on a reference list in the at least one reference list includes:
[0559] A third reference frame is determined from a second reference list.
[0560] In some embodiments of the present application, the coding unit is any one of the frame level, block level, slice level or RAHT coding level.
[0561] In an embodiment of the present application, the encoder can construct at least one reference list, and based on different mapping relationships, it can be divided into a first reference list and a second reference list. The embodiment of the present application does not limit the construction method of the reference list.
[0562] In some embodiments of the present application, the current frame index of the current frame is determined; the second syntax element information is used to indicate the current frame index, and the second syntax element information is carried in the syntax layer of the current coding unit and written into the bitstream.
[0563] It should be noted that in the embodiment of the present application, the decoding order and the playback order of the current sequence are not necessarily consistent. Therefore, it is necessary to transmit the current frame index of the current coding unit to the decoder during the encoding process so that when the decoding is completed, the frame indexes are re-sorted to determine the decoding sequence.
[0564] In some embodiments of the present application, the attribute prediction value of the current node is the AC coefficient prediction value of the current node; the AC coefficient original value of the current node is determined; the AC coefficient residual value of the current node is determined based on the AC coefficient prediction value and the AC coefficient original value; the AC coefficient residual value is quantized and written into the bitstream.
[0565] For example, in some embodiments, the attribute prediction value of the current node is the AC coefficient prediction value of the current node, and the attribute residual value of the current node is the AC coefficient residual value of the current node. The encoder can determine the AC coefficient residual value of the current node based on the AC coefficient prediction value and the original AC coefficient value of the current node, quantize the AC coefficient residual value, and then write it into the bitstream.
[0566] It should be noted that in the embodiments of the present application, the method for determining the attribute prediction value of the current node in the encoding method is the same as the method for determining the attribute prediction value of the current node in the decoding method. Therefore, for technical details not disclosed in the encoding method embodiment, please refer to the description of the decoding method embodiment of the present application for understanding.
[0567] The following describes an exemplary application of the embodiments of the present application in a practical application scenario.
[0568] In the embodiment of the present application, the RAHT attribute coding layer is first defined. The attribute RAHT transform coding order is to divide the attribute from the root node in sequence until it is divided into the voxel level (1x1x1), thereby completing the encoding and attribute reconstruction of the entire point cloud attribute. In some embodiments, as shown in Figure 46, the layer obtained by downsampling once along the Z direction, Y direction, and X direction is defined as a RAHT transform layer, that is, layer; secondly, based on the RAHT attribute coding layer, a bidirectional predictive coding scheme is introduced. The specific algorithm is shown in Figure 45:
[0569] First, if the current coding unit belongs to a P / B coding unit, when encoding / decoding the node attributes of the current layer, the number of nodes to be encoded / decoded and the position of each node can be obtained; secondly, for each node to be encoded / decoded (i.e., the current node), the current node position to be encoded / decoded is used to search for the number of 19 neighboring nodes adjacent to the spatial position of the current node to be encoded / decoded, and the corresponding intra-frame prediction value is obtained based on the attribute reconstruction values of the 19 neighboring nodes. According to the spatial position of the current node to be encoded, the same-position node of its parent node is searched in the reference frame. The specific encoding end algorithm is described as follows 1-5:
[0570] 1. Use the position of the current node to be coded to search in the cache of the forward reference frame whether there is a co-located node of the parent node of the current node to be coded in the corresponding prediction layer of the reference frame. If so, assume that the predicted value of the prediction node of the forward reference frame is predVal1; if the current coding unit belongs to the P coding unit and the co-located node of the parent node of the current node exists, the AC attribute prediction value of the current node is predVal1; if not, the AC attribute prediction value of the current node is the AC prediction value within the frame.
[0571] 2. If the current coding unit belongs to the B coding unit, based on the same algorithm, determine whether the co-located node of the parent node of the current node exists in the backward reference frame. If it exists, assuming that the predicted value of the prediction node of the backward reference frame is predVal2, the final predicted value of the AC coefficient attribute of the current node predVal is: predVal=w1*predVal1+w2*predVal2
[0572] Among them, w1 is the prediction weight of the forward reference frame (first weighting system), and w2 is the prediction weight of the backward reference frame (second weighting system). Among them, w1 and w2 are determined according to the time slot distance between the current coding frame and the reference frame. The position of the current node to be coded can be understood as the geometric information of the current node, the forward reference frame can be understood as the first reference frame, the backward reference frame can be understood as the second reference frame, predVal1 can be understood as the AC coefficient reconstruction value / AC coefficient attribute reconstruction value of the first child node of the first co-located node, predVal2 can be understood as the AC coefficient reconstruction value / AC coefficient attribute reconstruction value of the second child node of the second co-located node, and the AC coefficient attribute prediction value can also be called the AC coefficient prediction value.
[0573] 3. For a B coding unit, if the co-located node of the forward reference frame exists but the co-located node of the backward reference frame does not exist, the AC coefficient attribute prediction value predVal of the current node is: predVal = predVal1
[0574] 4. For B coding unit, if the co-located node of the backward reference frame exists, and the co-located node of the backward reference frame exists, then the AC coefficient attribute prediction value predVal of the current node is: predVal = predVal2
[0575] 5. For a B coding unit, if the co-located node of the forward and backward reference frames of the current node does not exist, the AC coefficient attribute prediction value of the current node is the intra-frame prediction value.
[0576] The specific algorithm of the decoding end is described in 1-4 below:
[0577] 1. First, determine whether the current decoding unit belongs to I / P / B type decoding unit;
[0578] 2. For the P / B decoding unit, use the reference frame information / reference list index information of the current decoding unit to obtain the reference frame in the reference list;
[0579] 3. Use the position of the current node to be encoded to search in the cache of the forward reference frame whether there is a co-located node of the parent node of the current node to be encoded in the corresponding prediction layer of the reference frame. If so, assume that the predicted value of the predicted node of the forward reference frame is predVal1; if the current decoding unit belongs to the P decoding unit and the co-located node of the parent node of the current node exists, the attribute prediction value of the current node is predVal1; if not, the attribute prediction value of the current node is the intra-frame prediction value.
[0580] 4. If the current decoding unit belongs to the B decoding unit, based on the same algorithm, determine whether the co-located node of the parent node of the current node exists in the backward reference frame. If it exists, assuming that the predicted value of the backward reference frame is predVal2, the final AC coefficient attribute prediction value predVal of the current node is: predVal=w1*predVal1+w2*predVal2
[0581] Among them, w1 is the prediction weight of the forward reference frame, and w2 is the prediction weight of the backward reference frame.
[0582] 5. For the B decoding unit, if the co-located node of the forward reference frame exists, but the co-located node of the backward reference frame does not exist, the AC coefficient attribute prediction value of the current node is: predVal = predVal1
[0583] 6. For the B decoding unit, if the co-located node of the backward reference frame exists, and the co-located node of the backward reference frame exists, the AC coefficient attribute prediction value of the current node is: predVal = predVal2
[0584] 7. For the B decoding unit, if the co-located node of the forward and backward reference frames of the current node does not exist, the AC coefficient attribute prediction value of the current node is the intra-frame prediction value.
[0585] An algorithm similar to that used on the encoder side obtains the AC coefficient prediction values corresponding to the N child nodes of the current node to be decoded. Finally, the AC coefficient attribute prediction residuals of each child node are obtained from the bitstream. These prediction residuals are dequantized to obtain the reconstructed prediction residual values. The reconstructed prediction residual values are then added to the predicted values to reconstruct the reconstructed AC coefficient attribute value of the current child node. Finally, the attribute value of the point is recovered using the RAHT-based inverse attribute transform.
[0586] In the above scheme, for each node to be encoded, a bidirectional prediction coding algorithm is introduced. When the same-position nodes of the forward and backward reference frames exist at the same time, the prediction weights of the forward reference frame and the backward reference frame are obtained according to the time slot intervals between the forward and backward reference frames and the current frame to be encoded. In addition to considering the time slot relationship of the sequence set, the distribution of the AC coefficient attributes of the node to be encoded can also be considered. This scheme optimizes the prediction weights of the forward and backward reference frames. Specifically: for the attributes of each layer to be encoded, the rate-distortion optimization algorithm is used at the encoding end to obtain the optimal prediction weight value of the current layer to be encoded. Then, the prediction weight value is passed to the decoding end. The decoding end uses the corresponding prediction weight and the predicted attribute value of the adjacent reference to reconstruct and restore the attribute reconstruction value of the node to be decoded, thereby further improving the attribute encoding and decoding efficiency of the point cloud.
[0587] In an embodiment of the present application, when inter-frame RAHT prediction is performed on an attribute, if the current layer to be coded can perform attribute prediction, a bidirectional prediction coding algorithm is introduced based on the RAHT attribute coding structure. For each node to be coded, the corresponding co-located node is obtained in the forward and backward reference frames respectively by the spatial position of the node to be coded. Then, the co-located node is used to obtain the AC coefficient attribute prediction value of the current node to be coded. Based on such an algorithm, the AC coefficient attributes of the forward and backward reference frames can be comprehensively considered, so that the time slot redundancy characteristics between the forward and backward adjacent frames can be better removed, thereby further improving the point cloud attribute coding efficiency. As shown in Table 2, the coding efficiency of the attributes is demonstrated. As shown in Table 2, it can be seen that after the introduction of the RAHT bidirectional inter-frame prediction coding algorithm, for the sequence using inter-frame prediction coding attributes, the BPP of the attribute coding is reduced by about 1.75%, significantly improving the coding efficiency of the point cloud attributes.
[0588] Table 2
[0589] In an embodiment of the present application, when performing RAHT predictive coding on attributes, inter-frame predictive coding is performed on the attributes of each node, introducing a RAHT bidirectional predictive coding structure. For each node to be coded, the spatial position of the node to be coded is used to obtain the corresponding co-located node in the forward reference frame and the backward reference frame. Then, based on the different situations of the forward reference frame and the backward reference frame, the attributes of the current node to be coded are inter-frame predictive coded. Finally, the decoding end obtains the attribute prediction value of the corresponding node based on the same algorithm, and uses the corresponding node attribute prediction value and the attribute prediction residual to recover the attribute reconstruction value of the current node to be decoded. In the application embodiment, the focus is on introducing a bidirectional inter-frame prediction coding algorithm when encoding or decoding the attributes of each node of each RAHT code. The redundant characteristics of the attributes between adjacent frames can be further removed by referring to the reconstructed attribute values of the forward reference node and the backward reference node. The algorithm does not restrict the prediction weights of the forward and backward reference nodes. For example, the inter-frame prediction weights of different prediction nodes can be determined based on the time slot intervals of the forward and backward reference frames, or the weights of the forward and backward reference nodes of the current node can be adaptively obtained based on the spatial position of each node and the attribute distribution of the prediction nodes.
[0590] (1) The embodiment of the present application can further modify the attribute bidirectional inter-frame prediction mode.
[0591] In the above scheme, the forward and backward reference nodes are obtained by using the node to be coded, and then the inter-frame attribute prediction value of the current node to be coded is obtained according to certain conditions. In the embodiment of the present application, the inter-frame attribute prediction value of the prediction node is further optimized as follows:
[0592] Assume that the occupancy information of the parent node of the current node to be coded is occupancy, and use the spatial position of the current node to be coded to obtain the predicted node (co-located node) corresponding to its parent node in the forward reference frame. Assume that the occupancy information of the predicted node is prevOccupancy, and based on the same algorithm, obtain the corresponding predicted node in the forward reference frame. Assume that the reconstructed value of the AC coefficient of the predicted child node stored in the forward reference frame is predVal1. Assume that the occupancy information of the predicted node is backOccupancy, and assume that the reconstructed value of the AC coefficient of the predicted child node stored in the backward reference frame is predVal2, then the predicted value of the current node is:
[0593] 1. If both prediction nodes exist, determine the number of differences between the occupancy information of the parent node of the current node to be coded and the forward prediction node. Assume that this is N1 (i.e., the first difference number), and the number of differences between the occupancy information of the backward reference frame and the parent node of the current node to be coded is N2 (i.e., the second difference number). Then:
[0594] 1) When N1 is less than N2, the AC coefficient attribute prediction value predVal of the current node is: predVal = predVal1
[0595] 2) When N1 is greater than N2, the AC coefficient attribute prediction value predVal of the current node is: predVal = predVal2
[0596] 3) When N1 is equal to N2, the AC coefficient attribute prediction value predVal of the current node is: predVal=w1*predVal1+w2*predVal2
[0597] w1 is the prediction weight of the forward reference frame, and w2 is the prediction weight of the backward reference frame.
[0598] 2. Otherwise, if the same node in the forward reference frame exists, the AC coefficient attribute prediction value predVal of the current node is: predVal = predVal1
[0599] 3. Otherwise, if the co-located node of the backward reference frame exists, the AC coefficient attribute prediction value predVal of the current node is: predVal = predVal2
[0600] 4. Otherwise, if the co-located node of the backward reference frame of the current node does not exist, the AC coefficient attribute prediction value of the current node is the intra-frame prediction value.
[0601] It should be noted that although the steps of the method of the present application are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all steps must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps; or steps in different embodiments may be combined to form a new technical solution.
[0602] The present application provides a decoder. FIG47 is a schematic diagram of the structure of the decoder provided in the present application. As shown in FIG47 , the decoder 48 includes:
[0603] The decoding part 10 is configured to parse the bitstream and determine first syntax element information of a current decoding unit of a current frame, wherein the first syntax element information represents a type of the decoding unit; different types of decoding units correspond to different reference information of a reference frame;
[0604] The first prediction part 11 is configured to predict the current node based on the type of the current decoding unit indicated by the first syntax element to obtain a property prediction value of the current node.
[0605] In some embodiments of the present application, the first prediction part 11 is further configured to parse and determine two reference index information of the current decoding unit when the type of the current decoding unit indicated by the first syntax element information is the first type;
[0606] Determining a first reference frame and a second reference frame based on the two reference index information;
[0607] Searching for a first co-located node of the parent node of the current node in a first reference frame according to the acquired geometric information of the current node, and searching for a second co-located node of the parent node of the current node in a second reference frame;
[0608] Perform inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node.
[0609] In some embodiments of the present application, the first prediction part 11 is further configured to parse and determine a reference index information of the current decoding unit when the type of the current decoding unit indicated by the first syntax element information is the second type;
[0610] Determining a third reference frame based on the one reference index information;
[0611] Searching for a third co-located node of the parent node of the current node in a third reference frame according to the obtained geometric information of the current node;
[0612] According to the third co-located node, inter-frame attribute prediction is performed on the current node to obtain an attribute prediction value of the current node.
[0613] In some embodiments of the present application, the first prediction part 11 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame when the type of the current decoding unit indicated by the first syntax element information is the third type.
[0614] In some embodiments of the present application, the first syntax element information indication is of the third type, indicating that the current decoding unit has no reference index information;
[0615] The first syntax element information is indicated as the second type, indicating that the current decoding unit has at most one reference index information;
[0616] The first syntax element information is indicated as a first type, indicating that the current decoding unit has at most two reference index information.
[0617] In some embodiments of the present application, the decoder 48 further includes: a first determination part 12;
[0618] The first determination part 12 is configured to determine the current frame index of the current frame; after the decoding of the current frame is completed, continue to decode the next frame in the decoding order until the current sequence is decoded, and determine the frame index of each frame; based on the frame index of each frame, arrange the decoded frames to obtain a decoding sequence.
[0619] In some embodiments of the present application, the decoding part 10 is further configured to parse the code stream to determine second syntax element information of the current coding unit, where the second syntax element information indicates the current frame index.
[0620] In some embodiments of the present application, the decoder 48 further includes: a first determination part 12;
[0621] The first determining part 12 is further configured to determine at least one first reference list based on index information of the decoded frame; the first reference list represents a storage location mapping relationship of reference frame indexes.
[0622] In some embodiments of the present application, the at least one first reference list includes: two first reference lists; the reference index information includes: reference list index information;
[0623] The first prediction part 11 is further configured to determine a first reference frame index and a second reference frame index from the two first reference lists according to the reference list index information;
[0624] The first reference frame and the second reference frame are determined based on the first reference frame index and the second reference frame index, respectively.
[0625] In some embodiments of the present application, the at least one first reference list includes: a first reference list; the reference index information includes: reference list index information;
[0626] The first prediction part 11 is further configured to determine a third reference frame index from the first reference list according to a reference list index information;
[0627] The third reference frame is determined based on the third reference frame index.
[0628] In some embodiments of the present application, the decoder 48 further includes: a first determining part 12; determining at least one second reference list based on index information of the decoded frame; the second reference list represents a storage location mapping relationship of the reference frame.
[0629] In some embodiments of the present application, the at least one second reference list includes: two second reference lists; the reference index information includes: reference frame index information;
[0630] The first prediction part 11 is further configured to determine the first reference frame and the second reference frame respectively from the two second reference lists according to the respective reference frame index information.
[0631] In some embodiments of the present application, the at least one second reference list includes: a second reference list; the reference index information includes: reference frame index information;
[0632] The first prediction part 11 is further configured to determine the third reference frame from the second reference list according to the reference frame index information.
[0633] In some embodiments of the present application, the decoding unit is any one of a frame level, a block level, a slice level or a RAHT decoding level.
[0634] In some embodiments of the present application, the first prediction part 11 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node when the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame.
[0635] In some embodiments of the present application, the first prediction part 11 is further configured to determine, when the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame, based on the occupancy information of the first co-located node and the parent node of the current node, a first difference in the number of occupied child nodes between the first co-located node and the parent node of the current node; and
[0636] Determining a second difference in the number of occupied child nodes between the second co-located node and the parent node of the current node according to the placeholder information of the second co-located node and the parent node of the current node;
[0637] Determining, based on a relationship between the first difference number and the second difference number, a first weighting coefficient for the attribute reconstruction value of the first child node and a second weighting coefficient for the attribute reconstruction value of the second child node of the second co-located node;
[0638] The first weighting coefficient and the second weighting coefficient are used to weight the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node to determine the attribute prediction value of the current node.
[0639] In some embodiments of the present application, the first prediction part 11 is further configured to determine that the first weighting coefficient is equal to the second weighting coefficient when the first difference number is equal to the second difference number.
[0640] In some embodiments of the present application, the first prediction part 11 is further configured to determine that the first weighting coefficient is greater than the second weighting coefficient when the first difference number is less than the second difference number.
[0641] In some embodiments of the present application, the first prediction part 11 is further configured to determine that the first weighting coefficient is smaller than the second weighting coefficient when the first difference number is greater than the second difference number.
[0642] In some embodiments of the present application, the first prediction part 11 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of the second child node of the second co-located node when the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame.
[0643] In some embodiments of the present application, the first prediction part 11 is further configured to, when the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding second child node of the second co-located node.
[0644] In some embodiments of the present application, the first prediction part 11 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of the first child node of the first co-located node when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame.
[0645] In some embodiments of the present application, the first prediction part 11 is also configured to, when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding first child node of the first co-located node.
[0646] In some embodiments of the present application, the first prediction part 11 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame when the first co-located node does not exist in the first reference frame and the second co-located node does not exist in the second reference frame.
[0647] In some embodiments of the present application, the first prediction part 11 is further configured to weight the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node according to the first weighting coefficient of the attribute reconstruction value of the first child node of the first co-located node and the second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node to obtain the attribute prediction value of the current node.
[0648] In some embodiments of the present application, the first weighting coefficient is equal to a first value, and the second weighting coefficient is equal to a second value.
[0649] In some embodiments of the present application, the first determining part 12 is configured to determine the first weighting coefficient according to the interval between the acquisition time of the current frame and the first reference frame; or
[0650] The first weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the first child node.
[0651] In some embodiments of the present application, the first determining part 12 is configured to determine the second weighting coefficient according to the interval between the acquisition time of the current frame and the second reference frame; or
[0652] The second weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the second child node.
[0653] In some embodiments of the present application, the decoding part 10 is further configured to parse the code stream to obtain the first weighting coefficient and the second weighting coefficient.
[0654] In some embodiments of the present application, the decoding part 10 is further configured to parse the code stream to obtain the first weighting coefficient index and the second weighting coefficient index;
[0655] The first determining portion 12 is configured to determine the first weighting coefficient and the second weighting coefficient from a coefficient list based on the first weighting coefficient index and the second weighting coefficient index.
[0656] In some embodiments of the present application, the attribute prediction value of the current node is the AC coefficient prediction value of the current node;
[0657] The decoding part 10 is further configured to parse the code stream to obtain the AC coefficient residual value of the current node;
[0658] A first determining part 12 is configured to determine an AC coefficient reconstructed value of the current node according to the AC coefficient residual value of the current node and the AC coefficient prediction value;
[0659] The first prediction part 11 is further configured to perform an independent orthogonal inverse transformation on the AC coefficient reconstruction value of the current node to obtain the attribute reconstruction value of the current node.
[0660] In some embodiments of the present application, the first prediction part 11 is further configured to determine the attribute prediction value of the current node according to the attribute reconstruction value of the third child node of the third co-located node when the third co-located node exists in the third reference frame; or
[0661] In a case where the third co-located node does not exist in the third reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
[0662] The description of the above decoder embodiment is similar to the description of the above encoding / decoding method embodiment, and has similar beneficial effects as the encoding / decoding method embodiment. For technical details not disclosed in the decoder embodiment of this application, please refer to the description of the encoding / decoding method embodiment of this application for understanding.
[0663] The embodiment of the present application provides an encoder. FIG48 is a schematic diagram of the structure of the encoder provided in the embodiment of the present application. As shown in FIG48 , the encoder 49 includes:
[0664] The second determining part 20 is configured to determine at least one reference list based on index information of the decoded frame; and pre-estimate based on the at least one reference list to determine the type of the current coding unit of the current frame, and use the first syntax element information to indicate the type of the current coding unit;
[0665] The second prediction part 21 is configured to predict the current node based on the type of the current coding unit to obtain a property prediction value of the current node.
[0666] In some embodiments of the present application, the second prediction part 21 is further configured to select two different reference lists based on the at least one reference list, perform pre-estimation on the current coding unit, and determine a first rate-distortion cost with the minimum rate-distortion cost, and select a different reference list to perform pre-estimation on the current coding unit, and determine a second rate-distortion cost with the minimum rate-distortion cost;
[0667] Pre-estimating the current coding unit using intra-frame prediction to determine the third rate-distortion cost;
[0668] A type of a current coding unit is determined according to the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost.
[0669] In some embodiments of the present application, the second prediction part 21 is further configured to determine that the type of the current coding unit is the first type if the smallest of the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost is the first rate-distortion cost;
[0670] If the smallest of the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost is the second rate-distortion cost, determining that the type of the current coding unit is the second type;
[0671] If the smallest of the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost is the third rate-distortion cost, it is determined that the type of the current coding unit is the third type.
[0672] In some embodiments of the present application, the second prediction part 21 is further configured to, when the type of the current coding unit is the first type, determine the first reference frame and the second reference frame of the current coding unit based on two reference lists in the at least one reference list;
[0673] Searching for a first co-located node of the parent node of the current node in a first reference frame according to the acquired geometric information of the current node, and searching for a second co-located node of the parent node of the current node in a second reference frame;
[0674] Perform inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node.
[0675] In some embodiments of the present application, the second prediction part 21 is further configured to, when the type of the current coding unit is the second type, determine a third reference frame of the current coding unit based on a reference list in the at least one reference list;
[0676] Searching for a third co-located node of the parent node of the current node in a third reference frame according to the obtained geometric information of the current node;
[0677] According to the third co-located node, inter-frame attribute prediction is performed on the current node to obtain an attribute prediction value of the current node.
[0678] In some embodiments of the present application, the second prediction part 21 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame when the type of the current coding unit is the third type.
[0679] In some embodiments of the present application, the encoder 49 further includes a writing portion 22;
[0680] The writing part 22 is configured to write two reference index information corresponding to the first reference frame and the second reference frame into the bitstream; or,
[0681] Write a reference index information corresponding to the first reference frame into the bitstream, where:
[0682] The reference index information includes reference list index information or reference frame index information.
[0683] In some embodiments of the present application, the type of the current coding unit is the third type, indicating that the current coding unit has no reference index information;
[0684] The type of the current coding unit is the second type, indicating that the current coding unit has at most one reference index information;
[0685] The type of the current coding unit is the first type, indicating that the current coding unit has at most two reference index information.
[0686] In some embodiments of the present application, the encoder 49 further includes a writing portion 22;
[0687] The second determining part 20 is further configured to determine a current frame index of the current frame;
[0688] The writing part 22 is configured to use the second syntax element information to indicate the current frame index, and carry the second syntax element information in the syntax layer of the current coding unit and write it into the bitstream.
[0689] In some embodiments of the present application, the second determining part 20 is further configured to determine at least one first reference list based on index information of the encoded frame; the first reference list represents the storage location mapping relationship of the reference frame index.
[0690] In some embodiments of the present application, the at least one first reference list includes: two first reference lists;
[0691] The second prediction part 21 is further configured to determine a first reference frame index and a second reference frame index from the two first reference lists respectively;
[0692] The first reference frame and the second reference frame are determined based on the first reference frame index and the second reference frame index, respectively.
[0693] In some embodiments of the present application, the at least one first reference list includes: a first reference list;
[0694] The second prediction part 21 is further configured to determine a third reference frame index from the one first reference list;
[0695] The third reference frame is determined based on the third reference frame index.
[0696] In some embodiments of the present application, the second determining part 20 is further configured to determine at least one second reference list based on index information of the encoded frame; the second reference list represents the storage location mapping relationship of the reference frame.
[0697] In some embodiments of the present application, the at least one second reference list includes: two second reference lists;
[0698] The second prediction part 21 is further configured to respectively determine the first reference frame and the second reference frame from the two second reference lists.
[0699] In some embodiments of the present application, the at least one second reference list includes: a second reference list;
[0700] The second prediction part 21 is further configured to determine a third reference frame from the one second reference list.
[0701] In some embodiments of the present application, the coding unit is any one of a frame level, a block level, a slice level or a RAHT coding level.
[0702] In some embodiments of the present application, the second prediction part 21 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node when the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame.
[0703] In some embodiments of the present application, the second prediction part 21 is further configured to determine, when the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame, based on the occupancy information of the first co-located node and the parent node of the current node, a first difference in the number of occupied child nodes between the first co-located node and the parent node of the current node; and
[0704] Determining a second difference in the number of occupied child nodes between the second co-located node and the parent node of the current node according to the placeholder information of the second co-located node and the parent node of the current node;
[0705] Determining, based on a relationship between the first difference number and the second difference number, a first weighting coefficient for the attribute reconstruction value of the first child node and a second weighting coefficient for the attribute reconstruction value of the second child node of the second co-located node;
[0706] The first weighting coefficient and the second weighting coefficient are used to weight the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node to determine the attribute prediction value of the current node.
[0707] In some embodiments of the present application, the second prediction part 21 is further configured to determine that the first weighting coefficient is equal to the second weighting coefficient when the first difference number is equal to the second difference number.
[0708] In some embodiments of the present application, the second prediction part 21 is further configured to determine that the first weighting coefficient is greater than the second weighting coefficient when the first difference number is smaller than the second difference number.
[0709] In some embodiments of the present application, the second prediction part 21 is further configured to determine that the first weighting coefficient is smaller than the second weighting coefficient when the first difference number is greater than the second difference number.
[0710] In some embodiments of the present application, the second prediction part 21 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of the second child node of the second co-located node when the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame.
[0711] In some embodiments of the present application, the second prediction part 21 is further configured to, when the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding second child node of the second co-located node.
[0712] In some embodiments of the present application, the second prediction part 21 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of the first child node of the first co-located node when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame.
[0713] In some embodiments of the present application, the second prediction part 21 is further configured to, when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding first child node of the first co-located node.
[0714] In some embodiments of the present application, the second prediction part 21 is further configured to determine the attribute prediction value of the current node based on the attribute reconstruction value of at least one neighboring node of the current node in the current frame when the first co-located node does not exist in the first reference frame and the second co-located node does not exist in the second reference frame.
[0715] In some embodiments of the present application, the second prediction part 21 is further configured to weight the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node according to the first weighting coefficient of the attribute reconstruction value of the first child node of the first co-located node and the second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node to obtain the attribute prediction value of the current node.
[0716] In some embodiments of the present application, the first weighting coefficient is equal to a first value, and the second weighting coefficient is equal to a second value.
[0717] In some embodiments of the present application, the second determining part 20 is further configured to determine the first weighting coefficient according to the interval between the acquisition time of the current frame and the first reference frame; or
[0718] The first weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the first child node.
[0719] In some embodiments of the present application, the second determining part 20 is further configured to determine the second weighting coefficient according to the interval between the acquisition time of the current frame and the second reference frame; or
[0720] The second weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the second child node.
[0721] In some embodiments of the present application, the second determining portion 20 is further configured to determine rate-distortion costs of a plurality of candidate weighting coefficient groups from the coefficient list; wherein the candidate weighting coefficient groups include a first candidate weighting coefficient of the attribute reconstruction value of the first co-located node and a second candidate weighting coefficient of the attribute reconstruction value of the second co-located node;
[0722] Selecting a candidate weighting coefficient group with the smallest rate-distortion cost from the plurality of candidate weighting coefficient groups;
[0723] The first candidate weighting coefficient in the candidate weighting coefficient group with the minimum rate-distortion cost is used as the first weighting coefficient, and the second candidate weighting coefficient in the candidate weighting coefficient group with the minimum rate-distortion cost is used as the second weighting coefficient.
[0724] In some embodiments of the present application, the encoder 49 further includes a writing part 22; the writing part 22 is configured to write the first weighting coefficient and the second weighting coefficient into a bitstream; or,
[0725] A first weighting coefficient index of the first weighting coefficient and a second weighting coefficient index of the second weighting coefficient are written into a bitstream.
[0726] In some embodiments of the present application, the attribute prediction value of the current node is the AC coefficient prediction value of the current node; the encoder 49 further includes a writing part 22;
[0727] The second determining part 20 is further configured to determine the original value of the AC coefficient of the current node;
[0728] Determining an AC coefficient residual value of the current node according to the AC coefficient prediction value and the AC coefficient original value;
[0729] The writing part 22 is configured to quantize the AC coefficient residual value and write it into the bit stream.
[0730] In some embodiments of the present application, the second prediction part 21 is further configured to determine the attribute prediction value of the current node according to the attribute reconstruction value of the third child node of the third co-located node when the third co-located node exists in the third reference frame; or
[0731] In a case where the third co-located node does not exist in the third reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
[0732] In some embodiments of the present application, the encoder 49 further includes a writing portion 22;
[0733] The writing part 22 is configured to write the first syntax element information into the code stream.
[0734] The description of the above encoder embodiment is similar to the description of the above encoding method embodiment, and has similar beneficial effects as the encoding method embodiment. For technical details not disclosed in the encoder embodiment of this application, please refer to the description of the encoding method embodiment of this application for understanding.
[0735] It should be noted that the division of modules by the encoder / decoder described in the embodiments of the present application is schematic and is only a logical functional division. In actual implementation, other division methods may be used. In addition, the functional units in the various embodiments of the present application can be integrated into a processing unit, or can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or software functional units. It can also be implemented in the form of a combination of software and hardware.
[0736] It should be noted that, in the embodiment of the present application, if the above method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the relevant technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling an electronic device to execute all or part of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a magnetic disk or an optical disk. In this way, the embodiment of the present application is not limited to any specific combination of hardware and software.
[0737] An embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a first processor, it implements the encoding method as described in the embodiment of the present application, or when the computer program is executed by a second processor, it implements the decoding method as described in the embodiment of the present application.
[0738] An embodiment of the present application provides a decoder. As shown in FIG49 , the decoder 48 includes: a first communication interface 481, a first memory 482, and a first processor 483; the various components are coupled together via a first bus system 484. It is understood that the first bus system 484 is used to implement connection and communication between these components. In addition to the data bus, the first bus system 484 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as the first bus system 484 in FIG49. Among them, the first communication interface 481 is used to receive and send signals during the process of sending and receiving information between other external network elements; the first memory 482 is used to store a computer program that can be run on the first processor 483; and the first processor 483 is used to execute the encoding method described in the embodiment of the present application when running the computer program.
[0739] It is understood that the first memory 482 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The first memory 482 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0740] The first processor 483 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits or software instructions in the first processor 483. The above-mentioned first processor 483 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the first memory 482 , and the first processor 483 reads the information in the first memory 482 and completes the steps of the above method in combination with its hardware.
[0741] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, the technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
[0742] Optionally, as another embodiment, the first processor 483 is further configured to execute any of the aforementioned encoding method embodiments when running the computer program.
[0743] The present application implements an encoder, as shown in FIG50 , the encoder 49 includes: a second communication interface 491, a second memory 492, and a second processor 493; the various components are coupled together via a second bus system 494. It can be understood that the second bus system 494 is used to implement connection and communication between these components. In addition to the data bus, the second bus system 494 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as the second bus system 494 in FIG50. Among them, the second communication interface 491 is used to receive and send signals in the process of sending and receiving information between other external network elements; the second memory 492 is used to store a computer program that can be run on the second processor 493; the second processor 493 is used to execute the decoding method described in the embodiment of the present application when running the computer program.
[0744] It can be understood that the hardware functions of the second memory 492 and the first memory 482 are similar, and the hardware functions of the second processor 493 and the first processor 483 are similar; they will not be described in detail here.
[0745] The present application also provides a bitstream, which is obtained using the aforementioned encoding method. The bitstream is generated by bit-encoding information to be encoded; wherein the information to be encoded includes at least: first syntax element information, second syntax element information, current frame index, reference index information, first weighting coefficient, second weighting coefficient, first weighting coefficient index, second weighting coefficient index, and quantized AC coefficient residual value.
[0746] An embodiment of the present application provides an electronic device, comprising: a processor adapted to execute a computer program; and a computer-readable storage medium storing the computer program, wherein when the computer program is executed by the processor, the encoding method and / or decoding method described in the embodiment of the present application are implemented. The electronic device can be any type of device capable of video encoding and / or video decoding, such as a mobile phone, tablet computer, laptop computer, personal computer, television, projection device, or monitoring device.
[0747] It should be noted that the description of the above storage medium and device embodiments is similar to the description of the above method embodiments and has similar beneficial effects as the method embodiments. For technical details not disclosed in the storage medium, storage medium, and device embodiments of this application, please refer to the description of the method embodiments of this application for understanding.
[0748] It should be understood that "one embodiment" or "an embodiment" or "some embodiments" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" or "in some embodiments" appearing throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in the various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. 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. The above-mentioned serial numbers of the embodiments of the present application are for description only and do not represent the advantages and disadvantages of the embodiments. The above description of the various embodiments tends to emphasize the differences between the various embodiments. The same or similar aspects can be referenced to each other. For the sake of brevity, they will not be repeated here.
[0749] The term "and / or" in this article is only a description of the association relationship between associated objects, indicating that there can be three relationships. For example, object A and / or object B can mean: object A exists alone, object A and object B exist at the same time, and object B exists alone.
[0750] It should be noted that, in this document, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.
[0751] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The embodiments described above are merely illustrative. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as: multiple modules or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of devices or modules can be electrical, mechanical or other forms.
[0752] The modules described above as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules; they may be located in one place or distributed across multiple network units; some or all of the modules may be selected according to actual needs to achieve the purpose of this embodiment.
[0753] In addition, all functional modules in the embodiments of the present application can be integrated into one processing unit, or each module can be a separate unit, or two or more modules can be integrated into one unit; the above-mentioned integrated modules can be implemented in the form of hardware or in the form of hardware plus software functional units.
[0754] Those skilled in the art will understand that all or part of the steps of the above-mentioned method embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, the steps of the above-mentioned method embodiments are executed; and the aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, read-only memories (ROMs), magnetic disks or optical disks. Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application, or the part that contributes to the relevant technology, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling an electronic device to execute all or part of the methods described in each embodiment of the present application. And the aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks or optical disks.
[0755] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new method embodiments. The features disclosed in the several product embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new product embodiments. The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined, if they do not conflict, to obtain new method embodiments or device embodiments.
[0756] The above is merely an embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A decoding method, applied to a decoder, the method comprising: Parse the bitstream to determine first syntax element information of a current decoding unit of a current frame, where the first syntax element information represents a type of the decoding unit; Different types of decoding units correspond to different reference information of reference frames; Based on the type of the current decoding unit indicated by the first syntax element, the current node is predicted to obtain a property prediction value of the current node.
2. The method according to claim 1, wherein: The predicting the current node based on the type of the current decoding unit indicated by the first syntax element to obtain the attribute prediction value of the current node includes: When the type of the current decoding unit indicated by the first syntax element information is the first type, parse and determine two reference index information of the current decoding unit; Determine a first reference frame and a second reference frame based on the two reference index information; According to the acquired geometric information of the current node, searching for a first co-located node of the parent node of the current node in a first reference frame, and searching for a second co-located node of the parent node of the current node in a second reference frame; According to the first co-located node and the second co-located node, inter-frame attribute prediction is performed on the current node to obtain an attribute prediction value of the current node.
3. The method according to claim 1, wherein: The predicting the current node based on the type of the current decoding unit indicated by the first syntax element to obtain the attribute prediction value of the current node includes: When the type of the current decoding unit indicated by the first syntax element information is the second type, parsing and determining a reference index information of the current decoding unit; Determining a third reference frame based on the one reference index information; Searching for a third co-located node of a parent node of the current node in a third reference frame according to the acquired geometric information of the current node; According to the third co-located node, inter-frame attribute prediction is performed on the current node to obtain an attribute prediction value of the current node.
4. The method according to claim 1, wherein: The predicting the current node based on the type of the current decoding unit indicated by the first syntax element to obtain the attribute prediction value of the current node includes: In a case where the type of the current decoding unit indicated by the first syntax element information is the third type, the attribute prediction value of the current node is determined according to the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
5. The method according to any one of claims 1 to 4, wherein: The first syntax element information is indicated as the third type, indicating that the current decoding unit has no reference index information; The first syntax element information is indicated as the second type, indicating that the current decoding unit has at most one reference index information; The first syntax element information is indicated as a first type, indicating that the current decoding unit has at most two reference index information.
6. The method according to any one of claims 1 to 5, wherein: The method further comprises: determining a current frame index of a current frame; After the decoding of the current frame is completed, continue decoding the next frame in the decoding order until the decoding of the current sequence is completed, and determine the frame index of each frame; The decoded frames are arranged based on the frame index of each frame to obtain a decoded sequence.
7. The method according to claim 6, wherein: The determining of the current frame index of the current decoding unit includes: Parse the bitstream to determine second syntax element information of a current coding unit, where the second syntax element information indicates the current frame index.
8. The method according to any one of claims 2 to 4, wherein: The method further comprises: At least one first reference list is determined based on index information of the decoded frame; the first reference list represents a storage location mapping relationship of reference frame indexes.
9. The method according to claim 8, wherein: The at least one first reference list includes: two first reference lists; the reference index information includes: reference list index information; The determining the first reference frame and the second reference frame based on the two reference index information includes: Determine, from the two first reference lists, a first reference frame index and a second reference frame index, respectively, according to the reference list index information; Based on the first reference frame index and the second reference frame index, the first reference frame and the second reference frame are determined respectively.
10. The method according to claim 8, wherein: The at least one first reference list comprises: a first reference list; the reference index information comprises: reference list index information; The determining the third reference frame based on the one reference index information includes: Determining a third reference frame index from the first reference list according to a reference list index information; Based on the third reference frame index, the third reference frame is determined.
11. The method according to any one of claims 2 to 4, wherein: The method further comprises: At least one second reference list is determined based on index information of the decoded frame; the second reference list represents a storage location mapping relationship of the reference frame.
12. The method according to claim 11, wherein: The at least one second reference list includes: two second reference lists; the reference index information includes: reference frame index information; The determining the first reference frame and the second reference frame based on the two reference index information includes: The first reference frame and the second reference frame are respectively determined from the two second reference lists according to each reference frame index information.
13. The method according to claim 11, wherein: The at least one second reference list comprises: a second reference list; the reference index information comprises: reference frame index information; The determining the third reference frame based on the one reference index information includes: The third reference frame is determined from the second reference list according to the reference frame index information.
14. The method according to any one of claims 1 to 13, wherein: The decoding unit is any one of the frame level, block level, slice level or RAHT decoding level.
15. The method according to claim 2, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: When the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node.
16. The method according to claim 2, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: In a case where the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame, determining a first difference number of occupied child nodes between the first co-located node and the parent node of the current node according to the placeholder information of the first co-located node and the parent node of the current node; and Determine a second difference number of occupied child nodes between the second co-located node and the parent node of the current node according to the placeholder information of the second co-located node and the parent node of the current node; Determining, according to a relationship between the first difference number and the second difference number, a first weighting coefficient of the attribute reconstruction value of the first child node and a second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node; The first weighting coefficient and the second weighting coefficient are used to weight the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node to determine the attribute prediction value of the current node.
17. The method according to claim 16, wherein: The determining, according to the relationship between the first difference number and the second difference number, a first weighting coefficient of the attribute reconstruction value of the first child node and a second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node comprises: In the case where the first difference number is equal to the second difference number, the first weighting coefficient is determined to be equal to the second weighting coefficient.
18. The method according to claim 16, wherein: The determining, according to the relationship between the first difference number and the second difference number, a first weighting coefficient of the attribute reconstruction value of the first child node and a second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node comprises: In the case where the first difference number is smaller than the second difference number, the first weighting coefficient is determined to be larger than the second weighting coefficient.
19. The method according to claim 16, wherein: The determining, according to the relationship between the first difference number and the second difference number, a first weighting coefficient of the attribute reconstruction value of the first child node and a second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node comprises: In the case where the first difference number is greater than the second difference number, the first weighting coefficient is determined to be smaller than the second weighting coefficient.
20. The method according to claim 2, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: In a case where the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the second child node of the second co-located node.
21. The method according to claim 20, wherein: The determining, when the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node according to the attribute reconstruction value of the second child node of the second co-located node, comprises: In the case where the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding second child node of the second co-located node.
22. The method according to claim 2, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: In a case where the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the first child node of the first co-located node.
23. The method according to claim 22, wherein: The determining, when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node according to the attribute reconstruction value of the first child node of the first co-located node comprises: In a case where the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding first child node of the first co-located node.
24. The method according to claim 2, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: When the first co-located node does not exist in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
25. The method of claim 15, wherein: The determining the attribute prediction value of the current node according to the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node includes: The attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node are weighted according to the first weighting coefficient of the attribute reconstruction value of the first child node of the first co-located node and the second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node to obtain the attribute prediction value of the current node.
26. The method according to claim 25, wherein: The first weighting coefficient is equal to a first value, and the second weighting coefficient is equal to a second value.
27. The method according to claim 25, wherein: The method further comprises: determining the first weighting coefficient according to the interval between the acquisition time of the current frame and the first reference frame; or, The first weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the first child node.
28. The method according to claim 25, wherein: The method further comprises: determining the second weighting coefficient according to the interval between the acquisition time of the current frame and the second reference frame; or, The second weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the second child node.
29. The method according to claim 25, wherein: The method further comprises: Parse the code stream to obtain the first weighting coefficient and the second weighting coefficient.
30. The method of claim 25, wherein: The method further comprises: Parsing the bitstream to obtain a first weighting coefficient index and a second weighting coefficient index; The first weighting coefficient and the second weighting coefficient are determined from a coefficient list based on the first weighting coefficient index and the second weighting coefficient index.
31. The method according to any one of claims 2 to 4, wherein: The attribute prediction value of the current node is the AC coefficient prediction value of the current node; The method further comprises: Parse the bitstream to obtain the AC coefficient residual value of the current node; Determine an AC coefficient reconstruction value of the current node according to the AC coefficient residual value of the current node and the AC coefficient prediction value; An independent orthogonal inverse transformation is performed on the AC coefficient reconstruction value of the current node to obtain the attribute reconstruction value of the current node.
32. The method of claim 3, wherein: The performing inter-frame attribute prediction on the current node according to the third co-located node to obtain an attribute prediction value of the current node includes: In the case where the third co-located node exists in the third reference frame, determining the attribute prediction value of the current node according to the attribute reconstruction value of the third child node of the third co-located node; or, In a case where the third co-located node does not exist in the third reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
33. A coding method, applied to an encoder, the method comprising: Determining at least one reference list based on index information of the encoded frame; Pre-estimating based on the at least one reference list, determining a type of a current coding unit of a current frame, and indicating the type of the current coding unit using first syntax element information; Based on the type of the current coding unit, the current node is predicted to obtain a property prediction value of the current node.
34. The method of claim 33, wherein: The pre-estimating based on the at least one reference list to determine the type of the current coding unit includes: Based on the at least one reference list, two different reference lists are selected to pre-estimate the current coding unit to determine a first rate-distortion cost with a minimum rate-distortion cost, and a different reference list is selected to pre-estimate the current coding unit to determine a second rate-distortion cost with a minimum rate-distortion cost; Pre-estimating the current coding unit by intra-frame prediction to determine the third rate distortion cost; A type of a current coding unit is determined according to the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost.
35. The method of claim 34, wherein: The determining the type of the current coding unit according to the first rate-distortion cost, the second rate-distortion cost, and the third rate-distortion cost includes: If the smallest of the first rate-distortion cost, the second rate-distortion cost and the third rate-distortion cost is the first rate-distortion cost, determining that the type of the current coding unit is the first type; If the smallest of the first rate-distortion cost, the second rate-distortion cost and the third rate-distortion cost is the second rate-distortion cost, determining that the type of the current coding unit is the second type; If the smallest one of the first rate distortion cost, the second rate distortion cost and the third rate distortion cost is the third rate distortion cost, it is determined that the type of the current coding unit is the third type.
36. A method according to any one of claims 33 to 35, wherein: The predicting the current node based on the type of the current coding unit to obtain the attribute prediction value of the current node includes: When the type of the current coding unit is the first type, determining a first reference frame and a second reference frame of the current coding unit based on two reference lists in the at least one reference list; According to the acquired geometric information of the current node, searching for a first co-located node of the parent node of the current node in a first reference frame, and searching for a second co-located node of the parent node of the current node in a second reference frame; According to the first co-located node and the second co-located node, inter-frame attribute prediction is performed on the current node to obtain an attribute prediction value of the current node.
37. The method according to any one of claims 33 to 35, wherein: The predicting the current node based on the type of the current coding unit to obtain the attribute prediction value of the current node includes: When the type of the current coding unit is the second type, determining a third reference frame of the current coding unit based on a reference list in the at least one reference list; Searching for a third co-located node of a parent node of the current node in a third reference frame according to the acquired geometric information of the current node; According to the third co-located node, inter-frame attribute prediction is performed on the current node to obtain an attribute prediction value of the current node.
38. The method according to any one of claims 33 to 35, wherein: The predicting the current node based on the type of the current coding unit to obtain the attribute prediction value of the current node includes: In a case where the type of the current coding unit is the third type, the attribute prediction value of the current node is determined according to the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
39. The method according to claim 36 or 37, wherein: Writing two reference index information corresponding to the first reference frame and the second reference frame into the bitstream; or, A reference index information corresponding to the first reference frame is written into the bitstream, where: The reference index information includes: reference list index information or reference frame index information.
40. The method according to any one of claims 33 to 39, wherein: The type of the current coding unit is the third type, indicating that the current coding unit has no reference index information; The type of the current coding unit is the second type, indicating that the current coding unit has at most one reference index information; The type of the current coding unit is the first type, indicating that the current coding unit has at most two reference index information.
41. The method according to any one of claims 33 to 40, wherein: The method further comprises: determining a current frame index of a current frame; The current frame index is indicated by using second syntax element information, and the second syntax element information is carried in the syntax layer of the current coding unit and written into the bitstream.
42. The method of claim 36 or 37, wherein: The determining at least one reference list based on index information of the encoded frame comprises: At least one first reference list is determined based on index information of the encoded frame; the first reference list represents a storage location mapping relationship of the reference frame index.
43. The method of claim 42, wherein: The at least one first reference list includes: two first reference lists; The determining, based on two reference lists in the at least one reference list, the first reference frame and the second reference frame of the current coding unit comprises: Determine a first reference frame index and a second reference frame index from the two first reference lists respectively; Based on the first reference frame index and the second reference frame index, the first reference frame and the second reference frame are determined respectively.
44. The method of claim 42, wherein: The at least one first reference list comprises: a first reference list; The determining, based on a reference list in the at least one reference list, a third reference frame of the current coding unit comprises: Determining a third reference frame index from the one first reference list; Based on the third reference frame index, the third reference frame is determined.
45. The method of claim 36 or 37, wherein: The determining at least one reference list based on index information of the encoded frame comprises: At least one second reference list is determined based on index information of the encoded frame; the second reference list represents a storage location mapping relationship of the reference frame.
46. The method of claim 45, wherein: The at least one second reference list includes: two second reference lists; The determining, based on two reference lists in the at least one reference list, the first reference frame and the second reference frame of the current coding unit comprises: From the two second reference lists, a first reference frame and a second reference frame are determined respectively.
47. The method of claim 45, wherein: The at least one second reference list comprises: a second reference list; The determining, based on a reference list in the at least one reference list, a third reference frame of the current coding unit comprises: From the one second reference list, a third reference frame is determined.
48. The method of claims 33 to 47, wherein: The coding unit is any one of a frame level, a block level, a slice level or a RAHT coding level.
49. The method of claim 36, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: When the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node.
50. The method of claim 36, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: In a case where the first co-located node exists in the first reference frame and the second co-located node exists in the second reference frame, determining a first difference number of occupied child nodes between the first co-located node and the parent node of the current node according to the placeholder information of the first co-located node and the parent node of the current node; and Determine a second difference number of occupied child nodes between the second co-located node and the parent node of the current node according to the placeholder information of the second co-located node and the parent node of the current node; Determining, according to a relationship between the first difference number and the second difference number, a first weighting coefficient of the attribute reconstruction value of the first child node and a second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node; The first weighting coefficient and the second weighting coefficient are used to weight the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node to determine the attribute prediction value of the current node.
51. The method of claim 50, wherein: The determining, according to the relationship between the first difference number and the second difference number, a first weighting coefficient of the attribute reconstruction value of the first child node and a second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node comprises: In the case where the first difference number is equal to the second difference number, the first weighting coefficient is determined to be equal to the second weighting coefficient.
52. The method of claim 50, wherein: The determining, according to the relationship between the first difference number and the second difference number, a first weighting coefficient of the attribute reconstruction value of the first child node and a second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node comprises: In the case where the first difference number is smaller than the second difference number, the first weighting coefficient is determined to be larger than the second weighting coefficient.
53. The method of claim 50, wherein: The determining, according to the relationship between the first difference number and the second difference number, a first weighting coefficient of the attribute reconstruction value of the first child node and a second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node comprises: In the case where the first difference number is greater than the second difference number, the first weighting coefficient is determined to be smaller than the second weighting coefficient.
54. The method of claim 36, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: In a case where the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the second child node of the second co-located node.
55. The method of claim 54, wherein: The determining the attribute prediction value of the current node according to the attribute reconstruction value of the second child node of the second co-located node includes: In the case where the first co-located node does not exist in the first reference frame and the second co-located node exists in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding second child node of the second co-located node.
56. The method of claim 36, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: In a case where the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of the first child node of the first co-located node.
57. The method of claim 22, wherein: The determining, when the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node according to the attribute reconstruction value of the first child node of the first co-located node comprises: In a case where the first co-located node exists in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is equal to the attribute reconstruction value of the corresponding first child node of the first co-located node.
58. The method of claim 36, wherein: The performing inter-frame attribute prediction on the current node according to the first co-located node and the second co-located node to obtain an attribute prediction value of the current node includes: When the first co-located node does not exist in the first reference frame and the second co-located node does not exist in the second reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
59. The method of claim 49, wherein: The determining the attribute prediction value of the current node according to the attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node includes: The attribute reconstruction value of the first child node of the first co-located node and the attribute reconstruction value of the second child node of the second co-located node are weighted according to the first weighting coefficient of the attribute reconstruction value of the first child node of the first co-located node and the second weighting coefficient of the attribute reconstruction value of the second child node of the second co-located node to obtain the attribute prediction value of the current node.
60. The method of claim 59, wherein: The first weighting coefficient is equal to a first value, and the second weighting coefficient is equal to a second value.
61. The method of claim 59, wherein: The method further comprises: determining the first weighting coefficient according to the interval between the acquisition time of the current frame and the first reference frame; or, The first weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the first child node.
62. The method of claim 59, wherein: The method further comprises: determining the second weighting coefficient according to the interval between the acquisition time of the current frame and the second reference frame; or, The second weighting coefficient is determined according to the geometric information of the current node and the attribute distribution information of the second child node.
63. The method of claim 59, wherein: The method further comprises: Determining rate-distortion costs of a plurality of candidate weighting coefficient groups from the coefficient list; wherein the candidate weighting coefficient groups include a first candidate weighting coefficient of the attribute reconstruction value of the first co-located node and a second candidate weighting coefficient of the attribute reconstruction value of the second co-located node; Selecting a candidate weighting coefficient group with the smallest rate-distortion cost from the plurality of candidate weighting coefficient groups; A first candidate weighting coefficient in the candidate weighting coefficient group with the minimum rate-distortion cost is used as the first weighting coefficient, and a second candidate weighting coefficient in the candidate weighting coefficient group with the minimum rate-distortion cost is used as the second weighting coefficient.
64. The method of claim 63, wherein: The method further comprises: writing the first weighting coefficient and the second weighting coefficient into a bitstream; or, A first weighting coefficient index of the first weighting coefficient and a second weighting coefficient index of the second weighting coefficient are written into a bitstream.
65. The method according to any one of claims 36 to 38, wherein: The attribute prediction value of the current node is the AC coefficient prediction value of the current node; The method further comprises: Determine the original value of the AC coefficient of the current node; Determine the AC coefficient residual value of the current node according to the AC coefficient prediction value and the AC coefficient original value; The AC coefficient residual value is quantized and written into the bitstream.
66. [Corrected 20.10.2023 under Rule 91] A method according to claim 37, wherein: The performing inter-frame attribute prediction on the current node according to the third co-located node to obtain an attribute prediction value of the current node includes: In the case where the third co-located node exists in the third reference frame, determining the attribute prediction value of the current node according to the attribute reconstruction value of the third child node of the third co-located node; or, In a case where the third co-located node does not exist in the third reference frame, the attribute prediction value of the current node is determined according to the attribute reconstruction value of at least one neighboring node of the current node in the current frame.
67. [Corrected 20.10.2023 under Rule 91] A method according to any one of claims 33 to 66, wherein: The first syntax element information is written into a bitstream.
68. [Corrected 20.10.2023 in accordance with Rule 91] A decoder comprising: The decoding part is configured to parse the bitstream and determine first syntax element information of a current decoding unit of a current frame, wherein the first syntax element information represents a type of the decoding unit; different types of decoding units correspond to different reference information of reference frames; The first prediction part is configured to predict the current node based on the type of the current decoding unit indicated by the first syntax element to obtain a property prediction value of the current node.
69. [Corrected 20.10.2023 in accordance with Rule 91] A decoder comprising: a first memory and a first processor; wherein, The first memory is used to store a computer program that can be run on the first processor; The first processor is configured to execute the method according to any one of claims 1 to 32 when running the computer program.
70. [Corrected 20.10.2023 in accordance with Rule 91] An encoder, comprising: A second determining part is configured to determine at least one reference list based on index information of the decoded frame; and, performing pre-estimation based on the at least one reference list, determining a type of a current coding unit of a current frame, and using first syntax element information to indicate the type of the current coding unit; The second prediction part is configured to predict the current node based on the type of the current coding unit to obtain a property prediction value of the current node.
71. [Corrected 20.10.2023 in accordance with Rule 91] An encoder, comprising: A second memory and a second processor; wherein, The second memory is used to store a computer program that can be run on the second processor; The second processor is configured to execute the method according to any one of claims 33 to 67 when running the computer program.
72. [Corrected 20.10.2023 in accordance with Rule 91] A code stream, the code stream being generated by bit encoding information to be encoded; wherein: The information to be encoded includes at least: first syntax element information, second syntax element information, current frame index, reference index information, first weighting coefficient, second weighting coefficient, first weighting coefficient index, second weighting coefficient index, and quantized AC coefficient residual value.
73. [Corrected 20.10.2023 in accordance with Rule 91] A computer-readable storage medium, wherein The computer-readable storage medium stores a computer program, which implements the method according to any one of claims 1 to 32 when executed by a first processor, or implements the method according to any one of claims 33 to 67 when executed by a second processor.