WO2025213421A1 - Encoding method, decoding method, bitstream, encoder, decoder, and storage medium - Google Patents
Encoding method, decoding method, bitstream, encoder, decoder, and storage mediumInfo
- Publication number
- WO2025213421A1 WO2025213421A1 PCT/CN2024/087319 CN2024087319W WO2025213421A1 WO 2025213421 A1 WO2025213421 A1 WO 2025213421A1 CN 2024087319 W CN2024087319 W CN 2024087319W WO 2025213421 A1 WO2025213421 A1 WO 2025213421A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- current block
- block
- transform
- information
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
Definitions
- the embodiments of the present application relate to the field of video coding and decoding technology, and in particular to a coding and decoding method, a bit stream, an encoder, a decoder, and a storage medium.
- G-PCC Geometry-based Point Cloud Compression
- PT Predicting Transform
- LT Lifting Transform
- RAHT Region Adaptive Hierarchical Transform
- attribute information is adaptively transformed from the bottom up based on the octree's construction hierarchy. Due to the suboptimal nature of existing technical solutions, the time complexity of transforming the reference image at both the encoder and decoder ends increases, increasing the complexity of the RAHT attribute transform encoding and decoding, and reducing attribute coding efficiency.
- the embodiments of the present application provide a coding and decoding method, a code stream, an encoder, a decoder, and a storage medium, which can reduce time complexity, improve the efficiency of attribute coding and decoding of point clouds, and thereby improve the coding and decoding performance of point clouds.
- an embodiment of the present application provides a decoding method, applied to a decoder, the method comprising:
- the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block;
- the transform coefficient of the current block is determined according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
- an embodiment of the present application provides an encoding method, applied to an encoder, the method comprising:
- the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block;
- the transform coefficient residual value of the current block is coded, and the obtained coded bits are written into the bitstream.
- an embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: a low-frequency coefficient value of a root node and a high-frequency coefficient residual value of a current block.
- an encoder comprising a first determining unit, a first predicting unit, and an encoding unit, wherein:
- a first determining unit configured to determine prediction mode identification information of a current block
- a first prediction unit is configured to determine a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain;
- the first determining unit is further configured to determine a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block;
- the encoding unit is configured to perform encoding processing on the transform coefficient residual value of the current block and write the obtained encoding bits into the bit stream.
- an encoder comprising a first memory and a first processor; wherein,
- a first memory for storing a computer program capable of running on the first processor
- the first processor is configured to execute the method according to the second aspect when running a computer program.
- an embodiment of the present application provides a decoder, comprising a second determination unit, a second prediction unit, and a decoding unit, wherein:
- a second determining unit configured to determine prediction mode identification information of a current block
- the second prediction unit is configured to, when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, predict the current block according to the parameters of the current block. Consider the block and determine the predicted value of the transform coefficient of the current block;
- a decoding unit configured to decode the bitstream and determine a transform coefficient residual value of a current block
- the second determining unit is further configured to determine the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
- an embodiment of the present application provides a decoder, the decoder comprising a second memory and a second processor; wherein,
- a second memory for storing a computer program capable of running on the second processor
- the second processor is configured to execute the method according to the first aspect when running a computer program.
- an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method as described in the first aspect or the method as described in the second aspect.
- an embodiment of the present application provides a computer program product, comprising a computer program or instructions, which, when executed by a processor, implements the method described in the first aspect, or implements the method described in the second aspect.
- the embodiments of the present application provide a coding and decoding method, a code stream, an encoder, a decoder, and a storage medium.
- the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the transform coefficient residual value of the current block is determined based on the transform coefficient prediction value of the current block; the transform coefficient residual value of the current block is encoded, and the obtained coded bits are written into the code stream.
- the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the code stream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
- the transform coefficient prediction value of the current block can be determined based on the reference block of the current block.
- the reference block can be transformed based on the slices divided by the reference point cloud, rather than based on the entire frame of the reference point cloud, which reduces the time complexity; and the transformation coefficients of the reference block can be stored in the memory module, so that when the transformation coefficients of the reference block are needed, they can be directly obtained from the memory module, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and thus improving the encoding and decoding performance of the point cloud.
- FIG1A is a schematic diagram of a three-dimensional point cloud image
- FIG1B is a partially enlarged view of a three-dimensional point cloud image
- FIG2A is a schematic diagram of six viewing angles of a point cloud image
- FIG2B is a schematic diagram of a data storage format corresponding to a point cloud image
- FIG3 is a schematic diagram of a network architecture for point cloud encoding and decoding
- FIG4 is a schematic diagram of a composition framework of a G-PCC encoder
- FIG5 is a schematic diagram of a composition framework of a G-PCC decoder
- FIG6 is a schematic diagram of a RAHT transformation structure
- FIG7 is a schematic diagram of a RAHT transformation process along the x, y, and z directions;
- FIG8A is a schematic diagram of a RAHT forward transformation process
- FIG8B is a schematic diagram of a RAHT inverse transformation process
- FIG9 is a schematic diagram of the structure of a RAHT attribute inter-frame prediction coding
- Figure 10 is a schematic diagram of the hierarchical structure of a point cloud attribute RAHT
- FIG11 is a schematic diagram of a framework of RAHT inter-frame prediction transformation applied to the encoding end
- FIG12 is a schematic diagram of a framework of RAHT inter-frame prediction transformation applied to a decoding end
- FIG13 is a schematic diagram of the logical structure of a RAHT inter-frame prediction transformation
- FIG14 is a flowchart diagram 1 of a decoding method provided in an embodiment of the present application.
- FIG15 is a schematic diagram of the logical structure of an inter-frame prediction transformation provided by an embodiment of the present application.
- FIG16 is a second flow chart of a decoding method provided in an embodiment of the present application.
- FIG17 is a third flow chart of a decoding method provided in an embodiment of the present application.
- FIG18 is a fourth flow chart of a decoding method provided in an embodiment of the present application.
- FIG19 is a schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application.
- FIG20 is a schematic diagram of a framework of inter-frame prediction transformation applied to a decoding end provided by an embodiment of the present application
- FIG21 is a schematic diagram of a framework of inter-frame prediction transformation applied to an encoding end according to an embodiment of the present application
- FIG22 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application.
- FIG23 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application.
- FIG24 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application.
- FIG25 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application.
- FIG26 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application.
- first ⁇ second ⁇ third involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that “first ⁇ second ⁇ third” can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
- Point Cloud is a three-dimensional representation of the surface of an object.
- Point Cloud (data) on the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
- a point cloud is a set of irregularly 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 point cloud's appearance and texture.
- Figure 1A shows a 3D point cloud image
- Figure 1B shows a zoomed-in view of a 3D point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.
- Two-dimensional images contain information at every pixel and are distributed regularly, so there's no need to record their location information. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so recording the spatial location of each point is necessary to fully represent the point cloud. Similar to two-dimensional images, each location in the acquisition process has corresponding attribute information, typically including color and reflectance. Color information reflects the color of an object and is typically represented in RGB; reflectance information reflects the surface texture of an object and is typically represented in reflectance. Point cloud data typically consists of geometric information (x, y, z) representing the three-dimensional spatial location, as well as attribute information such as color (r, g, b) and reflectance.
- reflectance information can be one-dimensional reflectance (r); color information can be in any color space, or it can be three-dimensional color information, such as RGB.
- R represents red (red)
- G represents green (green)
- B represents blue (blue).
- the color information may be luminance and chrominance (YCbCr, YUV) information, where Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
- a point cloud obtained using laser measurement principles may include both 3D coordinate information and reflectivity information for each point.
- a point cloud obtained using photogrammetry principles may include both 3D coordinate information and 3D color information for each point.
- a point cloud obtained using a combination of laser measurement and photogrammetry principles may include both 3D coordinate information, reflectivity information, and 3D color information for each point.
- Figures 2A and 2B show a point cloud image and its corresponding data storage format.
- Figure 2A provides six viewing angles of the point cloud image
- Figure 2B consists of a file header and data.
- the header includes the data format, data representation type, the total number of points in the point cloud, and the content represented by the point cloud.
- the point cloud is in ".ply" format, represented by ASCII code, with a total of 207,242 points.
- Each point has 3D coordinate information (x, y, z) and 3D color information (r, g, b).
- Point clouds can be divided into the following categories according to the acquisition method:
- Static point cloud the object is stationary and the device that acquires the point cloud is also stationary;
- Dynamic point cloud The object is moving, but the device that obtains the point cloud is stationary;
- Dynamic point cloud acquisition The device used to acquire the point cloud is in motion.
- point clouds can be divided into two categories according to their usage:
- Category 1 Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
- Category 2 Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
- Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Moreover, since point clouds are obtained by directly sampling real objects, they can provide a strong sense of reality while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
- the main ways to collect point clouds are: computer generation, 3D laser scanning, 3D photogrammetry, etc.
- Computers can generate virtual three-dimensional 3D laser scanning can generate point clouds of static, real-world 3D objects or scenes, generating millions of point clouds per second.
- 3D photogrammetry can generate point clouds of dynamic, real-world 3D objects or scenes, generating tens of millions of point clouds per second.
- the point cloud is a collection of massive points, storing the point cloud not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of the point cloud at the network layer without compression. Therefore, the point cloud needs to be compressed.
- point cloud coding frameworks that can compress point clouds can include the Geometry-based Point Cloud Compression (G-PCC) codec framework or the Video-based Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by AVS.
- G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, and can be based on the Point Cloud Compression Test Platform (Test Model Compression 13, TMC13).
- the V-PCC codec framework can be used to compress the second type of dynamic point clouds, and can be based on the Point Cloud Compression Test Platform (Test Model Compression 2, TMC2). Therefore, the G-PCC codec framework is also called the Point Cloud Codec TMC13, and the V-PCC codec framework is also called the Point Cloud Codec TMC2.
- FIG3 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application.
- the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01.
- the electronic device can be various types of devices with point cloud encoding and decoding functions.
- the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application.
- the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
- the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
- a point cloud encoder ie, encoder
- a point cloud decoder ie, decoder
- the input point cloud is first divided into multiple slices through slice partitioning.
- the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
- FIG 4 is a schematic diagram of the composition framework of a G-PCC encoder.
- the G-PCC encoder is applied to a point cloud encoder.
- the input point cloud is sliced, and then the slices are independently encoded.
- the geometric information of the point cloud and the attribute information corresponding to the points in the point cloud are encoded separately.
- the G-PCC encoder first encodes the geometric information.
- the encoder performs coordinate transformation on the geometric information so that the entire point cloud is contained in a bounding box; then quantization is performed. This quantization step mainly serves a scaling purpose. Due to quantization rounding, the geometric information of some points is the same. The decision to remove duplicate points is made based on parameters.
- This process of quantization and removing duplicate points is also called voxelization.
- the bounding box is partitioned based on an octree.
- the encoding of geometric information is divided into two frameworks: octree-based and triangle facet-based.
- the bounding box is divided into eight equal parts, and the placeholder bits of each sub-cube are recorded (where 1 indicates a non-empty sub-cube and 0 indicates an empty sub-cube).
- the non-empty sub-cubes are further divided into eight equal parts, usually stopping when the resulting leaf node is a 1 ⁇ 1 ⁇ 1 unit cube.
- the placeholder bits are intra-predicted using the spatial correlation between the node and its surrounding nodes.
- CABAC encoding based on the context model is performed to generate a binary geometry bit stream, also known as the geometry code stream.
- octree partitioning is also performed first.
- the difference is that the octree-based geometric information coding method does not need to divide the point cloud into unit cubes with a side length of 1 ⁇ 1 ⁇ 1. Instead, the partitioning stops when the block side length is W.
- the surface and the twelve edges of the block are obtained.
- the vertex coordinates of each block are encoded in sequence to generate a binary geometric bit stream, namely the geometric code stream.
- the G-PCC encoder After completing the geometric information encoding, the G-PCC encoder reconstructs the geometric information and uses the reconstructed geometric information to encode the attribute information of the point cloud.
- the attribute encoding of the point cloud mainly encodes the color information of the point in the point cloud.
- the encoder can perform color space conversion on the color information of the point. For example, when the color information of the point in the input point cloud is represented by the RGB color space, the encoder can convert the color information from the RGB color space to the YUV color space. Then, the point cloud is re-colored using the reconstructed geometric information. Color is encoded so that the unencoded attribute information corresponds to the reconstructed geometric information.
- color information encoding there are two main transformation methods.
- One method is to rely on the distance-based lifting transform based on the level of detail (LOD) division, and the other is to directly perform the region adaptive hierarchical transform (RAHT). Both methods transform the color information from the spatial domain to the frequency domain to obtain high-frequency coefficients and low-frequency coefficients. Finally, the coefficients are quantized and arithmetic encoded on the quantized coefficients to generate a binary attribute bit stream, namely the attribute code stream.
- LOD level of detail
- RAHT region adaptive hierarchical transform
- Figure 5 is a schematic diagram of the composition framework of a G-PCC decoder.
- the G-PCC decoder is applied to a point cloud decoder.
- the geometric bit stream and attribute bit stream in the binary code stream are decoded independently.
- the geometric information of the point cloud is obtained through arithmetic decoding-synthetic octree-surface fitting-reconstructed geometry-inverse coordinate transformation;
- the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD-based inverse lifting or RAHT-based inverse transformation-inverse color conversion.
- the original slice can be restored based on the geometric information and attribute information; then, after merging the slices, the three-dimensional image model of the input point cloud can be restored.
- G-PCC attribute codec includes three attribute encoding methods: Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT).
- PT Predicting Transform
- LT Lifting Transform
- RAHT Region Adaptive Hierarchical Transform
- the first two predictively encode the point cloud based on the LOD generation order
- RAHT adaptively transforms attribute information from bottom to top based on the octree construction hierarchy.
- the Regional Adaptive Hierarchical Transform is a Haar wavelet transform that transforms point cloud attribute information from the spatial domain to the frequency domain, further reducing the correlation between point cloud attributes. Its main concept is to transform the nodes in each layer in the X, Y, and Z dimensions in a bottom-up manner according to the octree structure (as shown in Figure 7), and iterate until the root node of the octree.
- the basic idea is to perform a wavelet transform based on the hierarchical structure of the octree, associate attribute information with the octree nodes, and recursively transform the attributes of occupied nodes under the same parent node in a bottom-up manner, transforming the nodes in each layer in the X, Y, and Z dimensions until the root node of the octree is reached.
- the low-pass/low-frequency (DC) coefficients obtained after the transformation of the nodes in the same layer are passed to the nodes in the previous layer for further transformation, while all high-pass/high-frequency (AC) coefficients can be encoded using an arithmetic coder.
- the DC coefficients (direct current components) of the transformed nodes at the same layer are passed to the previous layer for further transformation, while the AC coefficients (alternating current components) of each layer are quantized and encoded.
- the main transformation processes are described below.
- Figure 8A illustrates a RAHT forward transform process
- Figure 8B illustrates an inverse RAHT transform process.
- g′ L,2x,y,z and g′ L,2x+1,y,z are two attribute DC coefficients of neighboring nodes in the L layer.
- the information in the L-1 layer consists of the AC coefficients f′ L-1,x,y,z and the DC coefficients g′ L-1,x,y,z .
- f′ L-1,x,y,z is no longer transformed and is directly quantized.
- g′ L-1,x,y,z continues to search for neighboring nodes for transformation.
- the transform is passed directly to the L-2 layer. This means that the RAHT transform is only effective for nodes with neighboring nodes; nodes without neighboring nodes are directly passed to the previous layer.
- the weights (the number of non-empty child nodes in the node) corresponding to g′ L,2x,y,z and g′ L,2x+1,y ,z are w′ L,2x,y,z and w′ L,2x+1,y,z (abbreviated as w′ 0 and w′ 1 ) respectively, and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z .
- the general transformation formula is:
- T w0,w1 is the transformation matrix:
- the transformation matrix will be updated as the weights corresponding to each point change adaptively.
- the above process will be iterated and updated continuously according to the partitioning structure of the octree until the root node of the octree is reached.
- the process of G-PCC attribute inter-frame prediction coding is similar to the process of intra-frame prediction coding, which is described as follows:
- a RAHT attribute transform coding structure is constructed based on geometric information. This involves performing transforms at the voxel level until the root node is reached, completing the hierarchical transform coding of the entire attribute. This approach results in both intra-frame and inter-frame coding structures.
- the inter-frame coding structure for the RAHT attribute can be seen in Figure 9.
- the geometric information of the current node to be coded is first used to obtain the co-located predicted node of the node to be coded in the reference image, and then the geometric information and attribute information of the reference node are used to obtain the predicted attribute of the current node to be coded.
- the attribute prediction value of the current node to be encoded is obtained according to the following two different methods:
- the inter-frame prediction node of the current node is valid: that is, if the same-position node exists, the attribute of the predicted node is directly used as the attribute prediction value of the current node to be encoded;
- the inter-frame prediction node of the current node is invalid: that is, the co-located node does not exist, and the attribute prediction value of the adjacent node in the frame is used as the node to be encoded.
- the predicted value of the attribute of the code node is used as the node to be encoded.
- the attribute prediction value is used to predict the attribute of the current node to be encoded, thereby completing the predictive coding of the entire attribute.
- the hierarchical structure of the RAHT inter-frame transform may include:
- a point cloud can be a frame (or "an image”), and a frame (or “an image”) can be divided into multiple slices.
- a slice is a unit of RAHT transformation/inverse transformation, and a slice performs one RAHT transformation/inverse transformation.
- a RAHT transform/inverse transform can include many transform layers.
- Each transform layer may include multiple RAHT transform blocks. Both intra-frame prediction and inter-frame prediction are for transform blocks.
- Figure 10 illustrates a hierarchical structure of a point cloud attribute RAHT.
- a point cloud can be divided into multiple slices, such as slice 1 and slice 2.
- slice 1 can undergo a RAHT transform/inverse transform, for example, to obtain RAHT transform layer 1.
- RAHT transform layer 1 can include multiple RAHT transform blocks, such as RAHT transform block 1 and RAHT transform block 2.
- Figure 11 is a schematic diagram of a framework for RAHT inter-frame prediction transform applied to the encoding end.
- the geometric information of the point cloud to be encoded is subjected to a point cloud geometric octree decomposition, and the attribute information of the point cloud to be encoded is subjected to a RAHT transform to determine the transform coefficients of the point cloud to be encoded.
- the transform coefficient prediction value of the point cloud to be encoded is determined based on RAHT inter-frame prediction or RAHT intra-frame prediction.
- the transform coefficient residual value is obtained by subtracting the transform coefficient of the point cloud to be encoded from the transform coefficient prediction value.
- the transform coefficient residual value is then quantized to obtain the quantized transform coefficient residual value.
- the quantized transform coefficient residual value can be encoded and written into the attribute code stream.
- the quantized transform coefficient residual value can be dequantized to obtain the reconstructed transform coefficient residual value.
- the reconstructed transform coefficient residual value is then added to the transform coefficient prediction value to obtain the reconstructed transform coefficient.
- the reconstructed transform coefficient is then subjected to a RAHT inverse transform to obtain the reconstructed point cloud attributes.
- the encoding end also involves octree decomposition of the geometric information of the reference point cloud and RAHT transformation of the attribute information of the reference point cloud.
- Figure 12 is a schematic diagram of a framework for RAHT inter-frame prediction transformation applied to the decoding end.
- the geometric information of the point cloud to be decoded is subjected to a point cloud geometric octree decomposition, and the attribute code stream is parsed to obtain the quantized transform coefficient residual value.
- the quantized transform coefficient residual value is then dequantized to obtain the transform coefficient residual value of the point cloud to be decoded.
- the transform coefficient prediction value of the point cloud to be decoded is determined based on RAHT inter-frame prediction or RAHT intra-frame prediction.
- the transform coefficient of the point cloud to be decoded is then added to the transform coefficient prediction value.
- the transform coefficient is subjected to a RAHT inverse transform to reconstruct the point cloud attributes.
- the decoding end also involves the octree decomposition of the geometric information of the reference point cloud and the RAHT transform of the attribute information of the reference point cloud.
- the related technology needs to re-perform a RAHT transform operation on the reference point cloud at the encoding and decoding ends, which greatly increases the time complexity and brings high algorithmic complexity.
- the reference frame when decoding the current point cloud, when the reference point cloud is used as a reference frame, the reference frame is regarded as a slice and only performs a single RAHT transform (i.e., only one RAHT transform layer) as a reference. The information of different RAHT transform layers of the reference image is not retained, which increases the complexity of RAHT attribute transform encoding and decoding and reduces the attribute coding efficiency.
- an embodiment of the present application provides an encoding method, which determines the prediction mode identification information of the current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; based on the transform coefficient prediction value of the current block, the transform coefficient residual value of the current block is determined; the transform coefficient residual value of the current block is encoded, and the obtained encoded bits are written into the code stream.
- An embodiment of the present application also provides a decoding method, which determines the prediction mode identification information of the current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the code stream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
- the transform coefficient prediction value of the current block can be determined based on the reference block of the current block.
- the reference block can be transformed based on the slices divided by the reference point cloud, rather than the entire frame of the reference point cloud, which reduces the time complexity; and the transform coefficients of the reference block can be stored in the memory module, so that when the transform coefficients of the reference block are needed, they can be directly obtained from the memory module, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and thus improving the encoding and decoding performance of the point cloud.
- FIG14 is a flowchart diagram of a decoding method provided by the embodiment of the present application. As shown in FIG14 , the method may include:
- the decoding method of the embodiment of the present application is applied to the decoder, and the decoding method specifically refers to a transform domain prediction method of point cloud attributes.
- the transform domain prediction of the current block may include inter-frame prediction in the transform domain and Intra-frame prediction in the transform domain: When the current block is subjected to inter-frame prediction in the transform domain, the temporal complexity can be reduced.
- the current block may be a transformed block to be decoded in the current point cloud.
- mode indication information in the form of some syntax elements can be written into the bitstream.
- the prediction mode identification information of the current block can be determined.
- the first syntax element can be used to indicate the prediction mode identification information of the current block.
- the value of the first syntax element is determined; based on the value of the first syntax element, the prediction mode identification information of the current block can be determined.
- the value of the first syntax element is a first value, it is determined that the current block performs inter-frame prediction in the transform domain; if the value of the first syntax element is a second value, it is determined that the current block performs intra-frame prediction in the transform domain.
- the first value and the second value are different.
- the first value can be 1 and the second value can be 0; or the first value can be true and the second value can be false.
- the method may further include: if there is a reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.
- the prediction mode identification information of the current block can be determined by the first syntax element in the code stream, or it can be determined based on whether the current block finds an inter-frame reference block in the reference point cloud as a judgment condition for the prediction mode identification information, or it can be other judgment conditions, which are not specifically limited here.
- the prediction mode identification information is determined based on whether the current block finds an inter-frame reference block in the reference point cloud, if the current block can find a reference block that meets the preset inter-frame condition in the reference point cloud, then it can be determined that the current block performs inter-frame prediction in the transform domain; if the current block cannot find a reference block that meets the preset inter-frame condition in the reference point cloud, then it can be determined that the current block performs intra-frame prediction in the transform domain.
- the reference point cloud is the reference frame of the current point cloud where the current block is located.
- a reference block of the current block is first determined, and then a transform coefficient prediction value of the current block is determined based on the reference block of the current block.
- the method may include: determining a reference block of the current block based on the slice identification information in the reference point cloud.
- the reference point cloud is divided into slices to obtain at least one slice of the reference point cloud, and the at least one slice includes the reference slice where the reference block is located.
- the slice ID (sliceID) here can be used to indicate a reference slice.
- the reference block of the current block can be determined from the reference slice indicated by the slice ID information.
- the transformation operation is performed based on the slice divided by the reference point cloud, rather than the transformation operation based on the entire frame where the reference point cloud is located.
- the reference point cloud can be divided into at least two slices, such as slice1-ref1 and slice2-ref2.
- slice1-ref1 a RAHT transformation layer ref-1 can be obtained, and the RAHT transformation layer ref-1 can include RAHT transformation block ref1-1, RAHT transformation block ref1-2, etc.
- a RAHT transformation layer ref-2 can be obtained, and the RAHT transformation layer ref-2 can include RAHT transformation block ref2-1, RAHT transformation block ref2-2, etc.
- the time complexity can be reduced; and the slice-level transformation coefficients can be retained. Since the RAHT transform of the current point cloud is based on the inter-frame prediction at the slice level, the accuracy of the inter-frame prediction can be improved by using the slice-level transformation coefficients as a reference; at the same time, certain slices of the reference point cloud can be adaptively selected for inter-frame prediction, and certain slices are not used for inter-frame prediction, thereby improving the flexibility of the prediction and saving memory.
- the method may further include: if the candidate reference block existing in the reference point cloud and the current block meet a preset inter-frame condition, determining the candidate reference block as the reference block of the current block.
- an inter-frame reference block can be found in the reference point cloud for the current block, that is, a candidate reference block that satisfies a preset inter-frame condition with the current block, then the current block is subjected to transform-domain inter-frame prediction, and the found candidate reference block is used as the reference block for the current block. Whether the found candidate reference block satisfies the preset inter-frame condition with the current block can be determined through the following possible implementations.
- the absolute coordinate information of the candidate reference block may be determined based on the coordinate information of the candidate reference block and the slice identification information (sliceID) where the candidate reference block is located.
- the preset inter-frame conditions can be the several possible implementation methods mentioned above, or other conditions that can be used to find inter-frame reference blocks. No limitation is made here.
- the reference block found in the reference point cloud may specifically include: the coordinate information of the reference block is the same as the coordinate information of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the coordinate information of the parent transformation block of the reference block is the same as the coordinate information of the parent transformation block of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the absolute coordinate information of the parent transformation block of the reference block is the same as the absolute coordinate information of the parent transformation block of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the
- the coordinate information of the reference block can be determined, and then jointly determined based on the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin; for the absolute coordinate information of the parent transformation block of the reference block, the coordinate information of the parent transformation block of the reference block can be determined, and then jointly determined based on the coordinate information of the parent transformation block of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.
- determining the transformation coefficient prediction value of the current block according to the reference block of the current block may specifically include: determining the transformation coefficient prediction value of the current block according to the transformation coefficient of the reference block.
- the method may include:
- S1601 Determine attribute information of a reference slice based on the reference slice indicated by the slice identification information.
- S1602 Perform region-adaptive hierarchical transformation on attribute information of a reference slice to determine transformation coefficients of at least one transformation layer.
- S1603 Determine a transform coefficient of a reference block from transform coefficients of at least one transform layer.
- S1604 Determine a predicted value of the transform coefficient of the current block according to the transform coefficient of the reference block.
- the RAHT transform when determining the transform coefficients of the reference block, can be performed on the slices (i.e., reference slices) divided based on the reference point cloud, rather than on the entire frame of the reference point cloud. In this way, the transform coefficients at the slice level can be retained. Since the RAHT transform of the current point cloud is based on the inter-frame prediction performed at the slice level, the transform coefficient prediction value of the current block can be obtained more accurately by using the transform coefficients at the slice level as a reference, thereby improving the accuracy of the inter-frame prediction. At the same time, certain slices of the reference point cloud can be adaptively selected for inter-frame prediction, while certain slices are not used for inter-frame prediction, thereby improving the flexibility of the prediction and saving memory.
- the method may include: decoding the code stream to determine the transform coefficient residual value of the reference block; and determining the transform coefficient of the reference block based on the transform coefficient prediction value of the reference block and the transform coefficient residual value of the reference block.
- the code stream can be decoded to determine the quantization coefficient residual values of the reference block; the quantization coefficient residual values of the reference block are inversely quantized to determine the transform coefficient residual values of the reference block; and then the transform coefficients of the reference block are determined based on the transform coefficient prediction values of the reference block and the transform coefficient residual values of the reference block.
- the method may include: decoding a code stream to determine the transform coefficients of the reference block.
- the reference block when the transform coefficients of the reference block do not need to be predicted, the reference block can be determined by decoding the code stream.
- the quantization coefficients of the reference block are inversely quantized to determine the transformation coefficients of the reference block.
- the method may further include: determining storage information of the reference block; and storing the storage information of the reference block in the memory module.
- the storage information of the reference block may include at least one of the following: the transform coefficients of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, and the transform layer information where the reference block is located.
- the method may include:
- S1702 Determine a predicted value of the transform coefficient of the current block according to the transform coefficient of the reference block.
- the storage information corresponding to the reference block can be pre-stored in the memory module.
- the memory module can retain information on multiple RAHT transformation layers of the reference point cloud. In this way, after determining the reference block of the current block, the transformation coefficients of the reference block can be quickly obtained from the memory module according to the sliceID where the reference block is located, and then the transformation coefficients of the reference block are used as the transformation coefficient prediction values of the current block, thereby further reducing the time complexity and making the inter-frame prediction more accurate.
- the storage information corresponding to the reference block in the memory module may include at least one of the following: the transformation coefficient of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, the transformation layer information where the reference block is located, and the absolute coordinate information of the reference block.
- the absolute coordinate information of the reference block can be determined based on the coordinate information of the reference block and the slice ID information where the reference block is located.
- the method may include: determining the coordinate information of the reference block; and determining the absolute coordinate information of the reference block based on the coordinate information of the reference block and the coordinate offset information of the slice ID where the reference block is located relative to the origin.
- the absolute coordinate information of the reference block can be obtained by adding the coordinate information of the reference block to the coordinate offset information of the slice ID where the reference block is located relative to the origin.
- the coordinate information may include geometric position (x, y, z) information and Morton code information.
- the coordinate information of the reference block refers to the position information of the reference block when the RAHT transform is performed
- the absolute coordinate information of the reference block refers to the absolute position information of the reference block in the reference frame.
- the transform coefficient prediction value of the current block can be determined based on the transform coefficient of the reference block.
- the method may further include:
- the current block is determined to be intra-predicted in the transform domain, and the resulting intra-prediction value can be used as the transform coefficient prediction value of the current block.
- the intra-prediction value can be obtained by weighted calculation of the transform coefficient prediction values of the neighboring blocks of the current block, the parent transform block of the current block, and the neighboring blocks of the parent transform block.
- transform coefficients may include low-frequency coefficients and high-frequency coefficients.
- the low-frequency coefficients may also be referred to as direct current coefficients or DC coefficients
- the high-frequency coefficients may also be referred to as alternating current coefficients or AC coefficients.
- the transform coefficient prediction values herein primarily refer to the high-frequency coefficient prediction values of the current block.
- S1403 Decode the code stream to determine the transform coefficient residual value of the current block.
- decoding the code stream and determining the transform coefficient residual value of the current block may include: decoding the code stream and determining the quantization coefficient residual value of the current block; and dequantizing the quantization coefficient residual value to determine the transform coefficient residual value of the current block.
- the transform coefficient of the current block is obtained by performing an addition operation on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
- the method further includes: determining the storage information of the current block; and saving the storage information of the current block into the memory module.
- the storage information of the current block may include at least one of the following: the transformation coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, the current layer information where the current block is located, and the absolute coordinate information of the current block.
- decoding a bitstream and determining a transform coefficient residual value of a current block may include: decoding the bitstream and determining a high-frequency coefficient residual value of the current block. Accordingly, determining the transform coefficient of the current block based on a transform coefficient prediction value of the current block and a transform coefficient residual value of the current block may include: determining the high-frequency coefficient value of the current block based on the high-frequency coefficient prediction value of the current block and the high-frequency coefficient residual value of the current block. Specifically, the high-frequency coefficient value of the current block may be determined by adding the high-frequency coefficient prediction value of the current block and the high-frequency coefficient residual value of the current block.
- the method may further include: determining geometric information of the current slice; performing octree decomposition on the geometric information of the current slice to determine at least one transformation layer; wherein the at least one transformation layer includes the current layer where the current block is located.
- the slice identification information (sliceID) of the current block can be used to indicate the current slice.
- the current slice is determined by the slice division of the current point cloud.
- the geometric information of the current slice is decomposed into an octree and transformed based on the hierarchical structure of the octree. Specifically, the RAHT inverse transformation is performed from top to bottom on the root node of the octree, and the RAHT inverse transformation is performed on the nodes in each layer from the three dimensions of x, y, and z until the inverse transformation reaches the leaf node of the octree.
- the method further includes: when the current layer is the L-1th layer in at least one transformation layer, performing a region-adaptive hierarchical inverse transformation on the transformation coefficients of the current block in the L-1th layer to determine the reconstruction attribute information of the nodes in the Lth layer; wherein L is a positive integer.
- the method further includes decoding the bitstream to determine the low-frequency coefficient value of the root node.
- the low-frequency coefficient value of the root node and the residual value of the high-frequency coefficient of each layer are written into the bitstream so that the decoding end can perform region-adaptive layered inverse transform.
- a regional adaptive hierarchical inverse transform is performed on the transform coefficients of the current block in the L-1 layer to determine the reconstruction attribute information of the nodes in the L layer.
- it may include: when the current layer is the first transform layer, performing a regional adaptive hierarchical inverse transform based on the low-frequency coefficient value of the root node and the high-frequency coefficient value of the current block in the first layer to determine the reconstruction attribute information of the nodes in the second transform layer; when the current layer is not the first transform layer, determining the DC coefficient value of the current block in the current layer, performing a regional adaptive hierarchical inverse transform based on the DC coefficient value of the current block in the current layer and the AC coefficient value of the current block in the current layer to determine the reconstruction attribute information of the nodes in the next layer.
- the attribute information of the current slice can be subjected to RAHT inverse transformation in a top-down manner along the octree decomposition, and the nodes in each layer are subjected to RAHT inverse transformation from the three dimensions of x, y, and z respectively, until the leaf nodes of the octree are transformed.
- the DC coefficient and AC coefficient of the node in the same layer (L-1 layer) are subjected to RAHT inverse transformation to obtain the DC coefficient of the next layer (L layer), that is, the attribute information of each layer is obtained.
- the transformation matrix will be updated as the weights corresponding to each point change adaptively.
- the above process will be continuously iterated and updated according to the division structure of the octree until the leaf nodes of the octree.
- the reconstruction attribute information of the current slice can be determined.
- the embodiment of the present application provides a decoding method, specifically a decoding scheme for fast inter-frame attribute transformation of point clouds.
- the reference block can be transformed based on the slices divided by the reference point cloud, rather than based on the entire frame of the reference point cloud, which reduces the time complexity; and the transform coefficient of the reference block can be stored in the memory module, so that when the transform coefficient of the reference block is needed, it can be directly obtained from the memory module, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and thus improving the encoding and decoding performance of the point cloud.
- FIG19 is a flow chart of an encoding method provided by the embodiment of the present application. As shown in FIG19 , the method may include:
- the encoding method in the embodiments of the present application is applied to an encoder and specifically refers to a transform domain prediction method for point cloud attributes.
- the transform domain prediction of the current block may include inter-frame prediction and intra-frame prediction in the transform domain.
- time complexity can be reduced.
- the current block may be a transformed block to be encoded in the current point cloud.
- mode indication information in the form of some syntax elements can be written into the bitstream.
- the prediction mode identification information for the current block can be determined.
- the first syntax element can be used to indicate the prediction mode identification information for the current block.
- the value of the first syntax element is determined; the value of the first syntax element is encoded, and the resulting encoded bits are written into the bitstream.
- the value of the first syntax element is determined to be a first value; if the current block performs intra-frame prediction in the transform domain, the value of the first syntax element is determined to be a second value.
- the first value and the second value are different.
- the first value can be 1 and the second value can be 0; or the first value can be true and the second value can be false.
- the method may further include: if there is a reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.
- the prediction mode identification information of the current block can be determined by the first syntax element in the code stream, or it can be determined based on whether the current block finds an inter-frame reference block in the reference point cloud as a judgment condition for the prediction mode identification information, or it can be other judgment conditions, which are not specifically limited here.
- the prediction mode identification information is determined based on whether the current block finds an inter-frame reference block in the reference point cloud, if the current block can find a reference block that meets the preset inter-frame condition in the reference point cloud, then it can be determined that the current block performs inter-frame prediction in the transform domain; if the current block cannot find a reference block that meets the preset inter-frame condition in the reference point cloud, then it can be determined that the current block performs intra-frame prediction in the transform domain.
- the reference point cloud is the reference frame of the current point cloud where the current block is located.
- a reference block of the current block is first determined, and then a transform coefficient prediction value of the current block is determined based on the reference block of the current block.
- the method may include: determining a reference block of the current block based on the slice identification information in the reference point cloud.
- the reference point cloud is divided into slices to obtain at least one slice of the reference point cloud, and the at least one slice includes the reference slice where the reference block is located.
- the slice ID (sliceID) here can be used to indicate a reference slice.
- the reference block of the current block can be determined from the reference slice indicated by the slice ID information.
- the transformation operation is performed based on the slice divided by the reference point cloud, rather than the transformation operation based on the entire frame where the reference point cloud is located.
- the reference point cloud can be divided into at least two slices, such as slice1-ref1 and slice2-ref2.
- slice1-ref1 a RAHT transformation layer ref-1 can be obtained, and the RAHT transformation layer ref-1 can include RAHT transformation block ref1-1, RAHT transformation block ref1-2, etc.
- a RAHT transformation layer ref-2 can be obtained, and the RAHT transformation layer ref-2 can include RAHT transformation block ref2-1, RAHT transformation block ref2-2, etc.
- the time complexity can be reduced; and the slice-level transformation coefficients can be retained. Since the RAHT transform of the current point cloud is based on the inter-frame prediction at the slice level, the accuracy of the inter-frame prediction can be improved by using the slice-level transformation coefficients as a reference; at the same time, certain slices of the reference point cloud can be adaptively selected for inter-frame prediction, and certain slices are not used for inter-frame prediction, thereby improving the flexibility of the prediction and saving memory.
- the method may further include: if the candidate reference block existing in the reference point cloud and the current block meet a preset inter-frame condition, determining the candidate reference block as the reference block of the current block.
- an inter-frame reference block can be found in the reference point cloud for the current block, that is, a candidate reference block that satisfies a preset inter-frame condition with the current block, then the current block is subjected to transform-domain inter-frame prediction, and the found candidate reference block is used as the reference block for the current block. Whether the found candidate reference block satisfies the preset inter-frame condition with the current block can be determined through the following possible implementations.
- the candidate reference block in the reference point cloud and the current block meet the preset inter-frame condition, which may include: the coordinate information of the candidate reference block is the same as the coordinate information of the current block and the slice identification information of the candidate reference block is the same as the slice identification information of the current block.
- the identification information is the same and the transform layer information of the candidate reference block is the same as the current layer information of the current block.
- the candidate reference block existing in the reference point cloud and the current block meet the preset inter-frame conditions, which may include: the coordinate information of the parent transform block of the candidate reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information where the candidate reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.
- the coordinate information may include geometric position (x, y, z) information and Morton code information, etc.
- the absolute coordinate information of the candidate reference block can be determined based on the coordinate information of the candidate reference block and the slice identification information where the candidate reference block is located, and the absolute coordinate information of the parent transform block of the candidate reference block can be determined based on the coordinate information of the parent transform block of the candidate reference block and the slice identification information where the candidate reference block is located.
- the candidate reference block in the reference point cloud and the current block meet a preset inter-frame condition, which may include: the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transformation layer information of the candidate reference block is the same as the current layer information of the current block.
- the candidate reference block in the reference point cloud and the current block meet a preset inter-frame condition, which may include: the absolute coordinate information of the parent transform block of the candidate reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.
- the absolute coordinate information of the candidate reference block may be determined based on the coordinate information of the candidate reference block and the slice identification information (sliceID) where the candidate reference block is located.
- the method may include: determining the coordinate information of the candidate reference block; and determining the absolute coordinate information of the candidate reference block based on the coordinate information of the candidate reference block and coordinate offset information of the slice identification information where the candidate reference block is located relative to the origin.
- the absolute coordinate information of the candidate reference block may be obtained by adding the coordinate information of the candidate reference block to the coordinate offset information of the slice identification information where the candidate reference block is located relative to the origin.
- the preset inter-frame conditions can be the several possible implementation methods mentioned above, or other conditions that can be used to find inter-frame reference blocks. No limitation is made here.
- the reference block found in the reference point cloud may specifically include: the coordinate information of the reference block is the same as the coordinate information of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the coordinate information of the parent transformation block of the reference block is the same as the coordinate information of the parent transformation block of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the absolute coordinate information of the parent transformation block of the reference block is the same as the absolute coordinate information of the parent transformation block of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the
- the coordinate information of the reference block can be determined, and then jointly determined based on the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin; for the absolute coordinate information of the parent transformation block of the reference block, the coordinate information of the parent transformation block of the reference block can be determined, and then jointly determined based on the coordinate information of the parent transformation block of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.
- determining the transformation coefficient prediction value of the current block according to the reference block of the current block may specifically include: determining the transformation coefficient prediction value of the current block according to the transformation coefficient of the reference block.
- the method may include: determining attribute information of the reference slice based on the reference slice indicated by the slice identification information; performing a region-adaptive hierarchical transform on the attribute information of the reference slice to determine the transform coefficients of at least one transform layer; determining the transform coefficients of the reference block from the transform coefficients of at least one transform layer; and determining a predicted value of the transform coefficient of the current block based on the transform coefficients of the reference block.
- the RAHT transform when determining the transform coefficients of the reference block, can be performed on the slices (i.e., reference slices) divided based on the reference point cloud, rather than on the entire frame of the reference point cloud. In this way, the transform coefficients at the slice level can be retained. Since the RAHT transform of the current point cloud is based on the inter-frame prediction performed at the slice level, the transform coefficient prediction value of the current block can be obtained more accurately by using the transform coefficients at the slice level as a reference, thereby improving the accuracy of the inter-frame prediction. At the same time, certain slices of the reference point cloud can be adaptively selected for inter-frame prediction, while certain slices are not used for inter-frame prediction, thereby improving the flexibility of the prediction and saving memory.
- the transform coefficients of the reference block can be determined by performing a RAHT transform on the slices (i.e., reference slices) divided by the reference point cloud. Specifically, by performing a RAHT transform on the attribute information of the reference slice, the transform coefficients of at least one transform layer can be determined. Each transform layer can include at least one transform block, from which the transform coefficients of the reference block are obtained; and then the transform coefficients of the reference block are used as the transform coefficient prediction values of the current block.
- the method may include: determining the transform coefficient residual value of the reference block; quantizing the transform coefficient residual value of the reference block to determine the quantized coefficient residual value of the reference block; inverse quantizing the quantized coefficient residual value of the reference block to determine the reconstructed transform coefficient residual value of the reference block; and performing a transform coefficient prediction on the reference block and the reconstructed transform coefficient residual value of the reference block according to the transform coefficient prediction value of the reference block and the reconstructed transform coefficient residual value of the reference block.
- the coefficient residual value is used to determine the transformation coefficient of the reference block.
- the transform coefficient residual values of the reference block can be determined, and then the transform coefficient residual values of the reference block are quantized and dequantized to determine the reconstructed transform coefficient residual values of the reference block; based on the transform coefficient prediction values of the reference block and the reconstructed transform coefficient residual values of the reference block, the transform coefficients of the reference block can be determined.
- the method may further include: encoding the quantized coefficient residual value of the reference block and writing the obtained coded bits into the bitstream.
- the transform coefficients of the reference block when the transform coefficients of the reference block do not need to be predicted, the transform coefficients of the reference block can be directly written into the bitstream. Specifically, the transform coefficients of the reference block can be quantized to determine the quantized coefficients of the reference block; then, the quantized coefficients of the reference block can be encoded, and the resulting coded bits can be written into the bitstream.
- the method may further include: determining storage information of the reference block; and storing the storage information of the reference block in the memory module.
- the storage information of the reference block may include at least one of the following: the transform coefficients of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, and the transform layer information where the reference block is located.
- the method may include: determining the transform coefficient of the reference block based on the corresponding storage information of the reference block in the memory module; and determining the predicted value of the transform coefficient of the current block based on the transform coefficient of the reference block.
- the storage information corresponding to the reference block can be pre-stored in the memory module.
- the memory module can retain information on multiple RAHT transformation layers of the reference point cloud. In this way, after determining the reference block of the current block, the transformation coefficients of the reference block can be quickly obtained from the memory module according to the sliceID where the reference block is located, and then the transformation coefficients of the reference block are used as the transformation coefficient prediction values of the current block, thereby further reducing the time complexity and making the inter-frame prediction more accurate.
- the storage information corresponding to the reference block in the memory module may include at least one of the following: the transformation coefficient of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, the transformation layer information where the reference block is located, and the absolute coordinate information of the reference block.
- the absolute coordinate information of the reference block can be determined based on the coordinate information of the reference block and the slice ID information where the reference block is located.
- the method may include: determining the coordinate information of the reference block; and determining the absolute coordinate information of the reference block based on the coordinate information of the reference block and the coordinate offset information of the slice ID where the reference block is located relative to the origin.
- the absolute coordinate information of the reference block can be obtained by adding the coordinate information of the reference block to the coordinate offset information of the slice ID where the reference block is located relative to the origin.
- the coordinate information may include geometric position (x, y, z) information and Morton code information.
- the coordinate information of the reference block refers to the position information of the reference block when the RAHT transform is performed
- the absolute coordinate information of the reference block refers to the absolute position information of the reference block in the reference frame.
- the transform coefficient prediction value of the current block can be determined based on the transform coefficient of the reference block.
- the method may further include: determining the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block; performing a weighted operation on the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.
- the current block is determined to be intra-predicted in the transform domain, and the resulting intra-prediction value can be used as the transform coefficient prediction value of the current block.
- the intra-prediction value can be obtained by weighted calculation of the transform coefficient prediction values of the neighboring blocks of the current block, the parent transform block of the current block, and the neighboring blocks of the parent transform block.
- transform coefficients may include low-frequency coefficients and high-frequency coefficients.
- the low-frequency coefficients may also be referred to as direct current coefficients or DC coefficients
- the high-frequency coefficients may also be referred to as alternating current coefficients or AC coefficients.
- the transform coefficient prediction values herein primarily refer to the high-frequency coefficient prediction values of the current block.
- S1904 Encode the transform coefficient residual value of the current block, and write the obtained coded bits into the bitstream.
- encoding the transform coefficient residual values of the current block and writing the obtained coded bits into the bitstream may include: quantizing the transform coefficient residual values to determine the quantized coefficient residual values of the current block; encoding the quantized coefficient residual values of the current block and writing the obtained coded bits into the bitstream.
- the method may further include: performing inverse quantization on the quantized coefficient residual values of the current block to determine the reconstructed transform coefficient residual values of the current block; and determining the transform coefficients of the current block based on the transform coefficient prediction values of the current block and the reconstructed transform coefficient residual values of the current block.
- the transform coefficients of the current block may be obtained by adding the transform coefficient prediction values of the current block and the reconstructed transform coefficient residual values of the current block.
- the method further includes: determining the storage information of the current block; and saving the storage information of the current block into the memory module.
- the method further includes: when the current point cloud containing the current block meets the conditions for being used as a reference point cloud, saving the storage information of the current block to a memory module.
- the storage information of the current block can be saved to the memory module; thereby, when performing subsequent transform domain inter-frame prediction, the required reference block related information can be obtained from the memory module.
- the storage information of the current block may include at least one of the following: the transformation coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, the current layer information where the current block is located, and the absolute coordinate information of the current block.
- the method may include: determining the coordinate information of the current block; determining the absolute coordinate information of the current block based on the coordinate information of the current block and the coordinate offset information of the slice identification information where the current block is located relative to the origin.
- the absolute coordinate information of the current block can be obtained by performing an addition operation based on the coordinate information of the current block and the coordinate offset information of the slice identification information where the current block is located relative to the origin.
- the reference block of the current block can be determined based on the fact that the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transformation layer information where the candidate reference block is located is the same as the current layer information where the current block is located, or the reference block of the current block can be determined based on the fact that the absolute coordinate information of the parent transformation block of the candidate reference block is the same as the absolute coordinate information of the parent transformation block of the current block and the transformation layer information where the candidate reference block is located is the same as the current layer information where the current block is located, and so on. No limitation is made here.
- the method may further include: determining geometric information of the current slice; performing octree decomposition on the geometric information of the current slice to determine at least one transformation layer; wherein the at least one transformation layer includes the current layer where the current block is located.
- the slice identification information (sliceID) of the current block can be used to indicate the current slice.
- the current slice is determined by the slice division of the current point cloud.
- the geometric information of the current slice is decomposed into an octree and transformed based on the hierarchical structure of the octree. Specifically, the RAHT inverse transformation is performed from top to bottom on the root node of the octree, and the RAHT inverse transformation is performed on the nodes in each layer from the three dimensions of x, y, and z until the inverse transformation reaches the leaf node of the octree.
- the method may further include: when the current layer is the L-1th layer in at least one transformation layer, determining the low-frequency coefficient values of the nodes in the Lth layer, and performing regional adaptive hierarchical transformation based on the low-frequency coefficient values of the nodes in the Lth layer, determining the low-frequency coefficient values and the original values of the high-frequency coefficients of the nodes in the L-1th layer, until the low-frequency coefficient values and the original values of the high-frequency coefficients of the root node of the current point cloud are determined; wherein L is a positive integer.
- determining the transform coefficient residual value of the current block based on the transform coefficient prediction value of the current block may include: determining the original high-frequency coefficient values of the current block in the current layer; and determining the high-frequency coefficient residual value of the current block based on the original high-frequency coefficient values of the current block and the high-frequency coefficient prediction value of the current block.
- the method further includes: encoding the high-frequency coefficient residual value of the current block and writing the resulting coded bits into the bitstream.
- the method may further include: encoding the low-frequency coefficient value of the root node and writing the obtained encoding bits into the bitstream.
- the low-frequency coefficient value of the root node and the high-frequency coefficient residual value of each layer can be written into the code stream, so that the RAHT inverse transform can be implemented at the decoding end to restore the reconstructed attribute information of the current point cloud.
- the DC coefficient obtained after the transformation of the nodes in the same layer (layer L) is transferred to the nodes in the next layer (layer L-1) for further transformation using the attribute information of the point cloud.
- the transformation matrix will be updated as the weights corresponding to each point change adaptively.
- the above process will be continuously iterated and updated according to the division structure of the octree until the root node of the octree.
- the DC coefficient of the root node and all AC coefficients are collectively referred to as transformation coefficients.
- g′ L,2x,y,z and g′ L,2x+1,y,z are the attribute DC coefficients of two neighboring nodes in layer L.
- the information in layer L-1 is the AC coefficient f′ L-1,x,y,z and the DC coefficient g′ L-1,x,y,z .
- f′ L-1,x,y,z is directly quantized and encoded without further transformation.
- g′ L-1,x,y,z will continue to search for neighboring nodes for transformation. If no neighboring nodes are found, they will be directly passed to layer L-2.
- the RAHT transform is only effective for nodes with neighboring nodes; nodes without neighboring nodes are directly passed to the previous layer.
- the weights (the number of non-empty child nodes in the node) corresponding to g′ L,2x,y,z and g′ L,2x+1,y ,z are w′ L,2x,y,z and w′ L,2x+1,y,z (abbreviated as w′ 0 and w′ 1 ) respectively, and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z .
- the RAHT transformation formula is:
- the transform coefficients of the current block can be determined. Then, based on the original values of the transform coefficients of the current block and the predicted values of the transform coefficients of the current block, the transform coefficient residual values of the current block can be calculated.
- the embodiment of the present application provides a coding method, specifically a coding scheme for fast inter-frame attribute transformation of point clouds.
- Prediction mode identification information when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the transform coefficient residual value of the current block is determined based on the transform coefficient prediction value of the current block; the transform coefficient residual value of the current block is encoded, and the obtained coded bits are written into the bitstream.
- the transform coefficient prediction value of the current block can be determined based on the reference block of the current block.
- the reference block can be transformed based on slices divided by the reference point cloud, rather than based on the entire frame of the reference point cloud, thereby reducing time complexity; and the transform coefficients of the reference block can be stored in a memory module, so that when the transform coefficients of the reference block are needed, they can be directly obtained from the memory module, further reducing time complexity, thereby improving the attribute encoding efficiency of the point cloud, and thus improving the encoding performance of the point cloud.
- this technical solution proposes caching the decoded geometric information and transform coefficients of possible reference point clouds in a memory module (buffer) for later use as reference frames. This reduces time complexity by avoiding the need to repeatedly perform octree decomposition and RAHT transformation on the reference frame, while also retaining information from multiple RAHT transform layers of the reference frame for inter-frame prediction.
- Figure 15 is a schematic diagram of the logical structure of an inter-frame prediction transformation provided by an embodiment of the present application.
- the reference point cloud can be divided into at least two slices, so that during RAHT transformation, the transformation can be performed based on the divided slices rather than the entire frame, reducing time complexity and retaining information from multiple RAHT transformation layers of the reference frame for inter-frame prediction.
- the process at the decoding end is as follows:
- the geometric information of the decoded point cloud is decomposed into an octree and transformed based on the hierarchical structure of the octree.
- the nodes in each layer are inversely transformed from the x, y, and z dimensions until they are inversely transformed to the leaf nodes of the octree.
- the decoded quantized transform coefficient residual value is inversely quantized to obtain a transform coefficient residual value.
- the transform coefficient can be obtained by adding the transform coefficient residual value to the transform coefficient prediction value.
- the position of the current block during transformation is a relative geometric position (i.e., the aforementioned "coordinate information").
- the absolute geometric position of the current block in the current frame can be calculated. Specifically, the absolute geometric position of the current block is equal to the relative geometric position of the current transformed block plus the geometric position offset of the slice to which the current block belongs relative to the origin;
- Find inter-frame reference blocks For each transform block in the RAHT transform of the current frame, find the inter-frame prediction transform block of the current layer in the memory module. Taking the current block as an example, find a transform block in the reference frame whose absolute geometric position is the same as the absolute geometric position of the current block and the same layer number as the current block as the reference block, or find a transform block in the reference frame whose absolute geometric position is the same as the absolute geometric position of the parent transform block of the current block and the same layer number as the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as the geometric position of the current block, the same layer number as the current block and the same sliceID as the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as the geometric position of the parent transform block of the current block, the same layer number as the current block and the same sliceID as the current block as the reference block.
- the transform coefficient corresponding to the inter-frame reference block in the memory module can be used as the transform coefficient prediction value of the current block.
- the intra-frame prediction value is used as the transformation coefficient prediction value of the current block, wherein the intra-frame prediction value is obtained by weighted prediction of the neighboring blocks of the current block, the parent transformation block and the neighboring blocks of the parent transformation block.
- the currently decoded frame may be used as a reference frame for subsequent frames
- at least one of the transform coefficient, absolute geometric position, geometric position, sliceID, and number of RAHT transform layers of the current block may be stored in the memory module as inter-frame prediction reference information for subsequent frames; otherwise, the RAHT inverse transform may be performed directly.
- the attributes of the point cloud are inversely transformed along the octree decomposition from top to bottom, and the nodes in each layer are inversely transformed from the three dimensions of x, y, and z until they are transformed to the leaf nodes of the octree.
- the DC coefficient and AC coefficient of the nodes in the same layer are inversely transformed to obtain the DC coefficient of the next layer (Lth layer).
- the transformation matrix will be updated as the weights corresponding to each point change adaptively.
- the above process will be iteratively updated according to the division structure of the octree until the leaf nodes of the octree.
- the quantized transform coefficient residual value can be obtained, and then the quantized transform coefficient residual value is dequantized to obtain the transform coefficient residual value of the point cloud to be decoded;
- the transform coefficient prediction value of the point cloud to be decoded can be determined according to RAHT inter-frame prediction or RAHT intra-frame prediction; then, the transform coefficient of the point cloud to be decoded is obtained by performing an addition operation on the transform coefficient residual value and the transform coefficient prediction value; the transform coefficient is saved in the memory module, so that when performing inter-frame prediction later, the transform coefficient of the reference block can be directly obtained from the memory module; finally, the transform coefficient is subjected to RAHT inverse transformation to reconstruct the point cloud attributes.
- the process of the encoding end is as follows:
- the geometric information of the point cloud to be encoded is input and the octree decomposition is performed to obtain the RAHT transformation layer.
- the nodes are transformed in the x, y, and z dimensions until they reach the root node of the octree.
- the DC coefficient obtained after the transformation of the nodes in the same layer (layer L) is passed to the nodes in the next layer (layer L-1) to continue the transformation.
- the transformation matrix will be updated as the weights corresponding to each point change adaptively.
- the above process will be continuously iterated and updated according to the partitioning structure of the octree until the root node of the octree.
- the DC coefficient of the root node and all AC coefficients are collectively referred to as the transformation coefficient;
- the absolute geometric position of the current block relative to the origin can be calculated. This is equal to the relative geometric position of the current block plus the geometric position offset of the slice to which the current block belongs relative to the origin.
- g′ L,2x,y,z and g′ L,2x+1,y,z are the attribute DC coefficients of two neighboring nodes in layer L.
- the information in layer L-1 is the AC coefficient f′ L-1,x,y,z and the DC coefficient g′ L-1,x,y,z .
- f′ L-1,x,y,z is no longer transformed and is directly quantized and encoded.
- g′ L-1,x,y,z will continue to search for neighboring nodes for transformation.
- the RAHT transform is only effective for nodes with neighboring nodes; nodes without neighboring nodes are directly passed to the previous layer.
- the weights (the number of non-empty child nodes within the node) corresponding to g′ L,2x,y,z and g′ L,2x+1,y ,z are w′ L,2x,y,z and w′ L,2x+1,y,z (abbreviated as w′ 0 and w′ 1 ), respectively, and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z . Therefore, the calculation formulas for the inverse RAHT transform are shown in Equations (5) and (6). Finally, the transform coefficients can be obtained.
- the transform coefficient prediction value is subtracted from the transform coefficient to obtain the transform coefficient residual value.
- the position of the current block during transformation is a relative geometric position (i.e., the aforementioned "coordinate information").
- the absolute geometric position of the current block in the current frame can be calculated. Specifically, the absolute geometric position of the current block is equal to the relative geometric position of the current transformed block plus the geometric position offset of the slice to which the current block belongs relative to the origin;
- Find inter-frame reference blocks For each transform block in the RAHT transform of the current frame, find the inter-frame prediction transform block of the current layer in the memory module. Taking the current block as an example, find a transform block in the reference frame whose absolute geometric position is the same as the absolute geometric position of the current block and the same layer number as the current block as the reference block, or find a transform block in the reference frame whose absolute geometric position is the same as the absolute geometric position of the parent transform block of the current block and the same layer number as the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as the geometric position of the current block, the same layer number as the current block and the same sliceID as the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as the geometric position of the parent transform block of the current block, the same layer number as the current block and the same sliceID as the current block as the reference block.
- the transform coefficient corresponding to the inter-frame reference block in the memory module can be used as the transform coefficient prediction value of the current block.
- the intra-frame prediction value is used as the transformation coefficient prediction value of the current block, wherein the intra-frame prediction value is obtained by weighted prediction of the neighboring blocks of the current block, the parent transformation block and the neighboring blocks of the parent transformation block.
- the transform coefficient residual value is quantized to obtain a quantized transform coefficient residual value.
- the quantized transform coefficient residual value is inversely quantized to obtain a reconstructed transform coefficient residual value (ie, a reconstructed transform coefficient residual value).
- the reconstructed transform coefficient residual value is added to the transform coefficient prediction value to obtain the reconstructed transform coefficient. If the current frame may be used as a reference frame for subsequent frames after encoding, at least one of the reconstructed transform coefficient, absolute geometric position, geometric position, sliceID, and the number of layers of the RAHT transform layer where the current block is located can be stored in the memory module as the inter-frame prediction reference information for subsequent frames; otherwise, it is directly performed. Inverse RAHT transform.
- the reconstructed point cloud attributes can be obtained.
- the geometric information of the point cloud to be encoded is decomposed into a point cloud geometry octree, and the attribute information of the point cloud to be encoded is subjected to a RAHT transform to determine the transform coefficients of the point cloud to be encoded.
- the transform coefficient prediction value of the point cloud to be encoded can be determined based on RAHT inter-frame prediction or RAHT intra-frame prediction.
- the transform coefficient residual value is obtained by subtracting the transform coefficient of the point cloud to be encoded from the transform coefficient prediction value.
- the transform coefficient residual value is then quantized to obtain the quantized transform coefficient residual value.
- the quantized transform coefficient residual value can be encoded and written into the attribute code stream.
- the quantized transform coefficient residual value can be dequantized to obtain the reconstructed transform coefficient residual value.
- the reconstructed transform coefficient residual value is then added to the transform coefficient prediction value to obtain the reconstructed transform coefficient.
- the transform coefficient is saved in a memory module, so that when performing inter-frame prediction later, the transform coefficient of the reference block can be directly obtained from the memory module.
- the reconstructed transform coefficient is subjected to a RAHT inverse transform to obtain the reconstructed point cloud attributes.
- Table 1 is the performance results based on the latest tmc13v24 under the test conditions of lossy geometry and lossy attribute (Lossy geometry, Lossy attribute) provided by the embodiment of the present application.
- FIG22 is a schematic diagram of the composition structure of an encoder provided in an embodiment of the present application.
- the encoder 220 may include a first determination unit 2201, a first prediction unit 2202, and an encoding unit 2203, wherein:
- a first determining unit 2201 is configured to determine prediction mode identification information of a current block
- the first prediction unit 2202 is configured to determine a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain;
- the first determining unit 2201 is further configured to determine a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block;
- the encoding unit 2203 is configured to perform encoding processing on the transform coefficient residual value of the current block and write the obtained encoding bits into the bitstream.
- the first determining unit 2201 is further configured to determine a reference block of the current block according to the slice identification information in the reference point cloud.
- the first determining unit 2201 is further configured to determine a predicted value of a transform coefficient of the current block according to the transform coefficient of the reference block.
- the first determination unit 2201 is further configured to determine the attribute information of the reference slice based on the reference slice indicated by the slice identification information; perform region-adaptive hierarchical transformation on the attribute information of the reference slice to determine the transformation coefficients of at least one transformation layer; and determine the transformation coefficients of the reference block from the transformation coefficients of at least one transformation layer.
- the first determining unit 2201 is further configured to determine a transform coefficient residual value of a reference block; quantize the transform coefficient residual value of the reference block to determine a quantized coefficient residual value of the reference block; dequantize the quantized coefficient residual value of the reference block to determine a reconstructed transform coefficient residual value of the reference block; and determine, based on the transform coefficient prediction value of the reference block and the reconstructed transform coefficient residual value of the reference block, Transform coefficients of the reference block.
- the encoder 220 further includes a first saving unit 2204; the first determining unit 2201 is further configured to determine storage information of the reference block, wherein the storage information of the reference block includes at least one of the following: transformation coefficients of the reference block, coordinate information of the reference block, slice identification information of the reference block, and transformation layer information of the reference block; the first saving unit 2204 is configured to save the storage information of the reference block into the memory module.
- the first determining unit 2201 is further configured to determine the transformation coefficient of the reference block according to the storage information corresponding to the reference block in the memory module.
- the first determination unit 2201 is further configured such that the coordinate information of the reference block is the same as the coordinate information of the current block, the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block.
- the first determination unit 2201 is further configured such that the coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, the slice identification information of the reference block is the same as the slice identification information of the current block, and the transform layer information of the reference block is the same as the current layer information of the current block.
- the first determination unit 2201 is further configured to determine the coordinate information of the reference block; and determine the absolute coordinate information of the reference block based on the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.
- the first determining unit 2201 is further configured to determine that the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block and the transform layer information of the reference block is the same as the current layer information of the current block.
- the first determination unit 2201 is further configured such that the absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.
- the first determination unit 2201 is further configured to determine that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain if there is a reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determine that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.
- the first prediction unit 2202 is further configured to determine the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block when the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain; and perform weighted operations on the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.
- the first determination unit 2201 is further configured to perform inverse quantization on the quantization coefficient residual value of the current block to determine the reconstructed transform coefficient residual value of the current block; and determine the transform coefficient of the current block based on the transform coefficient prediction value of the current block and the reconstructed transform coefficient residual value of the current block.
- the first determination unit 2201 is further configured to determine the storage information of the current block, wherein the storage information of the current block includes at least one of the following: the transformation coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, and the current layer information where the current block is located; the first saving unit 2204 is further configured to save the storage information of the current block into the memory module.
- the first saving unit 2204 is further configured to save the storage information of the current block into the memory module when the current point cloud where the current block is located meets the conditions for being used as a reference point cloud.
- the first determination unit 2201 is further configured to determine the geometric information of the current slice; wherein the current slice is determined by slice division of the current point cloud; and perform octree decomposition on the geometric information of the current slice to determine at least one transformation layer; wherein the at least one transformation layer includes the current layer where the current block is located.
- the first determination unit 2201 is further configured to determine the low-frequency coefficient values of the nodes in the Lth layer when the current layer is the L-1th layer in at least one transformation layer, and perform regional adaptive hierarchical transformation based on the low-frequency coefficient values of the nodes in the Lth layer to determine the low-frequency coefficient values and the original values of the high-frequency coefficients of the nodes in the L-1th layer until the low-frequency coefficient values and the original values of the high-frequency coefficients of the root node of the current point cloud are determined; wherein L is a positive integer.
- the encoding unit 2203 is further configured to encode the low-frequency coefficient value of the root node of the current point cloud and write the obtained encoding bits into the bitstream.
- the first determination unit 2201 is further configured to determine the original value of the high-frequency coefficient of the current block; and determine the residual value of the high-frequency coefficient of the current block based on the original value of the high-frequency coefficient of the current block and the predicted value of the high-frequency coefficient of the current block; the encoding unit 2203 is further configured to encode the residual value of the high-frequency coefficient of the current block and write the obtained encoding bits into the bitstream.
- a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and of course it can also be a module, or it can be non-modular.
- the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit.
- the above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.
- FIG23 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application.
- the encoder 220 may include: a first communication interface 2301, a first memory 2302 and a first processor 2303; each component The first bus system 2304 is coupled together. It is understood that the first bus system 2304 is used to realize the connection and communication between these components.
- the first bus system 2304 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in FIG23, various buses are labeled as the first bus system 2304.
- the first communication interface 2301 is used to receive and send signals when sending and receiving information with other external network elements;
- a first memory 2302 is used to store computer programs that can be run on the first processor 2303;
- the first processor 2303 is configured to, when running the computer program, execute:
- Determining prediction mode identification information of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determining a transform coefficient prediction value of the current block based on a reference block of the current block; determining a transform coefficient residual value of the current block based on the transform coefficient prediction value of the current block;
- the transform coefficient residual value of the current block is coded, and the obtained coded bits are written into the bitstream.
- the first memory 2302 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories.
- the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
- the volatile memory can be a random access memory (RAM), which is used as an external cache.
- RAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDR SDRAM double data rate synchronous DRAM
- ESDRAM enhanced synchronous DRAM
- SLDRAM synchronous link DRAM
- DRRAM direct RAM
- the first processor 2303 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by the hardware integrated logic circuit in the first processor 2303 or by instructions in the form of software.
- the above-mentioned first processor 2303 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.
- DSP digital signal processor
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- the various methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed.
- the general-purpose processor can be a microprocessor or any conventional processor.
- the steps of the method disclosed in conjunction with the embodiments of this application can be directly embodied as being executed by a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers, etc.
- the storage medium is located in the first memory 2302 , and the first processor 2303 reads the information in the first memory 2302 and completes the steps of the above method in combination with its hardware.
- the first processor 2303 is further configured to execute the method described in any one of the aforementioned embodiments when running the computer program.
- the second determining unit 2401 is configured to determine prediction mode identification information of the current block
- the second prediction unit 2402 is configured to determine a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain;
- the decoding unit 2403 is configured to decode the code stream and determine the transform coefficient residual value of the current block
- the second determining unit 2401 is further configured to determine the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
- the second determining unit 2401 is further configured to determine a reference block of the current block according to the slice identification information in the reference point cloud.
- the second determining unit 2401 is further configured to determine a predicted value of a transform coefficient of the current block according to the transform coefficient of the reference block.
- the second determination unit 2401 is further configured to determine the attribute information of the reference slice based on the reference slice indicated by the slice identification information; perform region-adaptive hierarchical transformation on the attribute information of the reference slice to determine the transformation coefficients of at least one transformation layer; and determine the transformation coefficients of the reference block from the transformation coefficients of at least one transformation layer.
- the decoding unit 2403 is further configured to decode the code stream and determine the transform coefficient residual value of the reference block; the second determination unit 2401 is further configured to determine the transform coefficient of the reference block based on the transform coefficient prediction value of the reference block and the transform coefficient residual value of the reference block.
- the decoding unit 2403 is further configured to decode the code stream to determine the transform coefficients of the reference block.
- the decoder 240 further includes a second saving unit 2404; the second determination unit 2401 is further configured to determine storage information of the reference block, wherein the storage information of the reference block includes at least one of the following: transformation coefficients of the reference block, coordinate information of the reference block, slice identification information of the reference block, and transformation layer information of the reference block; the second saving unit 2404 is configured to save the storage information of the reference block into the memory module.
- the second determining unit 2401 is further configured to determine the transformation coefficient of the reference block according to the storage information corresponding to the reference block in the memory module.
- the second determination unit 2401 is further configured such that the coordinate information of the reference block is the same as the coordinate information of the current block, the slice identification information where the reference block is located is the same as the slice identification information where the current block is located, and the transformation layer information where the reference block is located is the same as the current layer information where the current block is located.
- the second determination unit 2401 is further configured such that the coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, the slice identification information of the reference block is the same as the slice identification information of the current block, and the transform layer information of the reference block is the same as the current layer information of the current block.
- the second determination unit 2401 is further configured to determine the coordinate information of the reference block; and determine the absolute coordinate information of the reference block based on the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.
- the second determining unit 2401 is further configured to determine that the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block and the transform layer information of the reference block is the same as the current layer information of the current block.
- the second determination unit 2401 is further configured to ensure that the absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information of the reference block is the same as the current layer information of the current block.
- the second determination unit 2401 is further configured to determine that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain if there is a reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determine that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.
- the second prediction unit 2402 is further configured to determine the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block when the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain; and perform weighted operations on the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.
- the second determination unit 2401 is further configured to determine the storage information of the current block, wherein the storage information of the current block includes at least one of the following: the transformation coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, and the current layer information where the current block is located; the second saving unit 2404 is further configured to save the storage information of the current block into the memory module.
- the second saving unit 2404 is configured to save the storage information of the current block into the memory module when the current point cloud where the current block is located meets the conditions for being used as a reference point cloud.
- the decoding unit 2403 is further configured to decode the code stream to determine the quantization coefficient residual value of the current block; the second determination unit 2401 is further configured to dequantize the quantization coefficient residual value to determine the transform coefficient residual value of the current block.
- the second determination unit 2401 is further configured to determine the geometric information of the current slice; wherein the current slice is determined by slice division of the current point cloud; and perform octree decomposition on the geometric information of the current slice to determine at least one transformation layer; wherein the at least one transformation layer includes the current layer where the current block is located.
- the second determination unit 2401 is further configured to perform a regional adaptive hierarchical inverse transform on the reconstructed transform coefficients of the current block in the L-1 layer when the current layer is the L-1 layer in at least one transform layer, to determine the reconstruction attribute information of the nodes in the L layer; wherein L is a positive integer.
- a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc. It can be modular or non-modular. Moreover, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.
- FIG25 is a schematic diagram of the specific hardware structure of a decoder provided in an embodiment of the present application.
- the decoder 240 may include: a second communication interface 2501, a second memory 2502, and a second processor 2503; each component is coupled together through a second bus system 2504.
- the second bus system 2504 is used to achieve connection and communication between these components.
- the second bus system 2504 also includes a power bus, a control bus, and a status signal bus.
- various buses are labeled as the second bus system 2504 in FIG25. Among them,
- the second communication interface 2501 is used to receive and send signals during the process of sending and receiving information between other external network elements;
- the second memory 2502 is used to store computer programs that can be run on the second processor 2503;
- the second processor 2503 is configured to, when running the computer program, execute:
- Determine prediction mode identification information of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determine a transform coefficient prediction value of the current block based on a reference block of the current block; decode the code stream to determine a transform coefficient residual value of the current block; and determine a transform coefficient of the current block based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
- the second processor 2503 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
- the hardware functions of the second memory 2502 are similar to those of the first memory 2302, and the hardware functions of the second processor 2503 are similar to those of the first processor 2303; they will not be described in detail here.
- This embodiment provides a decoder that, when performing inter-frame prediction in the transform domain on a current block, can determine a predicted value of the transform coefficients of the current block based on a reference block of the current block.
- the reference block can be transformed based on slices of a reference point cloud, rather than on the entire frame of the reference point cloud, thereby reducing time complexity.
- the transform coefficients of the reference block can be stored in a memory module so that when the transform coefficients of the reference block are needed, they can be directly retrieved from the memory module, further reducing time complexity. This improves the efficiency of encoding and decoding point cloud attributes, and thus enhances point cloud encoding and decoding performance.
- FIG26 is a schematic diagram of the structure of a coding and decoding system provided by an embodiment of the present application.
- the coding and decoding system 260 may include an encoder 2601 and a decoder 2602 .
- the encoder 2601 may be the encoder described in any one of the aforementioned embodiments
- the decoder 2602 may be the decoder described in any one of the aforementioned embodiments.
- the present application further provides a computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor (eg, the first processor or the second processor), implements the method as described in any of the aforementioned embodiments.
- a processor eg, the first processor or the second processor
- embodiments of the present application further provide a computer program product, including a computer program or instructions.
- a processor e.g., a first processor or a second processor
- the method described in any one of the aforementioned embodiments is implemented.
- the embodiments of the present application further provide a computer program, which, when executed by a processor (eg, a first processor or a second processor), implements the method as described in any one of the aforementioned embodiments.
- a processor eg, a first processor or a second processor
- the disclosed devices and methods can be implemented in other ways.
- the device embodiments described above are merely schematic.
- the division of the units is merely a logical function division.
- Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separate, and 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 these units may be selected to achieve the purpose of this embodiment according to actual needs.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium.
- the technical solution of this application is essentially or partially contributed to the existing technology.
- Part of this technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of this application.
- the aforementioned storage medium includes: a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, etc., various media that can store program code.
- the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; based on the transform coefficient prediction value of the current block, the transform coefficient residual value of the current block is determined; the transform coefficient residual value of the current block is encoded, and the obtained coded bits are written into the bitstream.
- the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the bitstream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
- the transform coefficient prediction value of the current block can be determined based on the reference block of the current block.
- the reference block can be transformed based on the slices divided by the reference point cloud, rather than based on the entire frame of the reference point cloud, which reduces the time complexity; and the transformation coefficients of the reference block can be stored in the memory module, so that when the transformation coefficients of the reference block are needed, they can be directly obtained from the memory module, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and thus improving the encoding and decoding performance of the point cloud.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本申请实施例涉及视频编解码技术领域,尤其涉及一种编解码方法、码流、编码器、解码器以及存储介质。The embodiments of the present application relate to the field of video coding and decoding technology, and in particular to a coding and decoding method, a bit stream, an encoder, a decoder, and a storage medium.
在基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC)编解码框架中,点云的几何信息和属性信息是分开进行编码的。其中,G-PCC的属性编码可以包括:预测变换(Predicting Transform,PT)、提升变换(Lifting Transform,LT)以及区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)。In the Geometry-based Point Cloud Compression (G-PCC) codec framework, the geometric and attribute information of a point cloud are encoded separately. G-PCC attribute encoding can include Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT).
在进行RAHT变换的时候,具体是依据八叉树的构建层级自下而上对属性信息进行自适应变换。由于已有的技术方案不理想,在编码端和解码端对参考图像进行变换运算时增加了时间复杂度,使得RAHT属性变换编解码的复杂度增大,降低了属性编码效率。During the RAHT transform, attribute information is adaptively transformed from the bottom up based on the octree's construction hierarchy. Due to the suboptimal nature of existing technical solutions, the time complexity of transforming the reference image at both the encoder and decoder ends increases, increasing the complexity of the RAHT attribute transform encoding and decoding, and reducing attribute coding efficiency.
发明内容Summary of the Invention
本申请实施例提供一种编解码方法、码流、编码器、解码器以及存储介质,能够降低时间复杂度,提高点云的属性编解码效率,进而提升点云的编解码性能。The embodiments of the present application provide a coding and decoding method, a code stream, an encoder, a decoder, and a storage medium, which can reduce time complexity, improve the efficiency of attribute coding and decoding of point clouds, and thereby improve the coding and decoding performance of point clouds.
本申请实施例的技术方案可以如下实现:The technical solution of the embodiment of the present application can be implemented as follows:
第一方面,本申请实施例提供了一种解码方法,应用于解码器,该方法包括:In a first aspect, an embodiment of the present application provides a decoding method, applied to a decoder, the method comprising:
确定当前块的预测模式标识信息;Determining prediction mode identification information of the current block;
在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;When the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block;
解码码流,确定当前块的变换系数残差值;Decode the code stream and determine the residual value of the transform coefficient of the current block;
根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。The transform coefficient of the current block is determined according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
第二方面,本申请实施例提供了一种编码方法,应用于编码器,该方法包括:In a second aspect, an embodiment of the present application provides an encoding method, applied to an encoder, the method comprising:
确定当前块的预测模式标识信息;Determining prediction mode identification information of the current block;
在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;When the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block;
根据当前块的变换系数预测值,确定当前块的变换系数残差值;Determining a transform coefficient residual value of the current block according to a transform coefficient prediction value of the current block;
对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。The transform coefficient residual value of the current block is coded, and the obtained coded bits are written into the bitstream.
第三方面,本申请实施例提供了一种码流,该码流是根据待编码信息进行比特编码生成的;其中,待编码信息包括下述至少一项:根节点的低频系数值和当前块的高频系数残差值。In a third aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: a low-frequency coefficient value of a root node and a high-frequency coefficient residual value of a current block.
第四方面,本申请实施例提供了一种编码器,该编码器包括第一确定单元、第一预测单元和编码单元,其中:In a fourth aspect, an embodiment of the present application provides an encoder, comprising a first determining unit, a first predicting unit, and an encoding unit, wherein:
第一确定单元,配置为确定当前块的预测模式标识信息;A first determining unit configured to determine prediction mode identification information of a current block;
第一预测单元,配置为在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;A first prediction unit is configured to determine a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain;
第一确定单元,还配置为根据当前块的变换系数预测值,确定当前块的变换系数残差值;The first determining unit is further configured to determine a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block;
编码单元,配置为对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。The encoding unit is configured to perform encoding processing on the transform coefficient residual value of the current block and write the obtained encoding bits into the bit stream.
第五方面,本申请实施例提供了一种编码器,该编码器包括第一存储器和第一处理器;其中,In a fifth aspect, an embodiment of the present application provides an encoder, comprising a first memory and a first processor; wherein,
第一存储器,用于存储能够在第一处理器上运行的计算机程序;a first memory for storing a computer program capable of running on the first processor;
第一处理器,用于在运行计算机程序时,执行如第二方面的方法。The first processor is configured to execute the method according to the second aspect when running a computer program.
第六方面,本申请实施例提供了一种解码器,该解码器包括第二确定单元、第二预测单元和解码单元,其中:In a sixth aspect, an embodiment of the present application provides a decoder, comprising a second determination unit, a second prediction unit, and a decoding unit, wherein:
第二确定单元,配置为确定当前块的预测模式标识信息;A second determining unit configured to determine prediction mode identification information of a current block;
第二预测单元,配置为在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参 考块,确定当前块的变换系数预测值;The second prediction unit is configured to, when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, predict the current block according to the parameters of the current block. Consider the block and determine the predicted value of the transform coefficient of the current block;
解码单元,配置为解码码流,确定当前块的变换系数残差值;a decoding unit configured to decode the bitstream and determine a transform coefficient residual value of a current block;
第二确定单元,还配置为根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。The second determining unit is further configured to determine the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
第七方面,本申请实施例提供了一种解码器,该解码器包括第二存储器和第二处理器;其中,In a seventh aspect, an embodiment of the present application provides a decoder, the decoder comprising a second memory and a second processor; wherein,
第二存储器,用于存储能够在第二处理器上运行的计算机程序;a second memory for storing a computer program capable of running on the second processor;
第二处理器,用于在运行计算机程序时,执行如第一方面所述的方法。The second processor is configured to execute the method according to the first aspect when running a computer program.
第八方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法、或者实现如第二方面所述的方法。In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method as described in the first aspect or the method as described in the second aspect.
第九方面,本申请实施例提供了一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如第一方面所述的方法、或者实现如第二方面所述的方法。In a ninth aspect, an embodiment of the present application provides a computer program product, comprising a computer program or instructions, which, when executed by a processor, implements the method described in the first aspect, or implements the method described in the second aspect.
本申请实施例提供了一种编解码方法、码流、编码器、解码器以及存储介质,在编码端,确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;根据当前块的变换系数预测值,确定当前块的变换系数残差值;对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。在解码端,确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;解码码流,确定当前块的变换系数残差值;根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。如此,无论是在编码端还是解码端,在当前块进行变换域的帧间预测时,这时候可以根据当前块的参考块来确定当前块的变换系数预测值。其中,参考块可以是基于参考点云划分的片(slice)进行变换运算的,而不是基于参考点云的整帧进行变换运算,降低了时间复杂度;而且参考块的变换系数可以存储在内存模块中,这样在需要使用该参考块的变换系数时可以直接从内存模块中获取,进一步降低了时间复杂度,从而提高了点云的属性编解码效率,进而提升点云的编解码性能。The embodiments of the present application provide a coding and decoding method, a code stream, an encoder, a decoder, and a storage medium. At the encoding end, the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the transform coefficient residual value of the current block is determined based on the transform coefficient prediction value of the current block; the transform coefficient residual value of the current block is encoded, and the obtained coded bits are written into the code stream. At the decoding end, the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the code stream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block. In this way, whether at the encoding end or the decoding end, when the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined based on the reference block of the current block. Among them, the reference block can be transformed based on the slices divided by the reference point cloud, rather than based on the entire frame of the reference point cloud, which reduces the time complexity; and the transformation coefficients of the reference block can be stored in the memory module, so that when the transformation coefficients of the reference block are needed, they can be directly obtained from the memory module, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and thus improving the encoding and decoding performance of the point cloud.
图1A为一种三维点云图像示意图;FIG1A is a schematic diagram of a three-dimensional point cloud image;
图1B为一种三维点云图像的局部放大图;FIG1B is a partially enlarged view of a three-dimensional point cloud image;
图2A为一种点云图像的六个观看角度示意图;FIG2A is a schematic diagram of six viewing angles of a point cloud image;
图2B为一种点云图像对应的数据存储格式示意图;FIG2B is a schematic diagram of a data storage format corresponding to a point cloud image;
图3为一种点云编解码的网络架构示意图;FIG3 is a schematic diagram of a network architecture for point cloud encoding and decoding;
图4为一种G-PCC编码器的组成框架示意图;FIG4 is a schematic diagram of a composition framework of a G-PCC encoder;
图5为一种G-PCC解码器的组成框架示意图;FIG5 is a schematic diagram of a composition framework of a G-PCC decoder;
图6为一种RAHT变换结构示意图;FIG6 is a schematic diagram of a RAHT transformation structure;
图7为一种RAHT沿x、y、z三方向的变换过程示意图;FIG7 is a schematic diagram of a RAHT transformation process along the x, y, and z directions;
图8A为一种RAHT正变换的过程示意图;FIG8A is a schematic diagram of a RAHT forward transformation process;
图8B为一种RAHT逆变换的过程示意图;FIG8B is a schematic diagram of a RAHT inverse transformation process;
图9为一种RAHT属性帧间预测编码的结构示意图;FIG9 is a schematic diagram of the structure of a RAHT attribute inter-frame prediction coding;
图10为一种点云属性RAHT的层次结构示意图;Figure 10 is a schematic diagram of the hierarchical structure of a point cloud attribute RAHT;
图11为一种应用于编码端的RAHT帧间预测变换的框架示意图;FIG11 is a schematic diagram of a framework of RAHT inter-frame prediction transformation applied to the encoding end;
图12为一种应用于解码端的RAHT帧间预测变换的框架示意图;FIG12 is a schematic diagram of a framework of RAHT inter-frame prediction transformation applied to a decoding end;
图13为一种RAHT帧间预测变换的逻辑结构示意图;FIG13 is a schematic diagram of the logical structure of a RAHT inter-frame prediction transformation;
图14为本申请实施例提供的一种解码方法的流程示意图一;FIG14 is a flowchart diagram 1 of a decoding method provided in an embodiment of the present application;
图15为本申请实施例提供的一种帧间预测变换的逻辑结构示意图;FIG15 is a schematic diagram of the logical structure of an inter-frame prediction transformation provided by an embodiment of the present application;
图16为本申请实施例提供的一种解码方法的流程示意图二;FIG16 is a second flow chart of a decoding method provided in an embodiment of the present application;
图17为本申请实施例提供的一种解码方法的流程示意图三;FIG17 is a third flow chart of a decoding method provided in an embodiment of the present application;
图18为本申请实施例提供的一种解码方法的流程示意图四;FIG18 is a fourth flow chart of a decoding method provided in an embodiment of the present application;
图19为本申请实施例提供的一种编码方法的流程示意图;FIG19 is a schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application;
图20为本申请实施例提供的一种应用于解码端的帧间预测变换的框架示意图;FIG20 is a schematic diagram of a framework of inter-frame prediction transformation applied to a decoding end provided by an embodiment of the present application;
图21为本申请实施例提供的一种应用于编码端的帧间预测变换的框架示意图;FIG21 is a schematic diagram of a framework of inter-frame prediction transformation applied to an encoding end according to an embodiment of the present application;
图22为本申请实施例提供的一种编码器的组成结构示意图;FIG22 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application;
图23为本申请实施例提供的一种编码器的具体硬件结构示意图; FIG23 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application;
图24为本申请实施例提供的一种解码器的组成结构示意图;FIG24 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application;
图25为本申请实施例提供的一种解码器的具体硬件结构示意图;FIG25 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application;
图26为本申请实施例提供的一种编解码系统的组成结构示意图。FIG26 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application.
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
点云(Point Cloud)是物体表面的三维表现形式,通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云(数据)。Point Cloud is a three-dimensional representation of the surface of an object. Point Cloud (data) on the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
点云是三维空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集,这些点包含了用于表示空间位置的几何信息和用于表示点云外观纹理的属性信息。图1A展示了三维点云图像和图1B展示了三维点云图像的局部放大图,可以看到点云表面是由分布稠密的点所组成的。A point cloud is a set of irregularly 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 point cloud's appearance and texture. Figure 1A shows a 3D point cloud image, and Figure 1B shows a zoomed-in view of a 3D point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.
二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息;然而点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,采集过程中每一个位置均有对应的属性信息,通常包括颜色信息和反射率信息。颜色信息反映物体的色彩,通常以RGB进行表示;反射率信息反映物体的表面材质,通常以reflectance进行表示。点云数据通常由包括表示三维空间位置信息所组成的几何信息(x,y,z)以及表示颜色信息(r,g,b)和反射率信息(reflectance)等的属性信息所组成。例如,反射率信息可以是一维反射率信息(r);颜色信息可以是任意一种色彩空间上的信息,或者颜色信息也可以是三维颜色信息,如RGB信息。在这里,R表示红色(Red,R),G表示绿色(Green,G),B表示蓝色(Blue,B)。再如,颜色信息可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色色差。Two-dimensional images contain information at every pixel and are distributed regularly, so there's no need to record their location information. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so recording the spatial location of each point is necessary to fully represent the point cloud. Similar to two-dimensional images, each location in the acquisition process has corresponding attribute information, typically including color and reflectance. Color information reflects the color of an object and is typically represented in RGB; reflectance information reflects the surface texture of an object and is typically represented in reflectance. Point cloud data typically consists of geometric information (x, y, z) representing the three-dimensional spatial location, as well as attribute information such as color (r, g, b) and reflectance. For example, reflectance information can be one-dimensional reflectance (r); color information can be in any color space, or it can be three-dimensional color information, such as RGB. Here, R represents red (red), G represents green (green), and B represents blue (blue). For another example, the color information may be luminance and chrominance (YCbCr, YUV) information, where Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
示例性地,根据激光测量原理得到的点云,点云中的点可以包括点的三维坐标信息和点的反射率信息。再如,根据摄影测量原理得到的点云,点云中的点可以可包括点的三维坐标信息和点的三维颜色信息。再如,结合激光测量和摄影测量原理得到点云,点云中的点可以可包括点的三维坐标信息、点的反射率信息和点的三维颜色信息。For example, a point cloud obtained using laser measurement principles may include both 3D coordinate information and reflectivity information for each point. For another example, a point cloud obtained using photogrammetry principles may include both 3D coordinate information and 3D color information for each point. For another example, a point cloud obtained using a combination of laser measurement and photogrammetry principles may include both 3D coordinate information, reflectivity information, and 3D color information for each point.
如图2A和图2B所示为一幅点云图像及其对应的数据存储格式。其中,图2A提供了点云图像的六个观看角度,图2B由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容。例如,点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维坐标信息(x,y,z)和三维颜色信息(r,g,b)。Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles of the point cloud image, while Figure 2B consists of a file header and data. The header includes the data format, data representation type, the total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud is in ".ply" format, represented by ASCII code, with a total of 207,242 points. Each point has 3D coordinate information (x, y, z) and 3D color information (r, g, b).
点云可以按获取的途径分为:Point clouds can be divided into the following categories according to the acquisition method:
静态点云:即物体是静止的,获取点云的设备也是静止的;Static point cloud: the object is stationary and the device that acquires the point cloud is also stationary;
动态点云:物体是运动的,但获取点云的设备是静止的;Dynamic point cloud: The object is moving, but the device that obtains the point cloud is stationary;
动态获取点云:获取点云的设备是运动的。Dynamic point cloud acquisition: The device used to acquire the point cloud is in motion.
例如,按点云的用途分为两大类:For example, point clouds can be divided into two categories according to their usage:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现以及生物组织器官三维重建等。Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Moreover, since point clouds are obtained by directly sampling real objects, they can provide a strong sense of reality while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
点云的采集主要有以下途径:计算机生成、3D激光扫描、3D摄影测量等。计算机可以生成虚拟三 维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。这些点云采集技术降低了点云数据获取成本和时间周期,并且提高了数据的精度,进一步推进了点云的现实应用。由于点云数据获取方式的不断产业化,使大量点云数据的获取成为可能。然而,伴随着应用需求的增长,海量3D点云数据的处理却遭遇到了存储空间和传输带宽的瓶颈。The main ways to collect point clouds are: computer generation, 3D laser scanning, 3D photogrammetry, etc. Computers can generate virtual three-dimensional 3D laser scanning can generate point clouds of static, real-world 3D objects or scenes, generating millions of point clouds per second. 3D photogrammetry can generate point clouds of dynamic, real-world 3D objects or scenes, generating tens of millions of point clouds per second. These point cloud acquisition technologies reduce the cost and time required to acquire point cloud data, while improving data accuracy and further promoting the practical application of point clouds. The increasing industrialization of point cloud data acquisition methods has made it possible to acquire large amounts of point cloud data. However, as application demand grows, processing massive amounts of 3D point cloud data has encountered bottlenecks in storage space and transmission bandwidth.
示例性地,以帧率为30帧每秒(fps)的点云视频为例,每帧点云的点数为70万,每个点包含坐标信息xyz(float)和颜色信息RGB(uchar),则10s点云视频的数据量大约为0.7million×(4Byte×3+1Byte×3)×30fps×10s=3.15GB,其中,1Byte为10bit。相应地,YUV采样格式为4:2:0,帧率为30fps的1280×720二维视频,其10s的数据量约为1280×720×12bit×30fps×10s≈0.39GB,10s的两视角三维视频的数据量约为0.39×2=0.78GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。For example, taking a point cloud video with a frame rate of 30 frames per second (fps), each frame of the point cloud has 700,000 points, and each point contains coordinate information xyz (float) and color information RGB (uchar). Therefore, the data volume of a 10-second point cloud video is approximately 0.7 million × (4 Byte × 3 + 1 Byte × 3) × 30fps × 10s = 3.15GB, where 1 Byte is 10 bits. Correspondingly, a 1280 × 720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 30fps has a data volume of approximately 1280 × 720 × 12 bits × 30fps × 10s ≈ 0.39GB for 10 seconds, and a two-view three-dimensional video of 10 seconds has a data volume of approximately 0.39 × 2 = 0.78GB. This shows that the data volume of a point cloud video far exceeds that of a two-dimensional video or a three-dimensional video of the same length. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.
也就是说,由于点云是海量点的集合,存储点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此,需要对点云进行压缩。That is to say, since the point cloud is a collection of massive points, storing the point cloud not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of the point cloud at the network layer without compression. Therefore, the point cloud needs to be compressed.
目前,可对点云进行压缩的点云编码框架可以是运动图像专家组(Moving Picture Experts Group,MPEG)提供的基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC)编解码框架或基于视频的点云压缩(Video-based Point Cloud Compression,V-PCC)编解码框架,也可以是AVS提供的AVS-PCC编解码框架。G-PCC编解码框架可用于针对第一类静态点云和第三类动态获取点云进行压缩,其可以是基于点云压缩测试平台(Test Model Compression 13,TMC13),V-PCC编解码框架可用于针对第二类动态点云进行压缩,其可以是基于点云压缩测试平台(Test Model Compression 2,TMC2)。故G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。Currently, point cloud coding frameworks that can compress point clouds can include the Geometry-based Point Cloud Compression (G-PCC) codec framework or the Video-based Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by AVS. The G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, and can be based on the Point Cloud Compression Test Platform (Test Model Compression 13, TMC13). The V-PCC codec framework can be used to compress the second type of dynamic point clouds, and can be based on the Point Cloud Compression Test Platform (Test Model Compression 2, TMC2). Therefore, the G-PCC codec framework is also called the Point Cloud Codec TMC13, and the V-PCC codec framework is also called the Point Cloud Codec TMC2.
本申请实施例提供了一种包含解码方法和编码方法的点云编解码系统的网络架构,图3为本申请实施例提供的一种点云编解码的网络架构示意图。如图3所示,该网络架构包括一个或多个电子设备13至1N和通信网络01,其中,电子设备13至1N可以通过通信网络01进行视频交互。电子设备在实施的过程中可以为各种类型的具有点云编解码功能的设备,例如,所述电子设备可以包括手机、平板电脑、个人计算机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备、服务器等,本申请实施例不作限制。其中,本申请实施例中的解码器或编码器就可以为上述电子设备。An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG3 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application. As shown in FIG3 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
其中,本申请实施例中的电子设备具有点云编解码功能,一般包括点云编码器(即编码器)和点云解码器(即解码器)。Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
下面以G-PCC编解码框架为例进行相关技术的说明。The following describes the related technologies using the G-PCC encoding and decoding framework as an example.
可以理解,在点云G-PCC编解码框架中,针对输入点云,首先通过片(slice)划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和每个点所对应的属性信息是分开进行编码的。As you can understand, in the point cloud G-PCC codec framework, the input point cloud is first divided into multiple slices through slice partitioning. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
图4为一种G-PCC编码器的组成框架示意图。如图4所示,该G-PCC编码器应用于点云编码器。在G-PCC编码框架中,将输入点云进行slice划分后,对slice进行独立编码。在slice中,点云的几何信息和点云中的点所对应的属性信息是分开进行编码的。G-PCC编码器首先对几何信息进行编码。编码器对几何信息进行坐标转换,使点云全都包含在一个包围盒(Bounding Box)中;然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接下来,对包围盒进行基于八叉树的划分。根据八叉树划分层级深度的不同,几何信息的编码又分为基于八叉树和三角面片集的两种框架。Figure 4 is a schematic diagram of the composition framework of a G-PCC encoder. As shown in Figure 4, the G-PCC encoder is applied to a point cloud encoder. In the G-PCC encoding framework, the input point cloud is sliced, and then the slices are independently encoded. Within the slice, the geometric information of the point cloud and the attribute information corresponding to the points in the point cloud are encoded separately. The G-PCC encoder first encodes the geometric information. The encoder performs coordinate transformation on the geometric information so that the entire point cloud is contained in a bounding box; then quantization is performed. This quantization step mainly serves a scaling purpose. Due to quantization rounding, the geometric information of some points is the same. The decision to remove duplicate points is made based on parameters. This process of quantization and removing duplicate points is also called voxelization. Next, the bounding box is partitioned based on an octree. Depending on the depth of the octree partitioning level, the encoding of geometric information is divided into two frameworks: octree-based and triangle facet-based.
在基于八叉树的几何信息编码框架中,将包围盒八等分为8个子立方体,并记录子立方体的占位比特(其中,1为非空,0为空),对非空的子立方体继续进行八等分,通常划分得到的叶子节点为1×1×1的单位立方体时停止划分。在这个过程中,利用节点(node)与周围节点的空间相关性,对占位比特进行帧内预测,最后进行基于上下文模型的CABAC编码,生成二进制的几何比特流,即几何码流。In the octree-based geometry information coding framework, the bounding box is divided into eight equal parts, and the placeholder bits of each sub-cube are recorded (where 1 indicates a non-empty sub-cube and 0 indicates an empty sub-cube). The non-empty sub-cubes are further divided into eight equal parts, usually stopping when the resulting leaf node is a 1×1×1 unit cube. During this process, the placeholder bits are intra-predicted using the spatial correlation between the node and its surrounding nodes. Finally, CABAC encoding based on the context model is performed to generate a binary geometry bit stream, also known as the geometry code stream.
在基于三角面片集的几何信息编码框架中,同样也要先进行八叉树划分,但区别在于基于八叉树的几何信息编码,该方法不需要将点云逐级划分到边长为1×1×1的单位立方体,而是划分到块(block)的边长为W时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边产生的至多十二个交点(vertex)。最后依次编码每个block的vertex坐标,生成二进制的几何比特流,即几何码流。In the triangle facet-based geometric information coding framework, octree partitioning is also performed first. However, the difference is that the octree-based geometric information coding method does not need to divide the point cloud into unit cubes with a side length of 1×1×1. Instead, the partitioning stops when the block side length is W. Based on the surface formed by the distribution of the point cloud in each block, the surface and the twelve edges of the block are obtained. Finally, the vertex coordinates of each block are encoded in sequence to generate a binary geometric bit stream, namely the geometric code stream.
G-PCC编码器在完成几何信息编码后,对几何信息进行重建,并使用重建的几何信息对点云的属性信息进行编码。目前,点云的属性编码主要是对点云中点的颜色信息进行编码。首先,编码器可以对点的颜色信息进行颜色空间转换,例如,当输入点云中点的颜色信息使用RGB颜色空间表示时,编码器可以将颜色信息从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着 色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码中,主要有两种变换方法,一种方法是依赖于细节层次(Level of Detail,LOD)划分的基于距离的提升变换,另一种方法是直接进行区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT),这两种方法都会将颜色信息从空间域变换到频域,得到高频系数和低频系数,最后对系数进行量化,再对量化系数进行算术编码,生成二进制的属性比特流,即属性码流。After completing the geometric information encoding, the G-PCC encoder reconstructs the geometric information and uses the reconstructed geometric information to encode the attribute information of the point cloud. At present, the attribute encoding of the point cloud mainly encodes the color information of the point in the point cloud. First, the encoder can perform color space conversion on the color information of the point. For example, when the color information of the point in the input point cloud is represented by the RGB color space, the encoder can convert the color information from the RGB color space to the YUV color space. Then, the point cloud is re-colored using the reconstructed geometric information. Color is encoded so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, there are two main transformation methods. One method is to rely on the distance-based lifting transform based on the level of detail (LOD) division, and the other is to directly perform the region adaptive hierarchical transform (RAHT). Both methods transform the color information from the spatial domain to the frequency domain to obtain high-frequency coefficients and low-frequency coefficients. Finally, the coefficients are quantized and arithmetic encoded on the quantized coefficients to generate a binary attribute bit stream, namely the attribute code stream.
图5为一种G-PCC解码器的组成框架示意图。如图5所示,该G-PCC解码器应用于点云解码器。在G-PCC解码框架中,获取二进制码流后,针对二进制码流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过算术解码-合成八叉树-表面拟合-重建几何-逆坐标变换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-逆量化-基于LOD的逆提升或者基于RAHT的逆变换-逆颜色转换,得到点云的属性信息,基于几何信息和属性信息可以恢复原始的slice;然后进行slice合并后,就可以还原输入点云的三维图像模型。Figure 5 is a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 5, the G-PCC decoder is applied to a point cloud decoder. In the G-PCC decoding framework, after obtaining the binary code stream, the geometric bit stream and attribute bit stream in the binary code stream are decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-synthetic octree-surface fitting-reconstructed geometry-inverse coordinate transformation; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD-based inverse lifting or RAHT-based inverse transformation-inverse color conversion. The original slice can be restored based on the geometric information and attribute information; then, after merging the slices, the three-dimensional image model of the input point cloud can be restored.
需要说明的是,如图4或图5所示,目前G-PCC的几何编解码可以分为基于八叉树的几何编解码和基于预测树的几何编解码。目前G-PCC的属性编解码包含三种属性编码方法:预测变换(Predicting Transform,PT)、提升变换(Lifting Transform,LT)以及区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)。其中,前两者是以LOD的生成顺序为依据对点云预测编码,RAHT则是依据八叉树的构建层级自下而上对属性信息进行自适应变换。It should be noted that, as shown in Figure 4 or Figure 5, the current G-PCC geometry codec can be divided into octree-based geometry codec and prediction tree-based geometry codec. Currently, G-PCC attribute codec includes three attribute encoding methods: Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT). Among them, the first two predictively encode the point cloud based on the LOD generation order, while RAHT adaptively transforms attribute information from bottom to top based on the octree construction hierarchy.
下面以区域自适应分层变换为例进行点云属性编码方法的详细描述。The following describes the point cloud attribute encoding method in detail using region-adaptive hierarchical transformation as an example.
区域自适应分层变换(RAHT)是一种哈尔小波变换,它可以将点云属性信息从空域变换到频域,进一步减少点云属性之间的相关性。其主要思想是按照八叉树结构,采用自底向上的方式对每一层中的节点分别从X、Y、Z三个维度进行变换(如图7),并迭代直至八叉树的根节点。如图6所示,其基本思想是基于八叉树的层级结构进行小波变换,将属性信息与八叉树节点相关联,对于同一父节点中被占据节点的属性沿着自底向上的方式进行递归变换,对于每一层中的节点分别从X、Y、Z三个维度进行变换,直至变换至八叉树的根节点。在分层变换的过程中,将同层节点变换之后得到的低通/低频(DC)系数传递到上一层的节点继续进行变换,而所有的高通/高频(AC)系数可以通过算术编码器进行编码。The Regional Adaptive Hierarchical Transform (RAHT) is a Haar wavelet transform that transforms point cloud attribute information from the spatial domain to the frequency domain, further reducing the correlation between point cloud attributes. Its main concept is to transform the nodes in each layer in the X, Y, and Z dimensions in a bottom-up manner according to the octree structure (as shown in Figure 7), and iterate until the root node of the octree. As shown in Figure 6, the basic idea is to perform a wavelet transform based on the hierarchical structure of the octree, associate attribute information with the octree nodes, and recursively transform the attributes of occupied nodes under the same parent node in a bottom-up manner, transforming the nodes in each layer in the X, Y, and Z dimensions until the root node of the octree is reached. During the hierarchical transformation process, the low-pass/low-frequency (DC) coefficients obtained after the transformation of the nodes in the same layer are passed to the nodes in the previous layer for further transformation, while all high-pass/high-frequency (AC) coefficients can be encoded using an arithmetic coder.
在变换过程中,同一层节点变换之后的DC系数(直流分量)将传递到上一层继续变换,而每一层变换后的AC系数(交流分量)将进行量化编码。下面将介绍主要的变换过程。During the transformation process, the DC coefficients (direct current components) of the transformed nodes at the same layer are passed to the previous layer for further transformation, while the AC coefficients (alternating current components) of each layer are quantized and encoded. The main transformation processes are described below.
图8A为一种RAHT正变换的过程示意图,图8B为一种RAHT逆变换的过程示意图。针对RAHT对应的变换与逆变换过程,假设g′L,2x,y,z和g′L,2x+1,y,z为L层中互为近邻点的两个属性DC系数。经过线性变换后,L-1层的信息为AC系数f′L-1,x,y,z和DC系数g′L-1,x,y,z;然后,f′L-1,x,y,z将不再进行变换,直接进行量化编码,g′L-1,x,y,z将继续寻找近邻进行变换,如果寻找不到,则将其直接传递至L-2层,即RAHT变换仅对存在邻居点的节点有效,没有邻居点的节点将直接传递至上一层。在上述变换过程中,g′L,2x,y,z和g′L,2x+1,y,z对应的权重(该节点内非空子节点的个数)分别为w′L,2x,y,z和w′L,2x+1,y,z(简写为w′0和w′1),g′L-1,x,y,z的权重为w′L-1,x,y,z,则通用变换公式为:
Figure 8A illustrates a RAHT forward transform process, and Figure 8B illustrates an inverse RAHT transform process. For the RAHT transform and inverse transform processes, assume that g′ L,2x,y,z and g′ L,2x+1,y,z are two attribute DC coefficients of neighboring nodes in the L layer. After linear transformation, the information in the L-1 layer consists of the AC coefficients f′ L-1,x,y,z and the DC coefficients g′ L-1,x,y,z . f′ L-1,x,y,z is no longer transformed and is directly quantized. g′ L-1,x,y,z continues to search for neighboring nodes for transformation. If no neighboring nodes are found, the transform is passed directly to the L-2 layer. This means that the RAHT transform is only effective for nodes with neighboring nodes; nodes without neighboring nodes are directly passed to the previous layer. In the above transformation process, the weights (the number of non-empty child nodes in the node) corresponding to g′ L,2x,y,z and g′ L,2x+1,y ,z are w′ L,2x,y,z and w′ L,2x+1,y,z (abbreviated as w′ 0 and w′ 1 ) respectively, and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z . The general transformation formula is:
其中,Tw0,w1为变换矩阵:
Among them, T w0,w1 is the transformation matrix:
变换矩阵会随着各点对应的权重自适应变化更新。上述过程会依据八叉树的划分结构不断迭代更新,直至八叉树的根节点。The transformation matrix will be updated as the weights corresponding to each point change adaptively. The above process will be iterated and updated continuously according to the partitioning structure of the octree until the root node of the octree is reached.
在一种具体的实现方式中,针对区域自适应分层帧间预测变换编码,G-PCC属性帧间预测编码的过程类似于帧内预测编码的过程,具体描述如下:In a specific implementation, for region-adaptive hierarchical inter-frame prediction transform coding, the process of G-PCC attribute inter-frame prediction coding is similar to the process of intra-frame prediction coding, which is described as follows:
首先,基于几何信息构建RAHT属性变换编码结构,即:由体素级别不断进行变换直至得到根节点,从而完成整个属性的分层变换编码。按照这样的方式,构建得到帧内编码结构和帧间编码结构。其中,RAHT属性的帧间编码结构可以参见图9。First, a RAHT attribute transform coding structure is constructed based on geometric information. This involves performing transforms at the voxel level until the root node is reached, completing the hierarchical transform coding of the entire attribute. This approach results in both intra-frame and inter-frame coding structures. The inter-frame coding structure for the RAHT attribute can be seen in Figure 9.
如图9所示,首先利用当前待编码节点的几何信息在参考图像中得到待编码节点的同位预测节点,再利用参考节点的几何信息和属性信息得到当前待编码节点的预测属性。As shown in FIG9 , the geometric information of the current node to be coded is first used to obtain the co-located predicted node of the node to be coded in the reference image, and then the geometric information and attribute information of the reference node are used to obtain the predicted attribute of the current node to be coded.
其次,根据如下两种不同的方式得到当前待编码节点的属性预测值:Secondly, the attribute prediction value of the current node to be encoded is obtained according to the following two different methods:
①当前节点的帧间预测节点有效:即同位节点存在,则将预测节点的属性直接作为当前待编码节点的属性预测值;① The inter-frame prediction node of the current node is valid: that is, if the same-position node exists, the attribute of the predicted node is directly used as the attribute prediction value of the current node to be encoded;
②当前节点的帧间预测节点无效:即同位节点不存在,则利用帧内相邻节点的属性预测值作为待编 码节点的属性预测值。② The inter-frame prediction node of the current node is invalid: that is, the co-located node does not exist, and the attribute prediction value of the adjacent node in the frame is used as the node to be encoded. The predicted value of the attribute of the code node.
最终,利用得到的属性预测值来对当前待编码节点的属性进行预测。从而完成整个属性的预测编码。Finally, the attribute prediction value is used to predict the attribute of the current node to be encoded, thereby completing the predictive coding of the entire attribute.
在另一种具体的实现方式中,对于RAHT帧间变换的层次结构,具体可以包括,In another specific implementation, the hierarchical structure of the RAHT inter-frame transform may include:
a、一个点云可以为一帧(或“一幅图像”),一帧(或“一幅图像”)可以划分成多个slice。a. A point cloud can be a frame (or "an image"), and a frame (or "an image") can be divided into multiple slices.
b、对于当前待解码的点云,则是按照slice独立进行解码的。b. For the point cloud to be decoded, it is decoded independently according to the slice.
c、一个slice为一个RAHT变换/反变换的单元,一个slice做一次RAHT变换/反变换。c. A slice is a unit of RAHT transformation/inverse transformation, and a slice performs one RAHT transformation/inverse transformation.
d、一次RAHT变换/反变换可以包括有很多个变换层,d. A RAHT transform/inverse transform can include many transform layers.
e、每一个变换层可以包括有很多个RAHT变换块,帧内预测和帧间预测都是针对变换块而言的。e. Each transform layer may include multiple RAHT transform blocks. Both intra-frame prediction and inter-frame prediction are for transform blocks.
示例性地,图10为一种点云属性RAHT的层次结构示意图。如图10所示,一个点云可以划分为多个slice,例如slice1和slice2。对于每一个slice,以slice1为例,slice1可以进行一次RAHT变换/反变换,例如获得RAHT变换层1;而RAHT变换层1可以包括很多个RAHT变换块,例如RAHT变换块1和RAHT变换块2。For example, Figure 10 illustrates a hierarchical structure of a point cloud attribute RAHT. As shown in Figure 10, a point cloud can be divided into multiple slices, such as slice 1 and slice 2. For each slice, taking slice 1 as an example, slice 1 can undergo a RAHT transform/inverse transform, for example, to obtain RAHT transform layer 1. RAHT transform layer 1 can include multiple RAHT transform blocks, such as RAHT transform block 1 and RAHT transform block 2.
在一种具体的实现方式中,图11为一种应用于编码端的RAHT帧间预测变换的框架示意图。如图11所示,针对待编码点云的几何信息进行点云几何八叉树分解,针对待编码点云的属性信息进行RAHT变换,可以确定待编码点云的变换系数;根据RAHT帧间预测或者RAHT帧内预测可以确定待编码点云的变换系数预测值;根据待编码点云的变换系数和变换系数预测值相减可以得到变换系数残差值;然后对变换系数残差值进行量化,可以得到量化后的变换系数残差值。一方面可以对量化后的变换系数残差值进行编码并写入属性码流中;另一方面可以对量化后的变换系数残差值进行反量化,得到重构的变换系数残差值;然后根据重构的变换系数残差值和变换系数预测值相加可以得到重构的变换系数;再对重构的变换系数进行RAHT反变换,可以得到重构点云属性。另外,在RAHT帧间预测过程中,编码端还涉及到对参考点云的几何信息进行八叉树分解以及对参考点云的属性信息进行RAHT变换的操作。In a specific implementation, Figure 11 is a schematic diagram of a framework for RAHT inter-frame prediction transform applied to the encoding end. As shown in Figure 11, the geometric information of the point cloud to be encoded is subjected to a point cloud geometric octree decomposition, and the attribute information of the point cloud to be encoded is subjected to a RAHT transform to determine the transform coefficients of the point cloud to be encoded. The transform coefficient prediction value of the point cloud to be encoded is determined based on RAHT inter-frame prediction or RAHT intra-frame prediction. The transform coefficient residual value is obtained by subtracting the transform coefficient of the point cloud to be encoded from the transform coefficient prediction value. The transform coefficient residual value is then quantized to obtain the quantized transform coefficient residual value. On the one hand, the quantized transform coefficient residual value can be encoded and written into the attribute code stream. On the other hand, the quantized transform coefficient residual value can be dequantized to obtain the reconstructed transform coefficient residual value. The reconstructed transform coefficient residual value is then added to the transform coefficient prediction value to obtain the reconstructed transform coefficient. The reconstructed transform coefficient is then subjected to a RAHT inverse transform to obtain the reconstructed point cloud attributes. In addition, during the RAHT inter-frame prediction process, the encoding end also involves octree decomposition of the geometric information of the reference point cloud and RAHT transformation of the attribute information of the reference point cloud.
在另一种具体的实现方式中,图12为一种应用于解码端的RAHT帧间预测变换的框架示意图。如图12所示,针对待解码点云的几何信息进行点云几何八叉树分解,以及对属性码流进行解析码流,可以得到量化后的变换系数残差值,然后对量化后的变换系数残差值进行反量化,可以得到待解码点云的变换系数残差值;根据RAHT帧间预测或者RAHT帧内预测可以确定待解码点云的变换系数预测值;再根据待解码点云的变换系数残差值和变换系数预测值进行加法运算,可以得到待解码点云的变换系数;最后对变换系数进行RAHT反变换,可以重构出点云属性。另外,在RAHT帧间预测过程中,解码端也涉及到对参考点云的几何信息进行八叉树分解以及对参考点云的属性信息进行RAHT变换的操作。In another specific implementation, Figure 12 is a schematic diagram of a framework for RAHT inter-frame prediction transformation applied to the decoding end. As shown in Figure 12, the geometric information of the point cloud to be decoded is subjected to a point cloud geometric octree decomposition, and the attribute code stream is parsed to obtain the quantized transform coefficient residual value. The quantized transform coefficient residual value is then dequantized to obtain the transform coefficient residual value of the point cloud to be decoded. The transform coefficient prediction value of the point cloud to be decoded is determined based on RAHT inter-frame prediction or RAHT intra-frame prediction. The transform coefficient of the point cloud to be decoded is then added to the transform coefficient prediction value. Finally, the transform coefficient is subjected to a RAHT inverse transform to reconstruct the point cloud attributes. In addition, during the RAHT inter-frame prediction process, the decoding end also involves the octree decomposition of the geometric information of the reference point cloud and the RAHT transform of the attribute information of the reference point cloud.
也就是说,相关技术在进行区域自适应分层帧间预测变换编码的时候,需要在编码端和解码端重新对参考点云进行一次RAHT变换运算,这极大地增加了时间复杂度,带来了很高的算法复杂度。另外,如图13所示,在对当前点云进行解码时,参考点云作为参考帧进行参考的时候,该参考帧看作一个slice,只进行一次RAHT变换(即只有一个RAHT变换层)作为参考,并没有保留参考图像不同RAHT变换层的信息,使得RAHT属性变换编解码的复杂度增大,降低了属性编码效率。That is, when performing regional adaptive layered inter-frame prediction transform coding, the related technology needs to re-perform a RAHT transform operation on the reference point cloud at the encoding and decoding ends, which greatly increases the time complexity and brings high algorithmic complexity. In addition, as shown in Figure 13, when decoding the current point cloud, when the reference point cloud is used as a reference frame, the reference frame is regarded as a slice and only performs a single RAHT transform (i.e., only one RAHT transform layer) as a reference. The information of different RAHT transform layers of the reference image is not retained, which increases the complexity of RAHT attribute transform encoding and decoding and reduces the attribute coding efficiency.
基于此,本申请实施例提供了一种编码方法,确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;根据当前块的变换系数预测值,确定当前块的变换系数残差值;对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。本申请实施例还提供了一种解码方法,确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;解码码流,确定当前块的变换系数残差值;根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。Based on this, an embodiment of the present application provides an encoding method, which determines the prediction mode identification information of the current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; based on the transform coefficient prediction value of the current block, the transform coefficient residual value of the current block is determined; the transform coefficient residual value of the current block is encoded, and the obtained encoded bits are written into the code stream. An embodiment of the present application also provides a decoding method, which determines the prediction mode identification information of the current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the code stream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
如此,无论是在编码端还是解码端,在当前块进行变换域的帧间预测时,这时候可以根据当前块的参考块来确定当前块的变换系数预测值。其中,参考块可以是基于参考点云划分的片(slice)进行变换运算的,而不是基于参考点云的整帧进行变换运算,降低了时间复杂度;而且参考块的变换系数可以存储在内存模块中,这样在需要使用该参考块的变换系数时可以直接从内存模块中获取,进一步降低了时间复杂度,从而提高了点云的属性编解码效率,进而提升点云的编解码性能。In this way, whether at the encoding or decoding end, when the current block is subjected to inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined based on the reference block of the current block. Among them, the reference block can be transformed based on the slices divided by the reference point cloud, rather than the entire frame of the reference point cloud, which reduces the time complexity; and the transform coefficients of the reference block can be stored in the memory module, so that when the transform coefficients of the reference block are needed, they can be directly obtained from the memory module, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and thus improving the encoding and decoding performance of the point cloud.
下面将结合附图对本申请各实施例进行详细说明。The embodiments of the present application will be described in detail below with reference to the accompanying drawings.
在本申请的一实施例中,图14为本申请实施例提供的一种解码方法的流程示意图一。如图14所示,该方法可以包括:In one embodiment of the present application, FIG14 is a flowchart diagram of a decoding method provided by the embodiment of the present application. As shown in FIG14 , the method may include:
S1401,确定当前块的预测模式标识信息。S1401: Determine prediction mode identification information of the current block.
需要说明的是,本申请实施例的解码方法应用于解码器,该解码方法具体是指一种点云属性的变换域预测(transform domain prediction)方法。其中,当前块的变换域预测可以包括变换域的帧间预测和 变换域的帧内预测。在当前块进行变换域的帧间预测时,能够降低时间复杂度。It should be noted that the decoding method of the embodiment of the present application is applied to the decoder, and the decoding method specifically refers to a transform domain prediction method of point cloud attributes. The transform domain prediction of the current block may include inter-frame prediction in the transform domain and Intra-frame prediction in the transform domain: When the current block is subjected to inter-frame prediction in the transform domain, the temporal complexity can be reduced.
还需要说明的是,在本申请实施例中,当前块可以为当前点云中待进行解码的变换块。It should also be noted that, in the embodiment of the present application, the current block may be a transformed block to be decoded in the current point cloud.
在本申请实施例中,可以在码流中写入一些语法元素形式的模式指示信息(或者是模式标志位)。这样,通过解析码流中语法元素的取值,就能够确定出当前块的预测模式标识信息。示例性地,第一语法元素可以用于指示当前块的预测模式标识信息。如此,通过解码码流,确定第一语法元素的取值;根据第一语法元素的取值,可以确定当前块的预测模式标识信息。In an embodiment of the present application, mode indication information (or mode flags) in the form of some syntax elements can be written into the bitstream. In this way, by parsing the values of the syntax elements in the bitstream, the prediction mode identification information of the current block can be determined. For example, the first syntax element can be used to indicate the prediction mode identification information of the current block. In this way, by decoding the bitstream, the value of the first syntax element is determined; based on the value of the first syntax element, the prediction mode identification information of the current block can be determined.
在本申请实施例中,若第一语法元素的取值为第一值,则确定当前块进行变换域的帧间预测;若第一语法元素的取值为第二值,则确定当前块进行变换域的帧内预测。其中,第一值与第二值不同。例如第一值可以为1,第二值可以为0;或者,第一值可以为真(true),第二值可以为假(false)。In an embodiment of the present application, if the value of the first syntax element is a first value, it is determined that the current block performs inter-frame prediction in the transform domain; if the value of the first syntax element is a second value, it is determined that the current block performs intra-frame prediction in the transform domain. The first value and the second value are different. For example, the first value can be 1 and the second value can be 0; or the first value can be true and the second value can be false.
考虑到码流中的比特开销,本申请实施例也可以不在码流中写入第一语法元素。在一些实施例中,对于当前块的预测模式标识信息来说,该方法还可以包括:若参考点云中存在与当前块满足预设帧间条件的参考块,则确定预测模式标识信息指示当前块进行变换域的帧间预测;若参考点云中不存在与当前块满足预设帧间条件的参考块,则确定预测模式标识信息指示当前块进行变换域的帧内预测。Considering the bit overhead in the bitstream, embodiments of the present application may also not write the first syntax element into the bitstream. In some embodiments, for the prediction mode identification information of the current block, the method may further include: if there is a reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.
也就是说,在本申请实施例中,对于当前块的预测模式标识信息的确定,可以是通过码流中的第一语法元素来确定,或者也可以根据当前块在参考点云中是否寻找到帧间参考块作为预测模式标识信息的判断条件,或者还可以是其他的判断条件,这里不作具体限定。That is to say, in the embodiment of the present application, the prediction mode identification information of the current block can be determined by the first syntax element in the code stream, or it can be determined based on whether the current block finds an inter-frame reference block in the reference point cloud as a judgment condition for the prediction mode identification information, or it can be other judgment conditions, which are not specifically limited here.
示例性地,在根据当前块在参考点云中是否寻找到帧间参考块作为预测模式标识信息的判断条件时,如果当前块在参考点云中能够寻找到满足预设帧间条件的参考块,那么可以确定当前块进行变换域的帧间预测;如果当前块在参考点云中寻找不到满足预设帧间条件的参考块,那么可以确定当前块进行变换域的帧内预测。在这里,参考点云为当前块所在的当前点云的参考帧。For example, when the prediction mode identification information is determined based on whether the current block finds an inter-frame reference block in the reference point cloud, if the current block can find a reference block that meets the preset inter-frame condition in the reference point cloud, then it can be determined that the current block performs inter-frame prediction in the transform domain; if the current block cannot find a reference block that meets the preset inter-frame condition in the reference point cloud, then it can be determined that the current block performs intra-frame prediction in the transform domain. Here, the reference point cloud is the reference frame of the current point cloud where the current block is located.
S1402,在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值。S1402 : When the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determine a transform coefficient prediction value of the current block according to a reference block of the current block.
在本申请实施例中,如果当前块进行变换域的帧间预测,那么首先确定当前块的参考块,然后根据当前块的参考块来确定当前块的变换系数预测值。In the embodiment of the present application, if the current block performs inter-frame prediction in the transform domain, a reference block of the current block is first determined, and then a transform coefficient prediction value of the current block is determined based on the reference block of the current block.
在一些实施例中,该方法可以包括:根据参考点云中的片标识信息,确定当前块的参考块。In some embodiments, the method may include: determining a reference block of the current block based on the slice identification information in the reference point cloud.
需要说明的是,在本申请实施例中,对参考点云进行片(slice)划分,可以得到参考点云的至少一个片,这至少一个片中包括参考块所在的参考片。It should be noted that, in the embodiment of the present application, the reference point cloud is divided into slices to obtain at least one slice of the reference point cloud, and the at least one slice includes the reference slice where the reference block is located.
还需要说明的是,在本申请实施例中,这里的片标识(sliceID)可以用于指示参考片。这样,根据片标识信息指示的参考片,可以从中确定出当前块的参考块。It should also be noted that, in the embodiment of the present application, the slice ID (sliceID) here can be used to indicate a reference slice. Thus, the reference block of the current block can be determined from the reference slice indicated by the slice ID information.
也就是说,在本申请实施例中,对于当前块的参考块来说,这里是基于参考点云划分的slice进行变换运算的,而非是基于参考点云所在的整帧进行变换运算的。具体如图15所示,参考点云可以划分为至少两个片,例如slice1-ref1和slice2-ref2。对于slice1-ref1进行变换,可以得到RAHT变换层ref-1,而RAHT变换层ref-1可以包括RAHT变换块ref1-1、RAHT变换块ref1-2等;对于slice2-ref2进行变换,可以得到RAHT变换层ref-2,而RAHT变换层ref-2可以包括RAHT变换块ref2-1、RAHT变换块ref2-2等。这样,通过避免参考点云所在的整帧进行RAHT变换,可以降低时间复杂度;而且还可以对slice级的变换系数进行保留,由于当前点云的RAHT变换是根据slice级进行的帧间预测,利用slice级的变换系数作为参考,可以提高帧间预测的准确度;同时还可以自适应的选择参考点云的某些slice用作帧间预测,某些slice不用作帧间预测,从而还能够提高预测的灵活性,节省内存。That is to say, in the embodiment of the present application, for the reference block of the current block, the transformation operation is performed based on the slice divided by the reference point cloud, rather than the transformation operation based on the entire frame where the reference point cloud is located. As shown in Figure 15, the reference point cloud can be divided into at least two slices, such as slice1-ref1 and slice2-ref2. For slice1-ref1, a RAHT transformation layer ref-1 can be obtained, and the RAHT transformation layer ref-1 can include RAHT transformation block ref1-1, RAHT transformation block ref1-2, etc.; for slice2-ref2, a RAHT transformation layer ref-2 can be obtained, and the RAHT transformation layer ref-2 can include RAHT transformation block ref2-1, RAHT transformation block ref2-2, etc. In this way, by avoiding RAHT transformation of the entire frame where the reference point cloud is located, the time complexity can be reduced; and the slice-level transformation coefficients can be retained. Since the RAHT transform of the current point cloud is based on the inter-frame prediction at the slice level, the accuracy of the inter-frame prediction can be improved by using the slice-level transformation coefficients as a reference; at the same time, certain slices of the reference point cloud can be adaptively selected for inter-frame prediction, and certain slices are not used for inter-frame prediction, thereby improving the flexibility of the prediction and saving memory.
在一些实施例中,对于确定当前块的参考块,该方法还可以包括:若参考点云中存在的候选参考块与当前块满足预设帧间条件,则将候选参考块确定为当前块的参考块。In some embodiments, for determining the reference block of the current block, the method may further include: if the candidate reference block existing in the reference point cloud and the current block meet a preset inter-frame condition, determining the candidate reference block as the reference block of the current block.
在本申请实施例中,如果当前块在参考点云中能够寻找到帧间参考块,即与当前块满足预设帧间条件的候选参考块,那么这时候的当前块进行变换域的帧间预测,而且将寻找到的候选参考块作为当前块的参考块。其中,对于寻找的候选参考块与当前块是否满足预设帧间条件,可以通过以下几种可能的实现方式来确定。In the embodiment of the present application, if an inter-frame reference block can be found in the reference point cloud for the current block, that is, a candidate reference block that satisfies a preset inter-frame condition with the current block, then the current block is subjected to transform-domain inter-frame prediction, and the found candidate reference block is used as the reference block for the current block. Whether the found candidate reference block satisfies the preset inter-frame condition with the current block can be determined through the following possible implementations.
在一种可能的实现方式中,参考点云中存在的候选参考块与当前块满足预设帧间条件,可以包括:候选参考块的坐标信息与当前块的坐标信息相同且候选参考块所在的片标识信息与当前块所在的片标识信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同。In one possible implementation, the candidate reference block existing in the reference point cloud and the current block meet the preset inter-frame conditions, which may include: the coordinate information of the candidate reference block is the same as the coordinate information of the current block, and the slice identification information where the candidate reference block is located is the same as the slice identification information where the current block is located, and the transformation layer information where the candidate reference block is located is the same as the current layer information where the current block is located.
在另一种可能的实现方式中,参考点云中存在的候选参考块与当前块满足预设帧间条件,可以包括:候选参考块的父变换块的坐标信息与当前块的父变换块的坐标信息相同且候选参考块所在的片标识信息与当前块所在的片标识信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同。In another possible implementation, the candidate reference block existing in the reference point cloud and the current block meet the preset inter-frame conditions, which may include: the coordinate information of the parent transform block of the candidate reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information where the candidate reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.
在本申请实施例中,坐标信息可以包括几何位置(x,y,z)信息和莫顿码信息等。另外,在本申请实施例中,根据候选参考块的坐标信息和候选参考块所在的片标识信息能够确定出候选参考块的绝对坐标 信息,而根据候选参考块的父变换块的坐标信息和候选参考块所在的片标识信息能够确定出候选参考块的父变换块的绝对坐标信息。In the embodiment of the present application, the coordinate information may include geometric position (x, y, z) information and Morton code information. In addition, in the embodiment of the present application, the absolute coordinates of the candidate reference block can be determined based on the coordinate information of the candidate reference block and the slice identification information where the candidate reference block is located. Information, and the absolute coordinate information of the parent transform block of the candidate reference block can be determined according to the coordinate information of the parent transform block of the candidate reference block and the slice identification information where the candidate reference block is located.
在又一种可能的实现方式中,参考点云中存在的候选参考块与当前块满足预设帧间条件,可以包括:候选参考块的绝对坐标信息与当前块的绝对坐标信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同。In another possible implementation, the candidate reference block in the reference point cloud and the current block meet a preset inter-frame condition, which may include: the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transformation layer information of the candidate reference block is the same as the current layer information of the current block.
在又一种可能的实现方式中,参考点云中存在的候选参考块与当前块满足预设帧间条件,可以包括:候选参考块的父变换块的绝对坐标信息与当前块的父变换块的绝对坐标信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同。In another possible implementation, the candidate reference block in the reference point cloud and the current block meet a preset inter-frame condition, which may include: the absolute coordinate information of the parent transform block of the candidate reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.
在本申请实施例中,候选参考块的绝对坐标信息可以是根据候选参考块的坐标信息与候选参考块所在的片标识信息(sliceID)共同确定的。In an embodiment of the present application, the absolute coordinate information of the candidate reference block may be determined based on the coordinate information of the candidate reference block and the slice identification information (sliceID) where the candidate reference block is located.
在一些实施例中,对于候选参考块的绝对坐标信息,该方法可以包括:确定候选参考块的坐标信息;根据候选参考块的坐标信息以及候选参考块所在的片标识信息相对于原点的坐标偏移信息,能够确定候选参考块的绝对坐标信息。具体地,可以是候选参考块的坐标信息加上候选参考块所在的片标识信息相对于原点的坐标偏移信息,能够得到候选参考块的绝对坐标信息。In some embodiments, for the absolute coordinate information of the candidate reference block, the method may include: determining the coordinate information of the candidate reference block; and determining the absolute coordinate information of the candidate reference block based on the coordinate information of the candidate reference block and coordinate offset information of the slice identification information where the candidate reference block is located relative to the origin. Specifically, the absolute coordinate information of the candidate reference block may be obtained by adding the coordinate information of the candidate reference block to the coordinate offset information of the slice identification information where the candidate reference block is located relative to the origin.
还需要说明的是,对于候选参考块与当前块满足预设帧间条件,这里的预设帧间条件可以是上述的几种可能的实现方式,也可以是其他能够用来寻找帧间参考块的条件,这里不作任何限定。It should also be noted that for the candidate reference block and the current block to meet the preset inter-frame conditions, the preset inter-frame conditions here can be the several possible implementation methods mentioned above, or other conditions that can be used to find inter-frame reference blocks. No limitation is made here.
这样,对于在参考点云中寻找到的参考块,具体可以包括:参考块的坐标信息与当前块的坐标信息相同且参考块所在的片标识信息与当前块所在的片标识信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同;或者,参考块的父变换块的坐标信息与当前块的父变换块的坐标信息相同且参考块所在的片标识信息与当前块所在的片标识信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同;或者,参考块的绝对坐标信息与当前块的绝对坐标信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同;或者,参考块的父变换块的绝对坐标信息与当前块的父变换块的绝对坐标信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同等等,这里不作任何限定。In this way, for the reference block found in the reference point cloud, it may specifically include: the coordinate information of the reference block is the same as the coordinate information of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the coordinate information of the parent transformation block of the reference block is the same as the coordinate information of the parent transformation block of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the absolute coordinate information of the parent transformation block of the reference block is the same as the absolute coordinate information of the parent transformation block of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block, etc., without any limitation here.
还需要说明的是,在本申请实施例中,对于参考块的绝对坐标信息来说,可以是确定参考块的坐标信息,然后根据参考块的坐标信息以及参考块所在的片标识信息相对于原点的坐标偏移信息共同确定的;对于参考块的父变换块的绝对坐标信息来说,可以是确定参考块的父变换块的坐标信息,然后根据参考块的父变换块的坐标信息以及参考块所在的片标识信息相对于原点的坐标偏移信息共同确定的。It should also be noted that, in the embodiment of the present application, for the absolute coordinate information of the reference block, the coordinate information of the reference block can be determined, and then jointly determined based on the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin; for the absolute coordinate information of the parent transformation block of the reference block, the coordinate information of the parent transformation block of the reference block can be determined, and then jointly determined based on the coordinate information of the parent transformation block of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.
可以理解地,在确定当前块的参考块之后,根据当前块的参考块,确定当前块的变换系数预测值,具体可以包括:根据参考块的变换系数,确定当前块的变换系数预测值。It can be understood that after determining the reference block of the current block, determining the transformation coefficient prediction value of the current block according to the reference block of the current block may specifically include: determining the transformation coefficient prediction value of the current block according to the transformation coefficient of the reference block.
在一种具体的实施例中,在当前块进行变换域的帧间预测时,参见图16,该方法可以包括:In a specific embodiment, when the current block performs inter-frame prediction in the transform domain, referring to FIG16 , the method may include:
S1601,基于片标识信息指示的参考片,确定参考片的属性信息。S1601 : Determine attribute information of a reference slice based on the reference slice indicated by the slice identification information.
S1602,对参考片的属性信息进行区域自适应分层变换,确定至少一个变换层的变换系数。S1602: Perform region-adaptive hierarchical transformation on attribute information of a reference slice to determine transformation coefficients of at least one transformation layer.
S1603,从至少一个变换层的变换系数中,确定参考块的变换系数。S1603 : Determine a transform coefficient of a reference block from transform coefficients of at least one transform layer.
S1604,根据参考块的变换系数,确定当前块的变换系数预测值。S1604: Determine a predicted value of the transform coefficient of the current block according to the transform coefficient of the reference block.
在本申请实施例中,为了降低时间复杂度,在确定参考块的变换系数时,可以是基于参考点云划分的slice(即参考片)进行RAHT变换得到的,而非是基于参考点云的整帧进行RAHT变换得到的。这样,可以对slice级的变换系数进行保留,由于当前点云的RAHT变换是根据slice级进行的帧间预测,利用slice级的变换系数作为参考,可以更加准确得到当前块的变换系数预测值,提高了帧间预测的准确度;同时还可以自适应的选择参考点云的某些slice用作帧间预测,某些slice不用作帧间预测,从而还能够提高预测的灵活性,节省内存。In an embodiment of the present application, in order to reduce time complexity, when determining the transform coefficients of the reference block, the RAHT transform can be performed on the slices (i.e., reference slices) divided based on the reference point cloud, rather than on the entire frame of the reference point cloud. In this way, the transform coefficients at the slice level can be retained. Since the RAHT transform of the current point cloud is based on the inter-frame prediction performed at the slice level, the transform coefficient prediction value of the current block can be obtained more accurately by using the transform coefficients at the slice level as a reference, thereby improving the accuracy of the inter-frame prediction. At the same time, certain slices of the reference point cloud can be adaptively selected for inter-frame prediction, while certain slices are not used for inter-frame prediction, thereby improving the flexibility of the prediction and saving memory.
也就是说,在本申请实施例中,参考块的变换系数可以是由参考点云划分的slice(即参考片)进行RAHT变换确定的。具体地,通过对参考片的属性信息进行RAHT变换,可以确定至少一个变换层的变换系数。其中,每一个变换层可以包括至少一个变换块,从中获取参考块的变换系数;然后将参考块的变换系数作为当前块的变换系数预测值。That is, in the embodiment of the present application, the transform coefficients of the reference block can be determined by performing a RAHT transform on the slices (i.e., reference slices) divided by the reference point cloud. Specifically, by performing a RAHT transform on the attribute information of the reference slice, the transform coefficients of at least one transform layer can be determined. Each transform layer can include at least one transform block, from which the transform coefficients of the reference block are obtained; and then the transform coefficients of the reference block are used as the transform coefficient prediction values of the current block.
在另一种具体的实施例中,对于参考块的变换系数来说,该方法可以包括:解码码流,确定参考块的变换系数残差值;根据参考块的变换系数预测值和参考块的变换系数残差值,确定参考块的变换系数。In another specific embodiment, for the transform coefficients of the reference block, the method may include: decoding the code stream to determine the transform coefficient residual value of the reference block; and determining the transform coefficient of the reference block based on the transform coefficient prediction value of the reference block and the transform coefficient residual value of the reference block.
在本申请实施例中,在参考块的变换系数需要进行预测时,这时候可以是解码码流,确定参考块的量化系数残差值;对参考块的量化系数残差值进行反量化,确定参考块的变换系数残差值;然后根据参考块的变换系数预测值和参考块的变换系数残差值来确定参考块的变换系数。In an embodiment of the present application, when the transform coefficients of the reference block need to be predicted, the code stream can be decoded to determine the quantization coefficient residual values of the reference block; the quantization coefficient residual values of the reference block are inversely quantized to determine the transform coefficient residual values of the reference block; and then the transform coefficients of the reference block are determined based on the transform coefficient prediction values of the reference block and the transform coefficient residual values of the reference block.
在又一种具体的实施例中,对于参考块的变换系数来说,该方法可以包括:解码码流,确定参考块的变换系数。In yet another specific embodiment, for the transform coefficients of the reference block, the method may include: decoding a code stream to determine the transform coefficients of the reference block.
在本申请实施例中,在参考块的变换系数不需要进行预测时,这时候可以通过解码码流,确定参考 块的量化系数;对参考块的量化系数进行反量化,确定参考块的变换系数。In the embodiment of the present application, when the transform coefficients of the reference block do not need to be predicted, the reference block can be determined by decoding the code stream. The quantization coefficients of the reference block are inversely quantized to determine the transformation coefficients of the reference block.
需要说明的是,在得到参考块的变换系数之后,可以将其保存到内存模块中。在一种具体的实施例中,该方法还可以包括:确定参考块的存储信息;将参考块的存储信息保存到内存模块中。其中,参考块的存储信息可以包括下述至少一项:参考块的变换系数、参考块的坐标信息、参考块所在的片标识信息和参考块所在的变换层信息。It should be noted that after obtaining the transform coefficients of the reference block, they can be stored in a memory module. In a specific embodiment, the method may further include: determining storage information of the reference block; and storing the storage information of the reference block in the memory module. The storage information of the reference block may include at least one of the following: the transform coefficients of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, and the transform layer information where the reference block is located.
还需要说明的是,在将参考块的存储信息保存到内存模块之后,在一些实施例中,在当前块进行变换域的帧间预测时,参见图17,该方法可以包括:It should also be noted that after the storage information of the reference block is saved in the memory module, in some embodiments, when performing inter-frame prediction in the transform domain on the current block, referring to FIG. 17 , the method may include:
S1701,根据参考块在内存模块中对应的存储信息,确定参考块的变换系数。S1701, determining the transformation coefficient of the reference block according to the storage information corresponding to the reference block in the memory module.
S1702,根据参考块的变换系数,确定当前块的变换系数预测值。S1702: Determine a predicted value of the transform coefficient of the current block according to the transform coefficient of the reference block.
需要说明的是,在本申请实施例中,参考块对应的存储信息可以预先存储在内存模块中。如图15所示,基于参考点云划分的多个slice,内存模块中可以保留参考点云的多个RAHT变换层的信息。这样,在确定出当前块的参考块之后,可以根据参考块所在的sliceID从内存模块中快速获取参考块的变换系数,然后将参考块的变换系数作为当前块的变换系数预测值,从而能够进一步降低时间复杂度,并且使得帧间预测更加准确。It should be noted that, in an embodiment of the present application, the storage information corresponding to the reference block can be pre-stored in the memory module. As shown in Figure 15, based on the multiple slices divided by the reference point cloud, the memory module can retain information on multiple RAHT transformation layers of the reference point cloud. In this way, after determining the reference block of the current block, the transformation coefficients of the reference block can be quickly obtained from the memory module according to the sliceID where the reference block is located, and then the transformation coefficients of the reference block are used as the transformation coefficient prediction values of the current block, thereby further reducing the time complexity and making the inter-frame prediction more accurate.
在一些实施例中,参考块在内存模块中对应的存储信息,可以包括下述至少一项:参考块的变换系数、参考块的坐标信息、参考块所在的片标识信息、参考块所在的变换层信息和参考块的绝对坐标信息。In some embodiments, the storage information corresponding to the reference block in the memory module may include at least one of the following: the transformation coefficient of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, the transformation layer information where the reference block is located, and the absolute coordinate information of the reference block.
还需要说明的是,在本申请实施例中,参考块的绝对坐标信息可以是根据参考块的坐标信息与参考块所在的片标识信息共同确定的。在一些实施例中,对于参考块的绝对坐标信息来说,该方法可以包括:确定参考块的坐标信息;根据参考块的坐标信息以及参考块所在的片标识信息相对于原点的坐标偏移信息,确定参考块的绝对坐标信息。具体地,可以是参考块的坐标信息加上参考块所在的sliceID相对于原点的坐标偏移信息,能够得到参考块的绝对坐标信息。It should also be noted that, in embodiments of the present application, the absolute coordinate information of the reference block can be determined based on the coordinate information of the reference block and the slice ID information where the reference block is located. In some embodiments, for the absolute coordinate information of the reference block, the method may include: determining the coordinate information of the reference block; and determining the absolute coordinate information of the reference block based on the coordinate information of the reference block and the coordinate offset information of the slice ID where the reference block is located relative to the origin. Specifically, the absolute coordinate information of the reference block can be obtained by adding the coordinate information of the reference block to the coordinate offset information of the slice ID where the reference block is located relative to the origin.
还需要说明的是,在本申请实施例中,坐标信息可以包括几何位置(x,y,z)信息和莫顿码信息等。以参考块为例,参考块的坐标信息是指参考块在进行RAHT变换时的位置信息,参考块的绝对坐标信息是指参考块在参考帧中的绝对位置信息。It should also be noted that, in the embodiment of the present application, the coordinate information may include geometric position (x, y, z) information and Morton code information. Taking the reference block as an example, the coordinate information of the reference block refers to the position information of the reference block when the RAHT transform is performed, and the absolute coordinate information of the reference block refers to the absolute position information of the reference block in the reference frame.
这样,如果当前块进行变换域的帧间预测,那么在参考帧中寻找到满足预设帧间条件的参考块之后,根据参考块的变换系数,就可以确定出当前块的变换系数预测值。In this way, if the current block performs inter-frame prediction in the transform domain, after finding a reference block that meets the preset inter-frame condition in the reference frame, the transform coefficient prediction value of the current block can be determined based on the transform coefficient of the reference block.
在一些实施例中,在预测模式标识信息指示当前块进行变换域的帧内预测时,在步骤S1401之后,参见图18,该方法还可以包括:In some embodiments, when the prediction mode identification information indicates that the current block performs transform domain intra prediction, after step S1401, referring to FIG18 , the method may further include:
S1801,在预测模式标识信息指示当前块进行变换域的帧内预测时,确定当前块的相邻块的变换系数预测值、当前块的父变换块的变换系数预测值和父变换块的相邻块的变换系数预测值。S1801, when the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain, determine the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block.
S1802,对当前块的相邻块的变换系数预测值、当前块的父变换块的变换系数预测值和父变换块的相邻块的变换系数预测值进行加权运算,确定当前块的变换系数预测值。S1802 , performing a weighted operation on the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.
也就是说,如果在参考点云中无法寻找到满足预设帧间条件的候选参考块,则确定当前块进行变换域的帧内预测,这时候可以所得到的帧内预测值作为当前块的变换系数预测值。其中,帧内预测值可以是由当前块的相邻块、当前块的父变换块和父变换块的相邻块各自的变换系数预测值进行加权计算得到。That is, if no candidate reference block that meets the preset inter-frame condition can be found in the reference point cloud, the current block is determined to be intra-predicted in the transform domain, and the resulting intra-prediction value can be used as the transform coefficient prediction value of the current block. The intra-prediction value can be obtained by weighted calculation of the transform coefficient prediction values of the neighboring blocks of the current block, the parent transform block of the current block, and the neighboring blocks of the parent transform block.
还需要说明的是,在本申请实施例中,变换系数可以包括低频系数和高频系数。其中,低频系数又可以称为直流系数或者DC系数,高频系数又可以称为交流系数或者AC系数。需要注意的是,这里的变换系数预测值主要是指当前块的高频系数预测值。It should also be noted that in the embodiments of the present application, transform coefficients may include low-frequency coefficients and high-frequency coefficients. The low-frequency coefficients may also be referred to as direct current coefficients or DC coefficients, and the high-frequency coefficients may also be referred to as alternating current coefficients or AC coefficients. It should be noted that the transform coefficient prediction values herein primarily refer to the high-frequency coefficient prediction values of the current block.
S1403,解码码流,确定当前块的变换系数残差值。S1403: Decode the code stream to determine the transform coefficient residual value of the current block.
S1404,根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。S1404 , determining the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
在本申请实施例中,步骤S1401~S1402与步骤S1403没有执行顺序之分。示例性地,可以先执行步骤S1401~S1402,再执行步骤S1403;或者,也可以先执行步骤S1403,再执行步骤S1401~S1402;或者,还可以两者同时执行,这里不作任何限定。In the embodiment of the present application, steps S1401-S1402 and step S1403 are not executed in any particular order. For example, steps S1401-S1402 may be executed first, followed by step S1403; or, step S1403 may be executed first, followed by steps S1401-S1402; or, both steps may be executed simultaneously, without limitation.
在本申请实施例中,解码码流,确定当前块的变换系数残差值,可以包括:解码码流,确定当前块的量化系数残差值;对量化系数残差值进行反量化,确定当前块的变换系数残差值。In an embodiment of the present application, decoding the code stream and determining the transform coefficient residual value of the current block may include: decoding the code stream and determining the quantization coefficient residual value of the current block; and dequantizing the quantization coefficient residual value to determine the transform coefficient residual value of the current block.
在本申请实施例中,对当前块的变换系数预测值和当前块的变换系数残差值进行加法运算,可以得到当前块的变换系数。In an embodiment of the present application, the transform coefficient of the current block is obtained by performing an addition operation on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
可以理解地,在本申请实施例中,该方法还包括:确定当前块的存储信息;将当前块的存储信息保存到内存模块中。It can be understood that in the embodiment of the present application, the method further includes: determining the storage information of the current block; and saving the storage information of the current block into the memory module.
进一步地,在一些实施例中,该方法还包括:在当前块所在的当前点云满足用作参考点云的条件时,将当前块的存储信息保存到内存模块中。也就是说,在本申请实施例中,如果当前点云所在的帧有可能作为后续帧的参考帧,那么可以将当前块的存储信息保存到内存模块中;从而在后续进行变换域的帧间 预测时,能够从内存模块中获取所需要的参考块的相关信息。Furthermore, in some embodiments, the method further includes: when the current point cloud where the current block is located meets the conditions for being used as a reference point cloud, saving the storage information of the current block to the memory module. That is, in the embodiment of the present application, if the frame where the current point cloud is located may be used as a reference frame for subsequent frames, then the storage information of the current block can be saved to the memory module; thereby, in the subsequent inter-frame conversion in the transform domain, During prediction, the relevant information of the required reference blocks can be obtained from the memory module.
还可以理解地,在本申请实施例中,当前块的存储信息可以包括下述至少一项:当前块的变换系数、当前块的坐标信息、当前块所在的片标识信息、当前块所在的当前层信息和当前块的绝对坐标信息。It can also be understood that in an embodiment of the present application, the storage information of the current block may include at least one of the following: the transformation coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, the current layer information where the current block is located, and the absolute coordinate information of the current block.
在一些实施例中,对于当前块的绝对坐标信息,该方法可以包括:确定当前块的坐标信息;根据当前块的坐标信息以及当前块所在的片标识信息相对于原点的坐标偏移信息,确定当前块的绝对坐标信息。In some embodiments, for the absolute coordinate information of the current block, the method may include: determining the coordinate information of the current block; determining the absolute coordinate information of the current block based on the coordinate information of the current block and the coordinate offset information of the slice identification information where the current block is located relative to the origin.
也就是说,在本申请实施例中,可以根据当前块的坐标信息与当前块所在的片标识信息相对于原点的坐标偏移信息进行加法运算,得到当前块的绝对坐标信息。这样,在查找参考块时,可以根据候选参考块的绝对坐标信息与当前块的绝对坐标信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同来确定出当前块的参考块,或者也可以根据候选参考块的父变换块的绝对坐标信息与当前块的父变换块的绝对坐标信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同来确定出当前块的参考块等等,这里不作任何限定。That is to say, in an embodiment of the present application, the absolute coordinate information of the current block can be obtained by performing an addition operation based on the coordinate information of the current block and the coordinate offset information of the slice identification information where the current block is located relative to the origin. In this way, when searching for a reference block, the reference block of the current block can be determined based on the fact that the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transformation layer information where the candidate reference block is located is the same as the current layer information where the current block is located, or the reference block of the current block can be determined based on the fact that the absolute coordinate information of the parent transformation block of the candidate reference block is the same as the absolute coordinate information of the parent transformation block of the current block and the transformation layer information where the candidate reference block is located is the same as the current layer information where the current block is located, and so on. No limitation is made here.
在一种具体的实施例中,解码码流,确定当前块的变换系数残差值,可以包括:解码码流,确定当前块的高频系数残差值。相应地,根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数,可以包括:根据当前块的高频系数预测值和当前块的高频系数残差值,确定当前块的高频系数值。在这里,具体可以是对当前块的高频系数预测值和当前块的高频系数残差值进行加法运算,确定当前块的高频系数值。In a specific embodiment, decoding a bitstream and determining a transform coefficient residual value of a current block may include: decoding the bitstream and determining a high-frequency coefficient residual value of the current block. Accordingly, determining the transform coefficient of the current block based on a transform coefficient prediction value of the current block and a transform coefficient residual value of the current block may include: determining the high-frequency coefficient value of the current block based on the high-frequency coefficient prediction value of the current block and the high-frequency coefficient residual value of the current block. Specifically, the high-frequency coefficient value of the current block may be determined by adding the high-frequency coefficient prediction value of the current block and the high-frequency coefficient residual value of the current block.
在一些实施例中,该方法还可以包括:确定当前片的几何信息;对当前片的几何信息进行八叉树分解,确定至少一个变换层;其中,至少一个变换层包括当前块所在的当前层。In some embodiments, the method may further include: determining geometric information of the current slice; performing octree decomposition on the geometric information of the current slice to determine at least one transformation layer; wherein the at least one transformation layer includes the current layer where the current block is located.
在本申请实施例中,根据当前块所在的片标识信息(sliceID),可以用于指示当前片。其中,当前片是由当前点云进行片划分确定的。对于当前片来说,通过对当前片的几何信息进行八叉树分解,基于八叉树的层级结构进行变换,具体是由八叉树的根节点自上向下进行RAHT反变换,对于每一层中的节点分别从x、y、z三个维度进行RAHT反变换,直至反变换至八叉树的叶子节点。In the embodiment of the present application, the slice identification information (sliceID) of the current block can be used to indicate the current slice. The current slice is determined by the slice division of the current point cloud. For the current slice, the geometric information of the current slice is decomposed into an octree and transformed based on the hierarchical structure of the octree. Specifically, the RAHT inverse transformation is performed from top to bottom on the root node of the octree, and the RAHT inverse transformation is performed on the nodes in each layer from the three dimensions of x, y, and z until the inverse transformation reaches the leaf node of the octree.
在一些实施例中,该方法还包括:在当前层为至少一个变换层中的第L-1层时,对第L-1层中的当前块的变换系数进行区域自适应分层反变换,确定第L层中的节点的重建属性信息;其中,L为正整数。In some embodiments, the method further includes: when the current layer is the L-1th layer in at least one transformation layer, performing a region-adaptive hierarchical inverse transformation on the transformation coefficients of the current block in the L-1th layer to determine the reconstruction attribute information of the nodes in the Lth layer; wherein L is a positive integer.
在一些实施例中,该方法还包括:解码码流,确定根节点的低频系数值。也就是说,码流中写入有根节点的低频系数值和每一层的高频系数残差值,以便解码端能够进行区域自适应分层反变换。In some embodiments, the method further includes decoding the bitstream to determine the low-frequency coefficient value of the root node. In other words, the low-frequency coefficient value of the root node and the residual value of the high-frequency coefficient of each layer are written into the bitstream so that the decoding end can perform region-adaptive layered inverse transform.
在本申请实施例中,对第L-1层中的当前块的变换系数进行区域自适应分层反变换,确定第L层中的节点的重建属性信息,具体可以包括:在当前层为第一变换层时,根据根节点的低频系数值和第一层中的当前块的高频系数值进行区域自适应分层反变换,确定第二变换层中的节点的重建属性信息;在当前层为非第一变换层时,确定当前层中的当前块的直流系数值,根据当前层中的当前块的直流系数值和当前层中的当前块的交流系数值进行区域自适应分层反变换,确定下一层中的节点的重建属性信息。In an embodiment of the present application, a regional adaptive hierarchical inverse transform is performed on the transform coefficients of the current block in the L-1 layer to determine the reconstruction attribute information of the nodes in the L layer. Specifically, it may include: when the current layer is the first transform layer, performing a regional adaptive hierarchical inverse transform based on the low-frequency coefficient value of the root node and the high-frequency coefficient value of the current block in the first layer to determine the reconstruction attribute information of the nodes in the second transform layer; when the current layer is not the first transform layer, determining the DC coefficient value of the current block in the current layer, performing a regional adaptive hierarchical inverse transform based on the DC coefficient value of the current block in the current layer and the AC coefficient value of the current block in the current layer to determine the reconstruction attribute information of the nodes in the next layer.
也就是说,在本申请实施例中,对于当前片的属性信息可以是沿着八叉树分解自上向下的方式进行RAHT反变换,对于每一层中的节点分别从x、y、z三个维度进行RAHT反变换,直至变换至八叉树的叶子节点。在分层变换的过程中,将同层(第L-1层)节点的DC系数与AC系数进行RAHT反变换得到下一层(第L层)的DC系数,即得到每一层的属性信息。其中,变换矩阵会随着各点对应的权重自适应变化更新。上述过程会依据八叉树的划分结构不断迭代更新,直至八叉树的叶子节点。That is to say, in an embodiment of the present application, the attribute information of the current slice can be subjected to RAHT inverse transformation in a top-down manner along the octree decomposition, and the nodes in each layer are subjected to RAHT inverse transformation from the three dimensions of x, y, and z respectively, until the leaf nodes of the octree are transformed. In the process of hierarchical transformation, the DC coefficient and AC coefficient of the node in the same layer (L-1 layer) are subjected to RAHT inverse transformation to obtain the DC coefficient of the next layer (L layer), that is, the attribute information of each layer is obtained. Among them, the transformation matrix will be updated as the weights corresponding to each point change adaptively. The above process will be continuously iterated and updated according to the division structure of the octree until the leaf nodes of the octree.
示例性地,假设g′L-1,2x,y,z为第L-1层中属性DC系数,f′L-1,2x,y,z为第L-1层中属性AC系数,那么对于第L层中属性DC系数,RAHT反变换的计算公式为:
For example, assuming that g′ L-1,2x,y,z is the attribute DC coefficient in the L-1 layer, and f′ L-1,2x,y,z is the attribute AC coefficient in the L-1 layer, then for the attribute DC coefficient in the L-1 layer, the calculation formula for the RAHT inverse transform is:
基于RAHT反变换,可以确定出当前片的重建属性信息。Based on the inverse RAHT transform, the reconstruction attribute information of the current slice can be determined.
本申请实施例提供了一种解码方法,具体是一种点云快速帧间属性变换的解码方案。确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;解码码流,确定当前块的变换系数残差值;根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。也就是说,在当前块进行变换域的帧间预测时,这时候可以根据当前块的参考块来确定当前块的变换系数预测值。其中,参考块可以是基于参考点云划分的片(slice)进行变换运算的,而不是基于参考点云的整帧进行变换运算,降低了时间复杂度;而且参考块的变换系数可以存储在内存模块中,这样在需要使用该参考块的变换系数时可以直接从内存模块中获取,进一步降低了时间复杂度,从而提高了点云的属性编解码效率,进而提升点云的编解码性能。 The embodiment of the present application provides a decoding method, specifically a decoding scheme for fast inter-frame attribute transformation of point clouds. Determine the prediction mode identification information of the current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determine the transform coefficient prediction value of the current block based on the reference block of the current block; decode the code stream to determine the transform coefficient residual value of the current block; determine the transform coefficient of the current block based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block. That is, when the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined based on the reference block of the current block. Among them, the reference block can be transformed based on the slices divided by the reference point cloud, rather than based on the entire frame of the reference point cloud, which reduces the time complexity; and the transform coefficient of the reference block can be stored in the memory module, so that when the transform coefficient of the reference block is needed, it can be directly obtained from the memory module, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and thus improving the encoding and decoding performance of the point cloud.
在本申请的一实施例中,图19为本申请实施例提供的一种编码方法的流程示意图。如图19所示,该方法可以包括:In one embodiment of the present application, FIG19 is a flow chart of an encoding method provided by the embodiment of the present application. As shown in FIG19 , the method may include:
S1901,确定当前块的预测模式标识信息。S1901, determine prediction mode identification information of the current block.
需要说明的是,本申请实施例的编码方法应用于编码器,该编码方法具体是指一种点云属性的变换域预测(transform domain prediction)方法。其中,当前块的变换域预测可以包括变换域的帧间预测和变换域的帧内预测。在当前块进行变换域的帧间预测时,能够降低时间复杂度。It should be noted that the encoding method in the embodiments of the present application is applied to an encoder and specifically refers to a transform domain prediction method for point cloud attributes. The transform domain prediction of the current block may include inter-frame prediction and intra-frame prediction in the transform domain. When the transform domain inter-frame prediction is performed on the current block, time complexity can be reduced.
还需要说明的是,在本申请实施例中,当前块可以为当前点云中待进行编码的变换块。It should also be noted that, in the embodiment of the present application, the current block may be a transformed block to be encoded in the current point cloud.
在本申请实施例中,可以在码流中写入一些语法元素形式的模式指示信息(或者是模式标志位)。这样,通过解析码流中语法元素的取值,就能够确定出当前块的预测模式标识信息。示例性地,第一语法元素可以用于指示当前块的预测模式标识信息。如此,确定第一语法元素的取值;对第一语法元素的取值进行编码处理,将所得到的编码比特写入码流。In an embodiment of the present application, mode indication information (or mode flags) in the form of some syntax elements can be written into the bitstream. Thus, by parsing the values of the syntax elements in the bitstream, the prediction mode identification information for the current block can be determined. For example, the first syntax element can be used to indicate the prediction mode identification information for the current block. Thus, the value of the first syntax element is determined; the value of the first syntax element is encoded, and the resulting encoded bits are written into the bitstream.
在本申请实施例中,若当前块进行变换域的帧间预测,则确定第一语法元素的取值为第一值;若当前块进行变换域的帧内预测,则确定第一语法元素的取值为第二值。其中,第一值与第二值不同。例如第一值可以为1,第二值可以为0;或者,第一值可以为真(true),第二值可以为假(false)。In an embodiment of the present application, if the current block performs inter-frame prediction in the transform domain, the value of the first syntax element is determined to be a first value; if the current block performs intra-frame prediction in the transform domain, the value of the first syntax element is determined to be a second value. The first value and the second value are different. For example, the first value can be 1 and the second value can be 0; or the first value can be true and the second value can be false.
考虑到码流中的比特开销,本申请实施例也可以不在码流中写入第一语法元素。在一些实施例中,对于当前块的预测模式标识信息来说,该方法还可以包括:若参考点云中存在与当前块满足预设帧间条件的参考块,则确定预测模式标识信息指示当前块进行变换域的帧间预测;若参考点云中不存在与当前块满足预设帧间条件的参考块,则确定预测模式标识信息指示当前块进行变换域的帧内预测。Considering the bit overhead in the bitstream, embodiments of the present application may also not write the first syntax element into the bitstream. In some embodiments, for the prediction mode identification information of the current block, the method may further include: if there is a reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.
也就是说,在本申请实施例中,对于当前块的预测模式标识信息的确定,可以是通过码流中的第一语法元素来确定,或者也可以根据当前块在参考点云中是否寻找到帧间参考块作为预测模式标识信息的判断条件,或者还可以是其他的判断条件,这里不作具体限定。That is to say, in the embodiment of the present application, the prediction mode identification information of the current block can be determined by the first syntax element in the code stream, or it can be determined based on whether the current block finds an inter-frame reference block in the reference point cloud as a judgment condition for the prediction mode identification information, or it can be other judgment conditions, which are not specifically limited here.
示例性地,在根据当前块在参考点云中是否寻找到帧间参考块作为预测模式标识信息的判断条件时,如果当前块在参考点云中能够寻找到满足预设帧间条件的参考块,那么可以确定当前块进行变换域的帧间预测;如果当前块在参考点云中寻找不到满足预设帧间条件的参考块,那么可以确定当前块进行变换域的帧内预测。在这里,参考点云为当前块所在的当前点云的参考帧。For example, when the prediction mode identification information is determined based on whether the current block finds an inter-frame reference block in the reference point cloud, if the current block can find a reference block that meets the preset inter-frame condition in the reference point cloud, then it can be determined that the current block performs inter-frame prediction in the transform domain; if the current block cannot find a reference block that meets the preset inter-frame condition in the reference point cloud, then it can be determined that the current block performs intra-frame prediction in the transform domain. Here, the reference point cloud is the reference frame of the current point cloud where the current block is located.
S1902,在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值。S1902 : When the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determine a transform coefficient prediction value of the current block according to a reference block of the current block.
在本申请实施例中,如果当前块进行变换域的帧间预测,那么首先确定当前块的参考块,然后根据当前块的参考块来确定当前块的变换系数预测值。In the embodiment of the present application, if the current block performs inter-frame prediction in the transform domain, a reference block of the current block is first determined, and then a transform coefficient prediction value of the current block is determined based on the reference block of the current block.
在一些实施例中,该方法可以包括:根据参考点云中的片标识信息,确定当前块的参考块。In some embodiments, the method may include: determining a reference block of the current block based on the slice identification information in the reference point cloud.
需要说明的是,在本申请实施例中,对参考点云进行片(slice)划分,可以得到参考点云的至少一个片,这至少一个片中包括参考块所在的参考片。It should be noted that, in the embodiment of the present application, the reference point cloud is divided into slices to obtain at least one slice of the reference point cloud, and the at least one slice includes the reference slice where the reference block is located.
还需要说明的是,在本申请实施例中,这里的片标识(sliceID)可以用于指示参考片。这样,根据片标识信息指示的参考片,可以从中确定出当前块的参考块。It should also be noted that, in the embodiment of the present application, the slice ID (sliceID) here can be used to indicate a reference slice. Thus, the reference block of the current block can be determined from the reference slice indicated by the slice ID information.
也就是说,在本申请实施例中,对于当前块的参考块来说,这里是基于参考点云划分的slice进行变换运算的,而非是基于参考点云所在的整帧进行变换运算的。具体如图15所示,参考点云可以划分为至少两个片,例如slice1-ref1和slice2-ref2。对于slice1-ref1进行变换,可以得到RAHT变换层ref-1,而RAHT变换层ref-1可以包括RAHT变换块ref1-1、RAHT变换块ref1-2等;对于slice2-ref2进行变换,可以得到RAHT变换层ref-2,而RAHT变换层ref-2可以包括RAHT变换块ref2-1、RAHT变换块ref2-2等。这样,通过避免参考点云所在的整帧进行RAHT变换,可以降低时间复杂度;而且还可以对slice级的变换系数进行保留,由于当前点云的RAHT变换是根据slice级进行的帧间预测,利用slice级的变换系数作为参考,可以提高帧间预测的准确度;同时还可以自适应的选择参考点云的某些slice用作帧间预测,某些slice不用作帧间预测,从而还能够提高预测的灵活性,节省内存。That is to say, in the embodiment of the present application, for the reference block of the current block, the transformation operation is performed based on the slice divided by the reference point cloud, rather than the transformation operation based on the entire frame where the reference point cloud is located. As shown in Figure 15, the reference point cloud can be divided into at least two slices, such as slice1-ref1 and slice2-ref2. For slice1-ref1, a RAHT transformation layer ref-1 can be obtained, and the RAHT transformation layer ref-1 can include RAHT transformation block ref1-1, RAHT transformation block ref1-2, etc.; for slice2-ref2, a RAHT transformation layer ref-2 can be obtained, and the RAHT transformation layer ref-2 can include RAHT transformation block ref2-1, RAHT transformation block ref2-2, etc. In this way, by avoiding RAHT transformation of the entire frame where the reference point cloud is located, the time complexity can be reduced; and the slice-level transformation coefficients can be retained. Since the RAHT transform of the current point cloud is based on the inter-frame prediction at the slice level, the accuracy of the inter-frame prediction can be improved by using the slice-level transformation coefficients as a reference; at the same time, certain slices of the reference point cloud can be adaptively selected for inter-frame prediction, and certain slices are not used for inter-frame prediction, thereby improving the flexibility of the prediction and saving memory.
在一些实施例中,对于确定当前块的参考块,该方法还可以包括:若参考点云中存在的候选参考块与当前块满足预设帧间条件,则将候选参考块确定为当前块的参考块。In some embodiments, for determining the reference block of the current block, the method may further include: if the candidate reference block existing in the reference point cloud and the current block meet a preset inter-frame condition, determining the candidate reference block as the reference block of the current block.
在本申请实施例中,如果当前块在参考点云中能够寻找到帧间参考块,即与当前块满足预设帧间条件的候选参考块,那么这时候的当前块进行变换域的帧间预测,而且将寻找到的候选参考块作为当前块的参考块。其中,对于寻找的候选参考块与当前块是否满足预设帧间条件,可以通过以下几种可能的实现方式来确定。In the embodiment of the present application, if an inter-frame reference block can be found in the reference point cloud for the current block, that is, a candidate reference block that satisfies a preset inter-frame condition with the current block, then the current block is subjected to transform-domain inter-frame prediction, and the found candidate reference block is used as the reference block for the current block. Whether the found candidate reference block satisfies the preset inter-frame condition with the current block can be determined through the following possible implementations.
在一种可能的实现方式中,参考点云中存在的候选参考块与当前块满足预设帧间条件,可以包括:候选参考块的坐标信息与当前块的坐标信息相同且候选参考块所在的片标识信息与当前块所在的片标 识信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同。In a possible implementation, the candidate reference block in the reference point cloud and the current block meet the preset inter-frame condition, which may include: the coordinate information of the candidate reference block is the same as the coordinate information of the current block and the slice identification information of the candidate reference block is the same as the slice identification information of the current block. The identification information is the same and the transform layer information of the candidate reference block is the same as the current layer information of the current block.
在另一种可能的实现方式中,参考点云中存在的候选参考块与当前块满足预设帧间条件,可以包括:候选参考块的父变换块的坐标信息与当前块的父变换块的坐标信息相同且候选参考块所在的片标识信息与当前块所在的片标识信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同。In another possible implementation, the candidate reference block existing in the reference point cloud and the current block meet the preset inter-frame conditions, which may include: the coordinate information of the parent transform block of the candidate reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information where the candidate reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.
在本申请实施例中,坐标信息可以包括几何位置(x,y,z)信息和莫顿码信息等。另外,在本申请实施例中,根据候选参考块的坐标信息和候选参考块所在的片标识信息能够确定出候选参考块的绝对坐标信息,而根据候选参考块的父变换块的坐标信息和候选参考块所在的片标识信息能够确定出候选参考块的父变换块的绝对坐标信息。In the embodiment of the present application, the coordinate information may include geometric position (x, y, z) information and Morton code information, etc. In addition, in the embodiment of the present application, the absolute coordinate information of the candidate reference block can be determined based on the coordinate information of the candidate reference block and the slice identification information where the candidate reference block is located, and the absolute coordinate information of the parent transform block of the candidate reference block can be determined based on the coordinate information of the parent transform block of the candidate reference block and the slice identification information where the candidate reference block is located.
在又一种可能的实现方式中,参考点云中存在的候选参考块与当前块满足预设帧间条件,可以包括:候选参考块的绝对坐标信息与当前块的绝对坐标信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同。In another possible implementation, the candidate reference block in the reference point cloud and the current block meet a preset inter-frame condition, which may include: the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transformation layer information of the candidate reference block is the same as the current layer information of the current block.
在又一种可能的实现方式中,参考点云中存在的候选参考块与当前块满足预设帧间条件,可以包括:候选参考块的父变换块的绝对坐标信息与当前块的父变换块的绝对坐标信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同。In another possible implementation, the candidate reference block in the reference point cloud and the current block meet a preset inter-frame condition, which may include: the absolute coordinate information of the parent transform block of the candidate reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.
在本申请实施例中,候选参考块的绝对坐标信息可以是根据候选参考块的坐标信息与候选参考块所在的片标识信息(sliceID)共同确定的。In an embodiment of the present application, the absolute coordinate information of the candidate reference block may be determined based on the coordinate information of the candidate reference block and the slice identification information (sliceID) where the candidate reference block is located.
在一些实施例中,对于候选参考块的绝对坐标信息,该方法可以包括:确定候选参考块的坐标信息;根据候选参考块的坐标信息以及候选参考块所在的片标识信息相对于原点的坐标偏移信息,能够确定候选参考块的绝对坐标信息。具体地,可以是候选参考块的坐标信息加上候选参考块所在的片标识信息相对于原点的坐标偏移信息,能够得到候选参考块的绝对坐标信息。In some embodiments, for the absolute coordinate information of the candidate reference block, the method may include: determining the coordinate information of the candidate reference block; and determining the absolute coordinate information of the candidate reference block based on the coordinate information of the candidate reference block and coordinate offset information of the slice identification information where the candidate reference block is located relative to the origin. Specifically, the absolute coordinate information of the candidate reference block may be obtained by adding the coordinate information of the candidate reference block to the coordinate offset information of the slice identification information where the candidate reference block is located relative to the origin.
还需要说明的是,对于候选参考块与当前块满足预设帧间条件,这里的预设帧间条件可以是上述的几种可能的实现方式,也可以是其他能够用来寻找帧间参考块的条件,这里不作任何限定。It should also be noted that for the candidate reference block and the current block to meet the preset inter-frame conditions, the preset inter-frame conditions here can be the several possible implementation methods mentioned above, or other conditions that can be used to find inter-frame reference blocks. No limitation is made here.
这样,对于在参考点云中寻找到的参考块,具体可以包括:参考块的坐标信息与当前块的坐标信息相同且参考块所在的片标识信息与当前块所在的片标识信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同;或者,参考块的父变换块的坐标信息与当前块的父变换块的坐标信息相同且参考块所在的片标识信息与当前块所在的片标识信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同;或者,参考块的绝对坐标信息与当前块的绝对坐标信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同;或者,参考块的父变换块的绝对坐标信息与当前块的父变换块的绝对坐标信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同等等,这里不作任何限定。In this way, for the reference block found in the reference point cloud, it may specifically include: the coordinate information of the reference block is the same as the coordinate information of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the coordinate information of the parent transformation block of the reference block is the same as the coordinate information of the parent transformation block of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block; or, the absolute coordinate information of the parent transformation block of the reference block is the same as the absolute coordinate information of the parent transformation block of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block, etc., without any limitation here.
还需要说明的是,在本申请实施例中,对于参考块的绝对坐标信息来说,可以是确定参考块的坐标信息,然后根据参考块的坐标信息以及参考块所在的片标识信息相对于原点的坐标偏移信息共同确定的;对于参考块的父变换块的绝对坐标信息来说,可以是确定参考块的父变换块的坐标信息,然后根据参考块的父变换块的坐标信息以及参考块所在的片标识信息相对于原点的坐标偏移信息共同确定的。It should also be noted that, in the embodiment of the present application, for the absolute coordinate information of the reference block, the coordinate information of the reference block can be determined, and then jointly determined based on the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin; for the absolute coordinate information of the parent transformation block of the reference block, the coordinate information of the parent transformation block of the reference block can be determined, and then jointly determined based on the coordinate information of the parent transformation block of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.
可以理解地,在确定当前块的参考块之后,根据当前块的参考块,确定当前块的变换系数预测值,具体可以包括:根据参考块的变换系数,确定当前块的变换系数预测值。It can be understood that after determining the reference block of the current block, determining the transformation coefficient prediction value of the current block according to the reference block of the current block may specifically include: determining the transformation coefficient prediction value of the current block according to the transformation coefficient of the reference block.
在一种具体的实施例中,在当前块进行变换域的帧间预测时,该方法可以包括:基于片标识信息指示的参考片,确定参考片的属性信息;对参考片的属性信息进行区域自适应分层变换,确定至少一个变换层的变换系数;从至少一个变换层的变换系数中,确定参考块的变换系数;根据参考块的变换系数,确定当前块的变换系数预测值。In a specific embodiment, when inter-frame prediction in the transform domain is performed on the current block, the method may include: determining attribute information of the reference slice based on the reference slice indicated by the slice identification information; performing a region-adaptive hierarchical transform on the attribute information of the reference slice to determine the transform coefficients of at least one transform layer; determining the transform coefficients of the reference block from the transform coefficients of at least one transform layer; and determining a predicted value of the transform coefficient of the current block based on the transform coefficients of the reference block.
在本申请实施例中,为了降低时间复杂度,在确定参考块的变换系数时,可以是基于参考点云划分的slice(即参考片)进行RAHT变换得到的,而非是基于参考点云的整帧进行RAHT变换得到的。这样,可以对slice级的变换系数进行保留,由于当前点云的RAHT变换是根据slice级进行的帧间预测,利用slice级的变换系数作为参考,可以更加准确得到当前块的变换系数预测值,提高了帧间预测的准确度;同时还可以自适应的选择参考点云的某些slice用作帧间预测,某些slice不用作帧间预测,从而还能够提高预测的灵活性,节省内存。In an embodiment of the present application, in order to reduce time complexity, when determining the transform coefficients of the reference block, the RAHT transform can be performed on the slices (i.e., reference slices) divided based on the reference point cloud, rather than on the entire frame of the reference point cloud. In this way, the transform coefficients at the slice level can be retained. Since the RAHT transform of the current point cloud is based on the inter-frame prediction performed at the slice level, the transform coefficient prediction value of the current block can be obtained more accurately by using the transform coefficients at the slice level as a reference, thereby improving the accuracy of the inter-frame prediction. At the same time, certain slices of the reference point cloud can be adaptively selected for inter-frame prediction, while certain slices are not used for inter-frame prediction, thereby improving the flexibility of the prediction and saving memory.
也就是说,在本申请实施例中,参考块的变换系数可以是由参考点云划分的slice(即参考片)进行RAHT变换确定的。具体地,通过对参考片的属性信息进行RAHT变换,可以确定至少一个变换层的变换系数。其中,每一个变换层可以包括至少一个变换块,从中获取参考块的变换系数;然后将参考块的变换系数作为当前块的变换系数预测值。That is, in the embodiment of the present application, the transform coefficients of the reference block can be determined by performing a RAHT transform on the slices (i.e., reference slices) divided by the reference point cloud. Specifically, by performing a RAHT transform on the attribute information of the reference slice, the transform coefficients of at least one transform layer can be determined. Each transform layer can include at least one transform block, from which the transform coefficients of the reference block are obtained; and then the transform coefficients of the reference block are used as the transform coefficient prediction values of the current block.
在另一种具体的实施例中,对于参考块的变换系数来说,该方法可以包括:确定参考块的变换系数残差值;对参考块的变换系数残差值进行量化,确定参考块的量化系数残差值;对参考块的量化系数残差值进行反量化,确定参考块的重建变换系数残差值;根据参考块的变换系数预测值和参考块的重建变 换系数残差值,确定参考块的变换系数。In another specific embodiment, for the transform coefficients of the reference block, the method may include: determining the transform coefficient residual value of the reference block; quantizing the transform coefficient residual value of the reference block to determine the quantized coefficient residual value of the reference block; inverse quantizing the quantized coefficient residual value of the reference block to determine the reconstructed transform coefficient residual value of the reference block; and performing a transform coefficient prediction on the reference block and the reconstructed transform coefficient residual value of the reference block according to the transform coefficient prediction value of the reference block and the reconstructed transform coefficient residual value of the reference block. The coefficient residual value is used to determine the transformation coefficient of the reference block.
在本申请实施例中,在参考块的变换系数需要进行预测时,这时候可以是确定参考块的变换系数残差值,然后对参考块的变换系数残差值进行量化与反量化,确定参考块的重建变换系数残差值;根据参考块的变换系数预测值和参考块的重建变换系数残差值,可以确定参考块的变换系数。In an embodiment of the present application, when the transform coefficients of a reference block need to be predicted, the transform coefficient residual values of the reference block can be determined, and then the transform coefficient residual values of the reference block are quantized and dequantized to determine the reconstructed transform coefficient residual values of the reference block; based on the transform coefficient prediction values of the reference block and the reconstructed transform coefficient residual values of the reference block, the transform coefficients of the reference block can be determined.
在本申请实施例中,在对参考块的变换系数残差值进行量化,确定参考块的量化系数残差值之后,该方法还可以包括:对参考块的量化系数残差值进行编码处理,将所得到的编码比特写入码流。In an embodiment of the present application, after quantizing the transform coefficient residual value of the reference block and determining the quantized coefficient residual value of the reference block, the method may further include: encoding the quantized coefficient residual value of the reference block and writing the obtained coded bits into the bitstream.
在又一种具体的实施例中,在参考块的变换系数不需要进行预测时,这时候可以直接将参考块的变换系数写入码流。具体地,可以是对参考块的变换系数进行量化,确定参考块的量化系数;然后对参考块的量化系数进行编码处理,将所得到的编码比特写入码流。In another specific embodiment, when the transform coefficients of the reference block do not need to be predicted, the transform coefficients of the reference block can be directly written into the bitstream. Specifically, the transform coefficients of the reference block can be quantized to determine the quantized coefficients of the reference block; then, the quantized coefficients of the reference block can be encoded, and the resulting coded bits can be written into the bitstream.
需要说明的是,在得到参考块的变换系数之后,可以将其保存到内存模块中。在一种具体的实施例中,该方法还可以包括:确定参考块的存储信息;将参考块的存储信息保存到内存模块中。其中,参考块的存储信息可以包括下述至少一项:参考块的变换系数、参考块的坐标信息、参考块所在的片标识信息和参考块所在的变换层信息。It should be noted that after obtaining the transform coefficients of the reference block, they can be stored in a memory module. In a specific embodiment, the method may further include: determining storage information of the reference block; and storing the storage information of the reference block in the memory module. The storage information of the reference block may include at least one of the following: the transform coefficients of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, and the transform layer information where the reference block is located.
还需要说明的是,在将参考块的存储信息保存到内存模块之后,在一些实施例中,在当前块进行变换域的帧间预测时,该方法可以包括:根据参考块在内存模块中对应的存储信息,确定参考块的变换系数;根据参考块的变换系数,确定当前块的变换系数预测值。It should also be noted that after the storage information of the reference block is saved to the memory module, in some embodiments, when the current block is subjected to inter-frame prediction in the transform domain, the method may include: determining the transform coefficient of the reference block based on the corresponding storage information of the reference block in the memory module; and determining the predicted value of the transform coefficient of the current block based on the transform coefficient of the reference block.
需要说明的是,在本申请实施例中,参考块对应的存储信息可以预先存储在内存模块中。如图15所示,基于参考点云划分的多个slice,内存模块中可以保留参考点云的多个RAHT变换层的信息。这样,在确定出当前块的参考块之后,可以根据参考块所在的sliceID从内存模块中快速获取参考块的变换系数,然后将参考块的变换系数作为当前块的变换系数预测值,从而能够进一步降低时间复杂度,并且使得帧间预测更加准确。It should be noted that, in an embodiment of the present application, the storage information corresponding to the reference block can be pre-stored in the memory module. As shown in Figure 15, based on the multiple slices divided by the reference point cloud, the memory module can retain information on multiple RAHT transformation layers of the reference point cloud. In this way, after determining the reference block of the current block, the transformation coefficients of the reference block can be quickly obtained from the memory module according to the sliceID where the reference block is located, and then the transformation coefficients of the reference block are used as the transformation coefficient prediction values of the current block, thereby further reducing the time complexity and making the inter-frame prediction more accurate.
在一些实施例中,参考块在内存模块中对应的存储信息,可以包括下述至少一项:参考块的变换系数、参考块的坐标信息、参考块所在的片标识信息、参考块所在的变换层信息和参考块的绝对坐标信息。In some embodiments, the storage information corresponding to the reference block in the memory module may include at least one of the following: the transformation coefficient of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, the transformation layer information where the reference block is located, and the absolute coordinate information of the reference block.
还需要说明的是,在本申请实施例中,参考块的绝对坐标信息可以是根据参考块的坐标信息与参考块所在的片标识信息共同确定的。在一些实施例中,对于参考块的绝对坐标信息来说,该方法可以包括:确定参考块的坐标信息;根据参考块的坐标信息以及参考块所在的片标识信息相对于原点的坐标偏移信息,确定参考块的绝对坐标信息。具体地,可以是参考块的坐标信息加上参考块所在的sliceID相对于原点的坐标偏移信息,能够得到参考块的绝对坐标信息。It should also be noted that, in embodiments of the present application, the absolute coordinate information of the reference block can be determined based on the coordinate information of the reference block and the slice ID information where the reference block is located. In some embodiments, for the absolute coordinate information of the reference block, the method may include: determining the coordinate information of the reference block; and determining the absolute coordinate information of the reference block based on the coordinate information of the reference block and the coordinate offset information of the slice ID where the reference block is located relative to the origin. Specifically, the absolute coordinate information of the reference block can be obtained by adding the coordinate information of the reference block to the coordinate offset information of the slice ID where the reference block is located relative to the origin.
还需要说明的是,在本申请实施例中,坐标信息可以包括几何位置(x,y,z)信息和莫顿码信息等。以参考块为例,参考块的坐标信息是指参考块在进行RAHT变换时的位置信息,参考块的绝对坐标信息是指参考块在参考帧中的绝对位置信息。It should also be noted that, in the embodiment of the present application, the coordinate information may include geometric position (x, y, z) information and Morton code information. Taking the reference block as an example, the coordinate information of the reference block refers to the position information of the reference block when the RAHT transform is performed, and the absolute coordinate information of the reference block refers to the absolute position information of the reference block in the reference frame.
这样,如果当前块进行变换域的帧间预测,那么在参考帧中寻找到满足预设帧间条件的参考块之后,根据参考块的变换系数,就可以确定出当前块的变换系数预测值。In this way, if the current block performs inter-frame prediction in the transform domain, after finding a reference block that meets the preset inter-frame condition in the reference frame, the transform coefficient prediction value of the current block can be determined based on the transform coefficient of the reference block.
在一些实施例中,在预测模式标识信息指示当前块进行变换域的帧内预测时,该方法还可以包括:确定当前块的相邻块的变换系数预测值、当前块的父变换块的变换系数预测值和父变换块的相邻块的变换系数预测值;对当前块的相邻块的变换系数预测值、当前块的父变换块的变换系数预测值和父变换块的相邻块的变换系数预测值进行加权运算,确定当前块的变换系数预测值。In some embodiments, when the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain, the method may further include: determining the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block; performing a weighted operation on the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.
也就是说,如果在参考点云中无法寻找到满足预设帧间条件的候选参考块,则确定当前块进行变换域的帧内预测,这时候可以所得到的帧内预测值作为当前块的变换系数预测值。其中,帧内预测值可以是由当前块的相邻块、当前块的父变换块和父变换块的相邻块各自的变换系数预测值进行加权计算得到。That is, if no candidate reference block that meets the preset inter-frame condition can be found in the reference point cloud, the current block is determined to be intra-predicted in the transform domain, and the resulting intra-prediction value can be used as the transform coefficient prediction value of the current block. The intra-prediction value can be obtained by weighted calculation of the transform coefficient prediction values of the neighboring blocks of the current block, the parent transform block of the current block, and the neighboring blocks of the parent transform block.
还需要说明的是,在本申请实施例中,变换系数可以包括低频系数和高频系数。其中,低频系数又可以称为直流系数或者DC系数,高频系数又可以称为交流系数或者AC系数。需要注意的是,这里的变换系数预测值主要是指当前块的高频系数预测值。It should also be noted that in the embodiments of the present application, transform coefficients may include low-frequency coefficients and high-frequency coefficients. The low-frequency coefficients may also be referred to as direct current coefficients or DC coefficients, and the high-frequency coefficients may also be referred to as alternating current coefficients or AC coefficients. It should be noted that the transform coefficient prediction values herein primarily refer to the high-frequency coefficient prediction values of the current block.
S1903,根据当前块的变换系数预测值,确定当前块的变换系数残差值。S1903 , determining a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block.
S1904,对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。S1904: Encode the transform coefficient residual value of the current block, and write the obtained coded bits into the bitstream.
在本申请实施例中,对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流,可以包括:对变换系数残差值进行量化,确定当前块的量化系数残差值;对当前块的量化系数残差值进行编码处理,将所得到的编码比特写入码流。In an embodiment of the present application, encoding the transform coefficient residual values of the current block and writing the obtained coded bits into the bitstream may include: quantizing the transform coefficient residual values to determine the quantized coefficient residual values of the current block; encoding the quantized coefficient residual values of the current block and writing the obtained coded bits into the bitstream.
在一些实施例中,该方法还可以包括:对当前块的量化系数残差值进行反量化,确定当前块的重建变换系数残差值;根据当前块的变换系数预测值和当前块的重建变换系数残差值,确定当前块的变换系数。具体地,可以是对当前块的变换系数预测值和当前块的重建变换系数残差值进行加法运算,可以得到当前块的变换系数。 In some embodiments, the method may further include: performing inverse quantization on the quantized coefficient residual values of the current block to determine the reconstructed transform coefficient residual values of the current block; and determining the transform coefficients of the current block based on the transform coefficient prediction values of the current block and the reconstructed transform coefficient residual values of the current block. Specifically, the transform coefficients of the current block may be obtained by adding the transform coefficient prediction values of the current block and the reconstructed transform coefficient residual values of the current block.
可以理解地,在本申请实施例中,该方法还包括:确定当前块的存储信息;将当前块的存储信息保存到内存模块中。It can be understood that in the embodiment of the present application, the method further includes: determining the storage information of the current block; and saving the storage information of the current block into the memory module.
进一步地,在一些实施例中,该方法还包括:在当前块所在的当前点云满足用作参考点云的条件时,将当前块的存储信息保存到内存模块中。也就是说,在本申请实施例中,如果当前点云所在的帧有可能作为后续帧的参考帧,那么可以将当前块的存储信息保存到内存模块中;从而在后续进行变换域的帧间预测时,能够从内存模块中获取所需要的参考块的相关信息。Furthermore, in some embodiments, the method further includes: when the current point cloud containing the current block meets the conditions for being used as a reference point cloud, saving the storage information of the current block to a memory module. In other words, in embodiments of the present application, if the frame containing the current point cloud is likely to be used as a reference frame for subsequent frames, the storage information of the current block can be saved to the memory module; thereby, when performing subsequent transform domain inter-frame prediction, the required reference block related information can be obtained from the memory module.
还可以理解地,在本申请实施例中,当前块的存储信息可以包括下述至少一项:当前块的变换系数、当前块的坐标信息、当前块所在的片标识信息、当前块所在的当前层信息和当前块的绝对坐标信息。It can also be understood that in an embodiment of the present application, the storage information of the current block may include at least one of the following: the transformation coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, the current layer information where the current block is located, and the absolute coordinate information of the current block.
在一些实施例中,对于当前块的绝对坐标信息,该方法可以包括:确定当前块的坐标信息;根据当前块的坐标信息以及当前块所在的片标识信息相对于原点的坐标偏移信息,确定当前块的绝对坐标信息。In some embodiments, for the absolute coordinate information of the current block, the method may include: determining the coordinate information of the current block; determining the absolute coordinate information of the current block based on the coordinate information of the current block and the coordinate offset information of the slice identification information where the current block is located relative to the origin.
也就是说,在本申请实施例中,可以根据当前块的坐标信息与当前块所在的片标识信息相对于原点的坐标偏移信息进行加法运算,得到当前块的绝对坐标信息。这样,在查找参考块时,可以根据候选参考块的绝对坐标信息与当前块的绝对坐标信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同来确定出当前块的参考块,或者也可以根据候选参考块的父变换块的绝对坐标信息与当前块的父变换块的绝对坐标信息相同且候选参考块所在的变换层信息与当前块所在的当前层信息相同来确定出当前块的参考块等等,这里不作任何限定。That is to say, in an embodiment of the present application, the absolute coordinate information of the current block can be obtained by performing an addition operation based on the coordinate information of the current block and the coordinate offset information of the slice identification information where the current block is located relative to the origin. In this way, when searching for a reference block, the reference block of the current block can be determined based on the fact that the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transformation layer information where the candidate reference block is located is the same as the current layer information where the current block is located, or the reference block of the current block can be determined based on the fact that the absolute coordinate information of the parent transformation block of the candidate reference block is the same as the absolute coordinate information of the parent transformation block of the current block and the transformation layer information where the candidate reference block is located is the same as the current layer information where the current block is located, and so on. No limitation is made here.
在一些实施例中,该方法还可以包括:确定当前片的几何信息;对当前片的几何信息进行八叉树分解,确定至少一个变换层;其中,至少一个变换层包括当前块所在的当前层。In some embodiments, the method may further include: determining geometric information of the current slice; performing octree decomposition on the geometric information of the current slice to determine at least one transformation layer; wherein the at least one transformation layer includes the current layer where the current block is located.
在本申请实施例中,根据当前块所在的片标识信息(sliceID),可以用于指示当前片。其中,当前片是由当前点云进行片划分确定的。对于当前片来说,通过对当前片的几何信息进行八叉树分解,基于八叉树的层级结构进行变换,具体是由八叉树的根节点自上向下进行RAHT反变换,对于每一层中的节点分别从x、y、z三个维度进行RAHT反变换,直至反变换至八叉树的叶子节点。In the embodiment of the present application, the slice identification information (sliceID) of the current block can be used to indicate the current slice. The current slice is determined by the slice division of the current point cloud. For the current slice, the geometric information of the current slice is decomposed into an octree and transformed based on the hierarchical structure of the octree. Specifically, the RAHT inverse transformation is performed from top to bottom on the root node of the octree, and the RAHT inverse transformation is performed on the nodes in each layer from the three dimensions of x, y, and z until the inverse transformation reaches the leaf node of the octree.
在一些实施例中,该方法还可以包括:在当前层为至少一个变换层中的第L-1层时,确定第L层中的节点的低频系数值,并根据第L层中的节点的低频系数值进行区域自适应分层变换,确定第L-1层中的节点的低频系数值和高频系数原始值,直至确定出当前点云的根节点的低频系数值和高频系数原始值;其中,L为正整数。In some embodiments, the method may further include: when the current layer is the L-1th layer in at least one transformation layer, determining the low-frequency coefficient values of the nodes in the Lth layer, and performing regional adaptive hierarchical transformation based on the low-frequency coefficient values of the nodes in the Lth layer, determining the low-frequency coefficient values and the original values of the high-frequency coefficients of the nodes in the L-1th layer, until the low-frequency coefficient values and the original values of the high-frequency coefficients of the root node of the current point cloud are determined; wherein L is a positive integer.
在本申请实施例中,根据当前块的变换系数预测值,确定当前块的变换系数残差值,可以包括:确定当前层中的当前块的高频系数原始值;根据当前块的高频系数原始值和当前块的高频系数预测值,确定当前块的高频系数残差值。如此,在一些实施例中,该方法还包括:对当前块的高频系数残差值进行编码处理,将所得到的编码比特写入码流。In an embodiment of the present application, determining the transform coefficient residual value of the current block based on the transform coefficient prediction value of the current block may include: determining the original high-frequency coefficient values of the current block in the current layer; and determining the high-frequency coefficient residual value of the current block based on the original high-frequency coefficient values of the current block and the high-frequency coefficient prediction value of the current block. Thus, in some embodiments, the method further includes: encoding the high-frequency coefficient residual value of the current block and writing the resulting coded bits into the bitstream.
在本申请实施例中,在得到当前点云的根节点的低频系数值之后,该方法还可以包括:对根节点的低频系数值进行编码处理,将所得到的编码比特写入码流。In an embodiment of the present application, after obtaining the low-frequency coefficient value of the root node of the current point cloud, the method may further include: encoding the low-frequency coefficient value of the root node and writing the obtained encoding bits into the bitstream.
也就是说,在本申请实施例中,码流中可以写入根节点的低频系数值和每一层的高频系数残差值,从而后续在解码端能够实现RAHT反变换,以恢复出当前点云的重建属性信息。That is to say, in an embodiment of the present application, the low-frequency coefficient value of the root node and the high-frequency coefficient residual value of each layer can be written into the code stream, so that the RAHT inverse transform can be implemented at the decoding end to restore the reconstructed attribute information of the current point cloud.
还需要说明的是,在本申请实施例中,对于所得到的变换层,利用点云的属性信息将同层(第L层)节点变换之后得到的DC系数传递到下一层(第L-1层)的节点继续进行变换。变换矩阵会随着各点对应的权重自适应变化更新。上述过程会依据八叉树的划分结构不断迭代更新,直至八叉树的根节点。其中,将根节点的DC系数与所有的AC系数统称为变换系数。It should also be noted that in the embodiment of the present application, for the obtained transformation layer, the DC coefficient obtained after the transformation of the nodes in the same layer (layer L) is transferred to the nodes in the next layer (layer L-1) for further transformation using the attribute information of the point cloud. The transformation matrix will be updated as the weights corresponding to each point change adaptively. The above process will be continuously iterated and updated according to the division structure of the octree until the root node of the octree. Among them, the DC coefficient of the root node and all AC coefficients are collectively referred to as transformation coefficients.
具体地,假设g′L,2x,y,z和g′L,2x+1,y,z为第L层中互为近邻点的两个属性DC系数。经过线性变换后,第L-1层的信息为AC系数f′L-1,x,y,z和DC系数g′L-1,x,y,z;然后,f′L-1,x,y,z将不再进行变换,直接进行量化编码,g′L-1,x,y,z将继续寻找近邻进行变换,如果寻找不到,则将其直接传递至第L-2层,即RAHT变换仅对存在邻居点的节点有效,没有邻居点的节点将直接传递至上一层。在上述变换过程中,g′L,2x,y,z和g′L,2x+1,y,z对应的权重(该节点内非空子节点的个数)分别为w′L,2x,y,z和w′L,2x+1,y,z(简写为w′0和w′1),g′L-1,x,y,z的权重为w′L-1,x,y,z,那么RAHT变换公式为:
Specifically, assume that g′ L,2x,y,z and g′ L,2x+1,y,z are the attribute DC coefficients of two neighboring nodes in layer L. After linear transformation, the information in layer L-1 is the AC coefficient f′ L-1,x,y,z and the DC coefficient g′ L-1,x,y,z . Then, f′ L-1,x,y,z is directly quantized and encoded without further transformation. g′ L-1,x,y,z will continue to search for neighboring nodes for transformation. If no neighboring nodes are found, they will be directly passed to layer L-2. In other words, the RAHT transform is only effective for nodes with neighboring nodes; nodes without neighboring nodes are directly passed to the previous layer. In the above transformation process, the weights (the number of non-empty child nodes in the node) corresponding to g′ L,2x,y,z and g′ L,2x+1,y ,z are w′ L,2x,y,z and w′ L,2x+1,y,z (abbreviated as w′ 0 and w′ 1 ) respectively, and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z . Then the RAHT transformation formula is:
基于RAHT变换可以确定出当前块的变换系数,具体为变换系数原始值。然后根据该当前块的变换系数原始值和当前块的变换系数预测值,可以计算出当前块的变换系数残差值。Based on the RAHT transform, the transform coefficients of the current block, specifically the original values of the transform coefficients, can be determined. Then, based on the original values of the transform coefficients of the current block and the predicted values of the transform coefficients of the current block, the transform coefficient residual values of the current block can be calculated.
本申请实施例提供了一种编码方法,具体是一种点云快速帧间属性变换的编码方案。确定当前块的 预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;根据当前块的变换系数预测值,确定当前块的变换系数残差值;对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。也就是说,在当前块进行变换域的帧间预测时,这时候可以根据当前块的参考块来确定当前块的变换系数预测值。其中,参考块可以是基于参考点云划分的片(slice)进行变换运算的,而不是基于参考点云的整帧进行变换运算,降低了时间复杂度;而且参考块的变换系数可以存储在内存模块中,这样在需要使用该参考块的变换系数时可以直接从内存模块中获取,进一步降低了时间复杂度,从而提高了点云的属性编编码效率,进而提升点云的编编码性能。The embodiment of the present application provides a coding method, specifically a coding scheme for fast inter-frame attribute transformation of point clouds. Prediction mode identification information; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the transform coefficient residual value of the current block is determined based on the transform coefficient prediction value of the current block; the transform coefficient residual value of the current block is encoded, and the obtained coded bits are written into the bitstream. In other words, when the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined based on the reference block of the current block. The reference block can be transformed based on slices divided by the reference point cloud, rather than based on the entire frame of the reference point cloud, thereby reducing time complexity; and the transform coefficients of the reference block can be stored in a memory module, so that when the transform coefficients of the reference block are needed, they can be directly obtained from the memory module, further reducing time complexity, thereby improving the attribute encoding efficiency of the point cloud, and thus improving the encoding performance of the point cloud.
在本申请的又一实施例中,基于前述实施例所述的编解码方法,本技术方案提出将可能的参考点云解码后的几何信息和变换系数缓存到内存模块(buffer)中供以后作为参考帧使用。这样,通过避免参考帧必须重复再做一次八叉树分解和RAHT变换,能够降低时间复杂度,同时还可以保留参考帧多个RAHT变换层的信息进行帧间预测。In another embodiment of the present application, based on the encoding and decoding methods described in the previous embodiments, this technical solution proposes caching the decoded geometric information and transform coefficients of possible reference point clouds in a memory module (buffer) for later use as reference frames. This reduces time complexity by avoiding the need to repeatedly perform octree decomposition and RAHT transformation on the reference frame, while also retaining information from multiple RAHT transform layers of the reference frame for inter-frame prediction.
在本申请实施例中,图15为本申请实施例提供的一种帧间预测变换的逻辑结构示意图。如图15所示,参考点云可以划分为至少两个slice,从而在RAHT变换时能够基于划分的slice进行变换,而不是基于整帧进行变换,降低时间复杂度,而且能够保留参考帧多个RAHT变换层的信息进行帧间预测。In an embodiment of the present application, Figure 15 is a schematic diagram of the logical structure of an inter-frame prediction transformation provided by an embodiment of the present application. As shown in Figure 15, the reference point cloud can be divided into at least two slices, so that during RAHT transformation, the transformation can be performed based on the divided slices rather than the entire frame, reducing time complexity and retaining information from multiple RAHT transformation layers of the reference frame for inter-frame prediction.
在一种具体的实施例中,如图20所示,解码端的流程如下所示:In a specific embodiment, as shown in FIG20 , the process at the decoding end is as follows:
S201,解析码流。S201, parsing the code stream.
输入属性码流,解码得到量化后的变换系数残差值。Input the attribute code stream and decode it to obtain the quantized transform coefficient residual value.
S202,点云几何八叉树分解。S202, point cloud geometry octree decomposition.
对待解码点云的几何信息进行八叉树分解,基于八叉树的层级结构进行变换,对于每一层中的节点分别从x、y、z三个维度进行逆变换,直至逆变换至八叉树的叶子节点。The geometric information of the decoded point cloud is decomposed into an octree and transformed based on the hierarchical structure of the octree. The nodes in each layer are inversely transformed from the x, y, and z dimensions until they are inversely transformed to the leaf nodes of the octree.
S203,反量化。S203, dequantization.
对解码得到的量化后的变换系数残差值进行反量化,得到变换系数残差值。The decoded quantized transform coefficient residual value is inversely quantized to obtain a transform coefficient residual value.
根据在参考点云中能否找到帧间参考块,确定进入RAHT帧间预测或者RAHT帧内预测;将变换系数残差值加上变换系数预测值可以得到变换系数。Depending on whether an inter-frame reference block can be found in the reference point cloud, it is determined whether to enter RAHT inter-frame prediction or RAHT intra-frame prediction; the transform coefficient can be obtained by adding the transform coefficient residual value to the transform coefficient prediction value.
S204,RAHT帧间预测。S204, RAHT inter-frame prediction.
计算当前块的绝对几何位置(即前述的“绝对坐标信息”):当前块在进行变换的时候的位置为相对几何位置(即前述的“坐标信息”),可以通过计算得到当前块在当前帧的绝对几何位置,具体为当前块的绝对几何位置等于当前变换块的相对几何位置加上当前块所属的slice相对于原点的几何位置偏移;Calculate the absolute geometric position of the current block (i.e., the aforementioned "absolute coordinate information"): The position of the current block during transformation is a relative geometric position (i.e., the aforementioned "coordinate information"). The absolute geometric position of the current block in the current frame can be calculated. Specifically, the absolute geometric position of the current block is equal to the relative geometric position of the current transformed block plus the geometric position offset of the slice to which the current block belongs relative to the origin;
寻找帧间参考块:对于当前帧RAHT变换中的每个变换块在内存模块中寻找当前层的帧间预测变换块,以当前块为例,寻找参考帧中绝对几何位置与当前块的绝对几何位置相同且与当前块所在层数相同的变换块作为参考块,或者寻找参考帧中父变换块绝对几何位置与当前块的父变换块的绝对几何位置相同且与当前块所在层数相同的变换块作为参考块,或者寻找参考帧中几何位置与当前块的几何位置相同且与当前块所在层数相同且与当前块的sliceID相同的变换块作为参考块,或者寻找参考帧中父变换块几何位置与当前块的父变换块的几何位置相同且与当前块所在层数相同且与当前块的sliceID相同的变换块作为参考块。Find inter-frame reference blocks: For each transform block in the RAHT transform of the current frame, find the inter-frame prediction transform block of the current layer in the memory module. Taking the current block as an example, find a transform block in the reference frame whose absolute geometric position is the same as the absolute geometric position of the current block and the same layer number as the current block as the reference block, or find a transform block in the reference frame whose absolute geometric position is the same as the absolute geometric position of the parent transform block of the current block and the same layer number as the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as the geometric position of the current block, the same layer number as the current block and the same sliceID as the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as the geometric position of the parent transform block of the current block, the same layer number as the current block and the same sliceID as the current block as the reference block.
如果在内存模块中找到帧间参考块,那可以利用帧间参考块在内存模块中对应的变换系数作为当前块的变换系数预测值。If an inter-frame reference block is found in the memory module, the transform coefficient corresponding to the inter-frame reference block in the memory module can be used as the transform coefficient prediction value of the current block.
S205,RAHT帧内预测。S205, RAHT intra-frame prediction.
如果寻找不到帧间参考块,则利用帧内预测值作为当前块的变换系数预测值,其中,帧内预测值为当前块的相邻块、父变换块以及父变换块的相邻块进行加权预测得到。If no inter-frame reference block is found, the intra-frame prediction value is used as the transformation coefficient prediction value of the current block, wherein the intra-frame prediction value is obtained by weighted prediction of the neighboring blocks of the current block, the parent transformation block and the neighboring blocks of the parent transformation block.
S206,保存到内存模块。S206, saving to the memory module.
如果当前解码后的帧可能作为后续帧的参考帧,那么可以将当前块的变换系数、绝对几何位置、几何位置、sliceID、当前块所在RAHT变换层的层数信息等中的至少一项存入内存模块中,作为后续帧的帧间预测参考信息;否则直接进行RAHT反变换。If the currently decoded frame may be used as a reference frame for subsequent frames, at least one of the transform coefficient, absolute geometric position, geometric position, sliceID, and number of RAHT transform layers of the current block may be stored in the memory module as inter-frame prediction reference information for subsequent frames; otherwise, the RAHT inverse transform may be performed directly.
S207,RAHT反变换。S207, inverse RAHT transform.
根据所得的变换系数,对于点云的属性沿着八叉树分解自上向下的方式进行反变换,对于每一层中的节点分别从x、y、z三个维度进行反变换,直至变换至八叉树的叶子节点。在分层变换的过程中,将同层(第L-1层)节点的DC系数与AC系数进行反变换得到下一层(第L层)的DC系数。变换矩阵会随着各点对应的权重自适应变化更新。上述过程会依据八叉树的划分结构不断迭代更新,直至八叉树的叶子节点。假设g′L-1,2x,y,z为第L-1层中属性DC系数,f′L-1,2x,y,z为第L-1层中属性AC系数,那么RAHT 反变换的计算公式如式(3)和式(4)所示。最终可以得到点云属性。According to the obtained transformation coefficients, the attributes of the point cloud are inversely transformed along the octree decomposition from top to bottom, and the nodes in each layer are inversely transformed from the three dimensions of x, y, and z until they are transformed to the leaf nodes of the octree. In the process of hierarchical transformation, the DC coefficient and AC coefficient of the nodes in the same layer (L-1 layer) are inversely transformed to obtain the DC coefficient of the next layer (Lth layer). The transformation matrix will be updated as the weights corresponding to each point change adaptively. The above process will be iteratively updated according to the division structure of the octree until the leaf nodes of the octree. Assuming that g′ L-1,2x,y,z is the DC coefficient of the attribute in the L-1 layer, and f′ L-1,2x,y,z is the AC coefficient of the attribute in the L-1 layer, then RAHT The calculation formulas of the inverse transformation are shown in Equations (3) and (4). Finally, the point cloud attributes can be obtained.
也就是说,如图20所示,针对待解码点云的几何信息进行点云几何八叉树分解,以及对属性码流进行解析码流,可以得到量化后的变换系数残差值,然后对量化后的变换系数残差值进行反量化,可以得到待解码点云的变换系数残差值;根据RAHT帧间预测或者RAHT帧内预测可以确定待解码点云的变换系数预测值;再根据待解码点云的变换系数残差值和变换系数预测值进行加法运算,可以得到待解码点云的变换系数;将变换系数保存到内存模块中,这样后续在进行帧间预测时,可以直接从内存模块中获取参考块的变换系数;最后对变换系数进行RAHT反变换,可以重构出点云属性。That is to say, as shown in Figure 20, by performing point cloud geometric octree decomposition on the geometric information of the point cloud to be decoded and parsing the attribute code stream, the quantized transform coefficient residual value can be obtained, and then the quantized transform coefficient residual value is dequantized to obtain the transform coefficient residual value of the point cloud to be decoded; the transform coefficient prediction value of the point cloud to be decoded can be determined according to RAHT inter-frame prediction or RAHT intra-frame prediction; then, the transform coefficient of the point cloud to be decoded is obtained by performing an addition operation on the transform coefficient residual value and the transform coefficient prediction value; the transform coefficient is saved in the memory module, so that when performing inter-frame prediction later, the transform coefficient of the reference block can be directly obtained from the memory module; finally, the transform coefficient is subjected to RAHT inverse transformation to reconstruct the point cloud attributes.
在一种具体的实施例中,如图21所示,编码端的流程如下所示:In a specific embodiment, as shown in FIG21 , the process of the encoding end is as follows:
S211,点云几何八叉树分解。S211, point cloud geometry octree decomposition.
输入待编码点云的几何信息,对几何信息进行八叉树分解,得到RAHT变换层。对于每一层中的节点分别从x、y、z三个维度进行变换,直至变换至八叉树的根节点。The geometric information of the point cloud to be encoded is input and the octree decomposition is performed to obtain the RAHT transformation layer. For each layer, the nodes are transformed in the x, y, and z dimensions until they reach the root node of the octree.
S212,RAHT变换。S212, RAHT transform.
对于得到的RAHT变换层,利用点云的属性信息将同层(第L层)节点变换之后得到的DC系数传递到下一层(第L-1层)的节点继续进行变换。变换矩阵会随着各点对应的权重自适应变化更新。上述过程会依据八叉树的划分结构不断迭代更新,直至八叉树的根节点。将根节点的DC系数与所有的AC系数统称为变换系数;For the obtained RAHT transformation layer, the DC coefficient obtained after the transformation of the nodes in the same layer (layer L) is passed to the nodes in the next layer (layer L-1) to continue the transformation. The transformation matrix will be updated as the weights corresponding to each point change adaptively. The above process will be continuously iterated and updated according to the partitioning structure of the octree until the root node of the octree. The DC coefficient of the root node and all AC coefficients are collectively referred to as the transformation coefficient;
通过计算可以得到当前块的相对于原点的绝对几何位置,当前块的绝对几何位置等于当前块的相对几何位置加上当前块所属的slice相对于原点的几何位置偏移;假设g′L,2x,y,z和g′L,2x+1,y,z为第L层中互为近邻点的两个属性DC系数。经过线性变换后,第L-1层的信息为AC系数f′L-1,x,y,z和DC系数g′L-1,x,y,z;然后,f′L-1,x,y,z将不再进行变换,直接进行量化编码,g′L-1,x,y,z将继续寻找近邻进行变换,如果寻找不到,则将其直接传递至第L-2层,即RAHT变换仅对存在邻居点的节点有效,没有邻居点的节点将直接传递至上一层。在上述变换过程中,g′L,2x,y,z和g′L,2x+1,y,z对应的权重(该节点内非空子节点的个数)分别为w′L,2x,y,z和w′L,2x+1,y,z(简写为w′0和w′1),g′L-1,x,y,z的权重为w′L-1,x,y,z,那么RAHT反变换的计算公式如式(5)和式(6)所示。最终可以得到变换系数。The absolute geometric position of the current block relative to the origin can be calculated. This is equal to the relative geometric position of the current block plus the geometric position offset of the slice to which the current block belongs relative to the origin. Assume that g′ L,2x,y,z and g′ L,2x+1,y,z are the attribute DC coefficients of two neighboring nodes in layer L. After linear transformation, the information in layer L-1 is the AC coefficient f′ L-1,x,y,z and the DC coefficient g′ L-1,x,y,z . Then, f′ L-1,x,y,z is no longer transformed and is directly quantized and encoded. g′ L-1,x,y,z will continue to search for neighboring nodes for transformation. If no neighboring nodes are found, they are directly passed to layer L-2. In other words, the RAHT transform is only effective for nodes with neighboring nodes; nodes without neighboring nodes are directly passed to the previous layer. In the above transformation process, the weights (the number of non-empty child nodes within the node) corresponding to g′ L,2x,y,z and g′ L,2x+1,y ,z are w′ L,2x,y,z and w′ L,2x+1,y,z (abbreviated as w′ 0 and w′ 1 ), respectively, and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z . Therefore, the calculation formulas for the inverse RAHT transform are shown in Equations (5) and (6). Finally, the transform coefficients can be obtained.
根据在参考点云中能否找到帧间参考块,确定进入RAHT帧间预测或者RAHT帧内预测;将变换系数减去变换系数预测值得到变换系数残差值。Depending on whether an inter-frame reference block can be found in the reference point cloud, it is determined whether to enter RAHT inter-frame prediction or RAHT intra-frame prediction; the transform coefficient prediction value is subtracted from the transform coefficient to obtain the transform coefficient residual value.
S213,RAHT帧间预测。S213, RAHT inter-frame prediction.
计算当前块的绝对几何位置(即前述的“绝对坐标信息”):当前块在进行变换的时候的位置为相对几何位置(即前述的“坐标信息”),可以通过计算得到当前块在当前帧的绝对几何位置,具体为当前块的绝对几何位置等于当前变换块的相对几何位置加上当前块所属的slice相对于原点的几何位置偏移;Calculate the absolute geometric position of the current block (i.e., the aforementioned "absolute coordinate information"): The position of the current block during transformation is a relative geometric position (i.e., the aforementioned "coordinate information"). The absolute geometric position of the current block in the current frame can be calculated. Specifically, the absolute geometric position of the current block is equal to the relative geometric position of the current transformed block plus the geometric position offset of the slice to which the current block belongs relative to the origin;
寻找帧间参考块:对于当前帧RAHT变换中的每个变换块在内存模块中寻找当前层的帧间预测变换块,以当前块为例,寻找参考帧中绝对几何位置与当前块的绝对几何位置相同且与当前块所在层数相同的变换块作为参考块,或者寻找参考帧中父变换块绝对几何位置与当前块的父变换块的绝对几何位置相同且与当前块所在层数相同的变换块作为参考块,或者寻找参考帧中几何位置与当前块的几何位置相同且与当前块所在层数相同且与当前块的sliceID相同的变换块作为参考块,或者寻找参考帧中父变换块几何位置与当前块的父变换块的几何位置相同且与当前块所在层数相同且与当前块的sliceID相同的变换块作为参考块。Find inter-frame reference blocks: For each transform block in the RAHT transform of the current frame, find the inter-frame prediction transform block of the current layer in the memory module. Taking the current block as an example, find a transform block in the reference frame whose absolute geometric position is the same as the absolute geometric position of the current block and the same layer number as the current block as the reference block, or find a transform block in the reference frame whose absolute geometric position is the same as the absolute geometric position of the parent transform block of the current block and the same layer number as the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as the geometric position of the current block, the same layer number as the current block and the same sliceID as the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as the geometric position of the parent transform block of the current block, the same layer number as the current block and the same sliceID as the current block as the reference block.
如果在内存模块中找到帧间参考块,那可以利用帧间参考块在内存模块中对应的变换系数作为当前块的变换系数预测值。If an inter-frame reference block is found in the memory module, the transform coefficient corresponding to the inter-frame reference block in the memory module can be used as the transform coefficient prediction value of the current block.
S214,RAHT帧内预测.S214, RAHT intra prediction.
如果寻找不到帧间参考块,则利用帧内预测值作为当前块的变换系数预测值,其中,帧内预测值为当前块的相邻块、父变换块以及父变换块的相邻块进行加权预测得到。If no inter-frame reference block is found, the intra-frame prediction value is used as the transformation coefficient prediction value of the current block, wherein the intra-frame prediction value is obtained by weighted prediction of the neighboring blocks of the current block, the parent transformation block and the neighboring blocks of the parent transformation block.
S215,量化。S215, quantification.
对变换系数残差值进行量化,得到量化后的变换系数残差值。The transform coefficient residual value is quantized to obtain a quantized transform coefficient residual value.
S216,编码。S216, encoding.
对量化后的变换系数残差值进行编码并写入码流中。The quantized transform coefficient residual value is encoded and written into the bitstream.
S217,反量化。S217, dequantization.
对量化后的变换系数残差值进行反量化,得到重构的变换系数残差值(即重建变换系数残差值)。The quantized transform coefficient residual value is inversely quantized to obtain a reconstructed transform coefficient residual value (ie, a reconstructed transform coefficient residual value).
S218,保存到内存模块。S218, save to the memory module.
将重构的变换系数残差值加上变换系数预测值得到重构的变换系数,如果当前帧编码后可能作为后续帧的参考帧,那么可以将重构的变换系数、绝对几何位置、几何位置、sliceID、当前块所在RAHT变换层的层数信息等中的至少一项存入内存模块中,作为后续帧的帧间预测参考信息;否则直接进行 RAHT反变换。The reconstructed transform coefficient residual value is added to the transform coefficient prediction value to obtain the reconstructed transform coefficient. If the current frame may be used as a reference frame for subsequent frames after encoding, at least one of the reconstructed transform coefficient, absolute geometric position, geometric position, sliceID, and the number of layers of the RAHT transform layer where the current block is located can be stored in the memory module as the inter-frame prediction reference information for subsequent frames; otherwise, it is directly performed. Inverse RAHT transform.
S219,RAHT反变换。S219, inverse RAHT transform.
对重构的变换系数进行RAHT反变换,可以得到重构点云属性。By performing RAHT inverse transformation on the reconstructed transformation coefficients, the reconstructed point cloud attributes can be obtained.
也就是说,如图21所示,针对待编码点云的几何信息进行点云几何八叉树分解,针对待编码点云的属性信息进行RAHT变换,可以确定待编码点云的变换系数;根据RAHT帧间预测或者RAHT帧内预测可以确定待编码点云的变换系数预测值;根据待编码点云的变换系数和变换系数预测值相减可以得到变换系数残差值;然后对变换系数残差值进行量化,可以得到量化后的变换系数残差值。一方面可以对量化后的变换系数残差值进行编码并写入属性码流中;另一方面可以对量化后的变换系数残差值进行反量化,得到重构的变换系数残差值;然后根据重构的变换系数残差值和变换系数预测值相加可以得到重构的变换系数;将该变换系数保存到内存模块中,这样后续在进行帧间预测时,可以直接从内存模块中获取参考块的变换系数;最后再对重构的变换系数进行RAHT反变换,可以得到重构点云属性。That is, as shown in Figure 21, the geometric information of the point cloud to be encoded is decomposed into a point cloud geometry octree, and the attribute information of the point cloud to be encoded is subjected to a RAHT transform to determine the transform coefficients of the point cloud to be encoded. The transform coefficient prediction value of the point cloud to be encoded can be determined based on RAHT inter-frame prediction or RAHT intra-frame prediction. The transform coefficient residual value is obtained by subtracting the transform coefficient of the point cloud to be encoded from the transform coefficient prediction value. The transform coefficient residual value is then quantized to obtain the quantized transform coefficient residual value. On the one hand, the quantized transform coefficient residual value can be encoded and written into the attribute code stream. On the other hand, the quantized transform coefficient residual value can be dequantized to obtain the reconstructed transform coefficient residual value. The reconstructed transform coefficient residual value is then added to the transform coefficient prediction value to obtain the reconstructed transform coefficient. The transform coefficient is saved in a memory module, so that when performing inter-frame prediction later, the transform coefficient of the reference block can be directly obtained from the memory module. Finally, the reconstructed transform coefficient is subjected to a RAHT inverse transform to obtain the reconstructed point cloud attributes.
示例性地,基于前述实施例的编解码方法,表1为本申请实施例提供的在几何有损、属性有损(Lossy geometry,Lossy attribute)的测试条件下基于最新的tmc13v24性能结果。Exemplarily, based on the encoding and decoding method of the aforementioned embodiment, Table 1 is the performance results based on the latest tmc13v24 under the test conditions of lossy geometry and lossy attribute (Lossy geometry, Lossy attribute) provided by the embodiment of the present application.
表1
Table 1
根据表1所示的基于最新的tmc13v24性能结果,可以看到编码端的时间复杂度降低7%,解码端的时间复杂度降低19%。According to the performance results based on the latest TMC13v24 shown in Table 1, it can be seen that the time complexity of the encoding end is reduced by 7%, and the time complexity of the decoding end is reduced by 19%.
在本申请实施例中,通过上述实施例对前述实施例的具体实现进行了详细阐述,从中可以看出,根据前述实施例的技术方案,这里提出了将可能的参考帧解码后的几何位置、所属的sliceID和变换系数缓存到buffer中供以后的帧使用,从而可以避免参考帧必须重新做一遍八叉树分解和RAHT变换,减少了编解码端预测帧重新做一次RAHT变换的时间,明显的降低了时间复杂度,同时可以保留参考帧多个RAHT变换层的信息,使得帧间预测更加准确,进而提升了编解码性能。In the embodiments of the present application, the specific implementation of the aforementioned embodiments is elaborated in detail through the above embodiments. It can be seen that, according to the technical solution of the aforementioned embodiments, it is proposed to cache the geometric position of the possible reference frame after decoding, the slice ID to which it belongs, and the transformation coefficient into a buffer for use by subsequent frames, thereby avoiding the reference frame from having to undergo octree decomposition and RAHT transformation again, reducing the time for the codec end to perform RAHT transformation again for the predicted frame, significantly reducing the time complexity, and retaining the information of multiple RAHT transformation layers of the reference frame, making inter-frame prediction more accurate, thereby improving the coding and decoding performance.
在本申请的再一实施例中,基于前述实施例相同的发明构思,图22为本申请实施例提供的一种编码器的组成结构示意图。如图22所示,该编码器220可以包括第一确定单元2201、第一预测单元2202和编码单元2203,其中:In yet another embodiment of the present application, based on the same inventive concept as the aforementioned embodiment, FIG22 is a schematic diagram of the composition structure of an encoder provided in an embodiment of the present application. As shown in FIG22 , the encoder 220 may include a first determination unit 2201, a first prediction unit 2202, and an encoding unit 2203, wherein:
第一确定单元2201,配置为确定当前块的预测模式标识信息;A first determining unit 2201 is configured to determine prediction mode identification information of a current block;
第一预测单元2202,配置为在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;The first prediction unit 2202 is configured to determine a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain;
第一确定单元2201,还配置为根据当前块的变换系数预测值,确定当前块的变换系数残差值;The first determining unit 2201 is further configured to determine a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block;
编码单元2203,配置为对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。The encoding unit 2203 is configured to perform encoding processing on the transform coefficient residual value of the current block and write the obtained encoding bits into the bitstream.
在一些实施例中,第一确定单元2201,还配置为对变换系数残差值进行量化,确定当前块的量化系数残差值;编码单元2203,还配置为对当前块的量化系数残差值进行编码处理,将所得到的编码比特写入码流。In some embodiments, the first determination unit 2201 is further configured to quantize the transform coefficient residual value to determine the quantized coefficient residual value of the current block; the encoding unit 2203 is further configured to encode the quantized coefficient residual value of the current block and write the obtained encoded bits into the bitstream.
在一些实施例中,第一确定单元2201,还配置为根据参考点云中的片标识信息,确定当前块的参考块。In some embodiments, the first determining unit 2201 is further configured to determine a reference block of the current block according to the slice identification information in the reference point cloud.
在一些实施例中,第一确定单元2201,还配置为根据参考块的变换系数,确定当前块的变换系数预测值。In some embodiments, the first determining unit 2201 is further configured to determine a predicted value of a transform coefficient of the current block according to the transform coefficient of the reference block.
在一些实施例中,第一确定单元2201,还配置为基于片标识信息指示的参考片,确定参考片的属性信息;对参考片的属性信息进行区域自适应分层变换,确定至少一个变换层的变换系数;以及从至少一个变换层的变换系数中,确定参考块的变换系数。In some embodiments, the first determination unit 2201 is further configured to determine the attribute information of the reference slice based on the reference slice indicated by the slice identification information; perform region-adaptive hierarchical transformation on the attribute information of the reference slice to determine the transformation coefficients of at least one transformation layer; and determine the transformation coefficients of the reference block from the transformation coefficients of at least one transformation layer.
在一些实施例中,第一确定单元2201,还配置为确定参考块的变换系数残差值;对参考块的变换系数残差值进行量化,确定参考块的量化系数残差值;对参考块的量化系数残差值进行反量化,确定参考块的重建变换系数残差值;以及根据参考块的变换系数预测值和参考块的重建变换系数残差值,确定 参考块的变换系数。In some embodiments, the first determining unit 2201 is further configured to determine a transform coefficient residual value of a reference block; quantize the transform coefficient residual value of the reference block to determine a quantized coefficient residual value of the reference block; dequantize the quantized coefficient residual value of the reference block to determine a reconstructed transform coefficient residual value of the reference block; and determine, based on the transform coefficient prediction value of the reference block and the reconstructed transform coefficient residual value of the reference block, Transform coefficients of the reference block.
在一些实施例中,参见图22,编码器220还包括第一保存单元2204;第一确定单元2201,还配置为确定参考块的存储信息,其中,参考块的存储信息包括下述至少一项:参考块的变换系数、参考块的坐标信息、参考块所在的片标识信息和参考块所在的变换层信息;第一保存单元2204,配置为将参考块的存储信息保存到内存模块中。In some embodiments, referring to FIG22 , the encoder 220 further includes a first saving unit 2204; the first determining unit 2201 is further configured to determine storage information of the reference block, wherein the storage information of the reference block includes at least one of the following: transformation coefficients of the reference block, coordinate information of the reference block, slice identification information of the reference block, and transformation layer information of the reference block; the first saving unit 2204 is configured to save the storage information of the reference block into the memory module.
在一些实施例中,第一确定单元2201,还配置为根据参考块在内存模块中对应的存储信息,确定参考块的变换系数。In some embodiments, the first determining unit 2201 is further configured to determine the transformation coefficient of the reference block according to the storage information corresponding to the reference block in the memory module.
在一些实施例中,第一确定单元2201,还配置为参考块的坐标信息与当前块的坐标信息相同且参考块所在的片标识信息与当前块所在的片标识信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同。In some embodiments, the first determination unit 2201 is further configured such that the coordinate information of the reference block is the same as the coordinate information of the current block, the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block.
在一些实施例中,第一确定单元2201,还配置为参考块的父变换块的坐标信息与当前块的父变换块的坐标信息相同且参考块所在的片标识信息与当前块所在的片标识信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同。In some embodiments, the first determination unit 2201 is further configured such that the coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, the slice identification information of the reference block is the same as the slice identification information of the current block, and the transform layer information of the reference block is the same as the current layer information of the current block.
在一些实施例中,第一确定单元2201,还配置为确定参考块的坐标信息;以及根据参考块的坐标信息以及参考块所在的片标识信息相对于原点的坐标偏移信息,确定参考块的绝对坐标信息。In some embodiments, the first determination unit 2201 is further configured to determine the coordinate information of the reference block; and determine the absolute coordinate information of the reference block based on the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.
在一些实施例中,第一确定单元2201,还配置为参考块的绝对坐标信息与当前块的绝对坐标信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同。In some embodiments, the first determining unit 2201 is further configured to determine that the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block and the transform layer information of the reference block is the same as the current layer information of the current block.
在一些实施例中,第一确定单元2201,还配置为参考块的父变换块的绝对坐标信息与当前块的父变换块的绝对坐标信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同。In some embodiments, the first determination unit 2201 is further configured such that the absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.
在一些实施例中,第一确定单元2201,还配置为若参考点云中存在与当前块满足预设帧间条件的参考块,则确定预测模式标识信息指示当前块进行变换域的帧间预测;若参考点云中不存在与当前块满足预设帧间条件的参考块,则确定预测模式标识信息指示当前块进行变换域的帧内预测。In some embodiments, the first determination unit 2201 is further configured to determine that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain if there is a reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determine that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.
在一些实施例中,第一预测单元2202,还配置为在预测模式标识信息指示当前块进行变换域的帧内预测时,确定当前块的相邻块的变换系数预测值、当前块的父变换块的变换系数预测值和父变换块的相邻块的变换系数预测值;以及对当前块的相邻块的变换系数预测值、当前块的父变换块的变换系数预测值和父变换块的相邻块的变换系数预测值进行加权运算,确定当前块的变换系数预测值。In some embodiments, the first prediction unit 2202 is further configured to determine the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block when the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain; and perform weighted operations on the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.
在一些实施例中,第一确定单元2201,还配置为对当前块的量化系数残差值进行反量化,确定当前块的重建变换系数残差值;以及根据当前块的变换系数预测值和当前块的重建变换系数残差值,确定当前块的变换系数。In some embodiments, the first determination unit 2201 is further configured to perform inverse quantization on the quantization coefficient residual value of the current block to determine the reconstructed transform coefficient residual value of the current block; and determine the transform coefficient of the current block based on the transform coefficient prediction value of the current block and the reconstructed transform coefficient residual value of the current block.
在一些实施例中,第一确定单元2201,还配置为确定当前块的存储信息,其中,当前块的存储信息包括下述至少一项:当前块的变换系数、当前块的坐标信息、当前块所在的片标识信息和当前块所在的当前层信息;第一保存单元2204,还配置为将当前块的存储信息保存到内存模块中。In some embodiments, the first determination unit 2201 is further configured to determine the storage information of the current block, wherein the storage information of the current block includes at least one of the following: the transformation coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, and the current layer information where the current block is located; the first saving unit 2204 is further configured to save the storage information of the current block into the memory module.
在一些实施例中,第一保存单元2204,还配置为在当前块所在的当前点云满足用作参考点云的条件时,将当前块的存储信息保存到内存模块中。In some embodiments, the first saving unit 2204 is further configured to save the storage information of the current block into the memory module when the current point cloud where the current block is located meets the conditions for being used as a reference point cloud.
在一些实施例中,第一确定单元2201,还配置为确定当前片的几何信息;其中,当前片是由当前点云进行片划分确定的;以及对当前片的几何信息进行八叉树分解,确定至少一个变换层;其中,至少一个变换层包括当前块所在的当前层。In some embodiments, the first determination unit 2201 is further configured to determine the geometric information of the current slice; wherein the current slice is determined by slice division of the current point cloud; and perform octree decomposition on the geometric information of the current slice to determine at least one transformation layer; wherein the at least one transformation layer includes the current layer where the current block is located.
在一些实施例中,第一确定单元2201,还配置为在当前层为至少一个变换层中的第L-1层时,确定第L层中的节点的低频系数值,并根据第L层中的节点的低频系数值进行区域自适应分层变换,确定第L-1层中的节点的低频系数值和高频系数原始值,直至确定出当前点云的根节点的低频系数值和高频系数原始值;其中,L为正整数。In some embodiments, the first determination unit 2201 is further configured to determine the low-frequency coefficient values of the nodes in the Lth layer when the current layer is the L-1th layer in at least one transformation layer, and perform regional adaptive hierarchical transformation based on the low-frequency coefficient values of the nodes in the Lth layer to determine the low-frequency coefficient values and the original values of the high-frequency coefficients of the nodes in the L-1th layer until the low-frequency coefficient values and the original values of the high-frequency coefficients of the root node of the current point cloud are determined; wherein L is a positive integer.
在一些实施例中,编码单元2203,还配置为对当前点云的根节点的低频系数值进行编码处理,将所得到的编码比特写入码流。In some embodiments, the encoding unit 2203 is further configured to encode the low-frequency coefficient value of the root node of the current point cloud and write the obtained encoding bits into the bitstream.
在一些实施例中,第一确定单元2201,还配置为确定当前块的高频系数原始值;以及根据当前块的高频系数原始值和当前块的高频系数预测值,确定当前块的高频系数残差值;编码单元2203,还配置为对当前块的高频系数残差值进行编码处理,将所得到的编码比特写入码流。In some embodiments, the first determination unit 2201 is further configured to determine the original value of the high-frequency coefficient of the current block; and determine the residual value of the high-frequency coefficient of the current block based on the original value of the high-frequency coefficient of the current block and the predicted value of the high-frequency coefficient of the current block; the encoding unit 2203 is further configured to encode the residual value of the high-frequency coefficient of the current block and write the obtained encoding bits into the bitstream.
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It is understandable that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and of course it can also be a module, or it can be non-modular. Moreover, the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.
在本申请的再一实施例中,图23为本申请实施例提供的一种编码器的具体硬件结构示意图。如图23所示,编码器220可以包括:第一通信接口2301、第一存储器2302和第一处理器2303;各个组件 通过第一总线系统2304耦合在一起。可理解,第一总线系统2304用于实现这些组件之间的连接通信。第一总线系统2304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图23中将各种总线都标为第一总线系统2304。其中,In another embodiment of the present application, FIG23 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application. As shown in FIG23, the encoder 220 may include: a first communication interface 2301, a first memory 2302 and a first processor 2303; each component The first bus system 2304 is coupled together. It is understood that the first bus system 2304 is used to realize the connection and communication between these components. In addition to the data bus, the first bus system 2304 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in FIG23, various buses are labeled as the first bus system 2304.
第一通信接口2301,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;The first communication interface 2301 is used to receive and send signals when sending and receiving information with other external network elements;
第一存储器2302,用于存储能够在第一处理器2303上运行的计算机程序;A first memory 2302 is used to store computer programs that can be run on the first processor 2303;
第一处理器2303,用于在运行所述计算机程序时,执行:The first processor 2303 is configured to, when running the computer program, execute:
确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;根据当前块的变换系数预测值,确定当前块的变换系数残差值;Determining prediction mode identification information of the current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determining a transform coefficient prediction value of the current block based on a reference block of the current block; determining a transform coefficient residual value of the current block based on the transform coefficient prediction value of the current block;
对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。The transform coefficient residual value of the current block is coded, and the obtained coded bits are written into the bitstream.
可以理解,本申请实施例中的第一存储器2302可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器2302旨在包括但不限于这些和任意其它适合类型的存储器。It is understood that the first memory 2302 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDR SDRAM), enhanced synchronous DRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM (DRRAM). The first memory 2302 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
而第一处理器2303可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器2303中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器2303可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器2302,第一处理器2303读取第一存储器2302中的信息,结合其硬件完成上述方法的步骤。The first processor 2303 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by the hardware integrated logic circuit in the first processor 2303 or by instructions in the form of software. The above-mentioned first processor 2303 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. The various methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in conjunction with the embodiments of this application can be directly embodied as being executed by a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers, etc. The storage medium is located in the first memory 2302 , and the first processor 2303 reads the information in the first memory 2302 and completes the steps of the above method in combination with its hardware.
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。It is understood that the embodiments described in this application can be implemented in 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 a combination thereof. For software implementation, the technology described in this application can be implemented by modules (such as processes, functions, etc.) that perform the functions described in this application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
可选地,作为另一个实施例,第一处理器2303还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。Optionally, as another embodiment, the first processor 2303 is further configured to execute the method described in any one of the aforementioned embodiments when running the computer program.
本实施例提供了一种编码器,在当前块进行变换域的帧间预测时,这时候可以根据当前块的参考块来确定当前块的变换系数预测值。其中,参考块可以是基于参考点云划分的片(slice)进行变换运算的,而不是基于参考点云的整帧进行变换运算,降低了时间复杂度;而且参考块的变换系数可以存储在内存模块中,这样在需要使用该参考块的变换系数时可以直接从内存模块中获取,进一步降低了时间复杂度,从而提高了点云的属性编码效率,进而提升点云的编码性能。This embodiment provides an encoder that, when performing inter-frame prediction in the transform domain on a current block, can determine a predicted value of the transform coefficient of the current block based on a reference block of the current block. The reference block can be transformed based on slices of a reference point cloud, rather than on the entire frame of the reference point cloud, thereby reducing time complexity. Furthermore, the transform coefficients of the reference block can be stored in a memory module, so that when the transform coefficients of the reference block are needed, they can be directly retrieved from the memory module, further reducing time complexity, thereby improving the efficiency of point cloud attribute coding and, consequently, enhancing point cloud coding performance.
在本申请的再一实施例中,基于前述实施例相同的发明构思,图24为本申请实施例提供的一种解码器的组成结构示意图。如图24所示,该解码器240可以包括第二确定单元2401、第二预测单元2402和解码单元2403,其中:In yet another embodiment of the present application, based on the same inventive concept as the aforementioned embodiment, FIG24 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application. As shown in FIG24 , the decoder 240 may include a second determination unit 2401, a second prediction unit 2402, and a decoding unit 2403, wherein:
第二确定单元2401,配置为确定当前块的预测模式标识信息;The second determining unit 2401 is configured to determine prediction mode identification information of the current block;
第二预测单元2402,配置为在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;The second prediction unit 2402 is configured to determine a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain;
解码单元2403,配置为解码码流,确定当前块的变换系数残差值; The decoding unit 2403 is configured to decode the code stream and determine the transform coefficient residual value of the current block;
第二确定单元2401,还配置为根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。The second determining unit 2401 is further configured to determine the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
在一些实施例中,第二确定单元2401,还配置为根据参考点云中的片标识信息,确定当前块的参考块。In some embodiments, the second determining unit 2401 is further configured to determine a reference block of the current block according to the slice identification information in the reference point cloud.
在一些实施例中,第二确定单元2401,还配置为根据参考块的变换系数,确定当前块的变换系数预测值。In some embodiments, the second determining unit 2401 is further configured to determine a predicted value of a transform coefficient of the current block according to the transform coefficient of the reference block.
在一些实施例中,第二确定单元2401,还配置为基于片标识信息指示的参考片,确定参考片的属性信息;对参考片的属性信息进行区域自适应分层变换,确定至少一个变换层的变换系数;以及从至少一个变换层的变换系数中,确定参考块的变换系数。In some embodiments, the second determination unit 2401 is further configured to determine the attribute information of the reference slice based on the reference slice indicated by the slice identification information; perform region-adaptive hierarchical transformation on the attribute information of the reference slice to determine the transformation coefficients of at least one transformation layer; and determine the transformation coefficients of the reference block from the transformation coefficients of at least one transformation layer.
在一些实施例中,解码单元2403,还配置为解码码流,确定参考块的变换系数残差值;第二确定单元2401,还配置为根据参考块的变换系数预测值和参考块的变换系数残差值,确定参考块的变换系数。In some embodiments, the decoding unit 2403 is further configured to decode the code stream and determine the transform coefficient residual value of the reference block; the second determination unit 2401 is further configured to determine the transform coefficient of the reference block based on the transform coefficient prediction value of the reference block and the transform coefficient residual value of the reference block.
在一些实施例中,解码单元2403,还配置为解码码流,确定参考块的变换系数。In some embodiments, the decoding unit 2403 is further configured to decode the code stream to determine the transform coefficients of the reference block.
在一些实施例中,参见图24,解码器240还包括第二保存单元2404;第二确定单元2401,还配置为确定参考块的存储信息,其中,参考块的存储信息包括下述至少一项:参考块的变换系数、参考块的坐标信息、参考块所在的片标识信息和参考块所在的变换层信息;第二保存单元2404,配置为将参考块的存储信息保存到内存模块中。In some embodiments, referring to FIG. 24 , the decoder 240 further includes a second saving unit 2404; the second determination unit 2401 is further configured to determine storage information of the reference block, wherein the storage information of the reference block includes at least one of the following: transformation coefficients of the reference block, coordinate information of the reference block, slice identification information of the reference block, and transformation layer information of the reference block; the second saving unit 2404 is configured to save the storage information of the reference block into the memory module.
在一些实施例中,第二确定单元2401,还配置为根据参考块在内存模块中对应的存储信息,确定参考块的变换系数。In some embodiments, the second determining unit 2401 is further configured to determine the transformation coefficient of the reference block according to the storage information corresponding to the reference block in the memory module.
在一些实施例中,第二确定单元2401,还配置为参考块的坐标信息与当前块的坐标信息相同且参考块所在的片标识信息与当前块所在的片标识信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同。In some embodiments, the second determination unit 2401 is further configured such that the coordinate information of the reference block is the same as the coordinate information of the current block, the slice identification information where the reference block is located is the same as the slice identification information where the current block is located, and the transformation layer information where the reference block is located is the same as the current layer information where the current block is located.
在一些实施例中,第二确定单元2401,还配置为参考块的父变换块的坐标信息与当前块的父变换块的坐标信息相同且参考块所在的片标识信息与当前块所在的片标识信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同。In some embodiments, the second determination unit 2401 is further configured such that the coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, the slice identification information of the reference block is the same as the slice identification information of the current block, and the transform layer information of the reference block is the same as the current layer information of the current block.
在一些实施例中,第二确定单元2401,还配置为确定参考块的坐标信息;以及根据参考块的坐标信息以及参考块所在的片标识信息相对于原点的坐标偏移信息,确定参考块的绝对坐标信息。In some embodiments, the second determination unit 2401 is further configured to determine the coordinate information of the reference block; and determine the absolute coordinate information of the reference block based on the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.
在一些实施例中,第二确定单元2401,还配置为参考块的绝对坐标信息与当前块的绝对坐标信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同。In some embodiments, the second determining unit 2401 is further configured to determine that the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block and the transform layer information of the reference block is the same as the current layer information of the current block.
在一些实施例中,第二确定单元2401,还配置为参考块的父变换块的绝对坐标信息与当前块的父变换块的绝对坐标信息相同且参考块所在的变换层信息与当前块所在的当前层信息相同。In some embodiments, the second determination unit 2401 is further configured to ensure that the absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information of the reference block is the same as the current layer information of the current block.
在一些实施例中,第二确定单元2401,还配置为若参考点云中存在与当前块满足预设帧间条件的参考块,则确定预测模式标识信息指示当前块进行变换域的帧间预测;若参考点云中不存在与当前块满足预设帧间条件的参考块,则确定预测模式标识信息指示当前块进行变换域的帧内预测。In some embodiments, the second determination unit 2401 is further configured to determine that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain if there is a reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determine that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.
在一些实施例中,第二预测单元2402,还配置为在预测模式标识信息指示当前块进行变换域的帧内预测时,确定当前块的相邻块的变换系数预测值、当前块的父变换块的变换系数预测值和父变换块的相邻块的变换系数预测值;以及对当前块的相邻块的变换系数预测值、当前块的父变换块的变换系数预测值和父变换块的相邻块的变换系数预测值进行加权运算,确定当前块的变换系数预测值。In some embodiments, the second prediction unit 2402 is further configured to determine the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block when the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain; and perform weighted operations on the transform coefficient prediction values of the neighboring blocks of the current block, the transform coefficient prediction values of the parent transform block of the current block, and the transform coefficient prediction values of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.
在一些实施例中,第二确定单元2401,还配置为确定当前块的存储信息,其中,当前块的存储信息包括下述至少一项:当前块的变换系数、当前块的坐标信息、当前块所在的片标识信息和当前块所在的当前层信息;第二保存单元2404,还配置为将当前块的存储信息保存到内存模块中。In some embodiments, the second determination unit 2401 is further configured to determine the storage information of the current block, wherein the storage information of the current block includes at least one of the following: the transformation coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, and the current layer information where the current block is located; the second saving unit 2404 is further configured to save the storage information of the current block into the memory module.
在一些实施例中,第二保存单元2404,配置为在当前块所在的当前点云满足用作参考点云的条件时,将当前块的存储信息保存到内存模块中。In some embodiments, the second saving unit 2404 is configured to save the storage information of the current block into the memory module when the current point cloud where the current block is located meets the conditions for being used as a reference point cloud.
在一些实施例中,解码单元2403,还配置为解码码流,确定当前块的量化系数残差值;第二确定单元2401,还配置为对量化系数残差值进行反量化,确定当前块的变换系数残差值。In some embodiments, the decoding unit 2403 is further configured to decode the code stream to determine the quantization coefficient residual value of the current block; the second determination unit 2401 is further configured to dequantize the quantization coefficient residual value to determine the transform coefficient residual value of the current block.
在一些实施例中,第二确定单元2401,还配置为确定当前片的几何信息;其中,当前片是由当前点云进行片划分确定的;以及对当前片的几何信息进行八叉树分解,确定至少一个变换层;其中,至少一个变换层包括当前块所在的当前层。In some embodiments, the second determination unit 2401 is further configured to determine the geometric information of the current slice; wherein the current slice is determined by slice division of the current point cloud; and perform octree decomposition on the geometric information of the current slice to determine at least one transformation layer; wherein the at least one transformation layer includes the current layer where the current block is located.
在一些实施例中,第二确定单元2401,还配置为在当前层为至少一个变换层中的第L-1层时,对第L-1层中的当前块的重建变换系数进行区域自适应分层反变换,确定第L层中的节点的重建属性信息;其中,L为正整数。In some embodiments, the second determination unit 2401 is further configured to perform a regional adaptive hierarchical inverse transform on the reconstructed transform coefficients of the current block in the L-1 layer when the current layer is the L-1 layer in at least one transform layer, to determine the reconstruction attribute information of the nodes in the L layer; wherein L is a positive integer.
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然 也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It is understandable that in this embodiment, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc. It can be modular or non-modular. Moreover, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.
在本申请的再一实施例中,图25为本申请实施例提供的一种解码器的具体硬件结构示意图。如图25所示,解码器240可以包括:第二通信接口2501、第二存储器2502和第二处理器2503;各个组件通过第二总线系统2504耦合在一起。可理解,第二总线系统2504用于实现这些组件之间的连接通信。第二总线系统2504除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图25中将各种总线都标为第二总线系统2504。其中,In another embodiment of the present application, FIG25 is a schematic diagram of the specific hardware structure of a decoder provided in an embodiment of the present application. As shown in FIG25 , the decoder 240 may include: a second communication interface 2501, a second memory 2502, and a second processor 2503; each component is coupled together through a second bus system 2504. It can be understood that the second bus system 2504 is used to achieve connection and communication between these components. In addition to the data bus, the second bus system 2504 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as the second bus system 2504 in FIG25. Among them,
第二通信接口2501,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;The second communication interface 2501 is used to receive and send signals during the process of sending and receiving information between other external network elements;
第二存储器2502,用于存储能够在第二处理器2503上运行的计算机程序;The second memory 2502 is used to store computer programs that can be run on the second processor 2503;
第二处理器2503,用于在运行所述计算机程序时,执行:The second processor 2503 is configured to, when running the computer program, execute:
确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;解码码流,确定当前块的变换系数残差值;根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。Determine prediction mode identification information of the current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determine a transform coefficient prediction value of the current block based on a reference block of the current block; decode the code stream to determine a transform coefficient residual value of the current block; and determine a transform coefficient of the current block based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.
可选地,作为另一个实施例,第二处理器2503还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。Optionally, as another embodiment, the second processor 2503 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
可以理解,第二存储器2502与第一存储器2302的硬件功能类似,第二处理器2503与第一处理器2303的硬件功能类似;这里不再详述。It can be understood that the hardware functions of the second memory 2502 are similar to those of the first memory 2302, and the hardware functions of the second processor 2503 are similar to those of the first processor 2303; they will not be described in detail here.
本实施例提供了一种解码器,在当前块进行变换域的帧间预测时,这时候可以根据当前块的参考块来确定当前块的变换系数预测值。其中,参考块可以是基于参考点云划分的片(slice)进行变换运算的,而不是基于参考点云的整帧进行变换运算,降低了时间复杂度;而且参考块的变换系数可以存储在内存模块中,这样在需要使用该参考块的变换系数时可以直接从内存模块中获取,进一步降低了时间复杂度,从而提高了点云的属性编解码效率,进而提升点云的编解码性能。This embodiment provides a decoder that, when performing inter-frame prediction in the transform domain on a current block, can determine a predicted value of the transform coefficients of the current block based on a reference block of the current block. The reference block can be transformed based on slices of a reference point cloud, rather than on the entire frame of the reference point cloud, thereby reducing time complexity. Furthermore, the transform coefficients of the reference block can be stored in a memory module so that when the transform coefficients of the reference block are needed, they can be directly retrieved from the memory module, further reducing time complexity. This improves the efficiency of encoding and decoding point cloud attributes, and thus enhances point cloud encoding and decoding performance.
在本申请的再一实施例中,图26为本申请实施例提供的一种编解码系统的组成结构示意图。如图26所示,编解码系统260可以包括编码器2601和解码器2602。In yet another embodiment of the present application, FIG26 is a schematic diagram of the structure of a coding and decoding system provided by an embodiment of the present application. As shown in FIG26 , the coding and decoding system 260 may include an encoder 2601 and a decoder 2602 .
在本申请实施例中,编码器2601可以为前述实施例中任一项所述的编码器,解码器2602可以为前述实施例中任一项所述的解码器。In the embodiment of the present application, the encoder 2601 may be the encoder described in any one of the aforementioned embodiments, and the decoder 2602 may be the decoder described in any one of the aforementioned embodiments.
在一些实施例中,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序。该计算机程序被处理器(例如第一处理器或第二处理器)执行时实现如前述实施例中任一项所述的方法。In some embodiments, the present application further provides a computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor (eg, the first processor or the second processor), implements the method as described in any of the aforementioned embodiments.
在一些实施例中,本申请实施例还提供了一种计算机程序产品,包括计算机程序或指令。该计算机程序或指令被处理器(例如第一处理器或第二处理器)执行时实现如前述实施例中任一项所述的方法。In some embodiments, embodiments of the present application further provide a computer program product, including a computer program or instructions. When the computer program or instructions are executed by a processor (e.g., a first processor or a second processor), the method described in any one of the aforementioned embodiments is implemented.
在一些实施例中,本申请实施例还提供了一种计算机程序,该计算机程序被处理器(例如第一处理器或第二处理器)执行时实现如前述实施例中任一项所述的方法。In some embodiments, the embodiments of the present application further provide a computer program, which, when executed by a processor (eg, a first processor or a second processor), implements the method as described in any one of the aforementioned embodiments.
本领域普通技术人员可以意识到,结合本申请所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those skilled in the art will appreciate that the units and algorithm steps of each example 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 performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the above-described devices and units can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separate, and 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 these units may be selected to achieve the purpose of this embodiment according to actual needs.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者 该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the functions are implemented in the form of 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 is essentially or partially contributed to the existing technology. Part of this technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of this application. The aforementioned storage medium includes: a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, etc., various media that can store program code.
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。It should be noted that, in this application, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。The serial numbers of the above embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
本申请实施例中,在编码端,确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;根据当前块的变换系数预测值,确定当前块的变换系数残差值;对当前块的变换系数残差值进行编码处理,将所得到的编码比特写入码流。在解码端,确定当前块的预测模式标识信息;在预测模式标识信息指示当前块进行变换域的帧间预测时,根据当前块的参考块,确定当前块的变换系数预测值;解码码流,确定当前块的变换系数残差值;根据当前块的变换系数预测值和当前块的变换系数残差值,确定当前块的变换系数。这样,无论是在编码端还是解码端,在当前块进行变换域的帧间预测时,这时候可以根据当前块的参考块来确定当前块的变换系数预测值。其中,参考块可以是基于参考点云划分的片(slice)进行变换运算的,而不是基于参考点云的整帧进行变换运算,降低了时间复杂度;而且参考块的变换系数可以存储在内存模块中,这样在需要使用该参考块的变换系数时可以直接从内存模块中获取,进一步降低了时间复杂度,从而提高了点云的属性编解码效率,进而提升点云的编解码性能。 In an embodiment of the present application, at the encoding end, the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; based on the transform coefficient prediction value of the current block, the transform coefficient residual value of the current block is determined; the transform coefficient residual value of the current block is encoded, and the obtained coded bits are written into the bitstream. At the decoding end, the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined based on the reference block of the current block; the bitstream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined based on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block. In this way, whether at the encoding end or the decoding end, when the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined based on the reference block of the current block. Among them, the reference block can be transformed based on the slices divided by the reference point cloud, rather than based on the entire frame of the reference point cloud, which reduces the time complexity; and the transformation coefficients of the reference block can be stored in the memory module, so that when the transformation coefficients of the reference block are needed, they can be directly obtained from the memory module, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and thus improving the encoding and decoding performance of the point cloud.
Claims (48)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2024/087319 WO2025213421A1 (en) | 2024-04-11 | 2024-04-11 | Encoding method, decoding method, bitstream, encoder, decoder, and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2024/087319 WO2025213421A1 (en) | 2024-04-11 | 2024-04-11 | Encoding method, decoding method, bitstream, encoder, decoder, and storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025213421A1 true WO2025213421A1 (en) | 2025-10-16 |
Family
ID=97349038
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/087319 Pending WO2025213421A1 (en) | 2024-04-11 | 2024-04-11 | Encoding method, decoding method, bitstream, encoder, decoder, and storage medium |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025213421A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102792688A (en) * | 2010-02-19 | 2012-11-21 | 斯凯普公司 | Data compression for video |
| CN106998470A (en) * | 2016-01-25 | 2017-08-01 | 华为技术有限公司 | Coding/decoding method, coding method, decoding device and encoding device |
| US20180310000A1 (en) * | 2015-09-23 | 2018-10-25 | Lg Electronics Inc. | Method and apparatus for intra prediction in video coding system |
| CN114651443A (en) * | 2020-05-29 | 2022-06-21 | Oppo广东移动通信有限公司 | Inter-frame prediction method, encoder, decoder, and computer storage medium |
| CN115633179A (en) * | 2022-10-12 | 2023-01-20 | 山东大学 | Compression method for real-time volume video streaming transmission |
-
2024
- 2024-04-11 WO PCT/CN2024/087319 patent/WO2025213421A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102792688A (en) * | 2010-02-19 | 2012-11-21 | 斯凯普公司 | Data compression for video |
| US20180310000A1 (en) * | 2015-09-23 | 2018-10-25 | Lg Electronics Inc. | Method and apparatus for intra prediction in video coding system |
| CN106998470A (en) * | 2016-01-25 | 2017-08-01 | 华为技术有限公司 | Coding/decoding method, coding method, decoding device and encoding device |
| CN114651443A (en) * | 2020-05-29 | 2022-06-21 | Oppo广东移动通信有限公司 | Inter-frame prediction method, encoder, decoder, and computer storage medium |
| CN115633179A (en) * | 2022-10-12 | 2023-01-20 | 山东大学 | Compression method for real-time volume video streaming transmission |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN118075464A (en) | Point cloud attribute prediction method and device and codec | |
| WO2024174086A1 (en) | Decoding method, encoding method, decoders and encoders | |
| WO2024197680A1 (en) | Point cloud coding method and apparatus, point cloud decoding method and apparatus, device, and storage medium | |
| WO2025213421A1 (en) | Encoding method, decoding method, bitstream, encoder, decoder, and storage medium | |
| WO2024216476A1 (en) | Encoding/decoding method, encoder, decoder, code stream, and storage medium | |
| WO2025138048A1 (en) | Coding method, decoding method, code stream, coder, decoder and storage medium | |
| WO2025010601A1 (en) | Coding method, decoding method, coders, decoders, code stream and storage medium | |
| WO2024207456A1 (en) | Method for encoding and decoding, encoder, decoder, code stream, and storage medium | |
| WO2024234132A9 (en) | Coding method, decoding method, code stream, coder, decoder, and storage medium | |
| WO2025213480A1 (en) | Encoding method and apparatus, decoding method and apparatus, point cloud encoder, point cloud decoder, bit stream, device, and storage medium | |
| WO2024148598A1 (en) | Encoding method, decoding method, encoder, decoder, and storage medium | |
| WO2024174092A1 (en) | Encoding/decoding method, code stream, encoder, decoder, and storage medium | |
| WO2025076659A1 (en) | Point cloud encoding method, point cloud decoding method, code stream, encoder, decoder and storage medium | |
| WO2025145330A1 (en) | Point cloud coding method, point cloud decoding method, coders, decoders, code stream and storage medium | |
| WO2025007360A1 (en) | Coding method, decoding method, bit stream, coder, decoder, and storage medium | |
| WO2025007355A9 (en) | Encoding method, decoding method, code stream, encoder, decoder, and storage medium | |
| WO2024065406A1 (en) | Encoding and decoding methods, bit stream, encoder, decoder, and storage medium | |
| WO2024216477A1 (en) | Encoding/decoding method, encoder, decoder, code stream, and storage medium | |
| WO2025010600A9 (en) | Encoding method, decoding method, code stream, encoder, decoder, and storage medium | |
| WO2024216479A9 (en) | Encoding and decoding method, code stream, encoder, decoder and storage medium | |
| WO2025076663A1 (en) | Encoding method, decoding method, encoder, decoder, and storage medium | |
| WO2025076672A1 (en) | Encoding method, decoding method, encoder, decoder, code stream, and storage medium | |
| WO2024212113A1 (en) | Point cloud encoding and decoding method and apparatus, device and storage medium | |
| WO2025076668A9 (en) | Encoding method, decoding method, encoder, decoder and storage medium | |
| WO2025145433A1 (en) | Point cloud encoding method, point cloud decoding method, codec, code stream, and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24934503 Country of ref document: EP Kind code of ref document: A1 |