Encoding method, decoding method, encoder, decoder, and storage medium
By utilizing the posterior prediction information of neighboring nodes at the encoding and decoding ends to optimize intra-frame and inter-frame voting results and weight values, the bottleneck of point cloud data storage and transmission is solved, and the encoding and decoding performance and compression rate of point clouds are improved.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
- Filing Date
- 2025-01-13
- Publication Date
- 2026-07-16
AI Technical Summary
The storage and transmission of point cloud data face bottlenecks in storage space and transmission bandwidth. Existing encoding and decoding frameworks have insufficient performance in inter-frame and intra-frame prediction, which affects the compression rate and encoding and decoding performance of point cloud data.
At the encoding and decoding ends, based on the posterior prediction information of the current node's neighboring nodes, the intra-frame voting results and inter-frame voting results are determined, and the intra-frame weight value and inter-frame weight value are calculated to optimize the weighted average prediction between frames and improve the accuracy of the prediction value.
It improves the encoding and decoding performance of point cloud data, enhances the point cloud compression rate, and reduces storage requirements and transmission traffic.
Smart Images

Figure CN2025072112_16072026_PF_FP_ABST
Abstract
Description
Encoding / decoding methods, encoders, decoders, and storage media Technical Field
[0001] This application relates to the field of video encoding and decoding technology, and in particular to an encoding and decoding method, encoder, decoder, and storage medium. Background Technology
[0002] A point cloud is a set of randomly distributed discrete points in space that represent the spatial structure and surface properties of a three-dimensional object or scene. Point cloud data typically includes geometric and attribute information of the sampling points; the geometric information includes the three-dimensional position information of the sampling points, and the attribute information includes the color information and / or one-dimensional reflectance information of the sampling points, etc.
[0003] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Since point clouds are obtained by directly sampling real objects, they can provide a strong sense of realism 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 telepresence, and three-dimensional reconstruction of biological tissues and organs.
[0004] With the growth of application demands, the processing of massive three-dimensional (3D) point cloud data has encountered bottlenecks due to limitations in storage space and transmission bandwidth. To better achieve data management, save server storage space, and reduce transmission traffic and time between servers and clients, point cloud compression has become a key issue in promoting the development of the point cloud industry. Summary of the Invention
[0005] This application provides an encoding / decoding method, encoder, decoder, and storage medium that can improve the encoding / decoding performance of point clouds.
[0006] The technical solution of this application embodiment can be implemented as follows:
[0007] In a first aspect, embodiments of this application provide a decoding method applied to a decoder. The method includes: determining the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node; determining the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and determining the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0008] Secondly, embodiments of this application provide an encoding method applied to an encoder. The method includes: determining the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node; determining the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and determining the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0009] Thirdly, embodiments of this application provide an encoder, which includes a first determining unit and a first predicting unit, wherein: the first determining unit is configured to determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node; the first determining unit is configured to determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and the first predicting unit is configured to determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0010] Fourthly, embodiments of this application provide an encoder, which includes a first memory and a first processor; wherein the first memory is used to store a computer program that can run on the first processor; and the first processor is used to execute the method described in the second aspect when running the computer program.
[0011] Fifthly, embodiments of this application provide a decoder, which includes a second determining unit and a second predicting unit, wherein: the second determining unit is configured to determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node; the second determining unit is configured to determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and the second predicting unit is configured to determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0012] In a sixth aspect, embodiments of this application provide a decoder, which includes a second memory and a second processor; wherein the second memory is used to store a computer program that can run on the second processor; and the second processor is used to execute the method described in the first aspect when running the computer program.
[0013] In a seventh aspect, embodiments of this application provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method described in the first aspect or the method described in the second aspect.
[0014] Eighthly, embodiments of this application provide a computer program product, including a computer program or instructions that, when executed by a processor, implement the method described in the first aspect or the method described in the second aspect.
[0015] In a ninth aspect, embodiments of this application provide a computer-readable storage medium having a bitstream stored thereon, the bitstream being generated by performing the steps of the encoding method as described in the second aspect.
[0016] It is understood that this application provides an encoding / decoding method, encoder, decoder, and storage medium. Whether at the encoding or decoding end, based on the posterior prediction information of the current node's neighboring nodes, the intra-frame voting result and inter-frame voting result of the current node are determined; based on the intra-frame voting result and the inter-frame voting result, the intra-frame weight value and inter-frame weight value of the current node are determined; based on the intra-frame weight value and the inter-frame weight value of the current node, the predicted value of the current node is determined. Thus, utilizing the posterior prediction information of neighboring nodes that have already completed encoding and decoding to determine the intra-frame voting result and inter-frame voting result of the current node is beneficial to improving the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, and further improving the accuracy of the predicted value of the current node, thus enhancing the encoding and decoding performance of the point cloud. Attached Figure Description
[0017] Figure 1A is a schematic diagram of a three-dimensional point cloud image;
[0018] Figure 1B is a magnified view of a portion of a three-dimensional point cloud image;
[0019] Figure 2A is a schematic diagram of six viewing angles for a point cloud image;
[0020] Figure 2B is a schematic diagram of a data storage format corresponding to a point cloud image;
[0021] Figure 3 is a schematic diagram of a network architecture for point cloud encoding and decoding;
[0022] Figure 4 is a schematic diagram of the component framework of a GESTM encoder;
[0023] Figure 5 is a schematic diagram of the component framework of a GESTM decoder;
[0024] Figure 6 is a schematic diagram of the implementation flow of a decoding method provided in an embodiment of this application;
[0025] Figure 7 is a schematic diagram of a further implementation process of step 601 provided in an embodiment of this application;
[0026] Figure 8 is a schematic diagram of the implementation process for determining the intra-frame voting parameters of neighboring nodes provided in an embodiment of this application;
[0027] Figure 9 is a schematic diagram of the implementation process for determining the intra-frame voting parameters of neighboring nodes provided in an embodiment of this application;
[0028] Figure 10 is a schematic diagram of the implementation process for determining the intra-frame voting parameters of neighboring nodes provided in the embodiments of this application;
[0029] Figure 11 is a schematic diagram of the implementation flow of the encoding method provided in the embodiment of this application;
[0030] Figure 12 is a schematic diagram of the composition structure of an encoder provided in an embodiment of this application;
[0031] Figure 13 is a schematic diagram of the hardware structure of an encoder provided in an embodiment of this application;
[0032] Figure 14 is a schematic diagram of the composition structure of a decoder provided in an embodiment of this application;
[0033] Figure 15 is a schematic diagram of the hardware structure of a decoder provided in an embodiment of this application;
[0034] Figure 16 is a schematic diagram of the composition structure of an encoding / decoding system provided in an embodiment of this application. Detailed Implementation
[0035] In order to gain a more detailed understanding of the features and technical content of the embodiments of this application, the implementation of the embodiments of this application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are for reference and illustration only and are not intended to limit the embodiments of this application.
[0036] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0037] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is 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.
[0038] It should also be noted that the terms "first, second, and third" used in the embodiments of this application are only used to distinguish similar objects and do not represent a specific order of objects. It is understood that "first, second, and third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.
[0039] Point cloud is a three-dimensional representation of an object's surface. Point cloud data of an object's surface can be collected using acquisition devices such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0040] A point cloud is a set of randomly distributed discrete points in three-dimensional space that represent the spatial structure and surface properties of a three-dimensional object or scene. These points contain geometric information representing spatial location and attribute information representing the texture of the point cloud. Figure 1A shows a three-dimensional point cloud image, and Figure 1B shows a magnified view of a portion of the three-dimensional point cloud image. It can be seen that the surface of the point cloud is composed of densely distributed points.
[0041] Two-dimensional images contain information at each pixel, and their distribution is regular, so there's no need to record their position information separately. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so it's necessary to record the position of each point in space to fully represent objects in three-dimensional space. Similar to two-dimensional images, each location during the acquisition process has corresponding attribute information, typically including color and reflectance information. Color information reflects the object's color and is usually represented by RGB; reflectance information reflects the object's surface material and is usually represented by reflectionance. Point cloud data typically consists of geometric information (x, y, z) representing three-dimensional spatial position information, and attribute information such as color information (r, g, b) and reflectance information. For example, reflectance information can be one-dimensional reflectance information (r); color information can be information in any color space, or it can be three-dimensional color information, such as RGB information. Here, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For example, color information can be luminance and chromaticity (YCbCr, YUV) information. Here, Y represents luminance (Luma), Cb(U) represents blue color difference, and Cr(V) represents red color difference.
[0042] For example, a point cloud obtained based on laser measurement principles may contain points whose three-dimensional coordinates and reflectance information are included. Similarly, a point cloud obtained based on photogrammetry principles may contain points whose three-dimensional coordinates and three-dimensional color information are included. Furthermore, a point cloud obtained by combining laser measurement and photogrammetry principles may contain points whose three-dimensional coordinates, reflectance information, and three-dimensional color information are included.
[0043] Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing dimensions of the point cloud image, while Figure 2B consists of a file header and a data section. The header information includes the data format, data representation type, total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud file format is ".ply", represented by ASCII code, with a total of 207242 points. Each point has three-dimensional coordinate information (x, y, z) and three-dimensional color information (r, g, b).
[0044] Point clouds can be categorized according to the acquisition method:
[0045] Static point cloud: This means that the object is stationary and the device used to acquire the point cloud is also stationary.
[0046] Dynamic point cloud: The object is in motion, but the device acquiring the point cloud is stationary;
[0047] Dynamic point cloud acquisition: The device acquiring the point cloud is in motion.
[0048] For example, point clouds can be divided into two main categories based on their uses:
[0049] Category 1: Machine-perceived 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;
[0050] Category 2: Human eye-perceived point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0051] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Since point clouds are obtained by directly sampling real objects, they can provide a strong sense of realism 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.
[0052] Point cloud acquisition primarily utilizes the following methods: computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can acquire point clouds of static real-world 3D objects or scenes, with a capacity of millions of point clouds per second; 3D photogrammetry can acquire point clouds of dynamic real-world 3D objects or scenes, with a capacity of tens of millions of point clouds per second. These point cloud acquisition technologies have reduced the cost and time required for point cloud data acquisition and improved data accuracy, further advancing the practical applications of point clouds. The continuous industrialization of point cloud data acquisition methods has made the acquisition of massive amounts of point cloud data possible. However, with the growth of application demands, the processing of massive amounts of 3D point cloud data has encountered bottlenecks in storage space and transmission bandwidth.
[0053] For example, taking a point cloud video with a frame rate of 30 frames per second (fps) as an example, each frame contains 700,000 points, and each point contains coordinate information xyz (float) and color information RGB (uchar). Therefore, the data size of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 s = 3.15 GB, where 1 byte is 10 bits. Correspondingly, a 10-second 1280×720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 30 fps has a data size of approximately 1280×720 × 12 bits × 30 fps × 10 s ≈ 0.39 GB, and a 10-second two-view three-dimensional video has a data size of approximately 0.39 × 2 = 0.78 GB. It is evident that the data size of a point cloud video far exceeds that of two-dimensional and three-dimensional videos of the same duration. Therefore, in order to better achieve 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.
[0054] In other words, since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support the transmission of point clouds directly at the network layer without compression. Therefore, point clouds need to be compressed.
[0055] Currently, point cloud encoding frameworks that can compress point clouds include the Geometry-based Point Cloud Compression (G-PCC) or Video-based Point Cloud Compression (V-PCC) frameworks provided by the Moving Picture Experts Group (MPEG), and the AVS-PCC framework provided by AVS. The G-PCC framework can be used to compress both static point clouds (Type 1) and dynamically acquired point clouds (Type 3), and it can be based on the Test Model Compression 13 (TMC13) point cloud compression test platform. The V-PCC framework can be used to compress dynamic point clouds (Type 2), and it can be based on the Test Model Compression 2 (TMC2) point cloud compression test platform. Therefore, the G-PCC framework is also called the point cloud codec TMC13, and the V-PCC framework is also called the point cloud codec TMC2.
[0056] This application provides a network architecture for a point cloud encoding / decoding system that includes decoding and encoding methods. Figure 3 is a schematic diagram of such a network architecture. As shown in Figure 3, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01. The electronic devices 13 to 1N can perform video interaction through the communication network 01. During implementation, the electronic devices can be various types of devices with point cloud encoding / decoding capabilities. For example, the electronic devices may include mobile phones, tablets, personal computers, personal digital assistants, navigators, digital phones, video phones, televisions, sensing devices, servers, etc. This application does not impose any limitations. The decoder or encoder in this application embodiment can be one of the aforementioned electronic devices.
[0057] The electronic device in this application embodiment has point cloud encoding and decoding functions, and generally includes a point cloud encoder (i.e., encoder) and a point cloud decoder (i.e. decoder).
[0058] The following section uses the G-PCC (Geometry-based Solid point cloud coding Test Model, GESTM) encoding and decoding framework for point clouds as an example to explain the relevant technologies.
[0059] As can be understood, in the GESTM point cloud encoding / decoding framework, for the input point cloud, the point cloud data is first divided into multiple slices. Within each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
[0060] Figure 4 shows a schematic diagram of the component framework of a GESTM encoder. As shown in Figure 4, this GESTM encoder is applied to a point cloud encoder. In the GESTM encoding framework, the input point cloud is divided into slices, and each slice is encoded independently. Within a slice, the geometric information of the point cloud and the attribute information corresponding to the points in the point cloud are encoded separately. The GESTM encoder first encodes the geometric information. The encoder performs coordinate transformation on the geometric information so that the entire point cloud is contained within a bounding box; then quantization is performed. This quantization step mainly serves a scaling function. Due to the rounding effect of quantization, some points have the same geometric information. Based on parameters, it is determined whether to remove duplicate points. This process of quantization and removal of duplicate points is also called voxelization. Next, the bounding box is divided into octree-based partitions. Depending on the depth of the octree partitioning level, the encoding of geometric information is divided into two frameworks: one based on octrees and the other based on triangular patch sets.
[0061] In the octree-based geometric information coding framework, the bounding box is divided into eight equal sub-cubes, and the placeholder bits of each sub-cube are recorded (where 1 indicates non-empty and 0 indicates empty). The non-empty sub-cubes are then further divided into eight equal parts, typically stopping when the resulting leaf nodes are 1×1×1 unit cubes. During this process, the spatial correlation between nodes and their surrounding nodes is used to perform intra-frame prediction of the placeholder bits. Finally, CABAC encoding based on a context model is performed to generate a binary geometric bitstream, i.e., a geometric codestream.
[0062] In the geometric information encoding framework based on triangular facet sets, octree partitioning is also performed first. However, the difference lies in the fact that octree-based geometric information encoding does not require progressively partitioning the point cloud into unit cubes with side lengths of 1×1×1. Instead, partitioning stops when the side length of a block reaches W. Based on the surface formed by the distribution of the point cloud in each block, at most twelve vertices are obtained between this surface and the twelve edges of the block. Finally, the vertex coordinates of each block are encoded sequentially to generate a binary geometric bitstream, i.e., a geometric code stream.
[0063] After encoding the geometric information, the GESTM encoder reconstructs the geometric information and uses the reconstructed geometric information to encode the attribute information of the point cloud. Currently, the attribute encoding of the point cloud mainly involves encoding the color information of the points in the point cloud. First, the encoder can perform color space conversion on the color information of the points. For example, when the color information of the points in the input point cloud is represented using the RGB color space, the encoder can convert the color information from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, there are two main transformation methods: one is a distance-based lifting transformation that depends on the Level of Detail (LOD) partitioning, and the other is a direct Region Adaptive Hierarchical Transform (RAHT). Both methods transform the color information from the spatial domain to the frequency domain, obtaining high-frequency coefficients and low-frequency coefficients. Finally, the coefficients are quantized, and then the quantized coefficients are arithmetically encoded to generate a binary attribute bitstream, i.e., the attribute code stream.
[0064] Figure 5 is a schematic diagram of the component framework of a GESTM decoder. As shown in Figure 5, this GESTM decoder is applied to a point cloud decoder. In the G-PCC decoding framework, after acquiring the binary bitstream, the geometric bitstream and attribute bitstream in the binary bitstream are decoded independently. When decoding the geometric bitstream, the geometric information of the point cloud is obtained through arithmetic decoding, octree synthesis, surface fitting, geometry reconstruction, and inverse coordinate transformation. When decoding the attribute bitstream, the attribute information of the point cloud is obtained through arithmetic decoding, inverse quantization, inverse LOD-based boosting or RAHT-based inverse transformation, and inverse color conversion. Based on the geometric and attribute information, the original slice can be recovered. After merging the slices, the 3D image model of the input point cloud can be restored.
[0065] It should be noted that, as shown in Figure 4 or Figure 5, the current geometry encoding and decoding of GESTM can be divided into octree-based geometry encoding and decoding and triangle soup (Trisoup)-based geometry encoding and decoding. Attribute encoding and decoding includes three attribute encoding methods: Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT). The first two methods predictively encode the point cloud based on the order of LOD generation, while RAHT adaptively transforms attribute information from bottom to top based on the octree's construction hierarchy. Furthermore, the general test sequence can include three classes: Cat2-A, Cat2-B, and Cat2-C, where the point cloud only contains color attribute information.
[0066] The following section provides a detailed description of point cloud attribute encoding methods, using regional adaptive hierarchical transformation as an example.
[0067] Region Adaptive Hierarchical Transform (RAHT) is a Haar wavelet transform that can transform point cloud attribute information from the spatial domain to the frequency domain, further reducing the correlation between point cloud attributes. Its main idea is to follow an octree structure, using a bottom-up approach to transform nodes in each layer along the X, Y, and Z dimensions, iterating until the root node of the octree. The basic idea is to perform wavelet transform based on the hierarchical structure of the octree, associating attribute information with octree nodes. For attributes of nodes occupied by the same parent node, the transformation is performed recursively from bottom to top, transforming nodes in each layer along 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 transforming nodes in the same layer are passed to nodes in the next layer for further transformation, while all high-pass / high-frequency (AC) coefficients can be encoded using an arithmetic encoder.
[0068] For inter-frame and intra-frame RAHT transforms, in the related GESTM attribute inter-frame predictive coding, the RAHT attribute transform coding structure is constructed based on the geometric information of the current node to be coded. This involves continuously merging nodes at the voxel level until the root node of the entire RAHT transform tree is obtained, thus completing the hierarchical structure of the attribute transform coding. Based on the RAHT transform structure, the root node is divided to obtain N child nodes (N less than or equal to 8). The attributes of the N child nodes are then independently orthogonally transformed using the RAHT transform to obtain DC and AC coefficients. Then, attribute inter-frame / intra-frame prediction is performed on the AC coefficients of the N child nodes in the following manner:
[0069] (1) Intra-frame prediction:
[0070] Intra-frame predicted values are obtained by using the attribute prediction values of neighboring nodes within the frame.
[0071] (2) Inter-frame prediction:
[0072] A node that is exactly at the same position as the current node is found in the buffer of the reference frame; this node is called a peer node.
[0073] If the inter-frame prediction node of the current node is valid: that is, if a co-located node exists, the attribute of the prediction node will be directly used as the attribute prediction value of the current node to be encoded / decoded.
[0074] If the inter-frame prediction node of the current node is invalid (i.e., the co-location node does not exist), then the attribute prediction values of the adjacent nodes within the frame are used as the attribute prediction values of the node to be encoded / decoded.
[0075] (3) No prediction:
[0076] If there are no inter-frame prediction values and no intra-frame prediction values, it is a no-prediction mode, i.e., no prediction value.
[0077] In one possible implementation, a weighted average prediction is performed for inter-frame and intra-frame predictions. When performing RAHT prediction, if both intra-frame and inter-frame prediction values exist, they are weighted and averaged to obtain a new prediction value, called the inter-frame and intra-frame weighted average prediction value. The calculation method is as follows:
[0078] First, before performing the weighted average prediction value for inter-frame and intra-frame predictions on the current node, initialize voteInter to 0 and voteIntra to 0.
[0079] Attrinter_predict represents inter-frame prediction, Attrinter_predict represents intra-frame prediction, W inter The weight value representing the inter-frame prediction (referred to as "inter-frame weight value"), W intra The weight values representing the intra-frame prediction values (referred to as "intra-frame weight values").
[0080] Here, voteinter is the inter-frame voting result of the current node, and voteintra is the intra-frame voting result of the current node. Both voteinter and voteintra are calculated using the same algorithm at the encoding and decoding end, and do not need to be encoded / decoded in the bitstream.
[0081] RahtPredMode is the prediction mode of the current node, which is divided into four types (inter-frame prediction mode, intra-frame prediction mode, no prediction mode, and average prediction mode).
[0082] In one implementation:
[0083] The impact of parent node prediction mode on weights: voteinter = voteinter + 14 * (RahtPredMode == inter-frame prediction mode || RahtPredMode == average prediction mode) voteintra = voteintra + 14 * (RahtPredMode == intra-frame prediction mode) voteinter = voteinter + 7 * (RahtPredMode == no prediction mode) voteintra = voteintra + 7 * (RahtPredMode == no prediction mode)
[0084] The impact of the uncle node's prediction mode on the weights: voteinter = voteinter + 2 * (RahtPredMode == inter-frame prediction mode || RahtPredMode == average prediction mode) voteintra = voteintra + 2 * (RahtPredMode == intra-frame prediction mode) voteinter = voteinter + 1 * (RahtPredMode == no prediction mode) voteintra = voteintra + 1 * (RahtPredMode == no prediction mode)
[0085] The impact of the prediction mode of the uncle node's child nodes on the weights: voteinter = voteinter + 6 * (RahtPredMode == inter-frame prediction mode || RahtPredMode == average prediction mode) voteintra = voteintra + 6 * (RahtPredMode == intra-frame prediction mode) voteinter = voteinter + 3 * (RahtPredMode == no prediction mode) voteintra = voteintra + 3 * (RahtPredMode == no prediction mode)
[0086] The weighted average prediction value (Attraverage_predict) between frames and within frames can be determined using the following formula:
[0087] One way to implement the above formula is through fixed-point processing, as shown in the following formula: w intra =divApprox(voteIntra<<kFPFracBits,voteIntra+voteInter) w inter = (1 << kFPFracBits) - w intraAttraverage_predict=FPReduce(Attrinter_predict×W inter +Attrintra_predict×W intra )
[0088] in,
[0089] However, the above implementation method does not yield the optimal inter-frame and intra-frame prediction weighted average prediction result, thus reducing encoding and decoding performance.
[0090] Based on this, embodiments of this application provide an encoding and decoding method. Whether at the encoding end or the decoding end, the encoding and decoding method includes: determining the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node; determining the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and determining the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0091] In this way, since the intra-frame voting result and inter-frame voting result of the current node are determined based on the posterior prediction information of the current node's neighboring nodes, the calculation of the inter-frame voting result voteinter and the intra-frame voting result voteintra is more accurate. This results in more accurate inter-frame weight values and intra-frame weight values, which are used for the weighted average prediction of the current node. This optimizes the inter-frame and intra-frame weighted average prediction, obtains more accurate prediction values, and thus improves the compression ratio of the point cloud and the encoding and decoding performance of the point cloud.
[0092] The embodiments of the encoding and decoding method provided in this application will now be described in detail with reference to the accompanying drawings.
[0093] Figure 6 is a schematic diagram of the implementation flow of a decoding method provided in an embodiment of this application. As shown in Figure 6, the method may include the following steps 601 to 603:
[0094] Step 601: Determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node;
[0095] Step 602: Determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting results and the inter-frame voting results;
[0096] Step 603: Determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0097] It is understood that in this embodiment of the application, using the posterior prediction information of the neighboring nodes that have been decoded to determine the intra-frame voting result and inter-frame voting result of the current node is beneficial to improving the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, and further improving the accuracy of the prediction value of the current node, thus enhancing the decoding performance of the point cloud.
[0098] The following sections will describe further optional implementation methods for each of the above steps, as well as related terms.
[0099] Step 601: Determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node.
[0100] It should be understood that in step 601, the current node may have one or more neighboring nodes, and this application does not limit this.
[0101] In some embodiments, the neighboring nodes of the current node are decoded nodes. It should also be noted that, in the embodiments of this application, there is no limitation on the neighboring nodes of the current node; in short, the neighboring nodes are the adjacent nodes of the current node.
[0102] For example, in some embodiments, the neighboring nodes include one or more of the following nodes:
[0103] (1) The grandparent node of the current node;
[0104] (2) The parent node of the uncle node of the current node;
[0105] (3) The parent node of the current node;
[0106] (4) The uncle node of the current node;
[0107] (5) The child node of the uncle node of the current node.
[0108] In this embodiment, the grandparent node of the current node can also be understood as the parent node of the current node's parent node. Similarly, the parent node of the current node's uncle node can be understood as the grandparent node of the current node. It is understood that in some embodiments, the neighboring nodes include at least the grandparent nodes of the current node and / or the parent nodes of the current node's uncle nodes; thus, the posterior prediction information of the current node's neighborhood is fully utilized, which helps improve the accuracy of the current node's intra-frame voting results and inter-frame voting results, thereby improving the accuracy of the current node's prediction values and ultimately enhancing the performance of the decoder.
[0109] In one possible implementation, the neighboring nodes include not only the current node's parent node, the current node's uncle node, and the current node's uncle node's child node, but also the current node's grandparent node and the current node's uncle node's parent node. In this way, the prediction of the current node makes full use of the posterior prediction information of more of the current node's neighborhood, which is beneficial to improving the accuracy of the current node's intra-frame voting results and inter-frame voting results, thereby improving the accuracy of the current node's prediction value and ultimately improving the performance of the decoder.
[0110] Of course, in this embodiment of the application, the neighboring nodes of the current node are not limited to the nodes described in (1)-(5) above.
[0111] It can be understood that the posterior prediction information of the neighboring nodes can be interpreted as the prediction information calculated by the neighboring nodes during the decoding process. In other words, the neighboring nodes are nodes that have completed decoding. Thus, using the posterior prediction information of the neighboring nodes that have completed decoding to determine the intra-frame voting result and inter-frame voting result of the current node is beneficial to improving the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, which in turn is beneficial to improving the accuracy of the prediction value of the current node, and ultimately improving the performance of the decoder.
[0112] In this embodiment of the application, the posterior prediction information of the neighboring node is not limited. In short, the posterior prediction information is the prediction information calculated by the neighboring node during the decoding process.
[0113] For example, in some embodiments, the posterior prediction information of the neighboring nodes includes one or more of the following:
[0114] The predicted pattern of the neighboring nodes;
[0115] The predicted pattern of at least one related node of the neighboring node;
[0116] The predicted values of the neighboring nodes;
[0117] The predicted value of at least one related node of the neighboring node.
[0118] For example, the prediction mode of the neighboring nodes is inter-frame prediction mode, intra-frame prediction mode, or average prediction mode. For the average prediction mode, the average prediction value of the neighboring nodes is the weighted average of the inter-frame prediction values and intra-frame prediction values of the neighboring nodes. This weighted average can also be called the inter-frame and intra-frame weighted average prediction value.
[0119] For example, the predicted value of the neighboring node includes one or more of the following: the intra-frame predicted value of the neighboring node, the inter-frame predicted value of the neighboring node, and the average predicted value of the neighboring node.
[0120] For example, the predicted value of at least one related node of the neighboring node includes one or more of the following: the intra-frame predicted value of the neighboring node, the inter-frame predicted value of the neighboring node, and the average predicted value of the neighboring node.
[0121] In some embodiments, at least one related node of the neighboring node is a decoded node. Furthermore, in this application embodiment, the related nodes of the neighboring node are not limited; in short, the related node is a node that has some relationship / certain relationship with the neighboring node. Exemplarily, the related nodes of the neighboring node include one or more of the following nodes:
[0122] The parent node of the neighbor node;
[0123] The child node of the parent node of the neighbor node;
[0124] The uncle node of the neighbor node;
[0125] The grandparent node of the neighboring node.
[0126] Of course, in this embodiment of the application, the related nodes of the neighboring nodes are not limited to the nodes mentioned above. In short, the related nodes are nodes that have some kind of relationship with the neighboring nodes.
[0127] As mentioned earlier, in step 601, the intra-frame voting result and inter-frame voting result of the current node are determined based on the posterior prediction information of the neighboring nodes of the current node.
[0128] In some embodiments, step 601 may further include: determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes of the current node; determining the intra-frame voting result of the current node based on the intra-frame voting parameters of the neighboring nodes; and determining the inter-frame voting result of the current node based on the inter-frame voting parameters of the neighboring nodes.
[0129] For example, in some embodiments, determining the intra-frame voting result of the current node based on the intra-frame voting parameters of the neighboring nodes includes: determining the intra-frame voting result of the current node based on the accumulated value of the intra-frame voting parameters of at least one of the current node's neighboring nodes. For example, the intra-frame voting result of the current node is the accumulated value of the intra-frame voting parameters of at least one of the current node's neighboring nodes. Alternatively, the intra-frame voting result of the current node may be obtained by further processing the accumulated value.
[0130] For example, in some other embodiments, determining the intra-frame voting result of the current node based on the intra-frame voting parameters of the neighboring nodes includes: determining the intra-frame voting result of the current node based on the weights and the intra-frame voting parameters of the neighboring nodes.
[0131] For example, in some embodiments, determining the inter-frame voting result of the current node based on the inter-frame voting parameters of the neighboring nodes includes: determining the inter-frame voting result of the current node based on the accumulated value of the inter-frame voting parameters of at least one of the current node's neighboring nodes. For example, the inter-frame voting result of the current node is the accumulated value of the inter-frame voting parameters of at least one of the current node's neighboring nodes. Alternatively, the inter-frame voting result of the current node may be obtained by further processing the accumulated value.
[0132] For example, in some other embodiments, determining the inter-frame voting result of the current node based on the inter-frame voting parameters of the neighboring nodes includes: determining the inter-frame voting result of the current node based on the weights and the inter-frame voting parameters of the neighboring nodes.
[0133] In some embodiments, as shown in FIG7, step 601 may further include the following steps 701 to 703:
[0134] Step 701: Determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes.
[0135] Step 702: Determine the intra-frame voting result of the current node based on the weight and the intra-frame voting parameters of the neighboring nodes.
[0136] Step 703: Determine the inter-frame voting result of the current node based on the weight and the inter-frame voting parameters of the neighboring nodes.
[0137] It is understood that, in this embodiment of the application, determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes is beneficial to improving the accuracy of the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes, thereby improving the accuracy of the intra-frame voting results and inter-frame voting results, and further improving the accuracy of the prediction value of the current node, thus enhancing the performance of the decoder.
[0138] It should be noted that intra-frame voting parameters can be understood as intermediate parameters used to determine the intra-frame voting result. For example, the intra-frame voting result is a weighted sum of the intra-frame voting parameters of at least one of the neighboring nodes. Inter-frame voting parameters can be understood as intermediate parameters used to determine the inter-frame voting result. For example, the inter-frame voting result of the current node is a weighted sum of the inter-frame voting parameters of at least one of the neighboring nodes.
[0139] The following sections will describe further optional implementation methods for each of the above steps, as well as related terms.
[0140] Step 701: Determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes.
[0141] As mentioned above, in some embodiments, the posterior prediction information of the neighboring nodes includes one or more of the following:
[0142] The predicted pattern of the neighboring nodes;
[0143] The predicted pattern of at least one related node of the neighboring node;
[0144] The predicted values of the neighboring nodes;
[0145] The predicted value of at least one related node of the neighboring node.
[0146] In the embodiments of this application, for the prediction mode of the neighboring node and / or the prediction mode of at least one related node of the neighboring node, the methods for determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node for different prediction modes can be the same or different.
[0147] Exemplarily, in some embodiments, step 701 may further include:
[0148] When the prediction mode of the neighboring node is intra-frame prediction mode, and / or when the prediction mode of at least one related node of the neighboring node is intra-frame prediction mode, the intra-frame voting parameter of the neighboring node is a first preset value.
[0149] It can be understood that one neighbor node corresponds to one intra-frame voting parameter. Therefore, the embodiment here can be understood as follows: when the prediction mode of the i-th neighbor node of the current node is the intra-frame prediction mode, and / or when the prediction mode of at least one related node of the i-th neighbor node is the intra-frame prediction mode, the intra-frame voting parameter of the i-th neighbor node is a first preset value; wherein, the i-th neighbor node is any neighbor node of the current node.
[0150] In this embodiment of the application, the first preset value is not limited. The first preset value is related to the bit depth of the intra-frame voting parameter. For example, if the bit depth of the intra-frame voting parameter is 7 bits, then the first preset value is 2^7, that is, the first preset value is 128.
[0151] In this embodiment, when the prediction mode of the neighboring node is intra-frame prediction mode, and / or the prediction mode of at least one related node of the neighboring node is intra-frame prediction mode, the implementation method of the inter-frame voting parameter is not limited. In some embodiments, the intra-frame voting parameter of the neighboring node is a first preset value. The inter-frame voting parameter of the neighboring node can be determined based on the intra-frame voting parameter of the neighboring node. Further, the inter-frame voting parameter of the neighboring node can be determined based on the bit depth of the intra-frame voting parameter of the neighboring node and the intra-frame voting parameter of the neighboring node. For example, if the bit depth of the intra-frame voting parameter of the neighboring node is 7 bits and the intra-frame voting parameter of the neighboring node is 2^7 (i.e., 128), then the inter-frame voting parameter of the neighboring node = 2^7 - the intra-frame voting parameter of the neighboring node, that is, the inter-frame voting parameter of the neighboring node is 0. In some embodiments, when the prediction mode of the neighboring node is intra-prediction mode, and / or when the prediction mode of at least one related node of the neighboring node is intra-prediction mode, the inter-frame voting parameter of the neighboring node is a third preset value, and the intra-frame voting parameter of the neighboring node is a first preset value. In still some embodiments, when the prediction mode of the neighboring node is intra-prediction mode, and / or when the prediction mode of at least one related node of the neighboring node is intra-prediction mode, the inter-frame voting parameter of the neighboring node is a third preset value. The intra-frame voting parameter of the neighboring node can be determined based on the inter-frame voting parameter of the neighboring node. Further, the intra-frame voting parameter of the neighboring node can be determined based on the bit depth of the intra-frame voting parameter of the neighboring node and the inter-frame voting parameter of the neighboring node. For example, if the bit depth of the intra-frame voting parameter of the neighboring node is 7 bits and the inter-frame voting parameter of the neighboring node is 0, then the intra-frame voting parameter of the neighboring node = 2^7 - the inter-frame voting parameter of the neighboring node.
[0152] Exemplarily, in some other embodiments, step 701 may further include:
[0153] When the prediction mode of the neighboring node is inter-frame prediction mode, and / or when the prediction mode of the related node of the neighboring node is inter-frame prediction mode, the intra-frame voting parameter of the neighboring node is a second preset value.
[0154] It can be understood that one neighbor node corresponds to one intra-frame voting parameter. Therefore, the embodiment here can be understood as follows: when the prediction mode of the i-th neighbor node of the current node is the inter-frame prediction mode, and / or when the prediction mode of at least one related node of the i-th neighbor node is the inter-frame prediction mode, the inter-frame voting parameter of the i-th neighbor node is a second preset value; wherein, the i-th neighbor node is any neighbor node of the current node.
[0155] In this embodiment of the application, the second preset value is not limited. The second preset value is related to the bit depth of the intra-frame voting parameter. For example, if the bit depth of the intra-frame voting parameter is 7 bits, then the second preset value is 2^7 minus the first preset value. For example, if the first preset value is 128, the second preset value is 0.
[0156] In this embodiment, when the prediction mode of the neighboring node is inter-frame prediction mode, and / or when the prediction mode of the related nodes of the neighboring node is inter-frame prediction mode, the implementation method of the inter-frame voting parameter is not limited. In some embodiments, the intra-frame voting parameter of the neighboring node is a second preset value. The inter-frame voting parameter of the neighboring node can be determined based on the intra-frame voting parameter of the neighboring node. Further, the inter-frame voting parameter of the neighboring node can be determined based on the bit depth and the intra-frame voting parameter of the neighboring node. For example, if the bit depth of the intra-frame voting parameter of the neighboring node is 7 bits and the intra-frame voting parameter of the neighboring node is 0, then the inter-frame voting parameter of the neighboring node = 2^7 - the intra-frame voting parameter of the neighboring node, that is, the inter-frame voting parameter of the neighboring node is 128. In other embodiments, when the prediction mode of the neighboring node is inter-frame prediction mode, and / or when the prediction mode of the related nodes of the neighboring node is inter-frame prediction mode, the inter-frame voting parameter of the neighboring node is a fourth preset value, and the intra-frame voting parameter of the neighboring node is a second preset value. In some other embodiments, when the prediction mode of the neighboring node is inter-frame prediction mode, and / or when the prediction mode of the related nodes of the neighboring node is inter-frame prediction mode, the inter-frame voting parameter of the neighboring node is a fourth preset value. The intra-frame voting parameter of the neighboring node can be determined based on the inter-frame voting parameter of the neighboring node. Further, the intra-frame voting parameter of the neighboring node can be determined based on the bit depth of the intra-frame voting parameter of the neighboring node and the inter-frame voting parameter of the neighboring node. For example, if the bit depth of the intra-frame voting parameter of the neighboring node is 7 bits and the inter-frame voting parameter of the neighboring node is 128, then the intra-frame voting parameter of the neighboring node = 2^7 - the inter-frame voting parameter of the neighboring node, that is, the intra-frame voting parameter of the neighboring node is 0.
[0157] As mentioned above, in some embodiments, the posterior prediction information of the neighboring nodes includes one or more of the following:
[0158] The predicted pattern of the neighboring nodes;
[0159] The predicted pattern of at least one related node of the neighboring node;
[0160] The predicted values of the neighboring nodes;
[0161] The predicted value of at least one related node of the neighboring node.
[0162] As can be seen, the above embodiments actually cover multiple combination schemes. In combination scheme 1, the posterior prediction information of the neighbor node includes the prediction pattern and the prediction value of the neighbor node. In combination scheme 2, the posterior prediction information of the neighbor node includes the prediction pattern and the prediction value of at least one related node of the neighbor node. In combination scheme 3, the posterior prediction information of the neighbor node includes the prediction value of the neighbor node and the prediction value of at least one related node of the neighbor node, and the posterior prediction information of the neighbor node also includes the prediction pattern of the neighbor node and / or the prediction pattern of at least one related node of the neighbor node.
[0163] It is understood that, regardless of the above combination scheme, the posterior prediction information of the neighboring nodes includes the predicted values of the neighboring nodes (such as intra-frame predicted values, inter-frame predicted values, and / or average predicted values) and / or the predicted values of related nodes of the neighboring nodes (such as intra-frame predicted values, inter-frame predicted values, and / or average predicted values). Thus, compared to determining intra-frame and inter-frame voting results solely based on the prediction mode mentioned earlier, the former can obtain more accurate intra-frame / inter-frame voting results, thereby improving the accuracy of the current node's prediction value and enhancing the decoder's performance. For the encoder, this can enhance encoder performance and save on point cloud bitstream overhead.
[0164] For the different combination schemes mentioned above, when the prediction mode of the neighbor node is the average prediction mode and / or the prediction mode of the related nodes of the neighbor node is the average prediction mode, the following describes further implementation methods for step 701.
[0165] Based on combination scheme 1, in some embodiments, step 701 may further include: when the prediction mode of the neighboring node is the average prediction mode, determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node according to the prediction value of the neighboring node.
[0166] When the prediction mode of the neighboring node is the average prediction mode, further, in some embodiments, determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the predicted values of the neighboring node includes:
[0167] Based on the intra-frame prediction value, inter-frame prediction value, and average prediction value of the neighboring nodes, determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes.
[0168] Furthermore, in some embodiments, determining the intra-frame voting parameters of the neighboring nodes based on their intra-frame prediction values, inter-frame prediction values, and average prediction values, as shown in Figure 8, may further include the following steps 801 to 803:
[0169] Step 801: Determine the first difference between the inter-frame prediction value and the intra-frame prediction value of the neighboring node.
[0170] Step 801 can also be understood as: determining the first difference between the inter-frame prediction value of the i-th neighbor node of the current node and the intra-frame prediction value of the i-th neighbor node; wherein, the i-th neighbor node is any neighbor node of the current node. That is, the first difference is the difference between the inter-frame prediction value and the intra-frame prediction value of the same neighbor node.
[0171] For example, the first difference is equal to the inter-frame prediction value of the neighboring node minus the intra-frame prediction value of the neighboring node.
[0172] Step 802: Determine the second difference between the inter-frame prediction value of the neighboring node and the average prediction value of the neighboring node.
[0173] Step 802 can also be understood as: determining the second difference between the inter-frame prediction value of the i-th neighbor node of the current node and the average prediction value of the i-th neighbor node; wherein, the i-th neighbor node is any neighbor node of the current node. That is, the second difference is the difference between the inter-frame prediction value and the average prediction value of the same neighbor node.
[0174] For example, the second difference is equal to the inter-frame prediction value of the neighboring node minus the average prediction value of the neighboring node.
[0175] Step 803: Determine the intra-frame voting parameters of the neighboring node based on the first difference and the second difference.
[0176] In this application embodiment, the further implementation of step 803 is not limited. Exemplarily, in some embodiments, step 803 may further include: determining the intra-frame voting parameters of the neighboring node based on the ratio of the first difference to the second difference.
[0177] In this embodiment of the application, the method for determining the ratio of the first difference to the second difference is not limited. For example, the ratio = first difference / second difference, or the ratio = second difference / first difference. Another example is that the ratio = the minimum of the first difference and the second difference / the maximum of the first difference and the second difference.
[0178] Based on combination scheme 2, the posterior prediction information of the neighbor node includes the prediction pattern of at least one related node of the neighbor node and the prediction value of at least one related node of the neighbor node. In some embodiments, step 701 may further include:
[0179] When the prediction mode of the related nodes of the neighboring node is the average prediction mode, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined based on the prediction values of at least one related node of the neighboring node.
[0180] When the prediction mode of the related nodes of the neighboring node is the average prediction mode, further, in some embodiments, determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the prediction values of at least one related node of the neighboring node includes:
[0181] The intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes are determined based on the intra-frame prediction values, inter-frame prediction values, and average prediction values of at least one related node of the neighboring nodes.
[0182] Furthermore, in some embodiments, determining the intra-frame voting parameters of the neighboring node based on the intra-frame prediction value, inter-frame prediction value, and average prediction value of at least one related node of the neighboring node, as shown in FIG9, may further include the following steps 901 to 903:
[0183] Step 901: Determine the third difference between the inter-frame prediction value and the intra-frame prediction value of the relevant node.
[0184] Step 901 can also be understood as: determining the third difference between the inter-frame prediction value of the j-th related node of the neighboring node and the intra-frame prediction value of the j-th related node; wherein, the j-th related node is any related node of the neighboring node. That is, the third difference is the difference between the inter-frame prediction value and the intra-frame prediction value of the same related node.
[0185] For example, the third difference is equal to the inter-frame prediction value of the relevant node minus the intra-frame prediction value of the relevant node.
[0186] Step 902: Determine the fourth difference between the inter-frame prediction value of the relevant node and the average prediction value of the relevant node.
[0187] Step 902 can also be understood as: determining the fourth difference between the inter-frame prediction value of the j-th related node of the neighboring nodes and the average prediction value of the j-th related node; wherein, the j-th related node is any related node of the neighboring nodes. That is, the fourth difference is the difference between the inter-frame prediction value and the average prediction value of the same related node.
[0188] For example, the fourth difference is equal to the inter-frame prediction value of the relevant node minus the average prediction value of the relevant node.
[0189] Step 903: Determine the intra-frame voting parameters of the neighboring node based on the third difference corresponding to at least one related node of the neighboring node and the fourth difference corresponding to at least one related node of the neighboring node.
[0190] Step 903 can also be understood as: determining the intra-frame voting parameters of the i-th neighbor node based on the third difference corresponding to at least one related node of the i-th neighbor node of the current node and the fourth difference corresponding to at least one related node of the i-th neighbor node of the current node; wherein, the i-th neighbor node is any neighbor node of the current node.
[0191] In this embodiment, the further implementation of step 903 is not limited. Exemplarily, in some embodiments, step 903 may further include: determining the intra-frame voting parameters of the neighboring node based on the ratio of the third difference corresponding to the at least one related node to the fourth difference corresponding to the at least one related node. For example, the neighboring node has one related node.
[0192] For example, in some other embodiments, step 903 may further include: determining the intra-frame voting parameters of the neighboring node based on a first sum of third differences corresponding to at least one related node of the neighboring node, and a second sum of fourth differences corresponding to at least one related node of the neighboring node. For example, there may be multiple related nodes of the neighboring node. Further, in one possible implementation, the intra-frame voting parameters of the neighboring node may be determined based on the ratio of the first sum to the second sum.
[0193] In this application embodiment, the method for determining the ratio of the first sum to the second sum is not limited. For example, the ratio = first sum / second sum, or the ratio = second sum / first sum. Another example is the ratio = minimum of the first sum and the second sum / maximum of the first sum and the second sum.
[0194] In this application embodiment, the method for determining the first sum is not limited. In one implementation, the first sum is the accumulated value of the third difference corresponding to at least one related node of the neighboring node; in another implementation, the first sum is the weighted sum of the third difference corresponding to at least one related node of the neighboring node.
[0195] In this application embodiment, the method for determining the second sum is not limited. In one implementation, the second sum is the accumulated value of the fourth difference corresponding to at least one related node of the neighboring node; in another implementation, the second sum is the weighted sum of the fourth difference corresponding to at least one related node of the neighboring node.
[0196] Based on combination scheme 3, the posterior prediction information of the neighbor node includes the predicted value of the neighbor node and the predicted value of at least one related node of the neighbor node, and the posterior prediction information of the neighbor node also includes the prediction pattern of the neighbor node and / or the prediction pattern of at least one related node of the neighbor node. In some embodiments, step 701 may further include:
[0197] When the prediction mode of the neighboring node is the average prediction mode, and / or the prediction mode of the related nodes of the neighboring node is the average prediction mode, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined based on the prediction value of the neighboring node and the prediction value of at least one related node of the neighboring node.
[0198] When the prediction mode of the neighbor node is the average prediction mode, and / or the prediction mode of the related nodes of the neighbor node is the average prediction mode, further, in some embodiments, determining the intra-frame voting parameter and / or inter-frame voting parameter of the neighbor node based on the prediction value of the neighbor node and the prediction value of at least one related node of the neighbor node may include:
[0199] Based on the intra-frame prediction value, inter-frame prediction value, and average prediction value of the neighboring node, and the intra-frame prediction value, inter-frame prediction value, and average prediction value of at least one related node of the neighboring node, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined.
[0200] Furthermore, in some embodiments, the intra-frame voting parameters of the neighboring nodes are determined based on the intra-frame prediction values, inter-frame prediction values, and average prediction values of the neighboring nodes, as well as the intra-frame prediction values, inter-frame prediction values, and average prediction values of at least one related node of the neighboring nodes, as shown in FIG10. This may further include the following steps 1001 to 1005:
[0201] Step 1001: Determine the first difference between the inter-frame prediction value and the intra-frame prediction value of the neighboring node.
[0202] In this embodiment of the application, step 1001 can also be understood as: determining the first difference between the inter-frame prediction value of the i-th neighbor node and the intra-frame prediction value of the i-th neighbor node; wherein, the i-th neighbor node is any neighbor node of the current node.
[0203] Step 1002: Determine the second difference between the inter-frame prediction value of the neighboring node and the average prediction value of the neighboring node.
[0204] In this embodiment of the application, step 1002 can also be understood as: determining a second difference between the inter-frame prediction value of the i-th neighbor node and the average prediction value of the i-th neighbor node; wherein the i-th neighbor node is any neighbor node of the current node.
[0205] Step 1003: Determine the third difference between the inter-frame prediction value and the intra-frame prediction value of the relevant node.
[0206] In this embodiment of the application, step 1003 can also be understood as: determining the third difference between the inter-frame prediction value of the j-th related node of the i-th neighbor node and the intra-frame prediction value of the j-th related node; wherein, the j-th related node is any related node of the i-th neighbor node.
[0207] Step 1004: Determine the fourth difference between the inter-frame prediction value of the relevant node and the average prediction value of the relevant node.
[0208] In this embodiment of the application, step 1004 can also be understood as: determining the fourth difference between the inter-frame prediction value of the j-th related node of the i-th neighbor node and the average prediction value of the j-th related node; wherein, the j-th related node is any related node of the i-th neighbor node.
[0209] Step 1005: Determine the intra-frame voting parameters of the neighboring nodes based on the first difference corresponding to the neighboring nodes, the second difference corresponding to the neighboring nodes, the third difference corresponding to the at least one related node, and the fourth difference corresponding to the at least one related node.
[0210] It is understood that there may be one or more related nodes for the neighbor node. In this embodiment, further implementation of step 1005 is not limited. In some embodiments, step 1005 may further include: determining the intra-frame voting parameter of the neighbor node based on the third sum of the first difference corresponding to the neighbor node and the third difference corresponding to the at least one related node, and the fourth sum of the second difference corresponding to the neighbor node and the fourth difference corresponding to the at least one related node. Exemplarily, in some embodiments, the intra-frame voting parameter of the neighbor node is determined based on the ratio of the third sum to the fourth sum.
[0211] In this embodiment, the method for determining the ratio of the third sum to the fourth sum is not limited. For example, the ratio can be: third sum / fourth sum, or fourth sum / third sum. Alternatively, the ratio can be: minimum of the third and fourth sums / maximum of the third and fourth sums.
[0212] In this application embodiment, the method for determining the third sum is not limited. In one implementation, the third sum is the sum of the first difference corresponding to the neighbor node and the third difference corresponding to the at least one related node; in another implementation, the third sum is the weighted sum of the first difference and the third difference corresponding to the at least one related node.
[0213] In this application embodiment, the method for determining the fourth sum is not limited. In one implementation, the fourth sum is the sum of the second difference corresponding to the neighbor node and the fourth difference corresponding to the at least one related node; in another implementation, the fourth sum is the weighted sum of the second difference and the fourth difference corresponding to the at least one related node.
[0214] It should also be noted that the related nodes of the neighbor nodes described in one or more of the above embodiments are not limited; in short, the related nodes are nodes that have a certain relationship with the neighbor nodes. For example, in some embodiments, the related nodes of the neighbor nodes include one or more of the following nodes:
[0215] The parent node of the neighbor node;
[0216] The child node of the parent node of the neighbor node;
[0217] The uncle node of the neighboring node;
[0218] The grandparent node of the neighboring node.
[0219] It should also be noted that the method for determining the inter-frame voting parameters described in one or more of the above embodiments is not limited. In some embodiments, the inter-frame voting parameters of the neighboring nodes can be determined based on the intra-frame voting parameters of the neighboring nodes. That is, the inter-frame voting parameters of the i-th neighboring node are determined based on the intra-frame voting parameters of the i-th neighboring node; wherein, the i-th neighboring node is any neighboring node of the current node.
[0220] Furthermore, in some embodiments, the inter-frame voting parameters of the neighboring nodes are determined based on the intra-frame voting parameters of the neighboring nodes and a fifth preset value. For example, the inter-frame voting parameters of the neighboring nodes = the fifth preset value - the intra-frame voting parameters of the neighboring nodes.
[0221] In this embodiment, the fifth preset value is not limited and can be any predefined value. For example, the fifth preset value is related to the bit depth of the intra-frame voting parameter, and the fifth preset value = 2^bit depth. For example, if the bit depth is 7 bits, the fifth preset value = 128.
[0222] Step 702: Determine the intra-frame voting result of the current node based on the weight and the intra-frame voting parameters of the neighboring nodes.
[0223] It is understood that the current node may have one or more neighboring nodes. Further, for step 702, in some embodiments, the intra-frame voting result of the current node is a weighted sum of the intra-frame voting parameters of at least one of the current node's neighboring nodes.
[0224] Step 703: Determine the inter-frame voting result of the current node based on the weight and the inter-frame voting parameters of the neighboring nodes.
[0225] It is understood that the current node may have one or more neighboring nodes. Further, in some embodiments, step 703, the inter-frame voting result of the current node is a weighted sum of the inter-frame voting parameters of at least one of the current node's neighboring nodes.
[0226] In this application embodiment, the weights corresponding to different neighbor nodes may be different, and this application does not limit the weights corresponding to different neighbor nodes. For example, in one possible implementation, the weight corresponding to the parent node of the current node is greater than or equal to the weight corresponding to the child node of the uncle node of the current node, which is greater than or equal to the weight corresponding to the uncle node of the current node, which is greater than or equal to the grandparent node of the current node, which is greater than or equal to the parent node of the uncle node of the current node.
[0227] It is understood that the intra-frame voting parameters of neighboring nodes are the input / intermediate parameters required to calculate the intra-frame voting result of the current node. The current node may have one or more neighboring nodes. In some embodiments, the intra-frame voting result of the current node is a weighted sum of the intra-frame voting parameters of at least one of the neighboring nodes. In other embodiments, the intra-frame voting result of the current node is the accumulated value of the intra-frame voting parameters of at least one of the neighboring nodes.
[0228] Similarly, the inter-frame voting parameters of neighboring nodes are the input / intermediate parameters required to calculate the inter-frame voting result of the current node. The current node may have one or more neighboring nodes. In some embodiments, the inter-frame voting result of the current node is a weighted sum of the inter-frame voting parameters of at least one of the neighboring nodes. In other embodiments, the inter-frame voting result of the current node is the accumulated value of the inter-frame voting parameters of at least one of the neighboring nodes.
[0229] In one possible implementation, the intra-frame voting result voteintra and inter-frame voting result voteinter of the current node can be calculated using the following formulas: voteintra = voteintra + K * intra-frame voting parameters of the current node; voteinter = voteinter + K * inter-frame voting parameters of the current node.
[0230] In this equation, "voteintra" on the right side of the equals sign "=" represents the cached intra-frame voting result, and "voteinter" on the right side of the equals sign "=" represents the cached inter-frame voting result. K is the weight. Based on the above formula, the final intra-frame voting result and inter-frame voting result of the current node can be calculated iteratively.
[0231] For example, suppose the number of neighboring nodes of the current node is M, where M is a positive integer; then for this loop process, with the number of neighboring nodes M as the loop count, it needs to be executed each time:
[0232] voteintra = voteintra + K * intra-frame voting parameters of the current node;
[0233] voteinter = voteinter + K * inter-frame voting parameters of the current node;
[0234] This continues until the loop ends. After the loop ends, the final intra-frame voting result and inter-frame voting result of the current node are obtained, which are the intra-frame voting result output in step 702 and the inter-frame voting result output in step 703.
[0235] It should also be noted that, in the embodiments of this application, the above-described loop process can be calculated starting from a fixed constant. For example, if the fixed constant is set to 0, then before the loop starts, the initial values of the inter-frame voting results and the intra-frame voting results can be set to 0, that is, voteintra is initialized to 0 and voteinter is initialized to 0.
[0236] Step 602: Determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting results and the inter-frame voting results.
[0237] It should be noted that, in this embodiment, determining the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result can be achieved by performing a normalization operation on the intra-frame voting result and the inter-frame voting result to determine the intra-frame weight value and inter-frame weight value of the current node. For example, the following formula can be used to calculate them:
[0238] Among them, w intra w represents the intra-frame weight value. inter The values represent the inter-frame weights. `voteintra` represents the intra-frame voting result of the current node, and `voteinter` represents the inter-frame voting result of the current node. Neither `voteinter` nor `voteintra` needs to be decoded in the bitstream; they can be calculated using the same algorithm at the encoding and decoding end.
[0239] Step 603: Determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0240] Furthermore, in some embodiments, step 603 may further include: determining the inter-frame prediction value and intra-frame prediction value of the current node; and performing weighted prediction on the inter-frame prediction value and intra-frame prediction value of the current node according to the inter-frame weight value and the intra-frame weight value to determine the prediction value of the current node.
[0241] In the scheme of using region adaptive hierarchical transformation for the current node, the inter-frame prediction value of the current node is the inter-frame prediction value of the high-frequency coefficients of the current node, the intra-frame prediction value of the current node is the intra-frame prediction value of the high-frequency coefficients of the current node, and the prediction value of the current node is the prediction value of the high-frequency coefficients of the current node (or "AC coefficient prediction value").
[0242] That is, the step of performing weighted prediction on the inter-frame prediction value and intra-frame prediction value of the current node based on the inter-frame weight value and the intra-frame weight value to determine the prediction value of the current node may include: performing weighted prediction on the inter-frame prediction value and intra-frame prediction value based on the inter-frame weight value of the high-frequency coefficient of the current node and the intra-frame weight value of the high-frequency coefficient of the current node to determine the prediction value of the high-frequency coefficient of the current node.
[0243] In some embodiments, the predicted value of the current node is the result of a weighted prediction of the inter-frame and intra-frame predicted values of the current node. In other embodiments, the predicted value of the current node is obtained by further processing the result of the weighted prediction.
[0244] It should be noted that, in the embodiments of this application, the decoding method is mainly applied to the average prediction mode, which obtains the prediction value of the current node by weighted averaging of inter-frame prediction values and intra-frame prediction values.
[0245] In some embodiments, the decoding method further includes: parsing the high-frequency coefficient residual value of the current node in the bit stream; and determining the reconstructed value of the high-frequency coefficient of the current node based on the residual value of the high-frequency coefficient of the current node and the predicted value of the high-frequency coefficient of the current node.
[0246] In this embodiment, when the current node uses region adaptive hierarchical transformation, for inter-frame prediction and intra-frame prediction, intra-frame prediction can be obtained by using the attribute prediction values of adjacent nodes within the frame. For inter-frame prediction, a node with the exact same position as the current node can be found in the buffer of the reference image, called a co-location node. If the inter-frame prediction node of the current node is valid (i.e., a co-location node exists), the attribute of the prediction node is directly used as the inter-frame prediction value of the current node. If the inter-frame prediction node of the current node is invalid (i.e., a co-location node does not exist), the attribute prediction values of adjacent nodes within the frame are used as the inter-frame prediction value of the current node.
[0247] Thus, during RAHT prediction, if both intra-frame and inter-frame predicted values exist, a weighted average is calculated to obtain the final predicted value, known as the inter-frame / intra-frame weighted average predicted value. In other words, the AC coefficient prediction value for the current node is determined by weighting the inter-frame and intra-frame predicted values based on inter-frame and intra-frame weight values. This can be calculated using the following formula:
[0248] Where Attraverage_predict represents the AC coefficient prediction value of the current node, Attrinter_predict represents the inter-frame prediction value of the AC coefficient, Attrrintra_predict represents the intra-frame prediction value of the AC coefficient, and Winter W represents the inter-frame weight value. intra Represents the intra-frame weight value; voteinter represents the inter-frame voting result, and voteintra represents the intra-frame voting result.
[0249] In other words, in this embodiment of the application, after determining the predicted value of the high frequency coefficient of the current node, an addition operation can be performed on the predicted value of the high frequency coefficient of the current node and the residual value of the high frequency coefficient of the current node in the bit stream to obtain the reconstructed value of the high frequency coefficient of the current node, that is, the reconstructed value of the AC coefficient of the current node.
[0250] One way to implement the above formula is through fixed-point processing, as shown in the following formula: w intra =divApprox(voteIntra<<kFPFracBits,voteIntra+voteInter) w inter = (1 << kFPFracBits) - w intra Attraverage_predict=FPReduce(Attrinter_predict×W inter +Attrintra_predict×W intra )
[0251] in,
[0252] This application provides a decoding method, which includes: determining the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes; determining the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and determining the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node. Thus, using the posterior prediction information of the decoded neighboring nodes to determine the intra-frame voting result and inter-frame voting result of the current node helps improve the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, and further improving the accuracy of the predicted value of the current node, thus enhancing the decoding performance of the point cloud.
[0253] This application provides an encoding method applied to an encoder.
[0254] Figure 11 is a schematic diagram of the implementation flow of the encoding method provided in the embodiment of this application. As shown in Figure 11, the method may include the following steps 1101 to 1103:
[0255] Step 1101: Determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node;
[0256] Step 1102: Determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting results and the inter-frame voting results;
[0257] Step 1103: Determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0258] It is understood that in the encoding method provided in this application embodiment, the intra-frame voting result and inter-frame voting result of the current node are determined by using the posterior prediction information of the neighboring nodes that have been encoded. This is beneficial to improving the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, and further improving the accuracy of the prediction value of the current node, thus enhancing the encoding performance of the point cloud.
[0259] The following sections will describe further optional implementation methods for each of the above steps, as well as related terms.
[0260] Step 1101: Determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node.
[0261] It should be understood that in step 1101, the current node may have one or more neighboring nodes, and this application does not limit this.
[0262] In some embodiments, the neighboring nodes of the current node are coded nodes. It should also be noted that, in the embodiments of this application, there is no limitation on the neighboring nodes of the current node; in short, the neighboring nodes are the adjacent nodes of the current node.
[0263] For example, in some embodiments, the neighboring nodes include one or more of the following nodes:
[0264] (1) The grandparent node of the current node;
[0265] (2) The parent node of the uncle node of the current node;
[0266] (3) The parent node of the current node;
[0267] (4) The uncle node of the current node;
[0268] (5) The child node of the uncle node of the current node.
[0269] In this embodiment, the grandparent node of the current node can also be understood as the parent node of the current node's parent node. Similarly, the parent node of the current node's uncle node can be understood as the grandparent node of the current node. It is understood that in some embodiments, the neighboring nodes include at least the grandparent nodes of the current node and / or the parent nodes of the current node's uncle nodes; thus, the posterior prediction information of the current node's neighborhood is fully utilized, which helps improve the accuracy of the current node's intra-frame voting results and inter-frame voting results, thereby improving the accuracy of the current node's prediction values and ultimately enhancing the encoder's performance.
[0270] In one possible implementation, the neighboring nodes include not only the parent node, uncle node, and child node of the current node, but also the grandparent node and parent node of the current node's uncle node. Thus, the prediction of the current node fully utilizes the posterior prediction information of more of its neighborhood, which helps improve the accuracy of the intra-frame and inter-frame voting results of the current node, thereby improving the accuracy of the current node's prediction value and ultimately enhancing the encoder's performance.
[0271] Of course, in this embodiment of the application, the neighboring nodes of the current node are not limited to the nodes described in (1)-(5) above.
[0272] It can be understood that the posterior prediction information of the neighboring nodes can be interpreted as the prediction information calculated by the neighboring nodes during the encoding process. In other words, the neighboring nodes are nodes that have completed encoding. Thus, using the posterior prediction information of the neighboring nodes that have completed encoding to determine the intra-frame voting result and inter-frame voting result of the current node is beneficial to improving the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, which in turn is beneficial to improving the accuracy of the prediction value of the current node, and ultimately improving the performance of the encoder.
[0273] In this embodiment of the application, the posterior prediction information of the neighboring node is not limited. In short, the posterior prediction information is the prediction information calculated by the neighboring node during the encoding process.
[0274] For example, in some embodiments, the posterior prediction information of the neighboring nodes includes one or more of the following:
[0275] The predicted pattern of the neighboring nodes;
[0276] The predicted pattern of at least one related node of the neighboring node;
[0277] The predicted values of the neighboring nodes;
[0278] The predicted value of at least one related node of the neighboring node.
[0279] For example, the prediction mode of the neighboring nodes is inter-frame prediction mode, intra-frame prediction mode, or average prediction mode. For the average prediction mode, the average prediction value of the neighboring nodes is the weighted average of the inter-frame prediction values and intra-frame prediction values of the neighboring nodes. This weighted average can also be called the inter-frame and intra-frame weighted average prediction value.
[0280] For example, the predicted value of the neighboring node includes one or more of the following: the intra-frame predicted value of the neighboring node, the inter-frame predicted value of the neighboring node, and the average predicted value of the neighboring node.
[0281] For example, the predicted value of at least one related node of the neighboring node includes one or more of the following: the intra-frame predicted value of the neighboring node, the inter-frame predicted value of the neighboring node, and the average predicted value of the neighboring node.
[0282] In some embodiments, at least one related node of the neighboring node is an encoded node. Furthermore, in this application embodiment, the related nodes of the neighboring node are not limited; in short, the related node is a node that has some relationship / certain relationship with the neighboring node. Exemplarily, the related nodes of the neighboring node include one or more of the following nodes:
[0283] The parent node of the neighbor node;
[0284] The child node of the parent node of the neighbor node;
[0285] The uncle node of the neighboring node;
[0286] The grandparent node of the neighboring node.
[0287] Of course, in this embodiment of the application, the related nodes of the neighboring nodes are not limited to the nodes mentioned above. In short, the related nodes are nodes that have some kind of relationship with the neighboring nodes.
[0288] As mentioned earlier, in step 1101, the intra-frame voting result and inter-frame voting result of the current node are determined based on the posterior prediction information of the current node's neighboring nodes. It should be noted that the further implementation of step 1101 is the same as that in the decoding end. Therefore, for the further implementation of step 1101 in the encoding end, please refer to the description and related details of the further implementation of step 601 in the decoding end above. For the sake of brevity, it will not be repeated here.
[0289] Step 1102: Determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting results and the inter-frame voting results.
[0290] It should be noted that, in this embodiment, determining the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result can be achieved by performing a normalization operation on the intra-frame voting result and the inter-frame voting result to determine the intra-frame weight value and inter-frame weight value of the current node. For example, the following formula can be used to calculate them:
[0291] Among them, w intra w represents the intra-frame weight value. inter The values represent the inter-frame weights. `voteintra` represents the intra-frame voting result of the current node, and `voteinter` represents the inter-frame voting result of the current node. Neither `voteinter` nor `voteintra` needs to be encoded in the bitstream; they can be calculated using the same algorithm at the encoding and decoding end.
[0292] Step 1103: Determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0293] Furthermore, in some embodiments, step 1103 may further include: determining the inter-frame prediction value and intra-frame prediction value of the current node; and performing weighted prediction on the inter-frame prediction value and intra-frame prediction value of the current node according to the inter-frame weight value and the intra-frame weight value to determine the prediction value of the current node.
[0294] In the scheme of using region adaptive hierarchical transformation for the current node, the inter-frame prediction value of the current node is the inter-frame prediction value of the high-frequency coefficients of the current node, the intra-frame prediction value of the current node is the intra-frame prediction value of the high-frequency coefficients of the current node, and the prediction value of the current node is the prediction value of the high-frequency coefficients of the current node (or "AC coefficient prediction value").
[0295] That is, the step of performing weighted prediction on the inter-frame prediction value and intra-frame prediction value of the current node based on the inter-frame weight value and the intra-frame weight value to determine the prediction value of the current node may include: performing weighted prediction on the inter-frame prediction value and intra-frame prediction value based on the inter-frame weight value of the high-frequency coefficient of the current node and the intra-frame weight value of the high-frequency coefficient of the current node to determine the prediction value of the high-frequency coefficient of the current node.
[0296] It should be noted that, in the embodiments of this application, the encoding method is mainly applied to the average prediction mode, which obtains the prediction value of the current node by weighted averaging of inter-frame prediction values and intra-frame prediction values.
[0297] In some embodiments, the predicted value of the current node is the result of a weighted prediction of the inter-frame and intra-frame predicted values of the current node. In other embodiments, the predicted value of the current node is obtained by further processing the result of the weighted prediction.
[0298] In some embodiments, the encoding method further includes: determining the residual value of the current node based on the predicted value of the current node; encoding the residual value of the current node and writing the obtained encoded bits into the bit stream.
[0299] Furthermore, in some embodiments, determining the residual value of the current node based on the predicted value of the current node includes: performing a subtraction operation between the initial value of the current node and the predicted value of the current node to determine the residual value of the current node. For example, the residual value of the current node is the difference between the initial value of the previous node and the predicted value of the current node, or the residual value of the current node is obtained by further processing the difference.
[0300] For example, in some embodiments, the encoding method further includes: determining the residual value of the high-frequency coefficient of the current node based on the predicted value of the high-frequency coefficient of the current node; encoding the residual value of the high-frequency coefficient of the current node; and writing the obtained encoded bits into the code stream.
[0301] In this embodiment, when the current node uses region adaptive hierarchical transformation, for inter-frame prediction and intra-frame prediction, intra-frame prediction can be obtained by using the attribute prediction values of adjacent nodes within the frame. For inter-frame prediction, a node with the exact same position as the current node can be found in the buffer of the reference image, called a co-location node. If the inter-frame prediction node of the current node is valid (i.e., a co-location node exists), the attribute of the prediction node is directly used as the inter-frame prediction value of the current node. If the inter-frame prediction node of the current node is invalid (i.e., a co-location node does not exist), the attribute prediction values of adjacent nodes within the frame are used as the inter-frame prediction value of the current node.
[0302] Thus, during RAHT prediction, if both intra-frame and inter-frame predicted values exist, a weighted average is calculated to obtain the final predicted value, known as the inter-frame / intra-frame weighted average predicted value. In other words, the AC coefficient prediction value for the current node is determined by weighting the inter-frame and intra-frame predicted values based on inter-frame and intra-frame weight values. This can be calculated using the following formula:
[0303] Where Attraverage_predict represents the AC coefficient prediction value of the current node, Attrinter_predict represents the inter-frame prediction value of the AC coefficient, Attrrintra_predict represents the intra-frame prediction value of the AC coefficient, and W inter W represents the inter-frame weight value. intra Represents the intra-frame weight value; voteinter represents the inter-frame voting result, and voteintra represents the intra-frame voting result.
[0304] In other words, in this embodiment, after determining the predicted value of the high-frequency coefficient of the current node, the residual value of the high-frequency coefficient of the current node can be determined based on the initial value and the predicted value of the high-frequency coefficient of the current node. For example, the residual value of the high-frequency coefficient of the current node can be obtained by subtracting the initial value and the predicted value of the high-frequency coefficient of the current node, and then written into the bitstream.
[0305] This application provides an encoding method comprising: determining the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the current node's neighboring nodes; determining the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and determining the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node. Thus, using the posterior prediction information of encoded neighboring nodes to determine the intra-frame voting result and inter-frame voting result of the current node improves the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, and further improving the accuracy of the predicted value of the current node, enhancing encoder performance, and saving bitstream overhead.
[0306] It should be noted that the encoding method in this application embodiment is applied to an encoder. Furthermore, this encoding method can refer to a weight optimization algorithm for inter-frame and intra-frame weighted prediction; specifically, it can be a weight optimization algorithm for inter-frame and intra-frame weighted prediction that utilizes some other information from uncle nodes in the RAHT transform, thereby enabling more accurate prediction values for the current node and improving the encoding performance of the point cloud.
[0307] It should also be noted that, in the embodiments of this application, the prediction mode for the current node can be determined based on the first syntax element in the code stream, or it can be determined based on the already encoded node information, without any limitation.
[0308] In one possible implementation, the encoding method may further include: determining the value of the first syntax element based on the prediction mode of the current node; encoding the value of the first syntax element; and writing the obtained encoded bits into the bitstream.
[0309] In this embodiment, the first syntax element is used to indicate whether the prediction mode of the current node is the average prediction mode. For example, if the prediction mode of the current node is the average prediction mode, the value of the first syntax element is determined to be a first value; if the prediction mode of the current node is not the average prediction mode, the value of the first syntax element is determined to be a second value. The first value can be set to 1, and the second value can be set to 0; or, the first value can be set to true, and the second value can be set to false, without any limitation.
[0310] The descriptions of the above encoding method embodiments are essentially the same as those of the above decoding method embodiments, and have similar beneficial effects. For technical details not disclosed in the encoding method embodiments of this application, please refer to the descriptions of the decoding method embodiments of this application for understanding.
[0311] The following examples illustrate possible implementation schemes of the encoding and decoding methods described in one or more of the above embodiments.
[0312] In RAHT encoding and decoding, the neighbor information of the node to be predicted includes the parent node that has been encoded and decoded, the uncle node that has been encoded and decoded, etc. In the embodiments of this application, in addition to considering the parent node and prediction mode information of the node to be predicted, the prediction mode information of the grandparent node is introduced to optimize the inter-frame and intra-frame weighted average prediction.
[0313] In this embodiment, the calculation method of voteInter and voteIntra in the weighted average prediction of inter-frame and intra-frame prediction introduces prior information of the prediction mode of the grandparent node, making full use of the prediction mode information of all neighbors of the current node to be predicted, optimizing the calculation of voteInter and voteIntra, and ultimately improving the performance of the codec. The specific implementation method is described below.
[0314] The addition of vote values for both `voteintra` and `voteinter` has been modified. Previously, the vote values were added by multiplying a coefficient K by the pattern information of neighboring nodes. For example:
[0315] Impact of the parent node prediction mode on the weights: voteinter = voteinter + 14 * (RahtPredMode == inter prediction mode || RahtPredMode == average prediction mode); voteintra = voteintra + 14 * (RahtPredMode == intra prediction mode); voteinter = voteinter + 7 * (RahtPredMode == no prediction mode); voteintra = voteintra + 7 * (RahtPredMode == no prediction mode);
[0316] In an embodiment of the present application, the vote value accumulation parts of voteintra and voteinter are modified above, that is, the vote value accumulation is based on the coefficient K (i.e., the weight K) multiplied by the intra-frame voting parameter (Wintra) of the neighbor node, that is: voteintra = voteintra + K * intra-frame voting parameter (Wintra) of the neighbor node; voteinter = voteinter + K * (128 - intra-frame voting parameter (Wintra) of the neighbor node).
[0317] Among them, the impact of the parent node on the intra-frame voting result: voteintra = voteintra + K1 * intra-frame voting parameter (Wintra) of the parent node; voteinter = voteinter + K1 * (128 - intra-frame voting parameter (Wintra) of the parent node).
[0318] The impact of the uncle node on the intra-frame voting result: voteintra = voteintra + K2 * intra-frame voting parameter (Wintra) of the uncle node; voteinter = voteinter + K2 * (128 - intra-frame voting parameter (Wintra) of the uncle node).
[0319] The impact of the child node of the uncle node on the intra-frame voting result: voteintra = voteintra + K3 * intra-frame voting parameter (Wintra) of the child node of the uncle node; voteinter = voteinter + K3 * (128 - intra-frame voting parameter (Wintra) of the child node of the uncle node).
[0320] Among them, the intra-frame voting parameter (Wintra) of the neighbor node is obtained based on the posterior prediction information, that is, after predicting the neighbor node, calculate the Wintra of the neighbor node:
[0321] If the neighbor node is in the intra prediction mode, Wintra = 128;
[0322] If the neighboring node is in the inter-frame prediction mode, Wintra = 0;
[0323] If the neighboring node is in the average prediction mode, Wintra is calculated as follows:
[0324] Childcnt is the number of all children of the parent node of the current neighboring node,
[0325] attrPredInter[i] is the inter-frame prediction value of the j-th child node of the parent node of the current neighboring node;
[0326] predIntraCopyBuff[i] is the intra-frame prediction value of the j-th child node of the parent node of the current neighboring node;
[0327] BestRecBuf[i] is the final prediction value of the j-th child node of the parent node of the current neighboring node, that is, the average prediction value;
[0328] ChildPt[i]->Wintra is the intra-frame voting parameter of the j-th child node, with a range of 0 - 128
[0329] In one implementation, the intra-frame voting parameter Wintra of the current neighboring node can be determined by the logic shown in the following code. For(int j = 0; j < childcnt; i++) / / Loop through the childcnt children of the parent node of the current node { InterIntra = attrPredInter[j] - predIntraCopyBuff[j]; / / InterIntra represents the difference between the inter-frame prediction value and the intra-frame prediction value InterDec = attrPredInter[j] - BestRecBuf[j]; / / InterDec represents the difference between the inter-frame prediction value and the final prediction value numerator += InterDec * InterIntra; denominator += InterIntra * InterIntra;} numerator = std::max(int64_t(0), std::min(denominator, numerator)); / / Find the minimum value between numerator and denominator int mu = 64; if(denominator > 0) mu = 128 * numerator / denominator; The current neighboring node's ->Wintra = mu;
[0330] In summary, in some embodiments:
[0331] The influence of the current node's uncle node: VoteIntra+ = uncle->Wintra; / / uncle->Wintra represents the uncle node's intra-frame voting parameter VoteInter+ = 128 - uncle->Wintra;
[0332] The influence of multiple child nodes of the current node's uncle node: VoteIntra+=3*cousin->Wintra; VoteInter+=3*(128-cousin->Wintra);
[0333] The influence of the current node's parent node: VoteIntra+=4*(parent->Wintra); / / parent->Wintra represents the parent node's intra-frame voting parameter VoteInter+=4*(128-parent->Wintra);
[0334] The influence of the current node's grandparent nodes: VoteIntra+=K*(grandparent->Wintra); / / grandparent->Wintra represents the grandparent node's intra-frame voting parameter VoteInter+=K*(128-grandparent->Wintra);
[0335] The influence of the parent node of the current node's uncle node: VoteIntra+=K*(uncle_parent->Wintra); / / uncle_parent->Wintra represents the intra-frame voting parameter of the great-great-grandparent node VoteInter+=K*(128-uncle_parent->Wintra);
[0336] For example, based on the encoding and decoding method of the foregoing embodiments, Table 1 below shows the test results of the above implementation under the test conditions of geometric lossy and attribute lossy (Lossy Geometry, Lossy Attribute, Lossy Geo, Lossy Attr) when K=4.
[0337] Comparison with GESTM-v8+ofinno new proposal:
[0338] Table 1 Test results of the proposed solution vs. GESTM-v8+ofinno new proposal
[0339] Compared to the latest GESTM-v8 anchor: the above scheme, compared to the GESTM-v8+ofinno new proposal, shows an average gain of -0.4%, -0.9%, and -0.9% on luma, Cb, and Cr, respectively, while maintaining the same time complexity as the anchor. It can be seen that by introducing the prediction mode of grandparent nodes, the inter-frame and intra-frame weighted average prediction can be optimized without affecting the time complexity, thus improving the performance of GESTM RAHT.
[0340] It should be noted that although the steps of the method in this application are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps; or steps from different embodiments may be combined into a new technical solution.
[0341] Based on the same inventive concept as the foregoing embodiments, FIG12 is a schematic diagram of the composition structure of an encoder provided in an embodiment of this application. As shown in FIG12, the encoder 120 may include a first determining unit 1201 and a first predicting unit 1202, wherein:
[0342] The first determining unit 1201 is configured to determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node.
[0343] The first determining unit 1201 is configured to determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result.
[0344] The first prediction unit 1202 is configured to determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0345] In some embodiments, the neighboring nodes include one or more of the following nodes:
[0346] The grandparent node of the current node;
[0347] The parent node of the uncle node of the current node;
[0348] The parent node of the current node;
[0349] The uncle node of the current node;
[0350] The child node of the uncle node of the current node.
[0351] In some embodiments, the posterior prediction information of the neighboring nodes includes one or more of the following:
[0352] The predicted pattern of the neighboring nodes;
[0353] The predicted pattern of at least one related node of the neighboring node;
[0354] The predicted values of the neighboring nodes;
[0355] The predicted value of at least one related node of the neighboring node.
[0356] In some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes; determine the intra-frame voting result of the current node based on the weights and the intra-frame voting parameters of the neighboring nodes; and determine the inter-frame voting result of the current node based on the weights and the inter-frame voting parameters of the neighboring nodes.
[0357] Furthermore, in some embodiments, the first determining unit 1201 is configured to: when the prediction mode of the neighboring node is intra-frame prediction mode, and / or the prediction mode of at least one related node of the neighboring node is intra-frame prediction mode, the intra-frame voting parameter of the neighboring node is a first preset value.
[0358] Furthermore, in some other embodiments, the first determining unit 1201 is configured to: when the prediction mode of the neighboring node is inter-frame prediction mode, and / or the prediction mode of the related node of the neighboring node is inter-frame prediction mode, the intra-frame voting parameter of the neighboring node is a second preset value.
[0359] Furthermore, in some other embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the predicted value of the neighboring node when the prediction mode of the neighboring node is the average prediction mode.
[0360] In some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the intra-frame prediction values, inter-frame prediction values and average prediction values of the neighboring nodes.
[0361] Further, in some embodiments, the first determining unit 1201 is configured to: determine a first difference between the inter-frame prediction value of the neighboring node and the intra-frame prediction value of the neighboring node; determine a second difference between the inter-frame prediction value of the neighboring node and the average prediction value of the neighboring node; and determine the intra-frame voting parameters of the neighboring node based on the first difference and the second difference.
[0362] For example, in some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters of the neighboring node based on the ratio of the first difference to the second difference.
[0363] In other embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the prediction values of at least one of the neighboring nodes when the prediction mode of the related nodes of the neighboring node is the average prediction mode.
[0364] Furthermore, in some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the intra-frame prediction value, inter-frame prediction value and average prediction value of at least one related node of the neighboring node.
[0365] Furthermore, in some embodiments, the first determining unit 1201 is configured to: determine a third difference between the inter-frame prediction value of the relevant node and the intra-frame prediction value of the relevant node; determine a fourth difference between the inter-frame prediction value of the relevant node and the average prediction value of the relevant node; and determine the intra-frame voting parameters of the neighboring node based on the third difference corresponding to the at least one relevant node and the fourth difference corresponding to the at least one relevant node.
[0366] For example, in some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters of the neighboring nodes based on the ratio of the third difference corresponding to the at least one related node to the fourth difference corresponding to the at least one related node.
[0367] For example, in some other embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters of the neighboring node based on the first sum of the third differences corresponding to at least one related node of the neighboring node and the second sum of the fourth differences corresponding to at least one related node of the neighboring node.
[0368] In some embodiments, the first sum is a weighted sum of the third differences corresponding to at least one relevant node.
[0369] In some embodiments, the second sum is a weighted sum of the fourth differences corresponding to at least one relevant node.
[0370] In some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters of the neighboring nodes based on the ratio of the first sum to the second sum.
[0371] In some other embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the predicted value of the neighboring node and the predicted value of at least one of the related nodes of the neighboring node when the prediction mode of the neighboring node is the average prediction mode and / or the prediction mode of the related nodes of the neighboring node is the average prediction mode.
[0372] Further, in some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the intra-frame prediction value, inter-frame prediction value and average prediction value of the neighboring node, and the intra-frame prediction value, inter-frame prediction value and average prediction value of at least one related node of the neighboring node.
[0373] Furthermore, in some embodiments, the first determining unit 1201 is configured to: determine a first difference between the inter-frame prediction value and the intra-frame prediction value of the neighboring node; determine a second difference between the inter-frame prediction value and the average prediction value of the neighboring node; determine a third difference between the inter-frame prediction value and the intra-frame prediction value of the related node; determine a fourth difference between the inter-frame prediction value and the average prediction value of the related node; and determine the intra-frame voting parameters of the neighboring node based on the first difference, the second difference, the third difference, and the fourth difference corresponding to the at least one related node.
[0374] For example, in some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters of the neighboring node based on the third sum of the first difference corresponding to the neighboring node and the third difference corresponding to the at least one related node, and the fourth sum of the second difference corresponding to the neighboring node and the fourth difference corresponding to the at least one related node.
[0375] In some embodiments, the third sum is a weighted sum of the first difference and the third difference corresponding to at least one related node.
[0376] In some embodiments, the fourth sum is a weighted sum of the second difference and the fourth difference corresponding to at least one related node.
[0377] In some embodiments, the first determining unit 1201 is configured to: determine the intra-frame voting parameters of the neighboring node based on the ratio of the third sum to the fourth sum.
[0378] In some embodiments, the related nodes of the neighboring nodes include one or more of the following nodes:
[0379] The parent node of the neighbor node;
[0380] The child node of the parent node of the neighbor node;
[0381] The uncle node of the neighbor node;
[0382] The grandparent node of the neighboring node.
[0383] In some embodiments, the first determining unit 1201 is configured to: determine the inter-frame voting parameters of the neighboring nodes based on the intra-frame voting parameters of the neighboring nodes.
[0384] In some embodiments, the intra-frame voting result of the current node is a weighted sum of the intra-frame voting parameters of at least one of the current node's neighboring nodes.
[0385] In some embodiments, the inter-frame voting result of the current node is a weighted sum of the inter-frame voting parameters of at least one of the current node's neighboring nodes.
[0386] In some embodiments, the first prediction unit 1202 is configured to: determine the inter-frame prediction value and intra-frame prediction value of the current node; perform weighted prediction on the inter-frame prediction value and intra-frame prediction value of the current node according to the inter-frame weight value and the intra-frame weight value, and determine the prediction value of the current node.
[0387] In some embodiments, the predicted value of the current node is the predicted value of the high-frequency coefficient of the current node; as shown in FIG12, the encoder 120 further includes an encoding unit 1203; wherein, the first determining unit 1201 is further configured to: determine the residual value of the high-frequency coefficient of the current node based on the predicted value of the high-frequency coefficient of the current node; the encoding unit 1203 is configured to encode the residual value of the high-frequency coefficient of the current node and write the obtained encoded bits into the code stream.
[0388] Understandably, in the embodiments of this application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular one. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit described above can be implemented in hardware or as a software functional module.
[0389] The description of the encoder embodiments above is similar to the description of the encoding / decoding method embodiments above, and has similar beneficial effects. For technical details not disclosed in the encoder embodiments of this application, please refer to the description of the encoding / decoding method embodiments of this application for understanding.
[0390] Figure 13 is a schematic diagram of the hardware structure of an encoder provided in an embodiment of this application. As shown in Figure 13, the encoder 130 may include: a first communication interface 1301, a first memory 1302, and a first processor 1303; the various components are coupled together through a first bus system 1304. It is understood that the first bus system 1304 is used to realize the connection and communication between these components. In addition to a data bus, the first bus system 1304 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as the first bus system 1304 in Figure 13.
[0391] The first communication interface 1301 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0392] The first memory 1302 is used to store computer programs that can run on the first processor 1303;
[0393] The first processor 1303 is configured to, when running the computer program, perform the following: determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node; determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0394] It is understood that the first memory 1302 in this embodiment can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 1302 of the system and method described in this application is intended to include, but is not limited to, these and any other suitable types of memory.
[0395] The first processor 1303 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the first processor 1303 or by instructions in software form. The first processor 1303 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 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 methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules may reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in the first memory 1302. The first processor 1303 reads the information in the first memory 1302 and completes the steps of the above method in conjunction with its hardware.
[0396] It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application, or combinations thereof. For software implementation, the technology described in this application can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions described in this application. Software code can be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.
[0397] Alternatively, as another embodiment, the first processor 1303 is further configured to perform the method described in any of the foregoing embodiments when running the computer program.
[0398] This embodiment provides an encoder in which the posterior prediction information of the encoded neighboring nodes is used to determine the intra-frame voting result and inter-frame voting result of the current node. This improves the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, and further improving the accuracy of the prediction value of the current node, thus enhancing the performance of the encoder.
[0399] Figure 14 is a schematic diagram of the composition structure of a decoder provided in an embodiment of this application. As shown in Figure 14, the decoder 140 may include a second determining unit 1401 and a second predicting unit 1402, wherein:
[0400] The second determining unit 1401 is configured to determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node.
[0401] The second determining unit 1401 is configured to determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result.
[0402] The second prediction unit 1402 is configured to determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0403] In some embodiments, the neighboring nodes include one or more of the following nodes:
[0404] The grandparent node of the current node;
[0405] The parent node of the current node's uncle node;
[0406] The parent node of the current node;
[0407] The uncle node of the current node;
[0408] The child node of the uncle node of the current node.
[0409] In some embodiments, the posterior prediction information of the neighboring nodes includes one or more of the following:
[0410] The predicted pattern of the neighboring nodes;
[0411] The predicted pattern of at least one related node of the neighboring node;
[0412] The predicted values of the neighboring nodes;
[0413] The predicted value of at least one related node of the neighboring node.
[0414] In some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes; determine the intra-frame voting result of the current node based on the weights and the intra-frame voting parameters of the neighboring nodes; and determine the inter-frame voting result of the current node based on the weights and the inter-frame voting parameters of the neighboring nodes.
[0415] Furthermore, in some embodiments, the first determining unit 1401 is configured to: when the prediction mode of the neighboring node is intra-frame prediction mode, and / or the prediction mode of at least one related node of the neighboring node is intra-frame prediction mode, the intra-frame voting parameter of the neighboring node is a first preset value.
[0416] Furthermore, in some other embodiments, the first determining unit 1401 is configured to: when the prediction mode of the neighboring node is inter-frame prediction mode, and / or the prediction mode of the related node of the neighboring node is inter-frame prediction mode, the intra-frame voting parameter of the neighboring node is a second preset value.
[0417] Furthermore, in some other embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the predicted value of the neighboring node when the prediction mode of the neighboring node is the average prediction mode.
[0418] In some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the intra-frame prediction values, inter-frame prediction values and average prediction values of the neighboring nodes.
[0419] Further, in some embodiments, the first determining unit 1401 is configured to: determine a first difference between the inter-frame prediction value of the neighboring node and the intra-frame prediction value of the neighboring node; determine a second difference between the inter-frame prediction value of the neighboring node and the average prediction value of the neighboring node; and determine the intra-frame voting parameters of the neighboring node based on the first difference and the second difference.
[0420] For example, in some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters of the neighboring node based on the ratio of the first difference to the second difference.
[0421] In other embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the prediction values of at least one of the neighboring nodes when the prediction mode of the related nodes of the neighboring node is the average prediction mode.
[0422] Furthermore, in some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the intra-frame prediction value, inter-frame prediction value and average prediction value of at least one related node of the neighboring node.
[0423] Furthermore, in some embodiments, the first determining unit 1401 is configured to: determine a third difference between the inter-frame prediction value of the relevant node and the intra-frame prediction value of the relevant node; determine a fourth difference between the inter-frame prediction value of the relevant node and the average prediction value of the relevant node; and determine the intra-frame voting parameters of the neighboring node based on the third difference corresponding to the at least one relevant node and the fourth difference corresponding to the at least one relevant node.
[0424] For example, in some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters of the neighboring nodes based on the ratio of the third difference corresponding to the at least one related node to the fourth difference corresponding to the at least one related node.
[0425] For example, in some other embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters of the neighboring node based on the first sum of the third differences corresponding to at least one related node of the neighboring node and the second sum of the fourth differences corresponding to at least one related node of the neighboring node.
[0426] In some embodiments, the first sum is a weighted sum of the third differences corresponding to at least one relevant node.
[0427] In some embodiments, the second sum is a weighted sum of the fourth differences corresponding to at least one relevant node.
[0428] In some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters of the neighboring node based on the ratio of the first sum to the second sum.
[0429] In some other embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the predicted value of the neighboring node and the predicted value of at least one of the related nodes of the neighboring node when the prediction mode of the neighboring node is the average prediction mode and / or the prediction mode of the related nodes of the neighboring node is the average prediction mode.
[0430] Further, in some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node based on the intra-frame prediction value, inter-frame prediction value and average prediction value of the neighboring node, and the intra-frame prediction value, inter-frame prediction value and average prediction value of at least one related node of the neighboring node.
[0431] Furthermore, in some embodiments, the first determining unit 1401 is configured to: determine a first difference between the inter-frame prediction value and the intra-frame prediction value of the neighboring node; determine a second difference between the inter-frame prediction value and the average prediction value of the neighboring node; determine a third difference between the inter-frame prediction value and the intra-frame prediction value of the related node; determine a fourth difference between the inter-frame prediction value and the average prediction value of the related node; and determine the intra-frame voting parameters of the neighboring node based on the first difference, the second difference, the third difference, and the fourth difference corresponding to the at least one related node.
[0432] For example, in some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters of the neighboring node based on the third sum of the first difference corresponding to the neighboring node and the third difference corresponding to the at least one related node, and the fourth sum of the second difference corresponding to the neighboring node and the fourth difference corresponding to the at least one related node.
[0433] In some embodiments, the third sum is a weighted sum of the first difference and the third difference corresponding to at least one related node.
[0434] In some embodiments, the fourth sum is a weighted sum of the second difference and the fourth difference corresponding to at least one related node.
[0435] In some embodiments, the first determining unit 1401 is configured to: determine the intra-frame voting parameters of the neighboring node based on the ratio of the third sum to the fourth sum.
[0436] In some embodiments, the related nodes of the neighboring nodes include one or more of the following nodes:
[0437] The parent node of the neighbor node;
[0438] The child node of the parent node of the neighbor node;
[0439] The uncle node of the neighboring node;
[0440] The grandparent node of the neighboring node.
[0441] In some embodiments, the first determining unit 1401 is configured to: determine the inter-frame voting parameters of the neighboring nodes based on the intra-frame voting parameters of the neighboring nodes.
[0442] In some embodiments, the intra-frame voting result of the current node is a weighted sum of the intra-frame voting parameters of at least one of the current node's neighboring nodes.
[0443] In some embodiments, the inter-frame voting result of the current node is a weighted sum of the inter-frame voting parameters of at least one of the current node's neighboring nodes.
[0444] In some embodiments, the first prediction unit 1401 is configured to: determine the inter-frame prediction value and intra-frame prediction value of the current node; perform weighted prediction on the inter-frame prediction value and intra-frame prediction value of the current node according to the inter-frame weight value and the intra-frame weight value, and determine the prediction value of the current node.
[0445] In some embodiments, referring to FIG14, the decoder 140 may further include a decoding unit 1403 configured to parse the first syntax element of the current node in the bitstream; and a second determining unit 1401 configured to determine the prediction mode of the current node based on the value of the first syntax element.
[0446] In some embodiments, the second determining unit 1401 is further configured to determine the inter-frame prediction value and intra-frame prediction value of the current node; and to perform weighted prediction on the inter-frame prediction value and intra-frame prediction value according to the inter-frame weight value and the intra-frame weight value to determine the prediction value of the current node.
[0447] In some embodiments, the predicted value of the current node is the predicted value of the high-frequency coefficients of the current node; correspondingly, the second determining unit 1401 is further configured to determine the inter-frame predicted value and the intra-frame predicted value of the high-frequency coefficients of the current node when the current node uses the region adaptive hierarchical transformation; and to perform weighted prediction on the inter-frame predicted value and the intra-frame predicted value according to the inter-frame weight value and the intra-frame weight value to determine the predicted value of the high-frequency coefficients of the current node.
[0448] In some embodiments, referring to FIG14, the decoder 140 may further include a decoding unit 1403, wherein the decoding unit 1403 is configured to parse the high-frequency coefficient residual value of the current node in the bit stream; the second determining unit 1401 is further configured to determine the reconstructed value of the high-frequency coefficient of the current node based on the residual value of the high-frequency coefficient of the current node and the predicted value of the high-frequency coefficient of the current node.
[0449] Understandably, in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular component. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional module.
[0450] The description of the decoder embodiments above is similar to the description of the encoding / decoding method embodiments above, and has similar beneficial effects. For technical details not disclosed in the decoder embodiments of this application, please refer to the description of the encoding / decoding method embodiments of this application for understanding.
[0451] In another embodiment of this application, FIG15 is a schematic diagram of the specific hardware structure of a decoder provided in an embodiment of this application. As shown in FIG15, the decoder 150 may include: a second communication interface 1501, a second memory 1502, and a second processor 1503; the various components are coupled together through a second bus system 1504. It is understood that the second bus system 1504 is used to realize the connection and communication between these components. In addition to a data bus, the second bus system 1504 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as the second bus system 1504 in FIG15.
[0452] The second communication interface 1501 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0453] The second memory 1502 is used to store computer programs that can run on the second processor 1503;
[0454] The second processor 1503 is configured to, when running the computer program, perform the following: determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node; determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result; and determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
[0455] Alternatively, as another embodiment, the second processor 1503 is also configured to perform the method described in any of the foregoing embodiments when running the computer program.
[0456] It is understood that the second memory 1502 has similar hardware functions to the first memory 1302, and the second processor 1503 has similar hardware functions to the first processor 1303; these will not be described in detail here.
[0457] This embodiment provides a decoder in which the intra-frame voting result and inter-frame voting result of the current node are determined based on the posterior prediction information of the current node's neighboring nodes; the intra-frame weight value and inter-frame weight value of the current node are determined based on the intra-frame voting result and the inter-frame weight value of the current node; and the predicted value of the current node is determined based on the intra-frame weight value and the inter-frame weight value of the current node. Thus, using the posterior prediction information of the decoded neighboring nodes to determine the intra-frame voting result and inter-frame voting result of the current node improves the accuracy of these two results, thereby improving the intra-frame weight value and inter-frame weight value of the current node, and further improving the accuracy of the predicted value of the current node, thus enhancing the performance of the decoder.
[0458] In another embodiment of this application, FIG16 is a schematic diagram of the composition structure of an encoding and decoding system provided in an embodiment of this application. As shown in FIG16, the encoding and decoding system 160 may include an encoder 1601 and a decoder 1602.
[0459] In this embodiment, encoder 1601 can be any of the encoders described in the foregoing embodiments, and decoder 1602 can be any of the decoders described in the foregoing embodiments.
[0460] In some embodiments, this application also provides a computer-readable storage medium storing a computer program thereon. When executed by a processor, the computer program implements the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program implements the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, it implements the decoding method as described in any of the foregoing embodiments.
[0461] In some embodiments, this application also provides a computer program product, including a computer program or instructions. When executed by a processor, the computer program or instructions implement the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program or instructions implement the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, they implement the decoding method as described in any of the foregoing embodiments.
[0462] In some embodiments, this application also provides a computer program that, when executed by a processor, implements the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program or instructions implement the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, implement the decoding method as described in any of the foregoing embodiments.
[0463] In some embodiments, this application also provides a computer-readable storage medium storing a bitstream thereon. The bitstream is generated by performing the steps of the encoding method as described in any of the foregoing embodiments.
[0464] In this embodiment, the information to be encoded in the encoding method includes at least one of the following: the residual value of the high-frequency coefficients of the current node and the value of the first syntax element. Here, this information to be encoded is encoded and written into the bitstream.
[0465] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed in this application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0466] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working process of the above-described apparatus and unit can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0467] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0468] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0469] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. If the functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes: USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, optical disks, and other media capable of storing program code.
[0470] It should be noted that, in this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0471] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0472] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0473] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0474] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.
[0475] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A decoding method, the method being applied to a decoder, the method comprising: Based on the posterior prediction information of the current node's neighboring nodes, determine the intra-frame voting result and inter-frame voting result of the current node; Based on the intra-frame voting results and the inter-frame voting results, determine the intra-frame weight value and inter-frame weight value of the current node; The predicted value of the current node is determined based on the intra-frame weight value and the inter-frame weight value of the current node.
2. The method according to claim 1, wherein, The neighboring nodes include one or more of the following nodes: The grandparent node of the current node; The parent node of the uncle node of the current node; The parent node of the current node; The uncle node of the current node; The child node of the uncle node of the current node.
3. The method according to claim 1 or 2, wherein, The posterior prediction information of the neighboring nodes includes one or more of the following: The predicted pattern of the neighboring nodes; The predicted pattern of at least one related node of the neighboring node; The predicted values of the neighboring nodes; The predicted value of at least one related node of the neighboring node.
4. The method according to claim 3, wherein, The step of determining the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the current node's neighbor nodes includes: Based on the posterior prediction information of the neighboring nodes, determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes; The intra-frame voting result of the current node is determined based on the weight and the intra-frame voting parameters of the neighboring nodes. The inter-frame voting result of the current node is determined based on the weight and the inter-frame voting parameters of the neighboring nodes.
5. The method according to claim 4, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the neighboring node is intra-frame prediction mode, and / or when the prediction mode of at least one related node of the neighboring node is intra-frame prediction mode, the intra-frame voting parameter of the neighboring node is a first preset value.
6. The method according to claim 4, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the neighboring node is inter-frame prediction mode, and / or when the prediction mode of the related node of the neighboring node is inter-frame prediction mode, the intra-frame voting parameter of the neighboring node is a second preset value.
7. The method according to claim 4, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the neighboring node is the average prediction mode, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined based on the prediction values of the neighboring node.
8. The method according to claim 7, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on their predicted values includes: Based on the intra-frame prediction value, inter-frame prediction value, and average prediction value of the neighboring nodes, determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes.
9. The method according to claim 8, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on their intra-frame prediction values, inter-frame prediction values, and average prediction values includes: Determine the first difference between the inter-frame prediction value and the intra-frame prediction value of the neighboring node; Determine a second difference between the inter-frame prediction value of the neighboring node and the average prediction value of the neighboring nodes; Based on the first difference and the second difference, the intra-frame voting parameters of the neighboring nodes are determined.
10. The method according to claim 9, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the first difference and the second difference includes: The intra-frame voting parameters of the neighboring nodes are determined based on the ratio of the first difference to the second difference.
11. The method according to claim 4, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the related nodes of the neighboring node is the average prediction mode, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined based on the prediction values of at least one related node of the neighboring node.
12. The method according to claim 11, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the prediction values of at least one related node of the neighboring nodes includes: The intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes are determined based on the intra-frame prediction values, inter-frame prediction values, and average prediction values of at least one related node of the neighboring nodes.
13. The method according to claim 12, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the intra-frame prediction values, inter-frame prediction values, and average prediction values of at least one related node of the neighboring nodes includes: Determine the third difference between the inter-frame prediction value and the intra-frame prediction value of the relevant node; Determine the fourth difference between the inter-frame predicted value of the relevant node and the average predicted value of the relevant node; The intra-frame voting parameters of the neighboring nodes are determined based on the third difference and the fourth difference corresponding to the at least one related node.
14. The method according to claim 13, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the third difference and the fourth difference of the at least one related node includes: The intra-frame voting parameters of the neighboring nodes are determined based on the ratio of the third difference corresponding to the at least one related node to the fourth difference corresponding to the at least one related node.
15. The method according to claim 13, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the third difference and the fourth difference corresponding to the at least one related node includes: The intra-frame voting parameters of the neighboring node are determined based on the first sum of the third differences corresponding to at least one related node of the neighboring node and the second sum of the fourth differences corresponding to at least one related node of the neighboring node.
16. The method according to claim 15, wherein, The first sum is a weighted sum of the third differences corresponding to at least one relevant node.
17. The method according to claim 15, wherein, The second sum is a weighted sum of the fourth differences corresponding to at least one relevant node.
18. The method according to any one of claims 15-17, wherein, The intra-frame voting parameters of the neighboring nodes are determined based on the ratio of the first sum to the second sum.
19. The method according to claim 4, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the neighboring node is the average prediction mode, and / or the prediction mode of the related nodes of the neighboring node is the average prediction mode, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined based on the prediction value of the neighboring node and the prediction value of at least one related node of the neighboring node.
20. The method according to claim 19, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the predicted values of the neighboring nodes and the predicted values of at least one related node of the neighboring nodes includes: Based on the intra-frame prediction value, inter-frame prediction value, and average prediction value of the neighboring node, and the intra-frame prediction value, inter-frame prediction value, and average prediction value of at least one related node of the neighboring node, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined.
21. The method according to claim 20, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the intra-frame prediction values, inter-frame prediction values, and average prediction values of the neighboring nodes, as well as the intra-frame prediction values, inter-frame prediction values, and average prediction values of at least one related node of the neighboring nodes, includes: Determine the first difference between the inter-frame prediction value and the intra-frame prediction value of the neighboring node; Determine a second difference between the inter-frame prediction value of the neighboring node and the average prediction value of the neighboring nodes; Determine the third difference between the inter-frame prediction value and the intra-frame prediction value of the relevant node; Determine the fourth difference between the inter-frame predicted value of the relevant node and the average predicted value of the relevant node; The intra-frame voting parameters of the neighboring nodes are determined based on the first difference corresponding to the neighboring nodes, the second difference corresponding to the neighboring nodes, the third difference corresponding to the at least one related node, and the fourth difference corresponding to the at least one related node.
22. The method according to claim 21, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the first difference corresponding to the neighboring nodes, the second difference corresponding to the neighboring nodes, the third difference corresponding to the at least one related node, and the fourth difference corresponding to the at least one related node includes: The intra-frame voting parameters of the neighboring nodes are determined based on the third sum of the first difference corresponding to the neighboring nodes and the third difference corresponding to the at least one related node, and the fourth sum of the second difference corresponding to the neighboring nodes and the fourth difference corresponding to the at least one related node.
23. The method according to claim 22, wherein, The third sum is a weighted sum of the first difference and the third difference corresponding to at least one related node.
24. The method according to claim 22, wherein, The fourth sum is a weighted sum of the second difference and the fourth difference corresponding to at least one related node.
25. The method according to any one of claims 22-24, wherein, The intra-frame voting parameters of the neighboring nodes are determined based on the ratio of the third sum to the fourth sum.
26. The method according to any one of claims 11-25, wherein, The related nodes of the neighboring nodes include one or more of the following nodes: The parent node of the neighbor node; The child node of the parent node of the neighbor node; The uncle node of the neighbor node; The grandparent node of the neighboring node.
27. The method according to any one of claims 4-26, wherein, The inter-frame voting parameters of the neighboring nodes are determined based on the intra-frame voting parameters of the neighboring nodes.
28. The method according to any one of claims 1-27, wherein, Determining the predicted value of the current node based on its intra-frame weight value and inter-frame weight value includes: Determine the inter-frame prediction value and intra-frame prediction value of the current node; The inter-frame prediction value and intra-frame prediction value of the current node are weighted and predicted based on the inter-frame weight value and the intra-frame weight value to determine the prediction value of the current node.
29. An encoding method, the method being applied to an encoder, the method comprising: Based on the posterior prediction information of the current node's neighboring nodes, determine the intra-frame voting result and inter-frame voting result of the current node; Based on the intra-frame voting results and the inter-frame voting results, determine the intra-frame weight value and inter-frame weight value of the current node; The predicted value of the current node is determined based on the intra-frame weight value and the inter-frame weight value of the current node.
30. The method according to claim 29, wherein, The neighboring nodes include one or more of the following nodes: The grandparent node of the current node; The parent node of the uncle node of the current node; The parent node of the current node; The uncle node of the current node; The child node of the uncle node of the current node.
31. The method according to claim 29 or 30, wherein, The posterior prediction information of the neighboring nodes includes one or more of the following: The predicted pattern of the neighboring nodes; The predicted pattern of at least one related node of the neighboring node; The predicted values of the neighboring nodes; The predicted value of at least one related node of the neighboring node.
32. The method according to claim 31, wherein, The step of determining the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the current node's neighbor nodes includes: Based on the posterior prediction information of the neighboring nodes, determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes; The intra-frame voting result of the current node is determined based on the weight and the intra-frame voting parameters of the neighboring nodes. The inter-frame voting result of the current node is determined based on the weight and the inter-frame voting parameters of the neighboring nodes.
33. The method according to claim 32, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the neighboring node is intra-frame prediction mode, and / or when the prediction mode of at least one related node of the neighboring node is intra-frame prediction mode, the intra-frame voting parameter of the neighboring node is a first preset value.
34. The method according to claim 32, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the neighboring node is inter-frame prediction mode, and / or when the prediction mode of the related node of the neighboring node is inter-frame prediction mode, the intra-frame voting parameter of the neighboring node is a second preset value.
35. The method according to claim 32, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the neighboring node is the average prediction mode, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined based on the prediction values of the neighboring node.
36. The method according to claim 35, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on their predicted values includes: Based on the intra-frame prediction value, inter-frame prediction value, and average prediction value of the neighboring nodes, determine the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes.
37. The method according to claim 36, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on their intra-frame prediction values, inter-frame prediction values, and average prediction values includes: Determine the first difference between the inter-frame prediction value and the intra-frame prediction value of the neighboring node; Determine a second difference between the inter-frame prediction value of the neighboring node and the average prediction value of the neighboring nodes; Based on the first difference and the second difference, the intra-frame voting parameters of the neighboring nodes are determined.
38. The method according to claim 37, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the first difference and the second difference includes: The intra-frame voting parameters of the neighboring nodes are determined based on the ratio of the first difference to the second difference.
39. The method according to claim 32, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the related nodes of the neighboring node is the average prediction mode, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined based on the prediction values of at least one related node of the neighboring node.
40. The method according to claim 39, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the prediction values of at least one related node of the neighboring nodes includes: The intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes are determined based on the intra-frame prediction values, inter-frame prediction values, and average prediction values of at least one related node of the neighboring nodes.
41. The method according to claim 40, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the intra-frame prediction values, inter-frame prediction values, and average prediction values of at least one related node of the neighboring nodes includes: Determine the third difference between the inter-frame prediction value and the intra-frame prediction value of the relevant node; Determine the fourth difference between the inter-frame predicted value of the relevant node and the average predicted value of the relevant node; The intra-frame voting parameters of the neighboring nodes are determined based on the third difference and the fourth difference corresponding to the at least one related node.
42. The method according to claim 41, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the third difference and the fourth difference of the at least one related node includes: The intra-frame voting parameters of the neighboring nodes are determined based on the ratio of the third difference corresponding to the at least one related node to the fourth difference corresponding to the at least one related node.
43. The method according to claim 41, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the third difference and the fourth difference corresponding to the at least one related node includes: The intra-frame voting parameters of the neighboring node are determined based on the first sum of the third differences corresponding to at least one related node of the neighboring node and the second sum of the fourth differences corresponding to at least one related node of the neighboring node.
44. The method according to claim 43, wherein, The first sum is a weighted sum of the third differences corresponding to at least one relevant node.
45. The method according to claim 43, wherein, The second sum is a weighted sum of the fourth differences corresponding to at least one relevant node.
46. The method according to any one of claims 43-45, wherein, The intra-frame voting parameters of the neighboring nodes are determined based on the ratio of the first sum to the second sum.
47. The method according to claim 32, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the posterior prediction information of the neighboring nodes includes: When the prediction mode of the neighboring node is the average prediction mode, and / or the prediction mode of the related nodes of the neighboring node is the average prediction mode, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined based on the prediction value of the neighboring node and the prediction value of at least one related node of the neighboring node.
48. The method according to claim 47, wherein, The step of determining the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring nodes based on the predicted values of the neighboring nodes and the predicted values of at least one related node of the neighboring nodes includes: Based on the intra-frame prediction value, inter-frame prediction value, and average prediction value of the neighboring node, and the intra-frame prediction value, inter-frame prediction value, and average prediction value of at least one related node of the neighboring node, the intra-frame voting parameters and / or inter-frame voting parameters of the neighboring node are determined.
49. The method according to claim 48, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the intra-frame prediction values, inter-frame prediction values, and average prediction values of the neighboring nodes, as well as the intra-frame prediction values, inter-frame prediction values, and average prediction values of at least one related node of the neighboring nodes, includes: Determine the first difference between the inter-frame prediction value and the intra-frame prediction value of the neighboring node; Determine a second difference between the inter-frame prediction value of the neighboring node and the average prediction value of the neighboring nodes; Determine the third difference between the inter-frame prediction value and the intra-frame prediction value of the relevant node; Determine the fourth difference between the inter-frame predicted value of the relevant node and the average predicted value of the relevant node; The intra-frame voting parameters of the neighboring nodes are determined based on the first difference corresponding to the neighboring nodes, the second difference corresponding to the neighboring nodes, the third difference corresponding to the at least one related node, and the fourth difference corresponding to the at least one related node.
50. The method according to claim 49, wherein, The step of determining the intra-frame voting parameters of the neighboring nodes based on the first difference corresponding to the neighboring nodes, the second difference corresponding to the neighboring nodes, the third difference corresponding to the at least one related node, and the fourth difference corresponding to the at least one related node includes: The intra-frame voting parameters of the neighboring nodes are determined based on the third sum of the first difference corresponding to the neighboring nodes and the third difference corresponding to the at least one related node, and the fourth sum of the second difference corresponding to the neighboring nodes and the fourth difference corresponding to the at least one related node.
51. The method according to claim 50, wherein, The third sum is a weighted sum of the first difference and the third difference corresponding to at least one related node.
52. The method according to claim 50, wherein, The fourth sum is a weighted sum of the second difference and the fourth difference corresponding to at least one related node.
53. The method according to any one of claims 50-52, wherein, The intra-frame voting parameters of the neighboring nodes are determined based on the ratio of the third sum to the fourth sum.
54. The method according to any one of claims 39-53, wherein, The related nodes of the neighboring nodes include one or more of the following nodes: The parent node of the neighbor node; The child node of the parent node of the neighbor node; The uncle node of the neighbor node; The grandparent node of the neighboring node.
55. The method according to any one of claims 32-53, wherein, The inter-frame voting parameters of the neighboring nodes are determined based on the intra-frame voting parameters of the neighboring nodes.
56. The method according to any one of claims 29-55, wherein, Determining the predicted value of the current node based on its intra-frame weight value and inter-frame weight value includes: Determine the inter-frame prediction value and intra-frame prediction value of the current node; The inter-frame prediction value and intra-frame prediction value of the current node are weighted and predicted based on the inter-frame weight value and the intra-frame weight value to determine the prediction value of the current node.
57. The method according to claim 56, wherein, The predicted value of the current node is the predicted value of the high-frequency coefficients of the current node; the method further includes: Based on the predicted value of the high-frequency coefficient of the current node, determine the residual value of the high-frequency coefficient of the current node; The residual values of the high-frequency coefficients of the current node are encoded, and the resulting encoded bits are written into the bitstream.
58. An encoder, the encoder comprising: The first determining unit is configured to determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node. The first determining unit is configured to determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result. The first prediction unit is configured to determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
59. An encoder, the encoder comprising a first memory and a first processor, wherein: The first memory is used to store computer programs that can run on the first processor; The first processor is configured to perform the method as described in any one of claims 29 to 57 when running the computer program.
60. A decoder, the decoder comprising: The second determining unit is configured to determine the intra-frame voting result and inter-frame voting result of the current node based on the posterior prediction information of the neighboring nodes of the current node. The second determining unit is configured to determine the intra-frame weight value and inter-frame weight value of the current node based on the intra-frame voting result and the inter-frame voting result. The second prediction unit is configured to determine the predicted value of the current node based on the intra-frame weight value and the inter-frame weight value of the current node.
61. A decoder, the decoder comprising a second memory and a second processor, wherein: The second memory is used to store computer programs that can run on the second processor; The second processor is configured to perform the method as described in any one of claims 1 to 28 when running the computer program.
62. A computer-readable storage medium having a computer program stored thereon, wherein, When the computer program is executed by a processor, it implements the method as described in any one of claims 1 to 28, or the method as described in any one of claims 29 to 57.
63. A computer-readable storage medium having a bitstream stored thereon, wherein, The bitstream is generated by performing the steps of the encoding method as described in claim 57.