WO2022141461A1 - 点云编解码方法、编码器、解码器以及计算机存储介质 - Google Patents
点云编解码方法、编码器、解码器以及计算机存储介质 Download PDFInfo
- Publication number
- WO2022141461A1 WO2022141461A1 PCT/CN2020/142301 CN2020142301W WO2022141461A1 WO 2022141461 A1 WO2022141461 A1 WO 2022141461A1 CN 2020142301 W CN2020142301 W CN 2020142301W WO 2022141461 A1 WO2022141461 A1 WO 2022141461A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- value
- sampling period
- maximum allowable
- point cloud
- syntax element
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 220
- 238000005070 sampling Methods 0.000 claims abstract description 619
- 238000012545 processing Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims description 64
- 230000015654 memory Effects 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 26
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 230000009466 transformation Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 5
- 230000002708 enhancing effect Effects 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 238000013517 stratification Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001627 detrimental effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003746 surface roughness Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 101000638069 Homo sapiens Transmembrane channel-like protein 2 Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 102100032054 Transmembrane channel-like protein 2 Human genes 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 235000014347 soups Nutrition 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/36—Level of detail
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Definitions
- the embodiments of the present application relate to the technical field of encoding and decoding, and in particular, to a point cloud encoding and decoding method, an encoder, a decoder, and a computer storage medium.
- G-PCC Geometry-based Point Cloud Compression
- Embodiments of the present application provide a point cloud encoding and decoding method, an encoder, a decoder, and a computer storage medium, which can enhance system consistency and improve encoding and decoding efficiency.
- an embodiment of the present application provides a point cloud encoding method, which is applied to an encoder, and the method includes:
- the attribute information is encoded by using the at least one enhancement layer and the at least one detail layer, a code stream is generated, and the preset value of the sampling period is written into the code stream.
- an embodiment of the present application provides a point cloud decoding method, which is applied to a decoder, and the method includes:
- Parse the code stream determine the geometric information of the decoded point cloud, and the analytical value of the sampling period when the level of detail is divided on the decoded point cloud;
- the decoded point cloud is processed according to the analytical value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one level of detail;
- the attribute information of the decoded point cloud is decoded by using the at least one enhancement layer and the at least one detail layer, and a reconstructed point cloud of the decoded point cloud is determined.
- an embodiment of the present application provides an encoder, the encoder includes a first acquiring unit, a first determining unit, a first sampling unit, and an encoding unit; wherein,
- the first obtaining unit is configured to obtain geometric information and attribute information of the input point cloud
- the first determining unit is configured to determine the maximum allowable value of the sampling period when the input point cloud is divided into levels of detail; and based on the maximum allowable value of the sampling period, determine the preset value of the sampling period;
- the first sampling unit configured to process the input point cloud according to the preset value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer;
- the encoding unit is configured to encode the attribute information by using the at least one enhancement layer and the at least one detail layer, generate a code stream, and write a preset value of the sampling period into the code stream.
- an embodiment of the present application provides an encoder, where the encoder includes a first memory and a first processor; wherein,
- the first memory for storing a computer program executable on the first processor
- the first processor is configured to execute the method according to the first aspect when running the computer program.
- an embodiment of the present application provides a decoder, the decoder includes a decoding unit, a second determining unit, and a second sampling unit; wherein,
- the decoding unit is configured to parse the code stream, determine the geometric information of the decoded point cloud, and the analytical value of the sampling period when the level of detail is divided on the decoded point cloud;
- the second determining unit configured to determine the maximum allowable value of the sampling period
- the second sampling unit is configured to, when the analytical value of the sampling period is less than or equal to the maximum allowable value of the sampling period, perform an analysis on the decoded point cloud according to the analytical value of the sampling period and the geometric information. processing to obtain at least one enhancement layer and at least one detail layer;
- the decoding unit is further configured to decode the attribute information of the decoded point cloud by using the at least one enhancement layer and the at least one detail layer, and determine a reconstructed point cloud of the decoded point cloud.
- an embodiment of the present application provides a decoder, the decoder includes a second memory and a second processor; wherein,
- the second memory for storing a computer program executable on the second processor
- the second processor is configured to execute the method according to the second aspect when running the computer program.
- an embodiment of the present application provides a computer storage medium, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor, the method described in the first aspect is implemented, or the computer program is executed by the second processor.
- the processor implements the method as described in the second aspect when executed.
- the embodiments of the present application provide a point cloud encoding and decoding method, an encoder, a decoder, and a computer storage medium.
- the geometric information and attribute information of the input point cloud are obtained;
- the maximum allowable value of the sampling period when dividing; the preset value of the sampling period is determined based on the maximum allowable value of the sampling period;
- the input point is determined according to the preset value of the sampling period and the geometric information
- the cloud performs processing to obtain at least one enhancement layer and at least one detail layer; encode the attribute information by using the at least one enhancement layer and the at least one detail layer, generate a code stream, and use the preset sampling period value is written to the code stream.
- the decoder side by parsing the code stream, the geometric information of the decoded point cloud and the analytical value of the sampling period when the level of detail is divided for the decoded point cloud are determined; the maximum allowable value of the sampling period is determined; When the analytical value of the sampling period is less than or equal to the maximum allowable value of the sampling period, the decoded point cloud is processed according to the analytical value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer; decode the attribute information of the decoded point cloud by using the at least one enhancement layer and the at least one detail layer, and determine the reconstructed point cloud of the decoded point cloud.
- the maximum value of the sampling period is specified in the encoder and the decoder, it can be ensured that the preset value of the sampling period does not exceed the maximum value of the sampling period, so that a point cloud is performed using the preset value of the sampling period.
- the consistency of the system can be enhanced, and the encoding and decoding efficiency can also be improved.
- 1A is a schematic diagram of the frame composition of a G-PCC encoder provided by the related art
- 1B is a schematic diagram of the framework composition of a G-PCC decoder provided by the related art
- FIG. 2 is a schematic structural diagram of a sampling-based LOD division process provided by the related art
- FIG. 3 is a schematic flowchart of a point cloud encoding method provided by an embodiment of the present application.
- FIG. 4 is a schematic flowchart of a point cloud decoding method provided by an embodiment of the present application.
- FIG. 5 is a schematic diagram of the composition and structure of an encoder provided by an embodiment of the present application.
- FIG. 6 is a schematic diagram of a specific hardware structure of an encoder according to an embodiment of the present application.
- FIG. 7 is a schematic diagram of the composition and structure of a decoder according to an embodiment of the present application.
- FIG. 8 is a schematic diagram of a specific hardware structure of a decoder according to an embodiment of the present application.
- first ⁇ second ⁇ third involved in the embodiments of the present application is only to distinguish similar objects, and does not represent a specific ordering of objects. It is understandable that “first ⁇ second ⁇ third” "Where permitted, the specific order or sequence may be interchanged to enable the embodiments of the application described herein to be implemented in sequences other than those illustrated or described herein.
- nouns and terms involved in the embodiments of the present application are described.
- the nouns and terms involved in the embodiments of the present application are applicable to the following explanations: point cloud compression (Point Cloud Compression, PCC), Geometry-based Point Cloud Compression (G-PCC), Video Point Cloud Compression (V-PCC), Level of Detail (LOD), Regional Adaptive Classification Layer transformation (Region Adaptive Hierarchal Transform, RAHT), slice (slice), bounding box (bounding box), octree (octree), triangle patch (triangle soup, trisoup), block (block), intersection (vertex) , RootNode, Moving Picture Experts Group (MPEG), International Standardization Organization (ISO), International Electrotechnical Commission (IEC), Audio Video Standard (Audio Video Standard) , AVS).
- point cloud compression Point Cloud Compression, PCC
- G-PCC Geometry-based Point Cloud Compression
- V-PCC Video Point Cloud Compression
- LOD Level of Detail
- RAHT
- the point cloud is the three-dimensional representation of the surface of the object
- the point cloud (data) on the surface of the object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
- a point cloud refers to a collection of massive three-dimensional points, and the points in the point cloud can include the location information of the point and the attribute information of the point.
- the position information of the point may be three-dimensional coordinate information of the point.
- the position information of the point may also be referred to as the geometric information of the point.
- the attribute information of the points may include color information and/or reflectivity, among others.
- the color information may be information in any color space.
- the color information may be RGB information. Among them, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B).
- the color information may be luminance chrominance (YcbCr, YUV) information. Among them, Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
- the points in the point cloud may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point.
- the points in the point cloud may include three-dimensional coordinate information of the point and color information of the point.
- a point cloud is obtained by combining the principles of laser measurement and photogrammetry, and the points in the point cloud may include three-dimensional coordinate information of the point, laser reflection intensity (reflectance) of the point, and color information of the point.
- Point clouds can be divided into:
- the first type of static point cloud that is, the object is static, and the device that obtains the point cloud is also static;
- the second type of dynamic point cloud the object is moving, but the device that obtains the point cloud is stationary;
- the third type of dynamic point cloud acquisition the device that acquires the point cloud is moving.
- point clouds are divided into two categories according to their use:
- 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 rescue and 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.
- the point cloud is a collection of massive points, storing the point cloud will not only consume a lot of memory, but also is not conducive to transmission, and there is no such a large bandwidth to support the direct transmission of the point cloud at the network layer without compression. cloud for compression.
- the point cloud encoding framework that can compress point clouds can be the G-PCC encoding and decoding framework or the V-PCC encoding and decoding framework provided by MPEG, or the AVS-PCC encoding and decoding framework provided by AVS.
- the G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud
- the V-PCC codec framework can be used to compress the second type of dynamic point cloud.
- the G-PCC codec framework is also called point cloud codec TMC13
- the V-PCC codec framework is also called point cloud codec TMC2.
- the input point cloud is divided into slices, and then the slices are independently encoded.
- the slices are independently encoded.
- the geometric information and attribute information of the point cloud are encoded separately.
- the G-PCC encoder first encodes the geometry information.
- the encoder performs coordinate transformation on the geometric information, so that all point clouds are contained in a bounding box; then quantization is performed.
- This step of quantization mainly plays the role of scaling. Due to the rounding of quantization, the geometric information of some points is the same.
- the process of quantifying and removing duplicate points is also called the voxelization process.
- octree-based division is performed on the bounding box. According to the different depth of octree division, the encoding of geometric information is divided into two frameworks based on octree and triangular patch set.
- the bounding box is divided into 8 sub-cubes, and the occupancy bits of the sub-cubes are recorded (where 1 is non-empty, 0 is empty), and for non-empty sub-cubes
- the spatial correlation between nodes and surrounding nodes is used to perform intra-frame prediction on the occupied bits, and finally arithmetic coding is performed, such as Context-based Adaptive Binary Arithmetic coding. Coding, CABAC), generates a binary geometric bit stream, that is, a geometric code stream.
- CABAC Context-based Adaptive Binary Arithmetic coding. Coding
- the octree division is also performed first, but the difference lies in the octree-based geometric information coding.
- This method does not need to divide the point cloud into the edge length of 1 ⁇ 1 ⁇ 1 unit cube, but the division is stopped when the side length of the block is W.
- the maximum number of the surface and the twelve edges of the block is obtained. Twelve vertexes.
- the vertex coordinates of each block are encoded in turn to generate a binary geometric bit stream, that is, a geometric code stream.
- the G-PCC encoder After the G-PCC encoder completes the geometric information encoding, it reconstructs the geometric information, and uses the reconstructed geometric information to encode the attribute information of the point cloud.
- the attribute encoding of point cloud mainly encodes the color information of the point in the point cloud.
- the encoder can perform color conversion on the color information of the points. For example, when the color information of the points in the input point cloud is represented using the RGB color space, the encoder can convert the color information from the RGB color space to the YUV color space. Then, the point cloud is recolored with the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information.
- color information coding there are mainly two transformation methods, one is the distance-based lifting transformation that relies on the LOD division, and the other is the direct RAHT transformation, both of which will transform the color information from the spatial domain.
- the frequency domain high-frequency coefficients and low-frequency coefficients are obtained, and finally the coefficients are quantized and arithmetically encoded to generate a binary attribute bit stream, that is, an attribute code stream.
- the geometric bit stream and the attribute bit stream in the binary code stream are independently decoded.
- the geometric information of the point cloud is obtained through arithmetic decoding-octree synthesis-surface fitting-reconstruction geometry-inverse coordinate transformation;
- the attribute bit stream through arithmetic decoding-inverse coordinate transformation Quantization-LOD-based inverse promotion or RAHT-based inverse transformation-inverse color conversion to obtain the attribute information of the point cloud, and restore the 3D image model of the point cloud data to be encoded based on the geometric information and attribute information.
- LOD partitioning of the point cloud is required.
- LOD is to divide the point cloud into a series of enhancement layers and detail layers according to some way.
- FIG. 2 shows a schematic structural diagram of a sampling-based LOD division process provided in the related art.
- FIG. 2 shows a schematic structural diagram of a sampling-based LOD division process provided in the related art.
- FIG. 2 shows a schematic structural diagram of a sampling-based LOD division process provided in the related art.
- FIG. 2 shows a schematic structural diagram of a sampling-based LOD division process provided in the related art.
- FIG. 2 shows a schematic structural diagram of a sampling-based LOD division process provided in the related art.
- FIG. 2 shows a schematic structural diagram of a sampling-based LOD division process provided in the related art.
- FIG. 2 shows a schematic structural diagram of a sampling-based LOD division process provided in the related art.
- FIG. 2 shows a schematic structural diagram of a sampling-based LOD division process provided in the related art.
- sampling is performed according to the sampling period of 2 to obtain the enhancement layer 202 and the detail layer 203 (ie LOD 2 ); then the detail layer 203 is continuously sampled according to the sampling period of 2 to obtain a new enhancement layer layer 304 and a new detail layer 305 (ie LOD 3 ); subsequently, the division is stopped until there is only one point in the detail layer or the number of LOD division layers set by the user is reached.
- these detail layers are used for prediction or lifting transformation.
- the point in the coded detail layer and the coded point in the current enhancement layer are used to predict the current point; in the process of lifting transformation, the point in the enhancement layer is used to compare the point in the enhancement layer Make predictions, then use the prediction residuals to update the points in the detail layer.
- the sampling period is used to sample the point cloud to obtain the detail layer, and the remaining points are used as the enhancement layer.
- the complexity of this method is low, it can well capture the distribution of initial points, and can predict the non-smooth attribute information on irregularly sampled point clouds more effectively.
- the maximum value of the sampling period of LOD is not specified, and the value range of the syntax element sampling_period_minus2 is not clearly specified, so that the sampling period in the sampling-based LOD generation method set by the user cannot be set in the encoder/decoder.
- the consistency check makes the consistency of the system and the coding efficiency have a certain influence, resulting in the reduction of the coding and decoding efficiency due to the uncertainty of the range of the syntax element.
- An embodiment of the present application provides a point cloud encoding method.
- the basic idea of the method is to obtain the geometric information and attribute information of the input point cloud; The maximum allowable value; based on the maximum allowable value of the sampling period, the preset value of the sampling period is determined; the input point cloud is processed according to the preset value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer; encoding the attribute information by using the at least one enhancement layer and the at least one detail layer, generating a code stream, and writing the preset value of the sampling period into the code stream.
- the maximum value of the sampling period is specified in the encoder and the decoder, it can be ensured that the preset value of the sampling period does not exceed the maximum value of the sampling period, so that a point cloud is performed using the preset value of the sampling period.
- the consistency of the system can be enhanced, and the encoding and decoding efficiency can also be improved.
- the point cloud encoding method provided by the embodiment of the present application is applied to a video encoding device, that is, a G-PCC encoder, which may also be referred to as an encoder for short.
- the functions implemented by the method can be implemented by the first processor in the encoder calling a computer program.
- the computer program can be stored in the first memory.
- the encoder includes at least a first processor and a first memory.
- FIG. 3 it shows a schematic flowchart of a point cloud encoding method provided by an embodiment of the present application. As shown in Figure 3, the method may include:
- a point in a point cloud, can be all the points in the point cloud, or some points in the point cloud, and these points are relatively concentrated in space.
- the method in the embodiment of the present application is mainly applied to the “generating LOD” part, and for the sampling period of the LOD in the current related art, it can be
- the content of the point cloud can adaptively calculate the maximum value of the sampling period to ensure the consistency of the system.
- the input point cloud can be understood as point cloud data that needs to be layered, for example, point cloud data used to form a three-dimensional video.
- the input point cloud it can include geometric information and attribute information.
- the geometric information and attribute information of the point cloud are encoded separately.
- the geometric information includes: point cloud normal vector, curvature, point cloud density, point cloud surface roughness, point cloud center of gravity, point cloud weight center of gravity, point cloud covariance and point cloud cross-covariance, etc.
- the attribute information includes: the square of the division distance of the input point cloud, the total number of division layers, the information of the color space, the spatial resolution, the point precision and the surface normal vector, etc.
- LOD layering is involved at this time, and the layering method here can be realized according to the Morton code or according to the sampling period.
- This embodiment of the present application implements LOD stratification by means of a sampling period.
- S302 Determine the maximum allowable value of the sampling period when the input point cloud is divided into levels of detail.
- S303 Determine a preset value of the sampling period based on the maximum allowable value of the sampling period.
- the maximum allowable value of the sampling period is mainly related to the relevant content of the input point cloud, such as the total number of points contained in the input point cloud, the number of points contained in the slice, and the maximum number of points that the slice can contain. Allowable points, etc.
- the determining the maximum allowable value of the sampling period when the input point cloud is divided into the level of detail may include:
- the maximum allowable value of the sampling period is determined according to the total number of points contained in the input point cloud.
- the determining the maximum allowable value of the sampling period according to the total number of points contained in the input point cloud may include:
- the maximum allowable value of the sampling period is set equal to the total number of points contained in the input point cloud.
- the embodiment of the present application may determine the total number of points contained in the input point cloud, and then determine the total number of points contained in the input point cloud as the maximum allowable value of the sampling period. At this time, the preset value of the sampling period will be less than or equal to the total number of points contained in the input point cloud.
- the Conformance parameter is used to characterize the properties of the point cloud code stream, and includes at least one of the following parameters: Profile, Tier, or Level, which can also be used for Determines the maximum allowable value for the sampling period.
- the determining the maximum allowable value of the sampling period when the input point cloud is divided into the level of detail may include:
- the compliance parameter includes at least one of a grade parameter, a grade parameter, and a grade parameter
- the maximum allowable value of the sampling period is determined according to the compliance parameter.
- the determining the maximum allowable value of the sampling period according to the compliance parameter may include: setting the maximum allowable value of the sampling period to be equal to the compliance parameter the corresponding preset value.
- the embodiment of the present application may determine the compliance parameter of the input point cloud, and then determine the maximum allowable value of the sampling period according to the compliance parameter of the input point cloud.
- the maximum allowable value of the sampling period may be set to be equal to the preset value corresponding to the compliance parameter.
- the determining the maximum allowable value of the sampling period when the input point cloud is divided into the level of detail may include:
- the maximum allowable value of the sampling period is set as a preset constant value.
- the maximum allowable value of the sampling period may be set as a preset constant value.
- the preset constant value is an integer value greater than zero.
- the determining the maximum allowable value of the sampling period when the input point cloud is divided into the level of detail may include:
- the input point cloud is divided to obtain at least one slice, and the number of points contained in the at least one slice is determined;
- the number of points included in the at least one slice is determined, and the maximum allowable value of the sampling period is determined.
- the determining the maximum allowable value of the sampling period according to the number of points included in the at least one slice may include:
- the maximum value is selected from the number of points, and the maximum value is determined as the maximum allowable value of the sampling period.
- the total number of points contained in the input point cloud and the maximum allowable number of points that can be contained in the slice can also be compared Compare; if the total number of points contained in the input point cloud is greater than the maximum allowable number of points that the slice can contain, then the input point cloud needs to be divided into slices to obtain at least one slice; then determine the number of points contained in the at least one slice (it can be represented by N i ); then for the entire input point cloud, the maximum allowable value of the corresponding sampling period can be max(N i ), that is, the maximum value of the points contained in the at least one slice is determined as The maximum allowable value for the sampling period.
- This input point cloud can be regarded as a slice, that is, the input point cloud can be divided into slices.
- the total number of points contained in the slice is determined as the maximum allowable value of the sampling period, or the number of points contained in the slice is determined as the maximum allowable value of the sampling period.
- the method may further include: setting the maximum allowable value of the sampling period to be equal to the maximum allowable number of points that the slice may contain.
- the maximum allowable number of points that the slice can contain can be used to replace the number of points contained in each slice.
- the maximum allowable number of points is determined as the maximum allowable value of the sampling period.
- this embodiment of the present application may also use the first syntax element to convert the number of points contained in the at least one slice.
- the number of points contained in it is written into the code stream. Therefore, in some embodiments, the method may further include:
- the value of the first syntax element is written into the codestream.
- the first syntax element may be represented by geom_num_points_minus1, and the first syntax element is used to indicate the number of points of the slice.
- the value of the first syntax element corresponding to the at least one slice can be determined.
- the determining the value of the first syntax element corresponding to the at least one slice according to the number of points included in the at least one slice may include:
- the value of the first syntax element is set equal to the sum of the number of points contained in the at least one slice and a first constant value, where the first constant value is a preset integer value.
- the first constant value is equal to -1.
- the value of the first syntax element corresponding to the at least one slice can be obtained by subtracting 1 from the number of points included in the at least one slice.
- the number of points contained in the at least one slice may be decremented by 1, so as to obtain the value of the first syntax element corresponding to the at least one slice.
- the decoder after obtaining the value of the first syntax element, the number of points contained in the at least one slice can be obtained by performing an operation of adding 1 to it.
- the writing the value of the first syntax element into the code stream may include:
- the value of the first syntax element of each slice is correspondingly written into the geometric data unit of the slice, and then written into the code stream through the geometric data unit.
- the subsequent decoder can obtain the point number of the at least one slice by adding 1 to the value of the first syntax element.
- a slice may include one or more geometry data units and several attribute data units. Attribute data units depend on corresponding geometry data units in the same slice. In a slice, geometric data units must appear before any corresponding attribute data units, and data units in a slice must be contiguous.
- geom_num_points_minus1 is written in the geometry data unit footer, and the geometry data unit footer is located in the geometry data unit.
- the preset value of the sampling period is preset by the user, and is used to process the input point cloud (such as sampling processing) according to the preset value of the sampling period to generate the LOD.
- the determining the preset value of the sampling period based on the maximum allowable value of the sampling period may include:
- the candidate input value of the sampling period is determined as the preset value of the sampling period.
- the user will input the candidate input value of the sampling period according to the actual situation.
- the candidate input value of the sampling period may be determined as the preset value of the sampling period.
- the candidate input value of the sampling period is greater than the maximum allowable value of the sampling period, the candidate input value of the sampling period is an illegal value, and the input point cloud is processed by using the candidate input value of the sampling period to generate LOD, will be detrimental to the consistency of the system.
- the determining the preset value of the sampling period based on the maximum allowable value of the sampling period may include: setting the preset value of the sampling period to be less than or equal to the The maximum allowable value for the sampling period.
- the preset value of the sampling period is less than or equal to the maximum allowable value of the sampling period, so as to enhance the consistency of the system.
- sampling period can be represented by the second syntax element (sampling_period_minus2).
- sampling_period_minus2 the embodiments of the present application also involve the maximum allowable value of the second syntax element and the default value of the second syntax element.
- the method may also include:
- the maximum allowable value of the second syntax element is determined; wherein the second syntax element is used to indicate the sampling period when the input point cloud is divided into the level of detail.
- the maximum allowable value of the second syntax element may be determined according to the maximum allowable value of the sampling period.
- the determining the maximum allowable value of the second syntax element based on the maximum allowable value of the sampling period may include:
- the maximum allowable value of the second syntax element is set equal to the sum of the maximum allowable value of the sampling period and a second constant value, wherein the second constant value is a preset integer value.
- the second constant value is equal to -2.
- the maximum allowable value of the second syntax element may be obtained by subtracting 2 from the maximum allowable value of the sampling period.
- the determining the maximum allowable value of the second syntax element based on the maximum allowable value of the sampling period may include:
- the maximum allowed value of the second syntax element is set equal to the maximum allowed value of the sampling period.
- the maximum allowable value of the second syntax element can be obtained by subtracting 2 from the maximum allowable value of the sampling period, or it can be directly determined by directly determining the maximum allowable value of the sampling period as the maximum allowable value of the second syntax element. Allowed values.
- the writing the preset value of the sampling period into the code stream may include:
- the value of the second syntax element is written into the codestream.
- the value of the second syntax element can be determined according to the preset value of the sampling period, and then the value of the second syntax element is written into the code stream.
- the value of the second syntax element can be placed in an attribute parameter set (A Parameter Set, APS), and then written into the code stream through the attribute parameter set.
- the writing the preset value of the sampling period into the code stream may include:
- the value of the second syntax element is written into an attribute parameter set, and the attribute parameter set is written into the code stream.
- the value of the second syntax element can be written into the attribute parameter set, and then the attribute parameter set is written into the code stream.
- the subsequent decoder obtains the attribute parameter set, and then obtains the value of the first syntax element from the attribute parameter set, thereby obtaining the preset value of the sampling period.
- the value of the second syntax element is less than or equal to the maximum allowed value of the second syntax element.
- the determining the value of the second syntax element based on the preset value of the sampling period may include:
- the value of the second syntax element is set equal to the sum of a preset value of the sampling period and a third constant value, wherein the third constant value is a preset integer value.
- the third constant value is equal to -2.
- the value of the second syntax element can be obtained by subtracting 2 from the set value of the sampling period. For example, if the default value of the sampling period is 4, it is determined that the value of the second syntax element is equal to 2.
- the writing the value of the second syntax element into the code stream may include:
- the first number of bits is set to be equal to a minimum integer value of a logarithmic value with a base of 2 that is greater than the maximum allowable value of the sampling period.
- the first bit number M corresponding to the second syntax element in the code stream is determined first.
- M may be a minimum integer value of a logarithmic value with a base of 2 that is greater than the maximum allowable value of the sampling period. In this way, the value of the second syntax element can be converted into M binary bit strings, and the M binary bit strings are written into the code stream.
- the maximum allowable value of sampling_period_minus2 may be N-2.
- the minimum value of the sampling period is 2, then 2 ⁇ T ⁇ N, where T represents the sampling period.
- the value of sampling_period_minus2 can be located in the interval of [0, N-2]. Further, the value of sampling_period_minus2 is converted into M binary bit strings, and then the M binary bit strings are written into the code stream.
- the input point cloud can be one or more slices, and the maximum allowable number of points specified by the slice is represented by Max points in a slice. Then the Max points in a slice in G-PCC can be used to replace the points in each slice, so that the value range of the syntax element sampling_period_minus2 can be fixed. For example, assuming that Max points in a slice is 1100000 in G-PCC, the value range of sampling_period_minus2 can be specified as [0, Max points in a slice-2], or because the values of syntax elements are all greater than or equal to zero value, then the value range can also be simply written as Max points in a slice.
- the embodiment of the present application can adaptively determine the maximum sampling period according to the content of the point cloud, can clearly specify the value range of the syntax element sampling_period_minus2, and can check the sampling period set by the user in the encoder, thereby enhancing the The consistency of the system may improve the codec performance at the same time.
- S304 Process the input point cloud according to the preset value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer.
- D0 and ⁇ initial parameters set by two users respectively, which are used as distance threshold parameters when dividing LOD, where ⁇ >1.
- the specific method for calculating the Morton code is described as follows. For the three-dimensional coordinates represented by d-bit binary numbers for each component, its three components can be expressed as shown in formula (1):
- the Morton code M starts from the highest bit for x, y, and z, and sequentially arranges x l , y l , z l to the lowest bit.
- the calculation formula of M is shown in the following formula (2):
- the embodiments of the present application may implement LOD division on the input point cloud based on the sampling period. Specifically, after the preset value of the sampling period is determined, the input point cloud can be processed (specifically, sampling processing) according to the preset value of the sampling period and geometric information, so as to realize LOD layering, thereby obtaining at least one enhancement layers and at least one detail layer.
- the processing of the input point cloud according to the preset value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer may include:
- the input point cloud is processed by using the preset value of the sampling period to obtain a first enhancement layer and a first detail layer.
- the obtained detail layer needs to be processed layer by layer.
- the detail layer at this time can be called the target detail layer, and the target detail layer is processed by using the preset value of the sampling period to obtain the i+1th layer (ie, the next enhancement layer and the next detail layer) , and stop processing until the number of points in the next detail level is equal to 1 or when the preset division level is reached.
- the method can also include:
- the target detail layer is processed by using the preset value of the sampling period to obtain the next enhancement layer and the next detail layer;
- the obtained next detail layer is set as the target detail layer, and the processing of the target detail layer by using the preset value of the sampling period is continued. , the steps of obtaining the next enhancement layer and the next detail layer, until the point number of the next detail layer is equal to 1, the processing is terminated.
- the i-th detail layer is processed by using the preset value of the sampling period to obtain the i+1-th enhancement layer and the i+1-th detail layer, where i is an integer greater than zero;
- the LOD layering reaches a preset number of dividing layers as a condition for the LOD to stop being divided.
- the method can also include:
- the input point cloud needs to be the input point cloud obtained after sorting. That is to say, the input point cloud needs to be sorted first; then sampling is performed according to the preset value of the sampling period to obtain the first enhancement layer and the first detail layer; then the i-th detail layer is sampled again to obtain the i-th + 1 enhancement layer and the i+1th detail layer, i is an integer greater than zero; until the number of points of the i+1th detail layer is equal to 1 or reaches the preset number of division layers set by the user, the division is stopped.
- the determining the preset value of the sampling period based on the maximum allowable value of the sampling period may include:
- a target preset value of the sampling period corresponding to the target detail layer is determined.
- using the preset value of the sampling period to process the target detail layer to obtain the next enhancement layer and the next detail layer may include:
- the target detail layer is processed by using the target preset value of the sampling period to obtain the next enhancement layer and the next detail layer.
- the target preset value of the sampling period is less than or equal to the maximum allowable value of the sampling period.
- the sampling period corresponding to the at least one detail layer may be a fixed sampling period or a variable sampling period.
- the preset value of the sampling period corresponding to the i-th detail layer may be represented by the i-th preset value of the sampling period.
- the method may further include: setting the preset value of the sampling period corresponding to the i-th detail layer to the i-th preset value of the sampling period, and the i-th preset value of the sampling period The value is less than or equal to the maximum allowable value of the sampling period.
- the method may also include:
- the i-th preset value of the sampling period is different from the i+1-th preset value of the sampling period, determining different preset values of the sampling period corresponding to different detail layers in the at least one detail layer;
- the i-th preset value of the sampling period is the same as the i+1-th preset value of the sampling period, determining that different detail layers in the at least one detail layer correspond to the same preset value of the sampling period.
- the preset value of the sampling period corresponding to each layer is less than or equal to the maximum allowable value of the sampling period.
- different detail layers in the at least one detail layer correspond to preset values of different sampling periods, and may also correspond to preset values of the same sampling period.
- the preset value of the sampling period corresponding to the i-th detail layer is greater than the preset value of the sampling period corresponding to the i+1-th detail layer. The value is set, but it is not specifically limited here.
- sampling_period_minus2[idx] the value of the second syntax element corresponding to the idxth detail layer can be represented by sampling_period_minus2[idx]
- the preset value of the sampling period corresponding to the detail level idx (or called the idxth detail layer) is added by sampling_period_minus2[idx] 2 get.
- sampling_period_minus2[idx] is less than or equal to the maximum allowable value of the second syntax element.
- S305 Use the at least one enhancement layer and the at least one detail layer to encode the attribute information, generate a code stream, and write the preset value of the sampling period into the code stream.
- the attribute information can be encoded by using the at least one enhancement layer and the at least one detail layer.
- the attribute information can be encoded by using the points in the encoded detail layer and the encoded data in the current enhancement layer. Predict the current point by point to obtain the prediction data; then use the original data of the current point and the prediction data to calculate the difference value to obtain the prediction residual, and write the prediction residual into the code stream for the subsequent decoder to process the point cloud Used when refactoring.
- the input point cloud is sampled by sampling period to realize LOD division, the complexity of this method is low, and the distribution of initial points can be well captured, and the irregular sampling Non-smooth attribute information on the point cloud for more effective prediction.
- the embodiment of the present application also predefines its maximum value as MAX. In the LOD generation method based on the sampling period, the input point cloud is first sorted, and then the sorted input point cloud is sampled according to the sampling period set by the user, then the maximum sampling period should not be larger than the current point cloud.
- sampling_period_minus2 can be defined as 0 to N-2. It should be noted that since the syntax elements in the encoder usually start from zero, the sampling period will be decremented by 2.
- syntax element sampling_period_minus2 is located in the attribute parameter set, and it is picture-level. Each slice will refer to this syntax element (sampling_period_minus2) because the attribute parameter set has higher priority.
- sampling_period_minus2 the descriptor for this syntax element is ue(v).
- the value of sampling_period_minus2 is generally set to 2, which means that the sampling period set by the user (that is, the preset value of the sampling period) is equal to 4.
- the descriptor of the syntax element can also use u(v), which mainly depends on geom_num_points_minus1, and the descriptor of geom_num_points_minus1 is u(24).
- MAX does not write into the code stream. It is mainly obtained by using the relevant content of the input point cloud (such as the number of points in the input point cloud, the number of points in the slice, and the maximum allowable number of points in the slice, etc.), and is only used for System consistency check.
- the encoder just writes the preset value of the sampling period (that is, the value of sampling_period_minus2) into the code stream.
- the input point cloud when the number of points in the input point cloud is greater than the variable Max_points_in_a_slice, the input point cloud can be divided into several slices. At this time, if MAX directly uses the number of points in the input point cloud, it will be a very large value, which means that it does not play a limiting role. In this way, after the input point cloud is divided into slices, the maximum value of the corresponding sampling period (ie, the maximum allowable value) is the number of points (N i ) in each slice. Then, for the entire input point cloud, the maximum value of the corresponding sampling period is max ⁇ N i ⁇ .
- the header information (Geometry Slice Header, GSH) of the slice's corresponding geometry information
- GSH Geometry Slice Header
- this syntax element is geom_num_points_minus1.
- geom_num_points_minus1 is written in the geometry data unit footer, and the geometry data unit footer is located in the geometry data unit.
- the attribute parameter set is before or after GSH, the number of slice points cannot be used to represent the value of sampling_period_minus2, because the number of slice points is only used to limit the maximum allowable value of sampling_period_minus2.
- sampling_period_minus2[idx] plus 2 can indicate the value of the sampling period of the detail level idx, and the value of the sampling period is in the interval of 0 ⁇ xx".
- the value of the sampling period may be abbreviated as "less than or equal to MAX”.
- the embodiment of the present application can adaptively determine the maximum sampling period of the point cloud according to the content of the point cloud, so that the value range of the syntax element sampling_period_minus2 can be clearly specified.
- This embodiment provides a point cloud encoding method, by obtaining the geometric information and attribute information of the input point cloud; determining the maximum allowable value of the sampling period when the input point cloud is divided into detail levels; Allowing a value to determine the preset value of the sampling period; processing the input point cloud according to the preset value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer; using the The at least one enhancement layer and the at least one detail layer encode the attribute information, generate a code stream, and write the preset value of the sampling period into the code stream.
- the preset value of the sampling period will not exceed the maximum value of the sampling period, so that when a series of processing is performed on the point cloud by using the preset value of the sampling period , can enhance the consistency of the system, and can also improve the coding efficiency, so as to improve the coding performance.
- the point cloud decoding method provided in the embodiment of the present application is applied to a video decoding device, that is, a G-PCC decoder, which may also be referred to as a decoder for short.
- a video decoding device that is, a G-PCC decoder, which may also be referred to as a decoder for short.
- the functions implemented by the method can be implemented by calling a computer program by the second processor in the decoder.
- the computer program can be stored in the second memory.
- the decoder includes at least the second processor and the second memory.
- FIG. 4 it shows a schematic flowchart of a point cloud decoding method provided by an embodiment of the present application. As shown in Figure 4, the method may include:
- S401 Parse the code stream, determine the geometric information of the decoded point cloud, and the analytical value of the sampling period when the level of detail is divided for the decoded point cloud.
- a point in a point cloud, can be all points in the point cloud, or some points in the point cloud, and these points are relatively concentrated in space.
- the method in the embodiment of the present application is mainly applied to the “generating LOD” part.
- the sampling period of the LOD in the current related art it can be
- the content of the point cloud can adaptively calculate the maximum value of the sampling period to ensure the consistency of the system.
- a decoded point cloud can be obtained, and the decoded point cloud can be understood as point cloud data that needs to be layered, for example, point cloud data used to form a three-dimensional video.
- the decoded point cloud it can include geometric information and attribute information.
- the geometric information includes: point cloud normal vector, curvature, point cloud density, point cloud surface roughness, point cloud center of gravity, point cloud weight center of gravity, point cloud covariance and point cloud cross-covariance, etc.
- the attribute information includes: the square of the division distance of the input point cloud, the total number of division layers, the information of the color space, the spatial resolution, the point precision and the surface normal vector, etc.
- LOD layering is involved at this time, and the layering method here can be implemented according to the Morton code, or can be implemented according to the sampling period. In this embodiment of the present application, the sampling period is used to implement LOD stratification.
- sampling period can be represented by the second syntax element (sampling_period_minus2).
- the parsing the code stream and obtaining the parsing value of the sampling period may include:
- the analytical value of the sampling period is determined according to the value of the second syntax element.
- the decoder can obtain the value of the second syntax element by parsing the code stream; then according to the value of the second syntax element value, the analytical value of the sampling period can be determined.
- the parsing the code stream to determine the value of the second syntax element may include:
- the value of the second syntax element is determined.
- the decoder can obtain the attribute parameter set by parsing the code stream; then the value of the second syntax element can be obtained from the attribute parameter set; and then the sampling can be determined according to the value of the second syntax element Analytic value of the period.
- the analytical value of the sampling period can be determined, and then the decoded point cloud can be processed (such as sampling processing) according to the analytical value of the sampling period.
- S402 Determine the maximum allowable value of the sampling period.
- the maximum allowable value of the sampling period is mainly related to the relevant content of the decoded point cloud, such as the number of points contained in the decoded point cloud, the number of points contained in the slice, and the maximum allowable value that the slice can contain. points, etc.
- the determining the maximum allowable value of the sampling period may include:
- the maximum allowable number of points that can be included in the slice is used to determine the maximum allowable value of the sampling period.
- determining the maximum allowable number of points that the slice can contain to determine the maximum allowable value of the sampling period may include:
- the maximum allowable value of the sampling period is set equal to the maximum allowable number of points that the slice can contain.
- the decoder already includes the maximum allowable number of points that a slice can contain; then for one or more slices of the decoded point cloud, the maximum allowable number of points that a slice can contain can be used to replace each The number of points in the slice. At this time, the maximum allowable number of points that the slice can contain can be determined as the maximum allowable value of the sampling period.
- the determining the maximum allowable value of the sampling period may include:
- the maximum allowable value of the sampling period is determined according to the number of points included in the at least one slice.
- the determining the maximum allowable value of the sampling period according to the number of points included in the at least one slice may include:
- the maximum value is selected from the number of points, and the maximum value is determined as the maximum allowable value of the sampling period.
- the first syntax element may be represented by geom_num_points_minus1, and the first syntax element is used to indicate the number of points included in the slice.
- the encoder obtains the number of points contained in at least one slice
- the number of points contained in the at least one slice is written into the code stream through the value of the first syntax element; thus, in In the decoder, the value of the first syntax element can be obtained by parsing the code stream, and then the number of points (which can be represented by N i ) contained in the at least one slice can be determined; then for the entire decoded point cloud, its corresponding
- the maximum allowable value of the sampling period may be max(N i ), that is, the maximum value among the points of the at least one slice is determined as the maximum allowable value of the sampling period.
- This decoded point cloud can be regarded as a slice, that is, the slice can be divided into The number of included points is determined as the maximum allowable value of the sampling period.
- the parsing the code stream to obtain the value of the first syntax element corresponding to at least one slice may include:
- the geometric data unit of at least one slice can be obtained; then, from the geometric data unit of the at least one slice, the first syntax corresponding to the at least one slice can be obtained The value of the element, and then the number of points contained in the at least one slice can be determined.
- a slice may include one or more geometry data units and several attribute data units. Attribute data units depend on corresponding geometry data units in the same slice. In a slice, geometric data units must appear before any corresponding attribute data units, and data units in a slice must be contiguous.
- geom_num_points_minus1 is written in the geometry data unit footer, and the geometry data unit footer is located in the geometry data unit.
- the determining the number of points included in the at least one slice according to the value of the first syntax element may include:
- the value of the number of points included in the at least one slice is set equal to the sum of the value of the first syntax element and a first constant value, wherein the first constant value is a preset integer value.
- the first constant value is equal to 1.
- the number of points included in the at least one slice may be obtained by adding 1 to the value of the first syntax element.
- the decoder after obtaining the value of the first syntax element, the number of points contained in the at least one slice can be obtained by adding 1 to it;
- the selected maximum value is determined as the maximum allowable value of the sampling period.
- the determining the maximum allowable value of the sampling period may include:
- the maximum allowable value of the sampling period is determined according to the total number of points contained in the decoded point cloud.
- parsing of the code stream to determine the total number of points included in the decoded point cloud may include:
- the total number of points included in the decoded point cloud is determined according to the value of the first syntax element corresponding to at least one slice.
- the number of points contained in the at least one slice can be determined. If the point cloud is not divided, that is, if there is only one slice, the number of points contained in the decoded slice can be determined as the total number of points contained in the decoded point cloud; if the point cloud is divided, that is, there are at least two slices In the case of , the number of points contained in the at least two slices obtained by decoding may be summed, and the calculation result may be determined as the total number of points contained in the decoded point cloud.
- determining the maximum allowable value of the sampling period according to the total number of points contained in the decoded point cloud may include: determining the total number of points contained in the decoded point cloud as The maximum allowable value of the sampling period.
- the decoder can also determine the total number of points contained in the decoded point cloud by parsing the code stream, and then determine the total number of points contained in the decoded point cloud as the sampling period The maximum allowable value of . At this time, the preset value of the sampling period will be less than or equal to the total number of points contained in the decoded point cloud.
- the Conformance parameter is used to characterize the properties of the point cloud code stream, and includes at least one of the following parameters: Profile, Tier, or Level, which can also be used for Determines the maximum allowable value for the sampling period.
- the determining the maximum allowable value of the sampling period may include:
- Parsing the code stream to determine a compliance parameter wherein the compliance parameter includes at least one of a grade parameter, a grade parameter, and a grade parameter;
- the maximum allowable value of the sampling period is determined according to the compliance parameter.
- the determining the maximum allowable value of the sampling period according to the compliance parameter may include: setting the maximum allowable value of the sampling period to be equal to the compliance parameter the corresponding preset value.
- the embodiment of the present application may determine the compliance parameter of the input point cloud, and then determine the maximum allowable value of the sampling period according to the compliance parameter of the input point cloud.
- the maximum allowable value of the sampling period may be set to be equal to the preset value corresponding to the compliance parameter.
- the determining the maximum allowable value of the sampling period may include:
- the maximum allowable value of the sampling period is set as a preset constant value.
- the maximum allowable value of the sampling period may be set as a preset constant value.
- the preset constant value is an integer value greater than zero.
- the sampling period is divided into the maximum allowable value and the preset value, then for the second syntax element, the embodiment of the present application also involves the maximum allowable value and the first value of the second syntax element. Default value for two syntax elements.
- the method may also include:
- a maximum allowable value for the second syntax element is determined based on the maximum allowable value for the sampling period.
- the maximum allowable value of the second syntax element may be determined according to the maximum allowable value of the sampling period.
- the determining the maximum allowable value of the second syntax element based on the maximum allowable value of the sampling period may include:
- the maximum allowable value of the second syntax element is set equal to the sum of the maximum allowable value of the sampling period and a second constant value, wherein the second constant value is a preset integer value.
- the second constant value is equal to -2.
- the maximum allowable value of the second syntax element may be obtained by subtracting 2 from the maximum allowable value of the sampling period.
- the determining the maximum allowable value of the second syntax element based on the maximum allowable value of the sampling period may include:
- the maximum allowed value of the second syntax element is set equal to the maximum allowed value of the sampling period.
- the maximum allowable value of the second syntax element can be obtained by subtracting 2 from the maximum allowable value of the sampling period, or it can be directly determined by directly determining the maximum allowable value of the sampling period as the maximum allowable value of the second syntax element. Allowed values.
- the value of the second syntax element is less than or equal to the maximum allowable value of the second syntax element.
- the determining the analytical value of the sampling period according to the value of the second syntax element may include:
- the analytical value of the sampling period is set equal to the sum of the value of the second syntax element and a third constant value, wherein the third constant value is a preset integer value.
- the third constant value is equal to 2.
- the preset value of the sampling period may be obtained by adding 2 to the value of the second syntax element. For example, if the value of the second syntax element is 2, the default value of the sampling period is equal to 4.
- the parsing the code stream to determine the value of the second syntax element may include:
- the first bit number corresponding to the second syntax element in the code stream is determined according to the maximum allowable value of the sampling period.
- the first number of bits is set to be equal to a minimum integer value of a logarithmic value with a base of 2 that is greater than the maximum allowable value of the sampling period.
- the method can also include:
- the value of the second syntax element is set equal to the unsigned integer corresponding to the binary bit string.
- the first bit number M corresponding to the second syntax element in the code stream is determined first.
- M may be a minimum integer value of a logarithmic value with a base of 2 that is greater than the maximum allowable value of the sampling period. In this way, M binary bit strings can be read from the code stream, and the value of the second syntax element is set equal to the unsigned integer number corresponding to the M binary bit strings.
- the maximum allowable value of sampling_period_minus2 may be N-2.
- the minimum value of the sampling period is 2, then 2 ⁇ T ⁇ N, where T represents the sampling period.
- the value of sampling_period_minus2 can be located in the interval of [0, N-2].
- sampling_period_minus2 is not in the range of [0, N-2]; it indicates that the parsing is wrong, or the parsed sampling period is not available, then use the candidate input value of the sampling period to input
- the point cloud is processed to generate LOD, which will be detrimental to the consistency of the system.
- the decoded point cloud may be one or more slices, and the maximum allowable number of points specified by the slice is represented by Max points in a slice. Then the Max points in a slice in G-PCC can be used to replace the points in each slice, so that the value range of the syntax element sampling_period_minus2 can be fixed. For example, assuming that Max points in a slice is 1100000 in G-PCC, the value range of sampling_period_minus2 can be specified as [0, Max points in a slice-2], or because the values of syntax elements are all greater than or equal to zero value, then the value range can also be simply written as Max points in a slice.
- the embodiments of the present application can adaptively determine the maximum sampling period according to the content of the point cloud, can clearly specify the value range of the syntax element sampling_period_minus2, and can check the sampling period set by the user in the decoder, thereby enhancing the The consistency of the system may improve the codec performance at the same time.
- the embodiments of the present application need to satisfy the following conditions: the analytical value of the sampling period is less than or equal to the maximum allowable value of the sampling period;
- the information processes the decoded point cloud to obtain at least one enhancement layer and at least one detail layer.
- the LOD division of the decoded point cloud can be implemented based on the sampling period. Specifically, after the analytical value of the sampling period is determined, the decoded point cloud can be processed (specifically, sampling processing) according to the analytical value of the sampling period and geometric information to implement LOD layering, thereby obtaining at least one enhancement layer and at least one detail layer.
- the processing of the decoded point cloud according to the analytical value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer may include:
- the decoded point cloud is processed using the analytical value of the sampling period to obtain a first enhancement layer and a first detail layer.
- the obtained detail layer needs to be processed layer by layer.
- the detail layer at this time can be called the target detail layer, and the target detail layer is processed by using the analytical value of the sampling period to obtain the i+1th layer (ie, the next enhancement layer and the next detail layer), Stop processing until the number of points of the next detail level is equal to 1 or when the preset division level is reached.
- the method can also include:
- the obtained next detail layer is set as the target detail layer, and the processing of the target detail layer by using the analytical value of the sampling period is continued, The step of obtaining the next enhancement layer and the next detail layer, until the point number of the next detail layer is equal to 1, the processing is terminated.
- the i-th detail layer is processed using the analytical value of the sampling period to obtain the i+1-th enhancement layer and the i+1-th detail layer, where i is an integer greater than zero;
- the LOD layering reaches a preset number of dividing layers as a condition for the LOD to stop being divided.
- the method can also include:
- the decoded point cloud needs to be the decoded point cloud obtained after sorting. That is to say, the decoded point cloud needs to be sorted first; then the first enhancement layer and the first detail layer are obtained by sampling according to the analytical value of the sampling period; then the i-th detail layer is sampled again to obtain the i+1th layer
- i is an integer greater than zero; the division is stopped until the number of points of the i+1th detail layer is equal to 1 or reaches the preset number of division layers set by the user.
- LodLvl the next detail layer after output (down-sampling, subsample) corresponds to LodLvl+1.
- LodLvl 0, . . . , num_detail_levels_minus1; inLodSize is equivalent to lodSizes[LodLvl].
- the current level of detail (or "input level of detail") contains a single point, or a predetermined number of division levels (ie, a preset number of division levels) have been constructed, then no further processing will be performed.
- lod_scalability_enabled_flag If lod_scalability_enabled_flag is equal to 1, then perform octree-based downsampling.
- lod_regular_sampling_enabled_flag is equal to 1, periodic sampling is performed.
- samplingPeriod 2+sampling_period_minus2[LodLvl]
- Input points are assigned to the next level of detail and to the next enhancement layer according to the index in the input level of detail.
- the parsing the code stream and determining the parsing value of the sampling period may include:
- the code stream is parsed, and the target resolution value of the sampling period corresponding to the target detail layer is determined.
- using the analytical value of the sampling period to process the target detail layer to obtain the next enhancement layer and the next detail layer may include:
- the target detail layer is processed using the target analytical value of the sampling period to obtain the next enhancement layer and the next detail layer.
- the target analytical value of the sampling period is less than or equal to the maximum allowable value of the sampling period.
- the sampling period corresponding to the at least one detail layer may be a fixed sampling period or a variable sampling period.
- the analytical value of the sampling period corresponding to the i-th detail layer may be represented by the i-th analytical value of the sampling period.
- the parsing of the code stream to determine the parsing value of the sampling period includes:
- Parse the code stream and determine the i-th analytical value of the sampling period corresponding to the i-th detail layer, where i is an integer greater than zero;
- using the analytical value of the sampling period to process the i-th detail layer to obtain the i+1-th enhancement layer and the i+1-th detail layer may include: using the i-th detail layer corresponding to the i-th detail layer The i-th detail layer is processed by the i-th analytical value of the sampling period to obtain the i+1-th enhancement layer and the i+1-th detail layer.
- the ith analytical value of the sampling period is less than or equal to the maximum allowable value of the sampling period.
- the preset value of the sampling period corresponding to each layer is less than or equal to the maximum allowable value of the sampling period.
- different detail layers in the at least one detail layer correspond to preset values of different sampling periods, and may also correspond to preset values of the same sampling period.
- the preset value of the sampling period corresponding to the i-th detail layer is greater than the preset value of the sampling period corresponding to the i+1-th detail layer. The value is set, but it is not specifically limited here.
- sampling_period_minus2[idx] the value of the second syntax element corresponding to the idxth detail layer can be represented by sampling_period_minus2[idx]
- the preset value of the sampling period corresponding to the detail level idx (or called the idxth detail layer) is added by sampling_period_minus2[idx] 2 get.
- sampling_period_minus2[idx] is less than or equal to the maximum allowable value of the second syntax element.
- S404 Decode the attribute information of the decoded point cloud by using the at least one enhancement layer and the at least one detail layer, and determine the reconstructed point cloud of the decoded point cloud.
- the attribute information can be decoded by using the at least one enhancement layer and the at least one detail layer. Specifically, the attribute information can be decoded by using the reconstruction point in the decoded detail layer and the decoded point in the current enhancement layer. At the same time, by parsing the code stream, obtaining the prediction residual, and adding the prediction data and the prediction residual, the reconstruction data of the current point (ie the reconstruction point) can be obtained, and then the The reconstructed point cloud is obtained by reconstruction.
- the decoding point cloud is sampled by sampling period to realize LOD division.
- Non-smooth attribute information on the point cloud for more effective prediction.
- the embodiment of the present application also predefines its maximum value as MAX.
- the decoded point cloud is first sorted, and then the sorted input point cloud is sampled according to the sampling period set by the user, then the maximum sampling period should not be larger than the current point cloud.
- sampling_period_minus2 can be defined as 0 to N-2. It should be noted that since the syntax elements in the decoder usually start from zero, the sampling period will be decremented by 2.
- syntax element sampling_period_minus2 is located in the attribute parameter set, and it is picture-level. Each slice will refer to this syntax element (sampling_period_minus2) because the attribute parameter set has higher priority.
- MAX does not write the code stream. It is mainly obtained by using the relevant content of the decoded point cloud (such as the number of points in the input point cloud, the number of points in the slice, and the maximum allowable number of points in the slice, etc.), and it is only used for system consistency. examine.
- the encoder just writes the preset value of the sampling period (that is, the value of sampling_period_minus2) into the code stream.
- the decoded point cloud can be divided into several slices. At this time, if MAX directly uses the number of points of the decoded point cloud, it will be a very large value, which means that it does not play a limiting role. In this way, for several slices, the maximum value of the corresponding sampling period (ie, the maximum allowable value) is the number of points (N i ) in each slice. Then, for the entire decoded point cloud, the maximum value of the corresponding sampling period is max ⁇ N i ⁇ . And for each slice, GSH includes a syntax element to indicate the number of points of the current slice, and the syntax element is geom_num_points_minus1.
- geom_num_points_minus1 is written in the geometry data unit footer, and the geometry data unit footer is located in the geometry data unit. Regardless of whether the attribute parameter set is before or after GSH, the number of slice points cannot be used to represent the value of sampling_period_minus2, because the number of slice points is only used to limit the maximum allowable value of sampling_period_minus2.
- sampling_period_minus2[idx] plus 2 can indicate the value of the sampling period of the detail level idx, and the value of the sampling period is within the interval of 0 ⁇ xx".
- the value of the sampling period may be abbreviated as "less than or equal to MAX”.
- the embodiments of the present application can adaptively determine the maximum sampling period of the point cloud according to the content of the point cloud, and can clearly specify the value range of the syntax element sampling_period_minus2.
- This embodiment provides a point cloud decoding method.
- the geometric information of the decoded point cloud and the analytical value of the sampling period when the level of detail is divided for the decoded point cloud are determined; the maximum sampling period is determined. Allowable value; when the analytical value of the sampling period is less than or equal to the maximum allowable value of the sampling period, process the decoded point cloud according to the analytical value of the sampling period and the geometric information to obtain at least One enhancement layer and at least one detail layer; the attribute information of the decoded point cloud is decoded by using the at least one enhancement layer and the at least one detail layer, and the reconstructed point cloud of the decoded point cloud is determined.
- the decoder since the maximum value of the sampling period is specified in the decoder, it can be ensured that the preset value of the sampling period will not exceed the maximum value of the sampling period, so that when a series of processing is performed on the point cloud by using the preset value of the sampling period , which can enhance the consistency of the system, and can also improve the decoding efficiency, so as to improve the decoding performance.
- FIG. 5 shows a schematic structural diagram of an encoder 50 provided by an embodiment of the present application.
- the encoder 50 may include: a first obtaining unit 501, a first determining unit 502, a first sampling unit 503 and an encoding unit 504; wherein,
- the first obtaining unit 501 is configured to obtain geometric information and attribute information of the input point cloud
- a first determining unit 502 configured to determine the maximum allowable value of the sampling period when the input point cloud is divided into levels of detail; and determine the preset value of the sampling period based on the maximum allowable value of the sampling period;
- the first sampling unit 503 is configured to process the input point cloud according to the preset value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer;
- the encoding unit 504 is configured to encode the attribute information by using the at least one enhancement layer and the at least one detail layer, generate a code stream, and write the preset value of the sampling period into the code stream.
- the first determining unit 502 is further configured to determine the total number of points included in the input point cloud; and determine the maximum allowable value of the sampling period according to the total number of points included in the input point cloud .
- the encoder 50 may further include a first setting unit 505 configured to set the maximum allowable value of the sampling period to be equal to the total number of points contained in the input point cloud.
- the first determining unit 502 is further configured to determine a compliance parameter of the input point cloud, wherein the compliance parameter includes at least one of a grade parameter, a grade parameter, and a grade parameter; and according to The compliance parameter determines the maximum allowable value of the sampling period.
- the first setting unit 505 is further configured to set the maximum allowable value of the sampling period to be equal to the preset value corresponding to the compliance parameter.
- the first setting unit 505 is further configured to set the maximum allowable value of the sampling period to a preset constant value.
- the encoder 50 may further include a dividing unit 506;
- the first determining unit 502 is further configured to determine the total number of points contained in the input point cloud;
- the dividing unit 506 is configured to divide the input point cloud to obtain at least one slice if the total number of points contained in the input point cloud is greater than the maximum allowable number of points that the slice can contain;
- the first determining unit 502 is further configured to determine the number of points included in the at least one slice; and determine the maximum allowable value of the sampling period according to the number of points included in the at least one slice.
- the first determining unit 502 is further configured to select a maximum value from the number of points, and determine the maximum value as the maximum allowable value of the sampling period.
- the first setting unit 505 is further configured to set the maximum allowable value of the sampling period to be equal to the maximum allowable number of points that the slice can contain.
- the encoder 50 may further include a writing unit 507;
- the first determining unit 502 is further configured to determine the value of the first syntax element corresponding to the at least one slice according to the number of points included in the at least one slice; wherein the first syntax element is used to indicate the at least one The number of points contained in a slice;
- the writing unit 507 is configured to write the value of the first syntax element into the code stream.
- the first setting unit 505 is further configured to set the value of the first syntax element to be equal to the sum of the number of points included in the at least one slice and a first constant value, wherein the first A constant value is a preset integer value.
- the first constant value is equal to -1.
- the writing unit 507 is further configured to write the value of the first syntax element into the geometric data unit of the at least one slice; and write the geometric data unit of the at least one slice the code stream.
- the first obtaining unit 501 is configured to obtain candidate input values of the sampling period
- the first determining unit 502 is further configured to determine the candidate input value of the sampling period as the preset value of the sampling period if the candidate input value of the sampling period is less than or equal to the maximum allowable value of the sampling period value.
- the first setting unit 505 is further configured to set the preset value of the sampling period to be less than or equal to the maximum allowable value of the sampling period.
- the first determining unit 502 is further configured to determine the maximum allowable value of the second syntax element based on the maximum allowable value of the sampling period; wherein the second syntax element is used to indicate that the The sampling period when the input point cloud is divided into the level of detail.
- the first setting unit 505 is further configured to set the maximum allowable value of the second syntax element to be equal to the sum of the maximum allowable value of the sampling period and a second constant value, wherein the The second constant value is a preset integer value.
- the second constant value is equal to -2.
- the first setting unit 505 is further configured to set the maximum allowable value of the second syntax element to be equal to the maximum allowable value of the sampling period.
- the first determining unit 502 is further configured to determine the value of the second syntax element based on the preset value of the sampling period;
- the writing unit 507 is further configured to write the value of the second syntax element into the code stream.
- the first determining unit 502 is further configured to determine the value of the second syntax element based on the preset value of the sampling period;
- the writing unit 507 is further configured to write the value of the second syntax element into an attribute parameter set, and write the attribute parameter set into the code stream.
- the value of the second syntax element is less than or equal to the maximum allowed value of the second syntax element.
- the first setting unit 505 is further configured to set the value of the second syntax element to be equal to the sum of the preset value of the sampling period and a third constant value, wherein the third Constant values are preset integer values.
- the third constant value is equal to -2.
- the first determining unit 502 is further configured to determine the first number of bits corresponding to the second syntax element in the code stream according to the maximum allowable value of the sampling period;
- the writing unit 507 is further configured to convert the value of the second syntax element into a binary bit string of the first bit number, and write the binary bit string of the first bit number into the code stream.
- the first setting unit 505 is further configured to set the first number of bits to be equal to a minimum integer value of a logarithmic value with a base of 2 that is greater than the maximum allowable value of the sampling period.
- the first sampling unit 503 is further configured to process the input point cloud by using a preset value of the sampling period based on the geometric information to obtain a first enhancement layer and a first detail layer.
- the first sampling unit 503 is further configured to process the target detail layer by using the preset value of the sampling period to obtain the next enhancement layer and the next detail layer; and when the next detail layer is When the number of points is greater than 1, the obtained next detail layer is set as the target detail layer, and the processing of the target detail layer by using the preset value of the sampling period is continued to obtain the next enhancement layer and The step of the next level of detail, until the point number of the next level of detail is equal to 1, terminates the processing.
- the first sampling unit 503 is further configured to use the preset value of the sampling period to process the target detail layer to obtain the next enhancement layer and the next detail layer, and to perform an addition on the current number of divided layers 1 operation; and when the current number of division layers is less than the preset number of division layers, set the obtained next detail layer as the target detail layer, and continue to perform the use of the preset value of the sampling period
- the target detail layer is processed to obtain the next enhancement layer and the next detail layer, and the steps of adding 1 to the current number of divided layers are performed, and the processing is terminated when the current number of divided layers is equal to the preset number of divided layers.
- the first determining unit 502 is further configured to determine the target preset value of the sampling period corresponding to the target detail layer based on the maximum allowable value of the sampling period;
- the first sampling unit 503 is further configured to process the target detail layer by using the target preset value of the sampling period to obtain the next enhancement layer and the next detail layer.
- the target preset value of the sampling period is less than or equal to the maximum allowable value of the sampling period.
- a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, and it may also be non-modular.
- each component in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
- the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium.
- the technical solution of this embodiment is essentially or The part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product, the computer software product is stored in a storage medium, and includes several instructions for making a computer device (which can be It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment.
- the aforementioned storage medium includes: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program codes.
- an embodiment of the present application provides a computer storage medium, which is applied to the encoder 50, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor, any one of the foregoing embodiments is implemented.
- FIG. 6 shows a schematic diagram of a specific hardware structure of the encoder 50 provided by the embodiment of the present application.
- it may include: a first communication interface 601 , a first memory 602 and a first processor 603 ; each component is coupled together through a first bus system 604 .
- the first bus system 604 is used to realize the connection and communication between these components.
- the first bus system 604 also includes a power bus, a control bus and a status signal bus.
- the various buses are labeled as the first bus system 604 in FIG. 6 . in,
- the first communication interface 601 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
- a first memory 602 for storing a computer program that can run on the first processor 603;
- the first processor 603 is configured to, when running the computer program, execute:
- the attribute information is encoded by using the at least one enhancement layer and the at least one detail layer, a code stream is generated, and the preset value of the sampling period is written into the code stream.
- the first memory 602 in this embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories.
- the non-volatile memory may be a read-only memory (Read-Only Memory, ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically programmable read-only memory (Erasable PROM, EPROM). Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
- Volatile memory may be Random Access Memory (RAM), which acts as an external cache.
- RAM Static RAM
- DRAM Dynamic RAM
- SDRAM Synchronous DRAM
- SDRAM double data rate synchronous dynamic random access memory
- Double Data Rate SDRAM DDRSDRAM
- enhanced SDRAM ESDRAM
- synchronous link dynamic random access memory Synchlink DRAM, SLDRAM
- Direct Rambus RAM Direct Rambus RAM
- the first processor 603 may be an integrated circuit chip, which has signal processing capability. In the implementation process, each step of the above-mentioned method may be completed by an integrated logic circuit of hardware in the first processor 603 or an instruction in the form of software.
- the above-mentioned first processor 603 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed.
- a general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
- the steps of the method disclosed in conjunction with the embodiments of the present application may be directly embodied as executed by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor.
- the software modules may be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other storage media mature in the art.
- the storage medium is located in the first memory 602, and the first processor 603 reads the information in the first memory 602, and completes the steps of the above method in combination with its hardware.
- the embodiments described herein may be implemented in hardware, software, firmware, middleware, microcode, or a combination thereof.
- the processing unit can be implemented in one or more Application Specific Integrated Circuits (ASIC), Digital Signal Processing (DSP), Digital Signal Processing Device (DSP Device, DSPD), programmable Logic Devices (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), General Purpose Processors, Controllers, Microcontrollers, Microprocessors, Others for performing the functions described herein electronic unit or a combination thereof.
- the techniques described herein may be implemented through modules (eg, procedures, functions, etc.) that perform the functions described herein.
- Software codes may be stored in memory and executed by a processor.
- the memory can be implemented in the processor or external to the processor.
- the first processor 603 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
- This embodiment provides an encoder, and the encoder may include a first acquisition unit, a first determination unit, a first sampling unit, and an encoding unit.
- the encoder may include a first acquisition unit, a first determination unit, a first sampling unit, and an encoding unit.
- FIG. 7 shows a schematic structural diagram of a decoder 70 provided by an embodiment of the present application.
- the decoder 70 may include: a decoding unit 701, a second determining unit 702 and a second sampling unit 703; wherein,
- a decoding unit 701 configured to determine the geometric information of the decoded point cloud, and the analytical value of the sampling period when the level of detail is divided on the decoded point cloud;
- a second determining unit 702 configured to determine the maximum allowable value of the sampling period
- the second sampling unit 703 is configured to, when the analytical value of the sampling period is less than or equal to the maximum allowable value of the sampling period, perform the decoding process on the decoded point cloud according to the analytical value of the sampling period and the geometric information processing to obtain at least one enhancement layer and at least one detail layer;
- the decoding unit 701 is further configured to decode the attribute information of the decoded point cloud by using the at least one enhancement layer and the at least one detail layer, and determine the reconstructed point cloud of the decoded point cloud.
- the second determining unit 702 is further configured to determine the maximum allowable number of points a slice can contain; and determine a maximum allowable value of the sampling period according to the maximum allowable number of points that the slice can contain.
- the decoder 70 may further include a second setting unit 704 configured to set the maximum allowable value of the sampling period to be equal to the maximum allowable number of points that the slice may contain.
- the decoding unit 701 is further configured to parse the code stream and determine the value of the first syntax element corresponding to at least one slice; wherein the first syntax element is used to indicate the value of the first syntax element in the at least one slice the number of points included;
- the second determining unit 702 is further configured to determine the number of points included in the at least one slice according to the value of the first syntax element; and determine the maximum sampling period according to the number of points included in the at least one slice Allowed values.
- the second determining unit 702 is further configured to select a maximum value from the number of points, and determine the maximum value as the maximum allowable value of the sampling period.
- the decoding unit 701 is further configured to parse the code stream and determine the geometric data unit of the at least one slice;
- the second determining unit 702 is further configured to determine the value of the first syntax element corresponding to the at least one slice from the geometric data unit of the at least one slice.
- the second setting unit 704 is further configured to set the value of the number of points included in the at least one slice to be equal to the sum of the value of the first syntax element and the first constant value, wherein,
- the first constant value is a preset integer value.
- the first constant value is equal to one.
- the decoding unit 701 is further configured to parse the code stream and determine the total number of points included in the decoded point cloud;
- the second determining unit 702 is further configured to determine the maximum allowable value of the sampling period according to the total number of points included in the decoded point cloud.
- the second setting unit 704 is further configured to set the maximum allowable value of the sampling period to be equal to the total number of points included in the decoded point cloud.
- the decoding unit 701 is further configured to parse the code stream and determine a compliance parameter, wherein the compliance parameter includes at least one of a grade parameter, a grade parameter, and a grade parameter;
- the second determining unit 702 is further configured to determine the maximum allowable value of the sampling period according to the compliance parameter.
- the second setting unit 704 is further configured to set the maximum allowable value of the sampling period to be equal to the preset value corresponding to the compliance parameter.
- the second setting unit 704 is further configured to set the maximum allowable value of the sampling period to a preset constant value.
- the decoding unit 701 is further configured to parse the code stream and determine the value of the second syntax element; wherein the second syntax element is used to indicate that the level of detail division is performed on the decoded point cloud time sampling period;
- the second determining unit 702 is further configured to determine the parsing value of the sampling period according to the value of the second syntax element.
- the decoding unit 701 is further configured to parse the code stream to obtain an attribute parameter set
- the second obtaining unit 704 is further configured to determine the value of the second syntax element from the attribute parameter set.
- the second determining unit 702 is further configured to determine the first number of bits corresponding to the second syntax element in the code stream according to the maximum allowable value of the sampling period.
- the second setting unit 704 is further configured to set the first number of bits to be equal to a minimum integer value of a logarithmic value with a base of 2 that is greater than the maximum allowable value of the sampling period.
- the second setting unit 704 is further configured to read a binary bit string whose number is equal to the first bit number from the code stream; and set the value of the second syntax element to be equal to The unsigned integer number corresponding to the binary bit string.
- the second determining unit 702 is further configured to determine the maximum allowable value of the second syntax element based on the maximum allowable value of the sampling period.
- the second setting unit 704 is further configured to set the maximum allowable value of the second syntax element to be equal to the sum of the maximum allowable value of the sampling period and the second constant value, wherein the The second constant value is a preset integer value.
- the second constant value is equal to -2.
- the second setting unit 704 is further configured to set the maximum allowable value of the second syntax element to be equal to the maximum allowable value of the sampling period.
- the value of the second syntax element is less than or equal to the maximum allowed value of the second syntax element.
- the second setting unit 704 is further configured to set the parsing value of the sampling period to be equal to the sum of the value of the second syntax element and a third constant value, wherein the third Constant values are preset integer values.
- the third constant value is equal to two.
- the second sampling unit 703 is further configured to process the decoded point cloud by using the analytical value of the sampling period based on the geometric information to obtain a first enhancement layer and a first detail layer.
- the second sampling unit 703 is further configured to process the target detail layer by using the analytical value of the sampling period to obtain the next enhancement layer and the next detail layer; When the number of points is greater than 1, the obtained next detail layer is set as the target detail layer, and the processing of the target detail layer using the analytical value of the sampling period is continued to obtain the next enhancement layer and the next detail layer. The step of the detail layer terminates the processing until the number of points of the next detail layer is equal to 1.
- the second sampling unit 703 is further configured to process the target detail layer by using the analytical value of the sampling period, obtain the next enhancement layer and the next detail layer, and perform incrementing by 1 on the current number of division layers operation; and when the current number of division layers is less than the preset number of division layers, setting the obtained next detail layer as the target detail layer, and continuing to perform the analysis of the target using the analytical value of the sampling period
- the detail layer is processed to obtain the next enhancement layer and the next detail layer, and the step of adding 1 to the current number of divided layers is performed, and the processing is terminated when the current number of divided layers is equal to the preset number of divided layers.
- the decoding unit 701 is further configured to parse the code stream and determine a target parsing value of the sampling period corresponding to the target detail layer.
- the second sampling unit 703 is further configured to process the target detail layer by using the target analytical value of the sampling period to obtain the next enhancement layer and the next detail layer.
- the target resolution value of the sampling period is less than or equal to the maximum allowable value of the sampling period.
- a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, and it may also be non-modular.
- each component in this embodiment may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of software function modules.
- the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it may be stored in a computer-readable storage medium.
- the present embodiment provides a computer storage medium, which is applied to the decoder 70, where the computer storage medium stores a computer program, and when the computer program is executed by the second processor, any one of the foregoing embodiments is implemented the method described.
- FIG. 8 shows a schematic diagram of a specific hardware structure of the decoder 70 provided by the embodiment of the present application.
- it may include: a second communication interface 801 , a second memory 802 and a second processor 803 ; each component is coupled together through a second bus system 804 .
- the second bus system 804 is used to implement connection communication between these components.
- the second bus system 804 also includes a power bus, a control bus and a status signal bus.
- the various buses are labeled as the second bus system 804 in FIG. 8 . in,
- the second communication interface 801 is used for receiving and sending signals in the process of sending and receiving information with other external network elements;
- a second memory 802 for storing computer programs that can run on the second processor 803;
- the second processor 803 is configured to, when running the computer program, execute:
- Parse the code stream determine the geometric information of the decoded point cloud, and the analytical value of the sampling period when the level of detail is divided on the decoded point cloud;
- the decoded point cloud is processed according to the analytical value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one level of detail;
- the attribute information of the decoded point cloud is decoded by using the at least one enhancement layer and the at least one detail layer, and a reconstructed point cloud of the decoded point cloud is determined.
- the second processor 803 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.
- the hardware function of the second memory 802 is similar to that of the first memory 602
- the hardware function of the second processor 803 is similar to that of the first processor 603 ; details are not described here.
- This embodiment provides a decoder, and the decoder may include a decoding unit, a second determining unit, and a second sampling unit.
- the decoder may include a decoding unit, a second determining unit, and a second sampling unit.
- the geometric information and attribute information of the input point cloud are obtained; the maximum allowable value of the sampling period when the input point cloud is divided into the level of detail is determined; taking a value to determine the preset value of the sampling period; processing the input point cloud according to the preset value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer; using the The at least one enhancement layer and the at least one detail layer encode the attribute information, generate a code stream, and write the preset value of the sampling period into the code stream.
- the decoded point cloud is determined by parsing the code stream, and the analytical value of the sampling period when the level of detail is divided for the decoded point cloud; the analytical value of the sampling period is less than or equal to the maximum value of the sampling period
- the decoded point cloud is processed according to the analytical value of the sampling period and the geometric information to obtain at least one enhancement layer and at least one detail layer; using the at least one enhancement layer and the at least one enhancement layer
- the detail layer decodes the attribute information of the decoded point cloud, and determines the reconstructed point cloud of the decoded point cloud.
- the maximum value of the sampling period is specified in the encoder and the decoder, it can be ensured that the preset value of the sampling period does not exceed the maximum value of the sampling period, so that a point cloud is performed using the preset value of the sampling period.
- the consistency of the system can be enhanced, and the encoding and decoding efficiency can also be improved.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
Claims (67)
- 一种点云编码方法,应用于编码器,所述方法包括:获取输入点云的几何信息和属性信息;确定所述输入点云进行细节层次划分时采样周期的最大容许取值;基于所述采样周期的最大容许取值,确定所述采样周期的预设值;根据所述采样周期的预设值和所述几何信息对所述输入点云进行处理,得到至少一个增强层和至少一个细节层;利用所述至少一个增强层和所述至少一个细节层对所述属性信息进行编码,生成码流,并将所述采样周期的预设值写入所述码流。
- 根据权利要求1所述的方法,其中,所述确定所述输入点云进行细节层次划分时采样周期的最大容许取值,包括:确定所述输入点云中包含的总点数;根据所述输入点云中包含的总点数,确定所述采样周期的最大容许取值。
- 根据权利要求2所述的方法,其中,所述根据所述输入点云中包含的总点数,确定所述采样周期的最大容许取值,包括:将所述采样周期的最大容许取值设置为等于所述输入点云中包含的总点数。
- 根据权利要求1所述的方法,其中,所述确定所述输入点云进行细节层次划分时采样周期的最大容许取值,包括:确定所述输入点云的符合性参数,其中,所述符合性参数包含档次参数、等级参数、级别参数中的至少之一;根据所述符合性参数,确定所述采样周期的最大容许取值。
- 根据权利要求4所述的方法,其中,所述根据所述符合性参数,确定所述采样周期的最大容许取值,包括:将所述采样周期的最大容许取值设置为等于所述符合性参数对应的预设值。
- 根据权利要求1所述的方法,其中,所述确定所述输入点云进行细节层次划分时采样周期的最大容许取值,包括:将所述采样周期的最大容许取值设置为预设的常数值。
- 根据权利要求1所述的方法,其中,所述确定所述输入点云进行细节层次划分时采样周期的最大容许取值,包括:确定所述输入点云中包含的总点数;若所述输入点云中包含的总点数大于片slice可包含的最大容许点数,则对所述输入点云进行划分,得到至少一个slice,并确定所述至少一个slice中包含的点数;根据所述至少一个slice中包含的点数,确定所述采样周期的最大容许取值。
- 根据权利要求7所述的方法,其中,所述根据所述至少一个slice中包含的点数,确定所述采样周期的最大容许取值,包括:从所述点数中选取最大值,将所述最大值确定为所述采样周期的最大容许取值。
- 根据权利要求7所述的方法,其中,所述方法还包括:将所述采样周期的最大容许取值设置为等于所述slice可包含的最大容许点数。
- 根据权利要求7所述的方法,其中,所述方法还包括:根据所述至少一个slice中包含的点数,确定所述至少一个slice对应的第一语法元素的取值;其中,所述第一语法元素用于指示所述至少一个slice中包含的点数;将所述第一语法元素的取值写入所述码流。
- 根据权利要求10所述的方法,其中,所述根据所述至少一个slice中包含的点数,确定所述至少一个slice对应的第一语法元素的取值,包括:将所述第一语法元素的取值设置为等于所述至少一个slice中包含的点数与第一常数值之和,其中,所述第一常数值是预设的整数值。
- 根据权利要求11所述的方法,其中,所述第一常数值等于-1。
- 根据权利要求10所述的方法,其中,所述将所述第一语法元素的取值写入所述码流,包括:将所述第一语法元素的取值写入所述至少一个slice的几何数据单元中;将所述至少一个slice的几何数据单元写入所述码流。
- 根据权利要求1所述的方法,其中,所述基于所述采样周期的最大容许取值,确定所述采样周期的预设值,包括:获取所述采样周期的候选输入值;若所述采样周期的候选输入值小于或等于所述采样周期的最大容许取值,则将所述采样周期的候选输入值确定为所述采样周期的预设值。
- 根据权利要求1所述的方法,其中,所述基于所述采样周期的最大容许取值,确定所述采样周期的预设值,包括:将所述采样周期的预设值设置为小于或等于所述采样周期的最大容许取值。
- 根据权利要求1所述的方法,其中,所述方法还包括:基于所述采样周期的最大容许取值,确定第二语法元素的最大容许取值;其中,所述第二语法元素用于指示在对所述输入点云进行细节层次划分时的采样周期。
- 根据权利要求16所述的方法,其中,所述基于所述采样周期的最大容许取值,确定第二语法元素的最大容许取值,包括:将所述第二语法元素的最大容许取值设置为等于所述采样周期的最大容许取值与第二常数值之和,其中,所述第二常数值是预设的整数值。
- 根据权利要求17所述的方法,其中,所述第二常数值等于-2。
- 根据权利要求16所述的方法,其中,所述基于所述采样周期的最大容许取值,确定第二语法元素的最大容许取值,包括:将所述第二语法元素的最大容许取值设置为等于所述采样周期的最大容许取值。
- 根据权利要求1所述的方法,其中,所述将所述采样周期的预设值写入所述码流,包括:基于所述采样周期的预设值,确定第二语法元素的取值;将所述第二语法元素的取值写入所述码流。
- 根据权利要求1所述的方法,其中,所述将所述采样周期的预设值写入所述码流,包括:基于所述采样周期的预设值,确定第二语法元素的取值;将所述第二语法元素的取值写入属性参数集,将所述属性参数集写入所述码流。
- 根据权利要求20或21所述的方法,其中,所述第二语法元素的取值小于或等于所述第二语法元素的最大容许取值。
- 根据权利要求20或21所述的方法,其中,所述基于所述采样周期的预设值,确定第二语法元素的取值,包括:将所述第二语法元素的取值设置为等于所述采样周期的预设值与第三常数值之和,其中,所述第三常数值是预设的整数值。
- 根据权利要求23所述的方法,其中,所述第三常数值等于-2。
- 根据权利要求20所述的方法,其中,所述将所述第二语法元素的取值写入所述码流,包括:根据所述采样周期的最大容许取值,确定所述第二语法元素在所述码流中对应的第一比特数;将所述第二语法元素的取值转换为所述第一比特数的二进制比特串,并将所述第一比特数的二进制比特串写入所述码流。
- 根据权利要求25所述的方法,其中,所述方法还包括:所述第一比特数设置为等于大于所述采样周期的最大容许取值的以2为底对数值的最小整数值。
- 根据权利要求1所述的方法,其中,所述根据所述采样周期的预设值和所述几何信息对所述输入点云进行处理,得到至少一个增强层和至少一个细节层,包括:基于所述几何信息,利用所述采样周期的预设值对所述输入点云进行处理,得到第一增强层和第一细节层。
- 根据权利要求27所述的方法,其中,所述方法还包括:利用所述采样周期的预设值对目标细节层进行处理,得到下一增强层和下一细节层;当所述下一细节层的点数大于1时,将得到的所述下一细节层设置为所述目标细节层,并继续执行所述利用所述采样周期的预设值对目标细节层进行处理,得到下一增强层和下一细节层的步骤,直至所述下一细节层的点数等于1时终止处理。
- 根据权利要求27所述的方法,其中,所述方法还包括:利用所述采样周期的预设值对目标细节层进行处理,得到下一增强层和下一细节层,以及对当前划分层数执行加1操作;当所述当前划分层数小于预设划分层数时,将得到的所述下一细节层设置为所述目标细节层,并继续执行所述利用所述采样周期的预设值对目标细节层进行处理,得到下一增强层和下一细节层,以及对 当前划分层数执行加1操作的步骤,直至所述当前划分层数等于预设划分层数时终止处理。
- 根据权利要求28或29所述的方法,其中,所述基于所述采样周期的最大容许取值,确定所述采样周期的预设值,包括:基于所述采样周期的最大容许取值,确定所述目标细节层对应的所述采样周期的目标预设值;相应地,所述利用所述采样周期的预设值对目标细节层进行处理,得到下一增强层和下一细节层,包括:利用所述采样周期的目标预设值对所述目标细节层进行处理,得到下一增强层和下一细节层。
- 根据权利要求30所述的方法,其中,所述采样周期的目标预设值小于或等于所述采样周期的最大容许取值。
- 一种点云解码方法,应用于解码器,所述方法包括:解析码流,确定解码点云的几何信息,以及对所述解码点云进行细节层次划分时采样周期的解析值;确定所述采样周期的最大容许取值;在所述采样周期的解析值小于或等于所述采样周期的最大容许取值时,根据所述采样周期的解析值和所述几何信息对所述解码点云进行处理,得到至少一个增强层和至少一个细节层;利用所述至少一个增强层和所述至少一个细节层对所述解码点云的属性信息进行解码,确定所述解码点云的重建点云。
- 根据权利要求32所述的方法,其中,所述确定所述采样周期的最大容许取值,包括:确定slice可包含的最大容许点数;根据所述slice可包含的最大容许点数,确定所述采样周期的最大容许取值。
- 根据权利要求33所述的方法,其中,所述根据所述slice可包含的最大容许点数,确定所述采样周期的最大容许取值,包括:将所述采样周期的最大容许取值设置为等于所述slice可包含的最大容许点数。
- 根据权利要求32所述的方法,其中,所述确定所述采样周期的最大容许取值,包括:解析所述码流,确定至少一个slice对应的第一语法元素的取值;其中,所述第一语法元素用于指示所述至少一个slice中包含的点数;根据所述第一语法元素的取值,确定所述至少一个slice中包含的点数;根据所述至少一个slice中包含的点数,确定所述采样周期的最大容许取值。
- 根据权利要求35所述的方法,其中,所述根据所述至少一个slice中包含的点数,确定所述采样周期的最大容许取值,包括:从所述点数中选取最大值,将所述最大值确定为所述采样周期的最大容许取值。
- 根据权利要求35所述的方法,其中,所述解析所述码流,确定至少一个slice对应的第一语法元素的取值,包括:解析所述码流,确定所述至少一个slice的几何数据单元;从所述至少一个slice的几何数据单元中,确定所述至少一个slice对应的第一语法元素的取值。
- 根据权利要求35所述的方法,其中,所述根据所述第一语法元素的取值,确定所述至少一个slice中包含的点数,包括:将所述至少一个slice中包含的点数的取值设置为等于所述第一语法元素的取值与第一常数值之和,其中,所述第一常数值是预设的整数值。
- 根据权利要求38所述的方法,其中,所述第一常数值等于1。
- 根据权利要求32所述的方法,其中,所述确定所述采样周期的最大容许取值,包括:解析所述码流,确定所述解码点云中包含的总点数;根据所述解码点云中包含的总点数,确定所述采样周期的最大容许取值。
- 根据权利要求40所述的方法,其中,所述根据所述解码点云中包含的总点数,确定所述采样周期的最大容许取值,包括:将所述采样周期的最大容许取值设置为等于所述解码点云中包含的总点数。
- 根据权利要求32所述的方法,其中,所述确定所述采样周期的最大容许取值,包括:解析所述码流,确定符合性参数,其中,所述符合性参数包含档次参数、等级参数、级别参数中的至少之一;根据所述符合性参数,确定所述采样周期的最大容许取值。
- 根据权利要求42所述的方法,其中,所述根据所述符合性参数,确定所述采样周期的最大容许取值,包括:将所述采样周期的最大容许取值设置为等于所述符合性参数对应的预设值。
- 根据权利要求32所述的方法,其中,所述确定所述采样周期的最大容许取值,包括:将所述采样周期的最大容许取值设置为预设的常数值。
- 根据权利要求32所述的方法,其中,所述解析码流,确定所述采样周期的解析值,包括:解析所述码流,确定第二语法元素的取值;其中,所述第二语法元素用于指示在对所述解码点云进行细节层次划分时的采样周期;根据所述第二语法元素的取值,确定所述采样周期的解析值。
- 根据权利要求45所述的方法,其中,所述解析所述码流,确定第二语法元素的取值,包括:解析所述码流,获取属性参数集;从所述属性参数集中,确定所述第二语法元素的取值。
- 根据权利要求45所述的方法,其中,所述解析所述码流,确定第二语法元素的取值,包括:根据所述采样周期的最大容许取值,确定所述第二语法元素在所述码流中对应的第一比特数。
- 根据权利要求47所述的方法,其中,所述方法还包括:所述第一比特数设置为等于大于所述采样周期的最大容许取值的以2为底对数值的最小整数值。
- 根据权利要求47所述的方法,其中,所述方法还包括:从所述码流中读取数量等于所述第一比特数的二进制比特串;将所述第二语法元素的取值设置为等于所述二进制比特串对应的无符号整型数。
- 根据权利要求45所述的方法,其中,所述方法还包括:基于所述采样周期的最大容许取值,确定所述第二语法元素的最大容许取值。
- 根据权利要求50所述的方法,其中,所述基于所述采样周期的最大容许取值,确定所述第二语法元素的最大容许取值,包括:将所述第二语法元素的最大容许取值设置为等于所述采样周期的最大容许取值与第二常数值之和,其中,所述第二常数值是预设的整数值。
- 根据权利要求51所述的方法,其中,所述第二常数值等于-2。
- 根据权利要求50所述的方法,其中,所述基于所述采样周期的最大容许取值,确定所述第二语法元素的最大容许取值,包括:将所述第二语法元素的最大容许取值设置为等于所述采样周期的最大容许取值。
- 根据权利要求50所述的方法,其中,所述第二语法元素的取值小于或等于所述第二语法元素的最大容许取值。
- 根据权利要求45所述的方法,其中,所述根据所述第二语法元素的取值,确定所述采样周期的解析值,包括:将所述采样周期的解析值设置为等于对所述第二语法元素的取值与第三常数值之和,其中,所述第三常数值是预设的整数值。
- 根据权利要求55所述的方法,其中,所述第三常数值等于2。
- 根据权利要求32所述的方法,其中,所述根据所述采样周期的解析值和所述几何信息对所述解码点云进行处理,得到至少一个增强层和至少一个细节层,包括:基于所述几何信息,利用所述采样周期的解析值对所述解码点云进行处理,得到第一增强层和第一细节层。
- 根据权利要求57所述的方法,其中,所述方法还包括:利用所述采样周期的解析值对目标细节层进行处理,得到下一增强层和下一细节层;当所述下一细节层的点数大于1时,将得到的所述下一细节层设置为所述目标细节层,并继续执行所述利用所述采样周期的解析值对目标细节层进行处理,得到下一增强层和下一细节层的步骤,直至所述下一细节层的点数等于1时终止处理。
- 根据权利要求57所述的方法,其中,所述方法还包括:利用所述采样周期的解析值对目标细节层进行处理,得到下一增强层和下一细节层,以及对当前划分层数执行加1操作;当所述当前划分层数小于预设划分层数时,将得到的所述下一细节层设置为所述目标细节层,并继续执行所述利用所述采样周期的解析值对目标细节层进行处理,得到下一增强层和下一细节层,以及对当前划分层数执行加1操作的步骤,直至所述当前划分层数等于预设划分层数时终止处理。
- 根据权利要求58或59所述的方法,其中,所述解析码流,确定所述采样周期的解析值,包括:解析所述码流,确定所述目标细节层对应的所述采样周期的目标解析值。
- 根据权利要求60所述的方法,其中,所述利用所述采样周期的解析值对目标细节层进行处理, 得到下一增强层和下一细节层,包括:利用所述采样周期的目标解析值对所述目标细节层进行处理,得到下一增强层和下一细节层。
- 根据权利要求60所述的方法,其中,所述采样周期的目标解析值小于或等于所述采样周期的最大容许取值。
- 一种编码器,所述编码器包括第一获取单元、第一确定单元、第一采样单元和编码单元;其中,所述第一获取单元,配置为获取输入点云的几何信息和属性信息;所述第一确定单元,配置为确定所述输入点云进行细节层次划分时采样周期的最大容许取值;以及基于所述采样周期的最大容许取值,确定所述采样周期的预设值;所述第一采样单元,配置为根据所述采样周期的预设值和所述几何信息对所述输入点云进行处理,得到至少一个增强层和至少一个细节层;所述编码单元,配置为利用所述至少一个增强层和所述至少一个细节层对所述属性信息进行编码,生成码流,并将所述采样周期的预设值写入所述码流。
- 一种编码器,所述编码器包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如权利要求1至31任一项所述的方法。
- 一种解码器,所述解码器包括解码单元、第二确定单元和第二采样单元;其中,所述解码单元,配置为解析码流,确定解码点云的几何信息,以及对所述解码点云进行细节层次划分时采样周期的解析值;所述第二确定单元,配置为确定所述采样周期的最大容许取值;所述第二采样单元,配置为在所述采样周期的解析值小于或等于所述采样周期的最大容许取值时,根据所述采样周期的解析值和所述几何信息对所述解码点云进行处理,得到至少一个增强层和至少一个细节层;所述解码单元,还配置为利用所述至少一个增强层和所述至少一个细节层对所述解码点云的属性信息进行解码,确定所述解码点云的重建点云。
- 一种解码器,所述解码器包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如权利要求32至62任一项所述的方法。
- 一种计算机存储介质,其中,所述计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如权利要求1至31任一项所述的方法、或者被第二处理器执行时实现如权利要求32至62任一项所述的方法。
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2020484221A AU2020484221A1 (en) | 2020-12-31 | 2020-12-31 | Point cloud encoding and decoding method, encoder, decoder and computer storage medium |
MX2023007883A MX2023007883A (es) | 2020-12-31 | 2020-12-31 | Metodo de codificacion y decodificacion de nube de puntos, codificador, decodificador y medio de almacenamiento de computadora. |
PCT/CN2020/142301 WO2022141461A1 (zh) | 2020-12-31 | 2020-12-31 | 点云编解码方法、编码器、解码器以及计算机存储介质 |
EP20967800.2A EP4273807A1 (en) | 2020-12-31 | 2020-12-31 | Point cloud encoding and decoding method, encoder, decoder and computer storage medium |
CN202080108117.5A CN116648915A (zh) | 2020-12-31 | 2020-12-31 | 点云编解码方法、编码器、解码器以及计算机存储介质 |
KR1020237025801A KR20230125817A (ko) | 2020-12-31 | 2020-12-31 | 포인트 클라우드 인코딩 및 디코딩 방법, 인코더, 디코더및 컴퓨터 저장 매체 |
JP2023540105A JP2024507046A (ja) | 2020-12-31 | 2020-12-31 | 点群符号化および復号化方法、エンコーダ、デコーダ、ならびにコンピュータ記憶媒体 |
CA3203882A CA3203882A1 (en) | 2020-12-31 | 2020-12-31 | Point cloud encoding and decoding method, encoder, decoder and computer storage medium |
CN202311054264.0A CN116980624A (zh) | 2020-12-31 | 2020-12-31 | 点云编解码方法、编码器、解码器以及计算机存储介质 |
US18/343,651 US12026920B2 (en) | 2020-12-31 | 2023-06-28 | Point cloud encoding and decoding method, encoder and decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/142301 WO2022141461A1 (zh) | 2020-12-31 | 2020-12-31 | 点云编解码方法、编码器、解码器以及计算机存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/343,651 Continuation US12026920B2 (en) | 2020-12-31 | 2023-06-28 | Point cloud encoding and decoding method, encoder and decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022141461A1 true WO2022141461A1 (zh) | 2022-07-07 |
Family
ID=82258920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/142301 WO2022141461A1 (zh) | 2020-12-31 | 2020-12-31 | 点云编解码方法、编码器、解码器以及计算机存储介质 |
Country Status (9)
Country | Link |
---|---|
US (1) | US12026920B2 (zh) |
EP (1) | EP4273807A1 (zh) |
JP (1) | JP2024507046A (zh) |
KR (1) | KR20230125817A (zh) |
CN (2) | CN116980624A (zh) |
AU (1) | AU2020484221A1 (zh) |
CA (1) | CA3203882A1 (zh) |
MX (1) | MX2023007883A (zh) |
WO (1) | WO2022141461A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024037247A1 (zh) * | 2022-08-19 | 2024-02-22 | 腾讯科技(深圳)有限公司 | 一种点云媒体的数据处理方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200111236A1 (en) * | 2018-10-03 | 2020-04-09 | Apple Inc. | Point cloud compression using fixed-point numbers |
WO2020123469A1 (en) * | 2018-12-11 | 2020-06-18 | Futurewei Technologies, Inc. | Hierarchical tree attribute coding by median points in point cloud coding |
WO2020189876A1 (ko) * | 2019-03-15 | 2020-09-24 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701861A (zh) | 2014-11-28 | 2016-06-22 | 富泰华工业(深圳)有限公司 | 点云采样方法及系统 |
EP3399757A1 (en) | 2017-05-04 | 2018-11-07 | Thomson Licensing | Method and apparatus to encode and decode two-dimension point clouds |
US10897269B2 (en) | 2017-09-14 | 2021-01-19 | Apple Inc. | Hierarchical point cloud compression |
WO2020071703A1 (ko) | 2018-10-01 | 2020-04-09 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및/또는 포인트 클라우드 데이터 수신 방법 |
CN113366536A (zh) | 2019-02-05 | 2021-09-07 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
US11581022B2 (en) | 2019-05-29 | 2023-02-14 | Nokia Technologies Oy | Method and apparatus for storage and signaling of compressed point clouds |
CN111340899B (zh) | 2020-02-14 | 2022-09-06 | 福州大学 | 一种彩色点云的压缩采样及重构方法 |
WO2022035250A1 (ko) * | 2020-08-12 | 2022-02-17 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
-
2020
- 2020-12-31 WO PCT/CN2020/142301 patent/WO2022141461A1/zh active Application Filing
- 2020-12-31 JP JP2023540105A patent/JP2024507046A/ja active Pending
- 2020-12-31 AU AU2020484221A patent/AU2020484221A1/en active Pending
- 2020-12-31 MX MX2023007883A patent/MX2023007883A/es unknown
- 2020-12-31 CA CA3203882A patent/CA3203882A1/en active Pending
- 2020-12-31 CN CN202311054264.0A patent/CN116980624A/zh active Pending
- 2020-12-31 EP EP20967800.2A patent/EP4273807A1/en active Pending
- 2020-12-31 KR KR1020237025801A patent/KR20230125817A/ko unknown
- 2020-12-31 CN CN202080108117.5A patent/CN116648915A/zh active Pending
-
2023
- 2023-06-28 US US18/343,651 patent/US12026920B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200111236A1 (en) * | 2018-10-03 | 2020-04-09 | Apple Inc. | Point cloud compression using fixed-point numbers |
WO2020123469A1 (en) * | 2018-12-11 | 2020-06-18 | Futurewei Technologies, Inc. | Hierarchical tree attribute coding by median points in point cloud coding |
WO2020189876A1 (ko) * | 2019-03-15 | 2020-09-24 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
Non-Patent Citations (2)
Title |
---|
ANONYMOUS: "Text of ISO/IEC 23090-9 DIS Geometry-based PCC", 129. MPEG MEETING; 20200113 - 20200117; BRUSSELS; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), no. n19088, 20 April 2020 (2020-04-20), pages 1 - 5, XP030287967 * |
KHALED MAMMOU, PHILIP A. CHOU, DAVID FLYNN, MAJA KRIVOKUćA, OHJI NAKAGAMI , TOSHIYASU SUGIO: "G-PCC codec description v2", ISO/IEC JTC1/SC29/WG11 N18189, no. N18189, 1 January 2019 (2019-01-01), pages 1 - 39, XP055686871 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024037247A1 (zh) * | 2022-08-19 | 2024-02-22 | 腾讯科技(深圳)有限公司 | 一种点云媒体的数据处理方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
US20230351639A1 (en) | 2023-11-02 |
CA3203882A1 (en) | 2022-07-07 |
AU2020484221A1 (en) | 2023-08-10 |
CN116648915A (zh) | 2023-08-25 |
MX2023007883A (es) | 2023-07-10 |
JP2024507046A (ja) | 2024-02-16 |
KR20230125817A (ko) | 2023-08-29 |
EP4273807A1 (en) | 2023-11-08 |
CN116980624A (zh) | 2023-10-31 |
US12026920B2 (en) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12026920B2 (en) | Point cloud encoding and decoding method, encoder and decoder | |
WO2022067775A1 (zh) | 点云的编码、解码方法、编码器、解码器以及编解码系统 | |
WO2021138788A1 (zh) | 帧内预测方法、装置、编码器、解码器、及存储介质 | |
WO2021062771A1 (zh) | 颜色分量预测方法、编码器、解码器及计算机存储介质 | |
US20230009083A1 (en) | Method and device for intra prediction | |
WO2023015530A1 (zh) | 点云编解码方法、编码器、解码器及计算机可读存储介质 | |
WO2022170511A1 (zh) | 点云解码方法、解码器及计算机存储介质 | |
WO2024007268A1 (zh) | 点云编解码方法、编解码器及计算机存储介质 | |
CN117793372A (zh) | 预测方法、编码器、解码器以及计算机存储介质 | |
WO2022170521A1 (zh) | 几何重构方法、解码器以及计算机存储介质 | |
WO2024011472A1 (zh) | 点云编解码方法、编解码器及计算机存储介质 | |
WO2024103304A1 (zh) | 点云编解码方法、编码器、解码器、码流及存储介质 | |
WO2024082152A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
WO2023240455A1 (zh) | 点云编码方法、编码装置、编码设备以及存储介质 | |
WO2024082135A1 (zh) | 编解码方法、编解码器、码流以及计算机存储介质 | |
WO2023197337A1 (zh) | 索引确定方法、装置、解码器以及编码器 | |
WO2023123284A1 (zh) | 一种解码方法、编码方法、解码器、编码器及存储介质 | |
WO2024082153A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2023098820A1 (zh) | 点云编码、解码方法、装置及通信设备 | |
WO2023197338A1 (zh) | 索引确定方法、装置、解码器以及编码器 | |
WO2022217472A1 (zh) | 点云编解码方法、编码器、解码器及计算机可读存储介质 | |
WO2022188582A1 (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
WO2022140937A1 (zh) | 点云编解码方法与系统、及点云编码器与点云解码器 | |
WO2023249999A1 (en) | System and method for geometry point cloud coding | |
JP2023553503A (ja) | 点群の符号化方法、復号化方法、エンコーダ及びデコーダ |
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: 20967800 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202080108117.5 Country of ref document: CN |
|
ENP | Entry into the national phase |
Ref document number: 3203882 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023540105 Country of ref document: JP Ref document number: MX/A/2023/007883 Country of ref document: MX |
|
REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112023012670 Country of ref document: BR |
|
ENP | Entry into the national phase |
Ref document number: 20237025801 Country of ref document: KR Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023119870 Country of ref document: RU |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020967800 Country of ref document: EP Effective date: 20230731 |
|
ENP | Entry into the national phase |
Ref document number: 112023012670 Country of ref document: BR Kind code of ref document: A2 Effective date: 20230623 |
|
ENP | Entry into the national phase |
Ref document number: 2020484221 Country of ref document: AU Date of ref document: 20201231 Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11202304982S Country of ref document: SG |