WO2024188138A1 - 点云编码处理方法、点云解码处理方法及相关设备 - Google Patents
点云编码处理方法、点云解码处理方法及相关设备 Download PDFInfo
- Publication number
- WO2024188138A1 WO2024188138A1 PCT/CN2024/080422 CN2024080422W WO2024188138A1 WO 2024188138 A1 WO2024188138 A1 WO 2024188138A1 CN 2024080422 W CN2024080422 W CN 2024080422W WO 2024188138 A1 WO2024188138 A1 WO 2024188138A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- parameter
- point cloud
- sub
- encoding
- result
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims description 76
- 230000015654 memory Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 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
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/176—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 block, e.g. a macroblock
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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
-
- 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
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- the present application belongs to the field of computer technology, and specifically relates to a point cloud encoding processing method, a point cloud decoding processing method and related equipment.
- Point cloud is a representation of a three-dimensional object or scene. It is composed of a set of discrete points that are irregularly distributed in space and express the spatial structure and surface properties of the three-dimensional object or scene. In order to accurately reflect the information in the space, the number of discrete points required is quite large. In order to reduce the bandwidth occupied by point cloud data storage and transmission, the point cloud data needs to be encoded and compressed. Point cloud data usually consists of geometric information describing the location, such as three-dimensional coordinates (x, y, z) and attribute information of the location, such as color (red (Red, R), green (Green, G), blue (Blue, B)) or reflectivity. In the process of point cloud coding and compression, the encoding of geometric information and attribute information is performed separately.
- the prediction residual is encoded based on the pre-set fixed coding parameters, which has coding redundancy and makes the coding efficiency low.
- the embodiments of the present application provide a point cloud encoding processing method, a point cloud decoding processing method and related equipment, which can solve the problem of low encoding efficiency.
- a point cloud encoding processing method which is executed by an encoding end and includes:
- the prediction residual is entropy encoded based on the first parameter to obtain a geometric encoding result.
- a point cloud decoding processing method which is executed by a decoding end and includes:
- a geometric reconstruction process is performed based on the prediction residual to obtain geometric information.
- a point cloud coding processing device comprising:
- a first determination module used to determine a point cloud block to be encoded based on geometric information of the point cloud, and to determine a first parameter based on the point cloud block to be encoded, wherein the first parameter is used to characterize the number of bits required to encode a second parameter, and the second parameter is used to indicate the size of the point cloud block to be encoded;
- a second determination module is used to construct a prediction tree corresponding to the point cloud block to be encoded, and determine the prediction residuals of the nodes in the prediction tree;
- the encoding module is used to perform entropy encoding on the prediction residual based on the first parameter to obtain a geometric encoding result.
- a point cloud decoding processing device comprising:
- An acquisition module used to acquire a first parameter corresponding to a point cloud block to be decoded, wherein the first parameter is used to represent the number of bits required to encode a second parameter, and the second parameter is used to indicate the size of the point cloud block to be decoded;
- a decoding module configured to perform entropy decoding on a geometric coding result corresponding to the point cloud block to be decoded based on the first parameter to obtain a prediction residual
- the reconstruction module is used to perform geometric reconstruction processing based on the prediction residual to obtain geometric information.
- a terminal comprising a processor and a memory, wherein the memory stores a program or instruction that can be run on the processor, and when the program or instruction is executed by the processor, the steps of the method described in the first aspect are implemented, or the steps of the method described in the second aspect are implemented.
- a terminal comprising a processor and a communication interface, wherein the processor is used to: determine a point cloud block to be encoded based on geometric information of a point cloud, determine a first parameter based on the point cloud block to be encoded, the first parameter being used to characterize the number of bits required to encode a second parameter, and the second parameter being used to indicate the size of the point cloud block to be encoded; construct a prediction tree corresponding to the point cloud block to be encoded, and determine the prediction residuals of the nodes in the prediction tree; perform entropy encoding on the prediction residual based on the first parameter to obtain a geometric coding result.
- a terminal comprising a processor and a communication interface, wherein the processor is used to: obtain a first parameter corresponding to a point cloud block to be decoded, the first parameter being used to characterize the number of bits required to encode a second parameter, and the second parameter being used to indicate the size of the point cloud block to be decoded; perform entropy decoding on a geometric encoding result corresponding to the point cloud block to be decoded based on the first parameter to obtain a prediction residual; and perform geometric reconstruction processing based on the prediction residual to obtain geometric information.
- a readable storage medium on which a program or instruction is stored.
- the program or instruction is executed by a processor, the steps of the method described in the first aspect are implemented, or the steps of the method described in the second aspect are implemented.
- a coding and decoding system comprising: a coding end device and a decoding end device, wherein the coding end device can be used to execute the steps of the method described in the first aspect, and the decoding end device can be used to execute the steps of the method described in the second aspect.
- a chip comprising a processor and a communication interface, the communication interface is coupled to the processor, the processor is used to run a program or instruction to implement the method as described in the first aspect, or to implement the method as described in the first aspect.
- a computer program/program product is provided, wherein the computer program/program product is stored in a storage medium, and the program/program product is executed by at least one processor to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the second aspect.
- a point cloud block to be encoded is determined based on the geometric information of the point cloud, a first parameter is determined based on the point cloud block to be encoded, the first parameter is used to characterize the number of bits required to encode the second parameter, and the second parameter is used to indicate the size of the point cloud block to be encoded; a prediction tree corresponding to the point cloud block to be encoded is constructed, and the prediction residual of each node in the prediction tree is determined; the prediction residual is entropy encoded based on the first parameter to obtain a geometric encoding result.
- the first parameter is adaptively determined by the size of the point cloud block to be encoded, and the prediction residual is entropy encoded based on the first parameter, which can reduce coding redundancy and improve coding efficiency.
- FIG1 is a schematic diagram of an AVS encoder framework in the related art
- FIG2 is a schematic diagram of an AVS decoder framework in the related art
- FIG3 is a schematic diagram of a prediction tree in the related art
- FIG4 is a flow chart of a point cloud coding processing method provided in an embodiment of the present application.
- FIG5 is a flow chart of a point cloud decoding processing method provided in an embodiment of the present application.
- FIG6 is a schematic diagram of the structure of a point cloud coding processing device provided in an embodiment of the present application.
- FIG7 is a schematic diagram of the structure of a point cloud decoding processing device provided in an embodiment of the present application.
- FIG8 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application.
- FIG. 9 is a schematic diagram of the structure of a terminal provided in an embodiment of the present application.
- first, second, etc. of the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the terms used in this way are interchangeable where appropriate, so that the embodiments of the present application can be implemented in an order other than those illustrated or described herein, and the objects distinguished by “first” and “second” are generally of one type, and the number of objects is not limited, for example, the first object can be one or more.
- “or” in the present application represents at least one of the connected objects.
- “A or B” covers three schemes, namely, Scheme 1: including A but not including B; Scheme 2: including B but not including A; Scheme 3: including both A and B.
- the character "/" generally indicates that the objects associated with each other are in an "or” relationship.
- indication in this application can be either a direct indication (or explicit indication) or an indirect indication (or implicit indication).
- a direct indication can be understood as the sender explicitly informing the receiver of specific information, operations to be performed, or request results in the sent indication;
- an indirect indication can be understood as the receiver determining the corresponding information according to the indication sent by the sender, or making a judgment and determining the operations to be performed or request results according to the judgment result.
- the codec end corresponding to the point cloud coding and decoding processing method in the embodiment of the present application can be a terminal, which can also be called a terminal device or a user terminal (User Equipment, UE).
- the terminal can be a mobile phone, a tablet computer (Tablet Personal Computer), a laptop computer (Laptop Computer) or a notebook computer, a personal digital assistant (Personal Digital Assistant, PDA), a handheld computer, a netbook, an ultra-mobile personal computer (ultra-mobile personal computer, UMPC), a mobile Internet device (Mobile Internet Device, MID), augmented reality (augmented reality, AR)/virtual reality (virtual reality, VR) equipment, a robot, a wearable device (Wearable Device) or a vehicle-mounted device (Pedestrian User Equipment, VUE), a pedestrian terminal (Pedestrian User Equipment, PUE) and other terminal-side devices.
- Wearable devices include: smart watches, bracelets, headphones, glasses, etc. It should be noted that the embodiments of the present application
- the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
- the encoding process of the geometric information of the point cloud is as follows: the coordinates of the geometric information are transformed so that all the point clouds are contained in a bounding box.
- the geometric information of the point cloud is then quantized. This step of quantization mainly plays a role in scaling. Due to the quantization rounding, the geometric information of some points is the same.
- the parameters are used to decide whether to remove duplicate points.
- the process of quantization and removal of duplicate points belongs to the preprocessing process. Divide the three-dimensional space where the bounding box is located into several
- the non-overlapping coding macroblocks of different sizes are used as the basic coding unit. In each macroblock, different geometric coding methods can be used according to its characteristics.
- octree coding which is suitable for dense point clouds
- prediction tree coding which is suitable for sparse point clouds. If the current macroblock selects prediction tree coding, the part of the point cloud is first Morton sorted (this step is not necessary), and the prediction tree is constructed for the sorted point cloud.
- the prediction tree adopts a single chain structure, as shown in Figure 3. Except for the only leaf node, each tree node has only one child node. Except for the root node predicted by the default value, other nodes are provided with geometric prediction values by their parent nodes.
- the method of constructing the prediction tree is as follows: construct an auxiliary KD tree (K-dimensional tree) with the points to be encoded.
- the encoding end can control the number of nodes in the tree; first select the root node, and then search the point closest to the root node in the KD tree as the only child node of the root node, and remove the child node in the KD tree; then search the nearest neighbor of the child node in the KD tree as its child node in the same way; and so on, complete the construction of the entire prediction tree, and the constructed prediction tree is a single chain tree.
- the KD tree is a binary tree where each node is a k-dimensional point.
- each node in the prediction tree has only one child node and only one prediction mode, the entire prediction tree can be fully expressed by entropy coding the geometric position residual of each point in the bitstream, and the geometric coding is completed. After the geometric coding is completed, the geometric information is reconstructed to obtain the geometric reconstruction point Cloud,used for recoloring during attribute encoding.
- Attribute encoding is mainly aimed at color and reflectance information.
- RGB red, green, blue
- YUV represents brightness (Luminance or Luma)
- U and V represent chrominance (Chrominance or Chroma)
- the nearest neighbor of the point to be predicted is searched by geometric spatial relationship, and the reconstructed attribute value of the neighbor is used to predict the point to be predicted to obtain the predicted attribute value, then the real attribute value and the predicted attribute value are differentiated to obtain the prediction residual, and finally the prediction residual is quantized and encoded to generate a binary code stream.
- FIG. 4 is a flow chart of a point cloud coding processing method provided in an embodiment of the present application, which can be applied to the coding end.
- the point cloud coding processing method includes the following steps:
- Step 101 determine a point cloud block to be encoded based on geometric information of the point cloud, and determine a first parameter based on the point cloud block to be encoded, wherein the first parameter is used to characterize the number of bits required to encode a second parameter, and the second parameter is used to indicate the size of the point cloud block to be encoded.
- the point cloud block to be encoded can be a coding macroblock, which is a basic coding unit.
- the point cloud can be divided into a bounding box, and the three-dimensional space where the bounding box is located is divided into several non-overlapping coding macroblocks, and the divided coding macroblocks are used as the point cloud block to be encoded.
- the process of determining the point cloud block to be encoded based on the geometric information of the point cloud can be as follows: coordinate conversion is performed on the geometric information so that all the point clouds are contained in a bounding box, and the three-dimensional space where the bounding box is located is divided into several
- the non-overlapping coding macroblocks of different sizes are used as the point cloud blocks to be encoded.
- the second parameter may characterize the bit depth of the side length of the point cloud block to be encoded.
- the bit depth of the side length of the point cloud block to be encoded may refer to the number of bits required to represent the side length of the point cloud block to be encoded.
- the second parameter may characterize the bit depth of the longest side length of the point cloud block to be encoded; or, the second parameter may include a first sub-parameter, a second sub-parameter, and a third sub-parameter, the first sub-parameter representing the bit depth of the point cloud block to be encoded in the first direction, the second sub-parameter representing the bit depth of the point cloud block to be encoded in the second direction, and the third sub-parameter representing the bit depth of the point cloud block to be encoded in the third direction.
- the point cloud block to be encoded is a cuboid
- the bit depth of the cuboid in the length direction is 32
- the second parameter may be 32, or the second parameter may include 32, 15, and 8.
- the first parameter may be the minimum number of bits required to encode the second parameter, or may be described as the number of bits required to represent the second parameter. Taking the second parameter as 32 as an example, the number of bits required to encode the second parameter is 6, and the first parameter is 6; taking the second parameter as 32, 15, and 8 as an example, the number of bits required to encode the second parameter is 6, 4, and 4, respectively, and the first parameter as 6, 4, and 4.
- Step 102 construct a prediction tree corresponding to the point cloud block to be encoded, and determine the prediction residual of the node in the prediction tree. Difference.
- a KD tree can be constructed based on the points in the point cloud block to be encoded, and the root node is selected.
- the point closest to the root node is searched in the constructed KD tree as the only child node of the root node, and the child node is removed from the KD tree at the same time; then the nearest neighbor point of the child node is searched in the KD tree as its child node in the same way; and so on, the construction of a single-link tree is realized, and the constructed single-link tree is the prediction tree corresponding to the point cloud block to be encoded.
- the prediction residual of each node in the prediction tree is calculated in the same way.
- the prediction residual of a node is the difference between the geometric position coordinates of the node and the geometric position coordinates of the previous node of the node.
- the prediction residual of the root node may be the difference between the geometric position coordinates of the root node and a first preset value, and the first preset value may be 0, or may also be other pre-set values.
- Step 103 Perform entropy coding on the prediction residual based on the first parameter to obtain a geometric coding result.
- entropy encoding the prediction residual based on the first parameter to obtain a geometric coding result may include: performing a shift operation on the absolute value of the prediction residual to obtain a first value; determining the target number of coding bits required to encode the first value; encoding the target number of coding bits using the first parameter as the number of coding bits to obtain a first coding sub-result; encoding the first value based on the target number of coding bits to obtain a second coding sub-result; performing a modulo operation on the absolute value of the prediction residual to obtain a second value; encoding the second value to obtain a third coding sub-result; encoding the third value to obtain a fourth coding sub-result, and the third value is used to indicate whether the prediction residual is greater than zero; wherein the geometric coding result includes the first coding sub-result, the second coding sub-result, the third coding sub-result and the fourth coding
- a point cloud block to be encoded is determined based on the geometric information of the point cloud, a first parameter is determined based on the point cloud block to be encoded, the first parameter is used to characterize the number of bits required to encode the second parameter, and the second parameter is used to indicate the size of the point cloud block to be encoded; a prediction tree corresponding to the point cloud block to be encoded is constructed, and the prediction residual of each node in the prediction tree is determined; the prediction residual is entropy encoded based on the first parameter to obtain a geometric encoding result.
- the first parameter is adaptively determined by the size of the point cloud block to be encoded, and the prediction residual is entropy encoded based on the first parameter, which can reduce coding redundancy and improve coding efficiency.
- performing entropy encoding on the prediction residual based on the first parameter includes:
- the geometric coding result includes the first coding sub-result.
- the absolute value of the prediction residual is shifted to obtain the first value, which may be obtained by right shifting the value to be shifted corresponding to the absolute value of the prediction residual to obtain the first value.
- the value to be shifted may be the absolute value of the prediction residual.
- the second preset value may be 1, or may be another preset value.
- the number of coding bits can be understood as the number of coding bits.
- the target number of coding bits can be the minimum number of coding bits required to encode the first value. For example, if the first value is 2 32 , the target number of coding bits is 32. Taking the first parameter as 6 as an example, the first encoding result is: 100000.
- the number of coding bits required to encode the first value is less than or equal to the number of coding bits required to encode the absolute value of the prediction residual
- the number of coding bits required to encode the absolute value of the prediction residual is less than or equal to the number of bits required to encode the size of the point cloud block to be encoded
- the second parameter can characterize the bit depth of the side length of the point cloud block to be encoded. Therefore, the number of coding bits required to encode the first value (i.e., the target number of coding bits) is less than or equal to the second parameter, so that the number of bits required to encode the target number of coding bits is less than or equal to the number of bits required to encode the second parameter (i.e., the first parameter).
- Encoding the target number of coding bits using the first parameter as the number of coding bits can meet the encoding requirements for the target number of coding bits, and can greatly reduce coding redundancy and improve coding efficiency.
- the absolute value of the prediction residual is shifted to obtain a first value; the target number of coding bits required to encode the first value is determined; the target number of coding bits is encoded using the first parameter as the number of coding bits to obtain a first encoding sub-result; wherein the geometric encoding result includes the first encoding sub-result.
- the performing entropy encoding on the prediction residual based on the first parameter further includes:
- the geometric coding result includes the first coding sub-result, the second coding sub-result, the third coding sub-result and the fourth coding sub-result.
- the second value may be obtained by performing a modulo operation on the absolute value of the prediction residual and performing a modulo operation on the absolute value of the prediction residual and 2.
- the third value is used to indicate whether the prediction residual is greater than zero, so that the positive and negative signs of the prediction residual can be encoded by encoding the third value.
- a flag may be used to indicate whether the prediction residual is 0, and the flag may be transmitted to the decoding end.
- the first value is encoded based on the target number of encoding bits to obtain a second encoding sub-result; Perform a modulo operation on the absolute value of the prediction residual to obtain a second value; encode the second value to obtain a third encoding sub-result; encode the third value to obtain a fourth encoding sub-result, and the third value is used to indicate whether the prediction residual is greater than zero; wherein the geometric encoding result includes the first encoding sub-result, the second encoding sub-result, the third encoding sub-result and the fourth encoding sub-result, thereby enabling entropy encoding of the prediction residual.
- the second parameter includes a first sub-parameter, a second sub-parameter and a third sub-parameter
- the first sub-parameter represents the bit depth of the point cloud block to be encoded in the first direction
- the second sub-parameter represents the bit depth of the point cloud block to be encoded in the second direction
- the third sub-parameter represents the bit depth of the point cloud block to be encoded in the third direction
- the first parameter includes a fourth sub-parameter, a fifth sub-parameter and a sixth sub-parameter, the fourth sub-parameter indicates the number of bits required to encode the first sub-parameter, the fifth sub-parameter indicates the number of bits required to encode the second sub-parameter, and the sixth sub-parameter indicates the number of bits required to encode the third sub-parameter;
- the entropy encoding the prediction residual based on the first parameter includes:
- the prediction residual in the third direction is entropy encoded based on the sixth sub-parameter.
- the first direction, the second direction and the third direction may be the directions of the three coordinate axes of the three-dimensional space where the point cloud is located; or may be the length direction, width direction and height direction of the point cloud block to be encoded.
- the bit depth of the point cloud block to be encoded in the first direction may refer to the bit depth of the side length of the point cloud block to be encoded in the first direction, that is, the number of bits required to represent the side length of the point cloud block to be encoded in the first direction
- the bit depth of the point cloud block to be encoded in the second direction may refer to the bit depth of the side length of the point cloud block to be encoded in the second direction, that is, the number of bits required to represent the side length of the point cloud block to be encoded in the second direction;
- the prediction residual of the node may include the prediction residual in the first direction, the prediction residual in the second direction and the prediction residual in the third direction.
- the prediction residual of the node may include the prediction residual in the X-axis direction, the prediction residual in the Y-axis direction and the prediction residual in the Z-axis direction.
- the first sub-parameter represents the bit depth of the point cloud block to be encoded in the X-axis direction
- the second sub-parameter represents the bit depth of the point cloud block to be encoded in the Y-axis direction
- the third sub-parameter represents the bit depth of the point cloud block to be encoded in the Z-axis direction
- the fourth sub-parameter, the fifth sub-parameter and the sixth sub-parameter can be used to entropy encode the prediction residuals in the X-axis direction, the Y-axis direction and the Z-axis direction respectively.
- the second parameter includes a first sub-parameter, a second sub-parameter, and a third sub-parameter
- the first parameter includes a fourth sub-parameter, a fifth sub-parameter, and a sixth sub-parameter
- entropy encoding is performed on the prediction residual in the first direction based on the fourth sub-parameter
- entropy encoding is performed on the prediction residual in the second direction based on the fifth sub-parameter
- the prediction residual in the third direction is entropy encoded based on the sixth sub-parameter.
- the prediction residual in each direction of the node of the point cloud block to be encoded can be entropy encoded according to the bit depth of the point cloud block to be encoded in each direction, thereby reducing the coding redundancy in each direction and improving the coding efficiency.
- the method further includes:
- a geometry code stream is sent to a decoding end, where the geometry code stream includes the geometry encoding result and the first parameter.
- the first parameter can be transmitted from the encoding end to the decoding end, or can be obtained by the decoding end through point cloud bit depth calculation without being written into the code stream and transmitted to the decoding end.
- a geometry code stream is sent to a decoding end, where the geometry code stream includes the geometry encoding result and the first parameter, so that the decoding end can decode the prediction residual through the first parameter carried in the geometry code stream.
- determining the first parameter based on the point cloud block to be encoded includes:
- a first parameter is determined based on the point cloud block to be encoded.
- the threshold value may be set to 2 32 , or may be set to 2 40 , or may be set to 2 50 , etc. This embodiment does not limit the threshold value, and the threshold value may be preset.
- the longest side length of the point cloud block to be encoded is less than or equal to the threshold value, which may be understood as an upper limit on the bit depth of the longest side length of the point cloud block to be encoded. When the longest side length of the point cloud block to be encoded is greater than the threshold value, it may be considered that the upper limit of the bit depth of the supported encoded point cloud is exceeded, and it may not be encoded.
- the AVS coding platform does not specify the upper limit of the bit depth of the supported coded point cloud. Therefore, if the bit depth of the point cloud block to be coded is greater than 31, the existing prediction tree coding technology still uses a fixed 5 bits to encode the minimum number of coding bits required for ResHalf, which may result in insufficient bits, resulting in failure of normal encoding and decoding.
- This embodiment limits the bit depth of the longest side length of the point cloud block to be coded, and uses the first parameter adaptively determined by the size of the point cloud block to be coded as the number of coding bits to encode the minimum number of coding bits required for encoding ResHalf, thereby achieving normal encoding and decoding.
- the embodiments of the present application relate to the prediction tree entropy coding part in the AVS encoder framework.
- the process of encoding the prediction residual of the node in the prediction tree corresponding to the geometric information is as follows:
- the prediction residual between two adjacent points (P i-1 and P i ) is:
- the prediction tree coding technology uses a fixed 5-bit bit to encode the minimum coding bit number Bi [k] required for ResHalf i when encoding the absolute value of the residual.
- Bi [k] the minimum coding bit number required for ResHalf i when encoding the absolute value of the residual.
- the number of bits required to encode Bi [k] is less than 5 bits. If a fixed 5-bit encoding is used, there will be a waste of bits, resulting in coding redundancy, and there will also be redundant occupancy in the use of the context model.
- the bit depth of the number of encoding bits Bi [k] required for encoding ResHalf i is adaptively calculated according to the current point cloud block size, which can improve the encoding efficiency and reduce the redundant occupancy of the context model.
- the point cloud encoding processing method performed by the encoding end may include the following process:
- the prediction residual between two adjacent points (P i-1 and P i ) is:
- Pi is the geometric position coordinates of point i
- Pi -1 is the geometric position coordinates of point i-1.
- Step (13) The encoding method of the absolute value of the prediction residual absRes i [k] is as follows:
- ctxIdx 9, encoding b 4 , b 5 , ..., b n ;
- n-1 is the number of bits of Bi [k].
- Step (14) Encode the sign of the prediction residual Res i [k].
- FIG. 5 is a flow chart of a point cloud decoding processing method provided in an embodiment of the present application, which can be applied to a decoding end.
- the point cloud decoding processing method includes the following steps:
- Step 201 Obtain a first parameter corresponding to a point cloud block to be decoded, where the first parameter is used to represent the number of bits required to encode a second parameter, and the second parameter is used to indicate the size of the point cloud block to be decoded;
- Step 202 performing entropy decoding on the geometric coding result corresponding to the point cloud block to be decoded based on the first parameter to obtain a prediction residual;
- Step 203 Perform geometric reconstruction processing based on the prediction residual to obtain geometric information.
- the geometric coding result includes a first coding sub-result, a second coding sub-result, a third coding sub-result and a fourth coding sub-result;
- the entropy decoding of the geometric coding result corresponding to the to-be-decoded point cloud block based on the first parameter to obtain a prediction residual includes:
- the prediction residual is determined based on the first value, the second value, and the third value.
- decoding the first encoding sub-result based on the first parameter to obtain a target number of encoding bits includes:
- the first encoding sub-result is decoded using the first parameter as the decoding bit number to obtain a target coding bit number, where the target coding bit number is the coding bit number required to encode the first value, and the first value is obtained by performing a shift operation on the absolute value of the prediction residual.
- the second parameter includes a first sub-parameter, a second sub-parameter and a third sub-parameter
- the first sub-parameter represents the bit depth of the point cloud block to be decoded in the first direction
- the second sub-parameter represents the bit depth of the point cloud block to be decoded in the second direction
- the third sub-parameter represents the bit depth of the point cloud block to be decoded in the third direction
- the first parameter includes a fourth sub-parameter, a fifth sub-parameter and a sixth sub-parameter, the fourth sub-parameter indicates the number of bits required to encode the first sub-parameter, the fifth sub-parameter indicates the number of bits required to encode the second sub-parameter, and the sixth sub-parameter indicates the number of bits required to encode the third sub-parameter;
- the entropy decoding of the geometric encoding result corresponding to the point cloud block to be decoded based on the first parameter includes:
- entropy decoding is performed on the geometric encoding result of the point cloud block to be decoded in the third direction.
- the obtaining a first parameter corresponding to the point cloud block to be decoded includes:
- a geometric code stream sent by a decoding end is received, where the geometric code stream includes a geometric encoding result and a first parameter corresponding to a point cloud block to be decoded.
- the obtaining a first parameter corresponding to the point cloud block to be decoded includes:
- a first parameter corresponding to the point cloud block to be decoded is obtained.
- this embodiment is an implementation of the decoding side corresponding to the embodiment shown in Figure 4. Its specific implementation can refer to the relevant description of the embodiment shown in Figure 4. In order to avoid repeated description, this embodiment will not be repeated, and the same beneficial effects can be achieved.
- the point cloud decoding processing method performed by the decoding end includes the following process:
- Step (21) The size (or bit depth) of the point cloud block to be decoded must be within the set MaxLCUDimLog2 parameter to be decoded.
- the Maxnumbits[k] parameter is parsed from the geometry stream.
- Step (22) parse the prediction residual information from the geometry bitstream as follows:
- n-1 is the number of bits of Bi [k].
- Step (23) Decode the sign of the prediction residual Res i [k].
- This embodiment proposes an entropy coding and decoding method based on a prediction tree.
- the bit depth of the number of coding bits Bi [k] required for encoding ResHalf i is adaptively calculated according to the current point cloud block size, which can improve the coding efficiency and reduce the redundant occupancy of the context model.
- the point cloud coding processing method provided in the embodiment of the present application can be executed by a point cloud coding processing device, or a control module in the point cloud coding processing device for executing the point cloud coding processing method.
- the point cloud coding processing device provided in the embodiment of the present application is described by taking the method for executing the point cloud coding processing by the point cloud coding processing device as an example.
- FIG. 6 is a structural diagram of a point cloud coding processing device provided in an embodiment of the present application.
- the point cloud coding processing device 300 includes:
- a first determination module 301 is used to determine a point cloud block to be encoded based on geometric information of the point cloud, and to determine a first parameter based on the point cloud block to be encoded, wherein the first parameter is used to characterize the number of bits required to encode a second parameter, and the second parameter is used to indicate the size of the point cloud block to be encoded;
- a second determination module 302 is used to construct a prediction tree corresponding to the to-be-encoded point cloud block and determine the prediction residuals of the nodes in the prediction tree;
- the encoding module 303 is used to perform entropy encoding on the prediction residual based on the first parameter to obtain a geometric encoding result.
- the encoding module is specifically used for:
- the geometric coding result includes the first coding sub-result.
- the encoding module is further used for:
- the third value is encoded to obtain a fourth encoding sub-result, wherein the third value is used to indicate whether the prediction residual is large or small. at zero;
- the geometric coding result includes the first coding sub-result, the second coding sub-result, the third coding sub-result and the fourth coding sub-result.
- the second parameter includes a first sub-parameter, a second sub-parameter and a third sub-parameter
- the first sub-parameter represents the bit depth of the point cloud block to be encoded in the first direction
- the second sub-parameter represents the bit depth of the point cloud block to be encoded in the second direction
- the third sub-parameter represents the bit depth of the point cloud block to be encoded in the third direction
- the first parameter includes a fourth sub-parameter, a fifth sub-parameter and a sixth sub-parameter, the fourth sub-parameter indicates the number of bits required to encode the first sub-parameter, the fifth sub-parameter indicates the number of bits required to encode the second sub-parameter, and the sixth sub-parameter indicates the number of bits required to encode the third sub-parameter;
- the entropy encoding the prediction residual based on the first parameter includes:
- the prediction residual in the third direction is entropy encoded based on the sixth sub-parameter.
- the device further comprises:
- the sending module is used to send a geometric code stream to a decoding end, where the geometric code stream includes the geometric coding result and the first parameter.
- the first determining module is specifically configured to:
- a first parameter is determined based on the point cloud block to be encoded.
- the point cloud coding processing device 300 in the embodiment of the present application can reduce coding redundancy, thereby improving coding efficiency.
- the point cloud coding processing device in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal.
- the device or electronic device can be a mobile terminal or a non-mobile terminal.
- the mobile terminal can include but is not limited to the types of terminals listed above, and the non-mobile terminal can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), a television (television, TV), a teller machine or a self-service machine, etc., which is not specifically limited in the embodiment of the present application.
- the point cloud coding processing device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 4 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
- the point cloud decoding processing method provided in the embodiment of the present application can be executed by a point cloud decoding processing device, or a control module in the point cloud decoding processing device for executing the point cloud decoding processing method.
- the point cloud decoding processing device provided in the embodiment of the present application is described by taking the method for executing the point cloud decoding processing by the point cloud decoding processing device as an example.
- FIG. 7 is a structural diagram of a point cloud decoding processing device provided in an embodiment of the present application.
- the point cloud decoding processing device 400 includes:
- An acquisition module 401 is used to acquire a first parameter corresponding to a point cloud block to be decoded, where the first parameter is used to represent the number of bits required to encode a second parameter, and the second parameter is used to indicate the size of the point cloud block to be decoded;
- a decoding module 402 is used to perform entropy decoding on the geometric coding result corresponding to the point cloud block to be decoded based on the first parameter to obtain a prediction residual;
- the reconstruction module 403 is used to perform geometric reconstruction processing based on the prediction residual to obtain geometric information.
- the geometric coding result includes a first coding sub-result, a second coding sub-result, a third coding sub-result and a fourth coding sub-result;
- the decoding module comprises:
- a first decoding unit configured to decode the first encoding sub-result based on the first parameter to obtain a target number of encoding bits
- a second decoding unit configured to decode the second encoding sub-result based on the target number of encoding bits to obtain a first value
- a third decoding unit configured to decode the third encoding sub-result to obtain a second value, where the second value is a value obtained by performing a modulo operation on an absolute value of a prediction residual;
- a fourth decoding unit configured to decode the fourth encoding sub-result to obtain a third value, wherein the third value is used to indicate whether the prediction residual is greater than zero;
- a determination unit is used to determine the prediction residual based on the first value, the second value and the third value.
- the first decoding unit is specifically configured to:
- the first encoding sub-result is decoded using the first parameter as the decoding bit number to obtain a target coding bit number, where the target coding bit number is the coding bit number required to encode the first value, and the first value is obtained by performing a shift operation on the absolute value of the prediction residual.
- the second parameter includes a first sub-parameter, a second sub-parameter and a third sub-parameter
- the first sub-parameter represents the bit depth of the point cloud block to be decoded in the first direction
- the second sub-parameter represents the bit depth of the point cloud block to be decoded in the second direction
- the third sub-parameter represents the bit depth of the point cloud block to be decoded in the third direction
- the first parameter includes a fourth sub-parameter, a fifth sub-parameter and a sixth sub-parameter, the fourth sub-parameter indicates the number of bits required to encode the first sub-parameter, the fifth sub-parameter indicates the number of bits required to encode the second sub-parameter, and the sixth sub-parameter indicates the number of bits required to encode the third sub-parameter;
- the decoding module is specifically used for:
- entropy decoding is performed on the geometric encoding result of the point cloud block to be decoded in the third direction.
- the acquisition module is specifically used to:
- a geometric code stream sent by a decoding end is received, where the geometric code stream includes a geometric encoding result and a first parameter corresponding to a point cloud block to be decoded.
- the acquisition module is specifically used to:
- a first parameter corresponding to the point cloud block to be decoded is obtained.
- the point cloud decoding processing device in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal.
- the device or electronic device can be a mobile terminal or a non-mobile terminal.
- the mobile terminal can include but is not limited to the types of terminals listed above, and the non-mobile terminal can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), a television (television, TV), a teller machine or a self-service machine, etc., which is not specifically limited in the embodiment of the present application.
- the point cloud decoding processing device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 5 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
- the embodiment of the present application further provides a communication device 500, including a processor 501 and a memory 502, wherein the memory 502 stores a program or instruction that can be run on the processor 501.
- the communication device 500 is an encoding end device
- the program or instruction is executed by the processor 501 to implement the various steps of the above-mentioned point cloud encoding processing method embodiment, and can achieve the same technical effect.
- the communication device 500 is a decoding end device
- the program or instruction is executed by the processor 501 to implement the various steps of the above-mentioned point cloud decoding processing method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
- the embodiment of the present application also provides a terminal, including a processor and a communication interface, wherein the processor is used to: determine a point cloud block to be encoded based on geometric information of a point cloud, determine a first parameter based on the point cloud block to be encoded, the first parameter is used to characterize the number of bits required for encoding a second parameter, and the second parameter is used to indicate the size of the point cloud block to be encoded; construct a prediction tree corresponding to the point cloud block to be encoded, and determine the prediction residual of the node in the prediction tree; entropy encode the prediction residual based on the first parameter to obtain a geometric encoding result.
- the processor is used to: obtain a first parameter corresponding to a point cloud block to be decoded, the first parameter is used to characterize the number of bits required for encoding a second parameter, and the second parameter is used to indicate the size of the point cloud block to be decoded; entropy decode the geometric encoding result corresponding to the point cloud block to be decoded based on the first parameter to obtain a prediction residual; perform geometric reconstruction processing based on the prediction residual to obtain geometric information.
- FIG9 is a schematic diagram of the hardware structure of a terminal implementing an embodiment of the present application.
- the terminal 600 includes but is not limited to: a radio frequency unit 601, a network module 602, an audio output unit 603, an input unit 604, a sensor 605, a display unit 606, a user input unit 607, an interface unit 608, a memory 609 and at least some of the components of a processor 610.
- the terminal 600 may also include a power source (such as a battery) for supplying power to each component, and the power source may be logically connected to the processor 610 through a power management system, so as to implement functions such as managing charging, discharging, and power consumption management through the power management system.
- a power source such as a battery
- the terminal structure shown in FIG9 does not constitute a limitation on the terminal, and the terminal may include more or fewer components than shown in the figure, or combine certain components, or arrange components differently, which will not be described in detail here.
- the input unit 604 may include a graphics processing unit (GPU) 6041 and a microphone 6042, and the graphics processor 6041 processes the image data of the static picture or video obtained by the image capture device (such as a camera) in the video capture mode or the image capture mode.
- the display unit 606 may include a display panel 6061, and the display panel 6061 may be configured in the form of a liquid crystal display, an organic light emitting diode, etc.
- the user input unit 607 includes a touch panel 6071 and at least one of other input devices 6072.
- the touch panel 6071 is also called a touch screen.
- the touch panel 6071 may include two parts: a touch detection device and a touch controller.
- Other input devices 6072 may include, but are not limited to, a physical keyboard, function keys (such as a volume control key, a switch key, etc.), a trackball, a mouse, and a joystick, which will not be repeated here.
- the RF unit 601 after receiving downlink data from the network side device, can transmit the data to the processor 610 for processing; in addition, the RF unit 601 can send uplink data to the network side device.
- the RF unit 601 includes but is not limited to an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.
- the memory 609 can be used to store software programs or instructions and various data.
- the memory 609 may mainly include a first storage area for storing programs or instructions and a second storage area for storing data, wherein the first storage area may store an operating system, an application program or instruction required for at least one function (such as a sound playback function, an image playback function, etc.), etc.
- the memory 609 may include a volatile memory or a non-volatile memory, or the memory 609 may include both volatile and non-volatile memories.
- the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
- the volatile memory may be a random access memory (RAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDRSDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchronous link dynamic random access memory (SLDRAM) and a direct memory bus random access memory (DRRAM).
- the memory 609 in the embodiment of the present application includes but is not limited to these and any other suitable types of memories.
- the processor 610 may include one or more processing units; optionally, the processor 610 integrates an application processor and a modem processor, wherein the application processor mainly processes operations related to an operating system, a user interface, and application programs, and the modem processor mainly processes wireless communication signals, such as a baseband processor. It is understandable that the modem processor may not be integrated into the processor 610.
- the processor 610 is used for:
- the prediction residual is entropy encoded based on the first parameter to obtain a geometric encoding result.
- the processor 610 is configured to:
- the geometric coding result includes the first coding sub-result.
- the processor 610 is configured to:
- the geometric coding result includes the first coding sub-result, the second coding sub-result, the third coding sub-result and the fourth coding sub-result.
- the second parameter includes a first sub-parameter, a second sub-parameter and a third sub-parameter
- the first sub-parameter represents the bit depth of the point cloud block to be encoded in the first direction
- the second sub-parameter represents the bit depth of the point cloud block to be encoded in the second direction
- the third sub-parameter represents the bit depth of the point cloud block to be encoded in the third direction
- the first parameter includes a fourth sub-parameter, a fifth sub-parameter and a sixth sub-parameter, the fourth sub-parameter indicates the number of bits required to encode the first sub-parameter, the fifth sub-parameter indicates the number of bits required to encode the second sub-parameter, and the sixth sub-parameter indicates the number of bits required to encode the third sub-parameter;
- the processor 610 is configured to:
- the prediction residual in the third direction is entropy encoded based on the sixth sub-parameter.
- the processor 610 is configured to:
- a geometry code stream is sent to a decoding end, where the geometry code stream includes the geometry encoding result and the first parameter.
- the processor 610 is configured to:
- a first parameter is determined based on the point cloud block to be encoded.
- the processor 610 is used for:
- a geometric reconstruction process is performed based on the prediction residual to obtain geometric information.
- the geometric coding result includes a first coding sub-result, a second coding sub-result, a third coding sub-result and a fourth coding sub-result;
- the processor 610 is specifically configured to:
- the prediction residual is determined based on the first value, the second value, and the third value.
- the processor 610 is specifically configured to:
- the first encoding sub-result is decoded using the first parameter as the decoding bit number to obtain a target coding bit number, where the target coding bit number is the coding bit number required to encode the first value, and the first value is obtained by performing a shift operation on the absolute value of the prediction residual.
- the second parameter includes a first sub-parameter, a second sub-parameter and a third sub-parameter
- the first sub-parameter represents the bit depth of the point cloud block to be decoded in the first direction
- the second sub-parameter represents the bit depth of the point cloud block to be decoded in the second direction
- the third sub-parameter represents the bit depth of the point cloud block to be decoded in the third direction
- the first parameter includes a fourth sub-parameter, a fifth sub-parameter and a sixth sub-parameter, the fourth sub-parameter indicates the number of bits required to encode the first sub-parameter, the fifth sub-parameter indicates the number of bits required to encode the second sub-parameter, and the sixth sub-parameter indicates the number of bits required to encode the third sub-parameter;
- the processor 610 is specifically configured to:
- entropy decoding is performed on the geometric encoding result of the point cloud block to be decoded in the third direction.
- the processor 610 is specifically configured to:
- a geometric code stream sent by a decoding end is received, where the geometric code stream includes a geometric encoding result and a first parameter corresponding to a point cloud block to be decoded.
- the processor 610 is specifically configured to:
- a first parameter corresponding to the point cloud block to be decoded is obtained.
- the terminal of the embodiment of the present application also includes: instructions or programs stored in the memory 609 and executable on the processor 610.
- the processor 610 calls the instructions or programs in the memory 609 to execute the methods executed by the modules shown in Figure 6 or Figure 7 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
- An embodiment of the present application also provides a readable storage medium, on which a program or instruction is stored.
- a program or instruction is stored.
- the various processes of the above-mentioned point cloud encoding processing method embodiment are implemented, or when the program or instruction is executed by a processor, the various processes of the above-mentioned point cloud decoding processing method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
- the processor is the processor in the terminal described in the above embodiment.
- the readable storage medium includes a computer readable storage medium, such as a computer read-only memory ROM, a random access memory RAM, a magnetic disk or an optical disk.
- the readable storage medium may be a non-transient readable storage medium.
- An embodiment of the present application further provides a chip, which includes a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the various processes of the above-mentioned point cloud encoding processing method embodiment, or to implement the various processes of the above-mentioned point cloud decoding processing method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
- the chip mentioned in the embodiments of the present application can also be called a system-level chip, a system chip, a chip system or a system-on-chip chip, etc.
- the embodiments of the present application further provide a computer program/program product, which is stored in a storage medium.
- the computer program/program product is executed by at least one processor to implement the various processes of the above-mentioned point cloud encoding processing method or point cloud decoding processing method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
- An embodiment of the present application also provides a coding and decoding system, including: an encoding end device and a decoding end device, wherein the encoding end device can be used to execute the steps of the point cloud encoding processing method as described above, and the decoding end device can be used to execute the steps of the point cloud decoding processing method as described above.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种点云编码处理方法、点云解码处理方法及相关设备,属于计算机技术领域,本申请实施例的点云编码处理方法包括:基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
Description
相关申请的交叉引用
本申请主张在2023年03月14日在中国提交的中国专利申请No.202310243014.5的优先权,其全部内容通过引用包含于此。
本申请属于计算机技术领域,具体涉及一种点云编码处理方法、点云解码处理方法及相关设备。
点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数量相当大,而为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩处理。点云数据通常由描述位置的几何信息如三维坐标(x,y,z)以及该位置的属性信息如颜色(红(Red,R),绿(Green,G),蓝(Blue,B))或者反射率等构成。在点云编码压缩过程中对几何信息及属性信息的编码是分开进行的。
目前,在采用预测树编码技术对点云的几何信息进行编码的过程中,基于预先设置的固定的编码参数对预测残差进行编码,存在编码冗余,使得编码效率较低。
发明内容
本申请实施例提供一种点云编码处理方法、点云解码处理方法及相关设备,能够解决编码效率较低的问题。
第一方面,提供了一种点云编码处理方法,由编码端执行,包括:
基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;
构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;
基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
第二方面,提供了一种点云解码处理方法,由解码端执行,包括:
获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;
基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;
基于所述预测残差进行几何重建处理,得到几何信息。
第三方面,提供了一种点云编码处理装置,包括:
第一确定模块,用于基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;
第二确定模块,用于构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;
编码模块,用于基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
第四方面,提供了一种点云解码处理装置,包括:
获取模块,用于获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;
解码模块,用于基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;
重建模块,用于基于所述预测残差进行几何重建处理,得到几何信息。
第五方面,提供了一种终端,该终端包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤,或实现如第二方面所述的方法的步骤。
第六方面,提供了一种终端,包括处理器及通信接口,其中,所述处理器用于:基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
第七方面,提供了一种终端,包括处理器及通信接口,其中,所述处理器用于:获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;基于所述预测残差进行几何重建处理,得到几何信息。
第八方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。
第九方面,提供了一种编解码系统,包括:编码端设备及解码端设备,所述编码端设备可用于执行如第一方面所述的方法的步骤,所述解码端设备可用于执行如第二方面所述的方法的步骤。
第十方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法,或实现如第
二方面所述的方法。
第十一方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。
在本申请实施例中,基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;构建所述待编码点云块对应的预测树,并确定所述预测树中每个节点的预测残差;基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。这样,在采用预测树编码技术对点云的几何信息进行编码的过程中,通过待编码点云块的大小自适应确定第一参数,并基于第一参数对所述预测残差进行熵编码,能够减少编码冗余,从而提高编码效率。
图1是相关技术中的一种AVS编码器框架示意图;
图2是相关技术中的一种AVS解码器框架示意图;
图3是相关技术中的一种预测树的示意图;
图4是本申请实施例提供的一种点云编码处理方法的流程图;
图5是本申请实施例提供的一种点云解码处理方法的流程图;
图6是本申请实施例提供的一种点云编码处理装置的结构示意图;
图7是本申请实施例提供的一种点云解码处理装置的结构示意图;
图8是本申请实施例提供的一种通信设备的结构示意图;
图9是本申请实施例提供的一种终端的结构示意图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,本申请中的“或”表示所连接对象的至少其中之一。例如“A或B”涵盖三种方案,即,方案一:包括A且不包括B;方案二:包括B且不包括A;方案三:既包括A又包括B。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请的术语“指示”既可以是一个直接的指示(或者说显式的指示),也可以是一个间接的指示(或者说隐含的指示)。其中,直接的指示可以理解为,发送方在发送的指示中明确告知了接收方具体的信息、需要执行的操作或请求结果等内容;间接的指示可以理解为,接收方根据发送方发送的指示确定对应的信息,或者进行判断并根据判断结果确定需要执行的操作或请求结果等。
本申请实施例中的点云编解码处理方法对应的编解码端可以为终端,该终端也可以称作终端设备或者用户终端(User Equipment,UE),终端可以是手机、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)或称为笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、掌上电脑、上网本、超级移动个人计算机(ultra-mobile personal computer,UMPC)、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴式设备(Wearable Device)或车载设备(Pedestrian User Equipment,VUE)、行人终端(Pedestrian User Equipment,PUE)等终端侧设备,可穿戴式设备包括:智能手表、手环、耳机、眼镜等。需要说明的是,在本申请实施例并不限定终端的具体类型。
为了方便理解,以下对本申请实施例涉及的一些内容进行说明:
如图1和图2所示,在点云音视频编码标准(Audio Video coding Standard,AVS)编解码器框架中,点云的几何信息和每点所对应的属性信息是分开编码的。点云的几何信息的编码过程如下:对几何信息进行坐标转换,使点云全都包含在一个包围盒(bounding box)中。再对点云的几何信息进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程属于预处理过程。将包围盒所在的三维空间划分成若干大小的不重叠的编码宏块,每个宏块作为基本的编码单元。在每个宏块,可以根据其特性采用不同的几何编码方法。
相关技术中,几何编码方式有两种,一种是八叉树编码,适用于稠密点云;一种是预测树编码,适用于稀疏点云。若当前宏块选择预测树编码,则首先对该部分点云进行莫顿排序(该步骤非必要),对排完序后的点云进行预测树构建,预测树采用单链结构,如图3所示,除了唯一的叶节点外,每个树节点只有一个子节点。除了根节点由缺省值预测外,其他节点由其父节点提供几何预测值。其中构建预测树的方法如下:用待编码的点构建辅助的KD树(K-dimensional tree),为了降低构建的复杂度,编码端可以控制树中的节点数目;首先选取根节点,然后在KD树中搜索与根节点最近的点作为根节点的唯一子节点,同时在KD树中去除该子节点;再按同样的方法在KD树中搜索该子节点最近邻点作为其子节点;以此类推,完成整个预测树的构造,构建的预测树为单链树。其中,KD树是每个节点都为k维点的二叉树。由于预测树中的每个节点只有唯一的子节点以及只有唯一的预测模式,因此,只需在码流中对每个点的几何位置残差进行熵编码,就能完整的表达整个预测树,至此几何编码结束。几何编码完成后,对几何信息进行重建,得到几何重建点
云,用于属性编码过程中的重着色。
属性编码主要针对的是颜色和反射率信息。首先根据参数判断是否进行颜色空间转换,若进行颜色空间转换,则将颜色信息从RGB(红(Red)、绿(Green)、蓝(Blue))颜色空间转换到YUV(Y表示明亮度(Luminance或Luma),而U和V表示色度(Chrominance或、Chroma))颜色空间。然后,利用原始点云对几何重建点云进行重着色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码中,通过莫顿码对点云进行排序后,利用几何空间关系搜索待预测点的最近邻,并利用所找到邻居的重建属性值对待预测点进行预测得到预测属性值,接着将真实属性值和预测属性值进行差分得到预测残差,最后对预测残差进行量化并编码,生成二进制码流。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的点云编码处理方法、点云解码处理方法及相关设备进行详细地说明。
参见图4,图4是本申请实施例提供的一种点云编码处理方法的流程图,可以应用于编码端,如图4所示,点云编码处理方法包括以下步骤:
步骤101、基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小。
其中,待编码点云块可以是编码宏块,编码宏块为基本的编码单元。可以将点云划分至包围盒(bounding box)中,将包围盒所在的三维空间划分成若干不重叠的编码宏块,将该划分的编码宏块作为待编码点云块。示例地,基于点云的几何信息确定待编码点云块的过程可以如下:对几何信息进行坐标转换,使点云全都包含在一个包围盒中,将包围盒所在的三维空间划分成若干大小的不重叠的编码宏块,该划分的编码宏块作为待编码点云块。
另外,第二参数可以表征待编码点云块的边长的比特深度。待编码点云块的边长的比特深度可以是指表示待编码点云块的边长所需的比特位数。示例地,第二参数可以表征待编码点云块的最长边长的比特深度;或者,第二参数可以包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待编码点云块在第一方向上的比特深度,所述第二子参数表示所述待编码点云块在第二方向上的比特深度,所述第三子参数表示所述待编码点云块在第三方向上的比特深度。示例地,待编码点云块为长方体,该长方体在长度方向上的比特深度为32,在宽度方向上的比特深度为15,在高度方向上的比特深度为8。第二参数可以为32,或者第二参数可以包括32,15及8。
需要说明的是,第一参数可以是编码第二参数所需的最小比特位数,或者可以描述为表示第二参数所需的比特位数。以第二参数为32为例,编码第二参数所需的比特位数为6位,第一参数为6;以第二参数包括32,15及8为例,编码第二参数所需的比特位数分别为6位,4位及4位,第一参数包括6,4及4。
步骤102、构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残
差。
其中,可以基于待编码点云块中的点构建KD树,选取根节点,在构建的KD树中搜索与根节点最近的点作为根节点的唯一子节点,同时在KD树中去除该子节点;再按同样的方法在KD树中搜索该子节点最近邻点作为其子节点;以此类推,实现单链树的构建,该构建的单链树为所述待编码点云块对应的预测树。
另外,确定所述预测树中节点的预测残差,可以是,确定所述预测树中每个节点的预测残差;基于所述第一参数对所述预测残差进行熵编码,可以是,基于所述第一参数分别对每个节点的预测残差进行熵编码,从而得到每个节点的几何编码结果。在计算节点的预测残差时,除根节点外,预测树中的每个节点的预测残差的计算方式相同,示例地,某个节点的预测残差为该节点的几何位置坐标与该节点的前一节点的几何位置坐标的差值。根节点的预测残差可以为根节点的几何位置坐标与第一预设值的差值,该第一预设值可以为0,或者还可以为其他预先设置的值。
步骤103、基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
其中,基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果,可以包括,对所述预测残差的绝对值进行移位运算处理,得到第一值;确定编码所述第一值所需的目标编码位数;以所述第一参数作为编码位数对所述目标编码位数进行编码,得到第一编码子结果;基于所述目标编码位数对所述第一值进行编码,得到第二编码子结果;对所述预测残差的绝对值进行取余运算处理,得到第二值;对所述第二值进行编码,得到第三编码子结果;对第三值进行编码,得到第四编码子结果,所述第三值用于指示所述预测残差是否大于零;其中,所述几何编码结果包括所述第一编码子结果、所述第二编码子结果、所述第三编码子结果及所述第四编码子结果。
在本申请实施例中,基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;构建所述待编码点云块对应的预测树,并确定所述预测树中每个节点的预测残差;基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。这样,在采用预测树编码技术对点云的几何信息进行编码的过程中,通过待编码点云块的大小自适应确定第一参数,并基于第一参数对所述预测残差进行熵编码,能够减少编码冗余,从而提高编码效率。
可选地,所述基于所述第一参数对所述预测残差进行熵编码,包括:
对所述预测残差的绝对值进行移位运算处理,得到第一值;
确定编码所述第一值所需的目标编码位数;
以所述第一参数作为编码位数对所述目标编码位数进行编码,得到第一编码子结果;
其中,所述几何编码结果包括所述第一编码子结果。
其中,对所述预测残差的绝对值进行移位运算处理,得到第一值,可以是,将预测残差的绝对值对应的待移位值进行右移运算,得到第一值。该待移位值可以为预测残差的绝
对值,或者可以为预测残差的绝对值与第二预设值的差值。第二预设值可以为1,或者还可以为其他预先设置的值。示例地,第一值ResHalf为:ResHalf=absRes-1>>1,absRes为预测残差的绝对值。
另外,编码位数可以理解为编码比特位数。目标编码位数可以为编码所述第一值所需的最小编码比特位数,示例地,第一值为232,则目标编码位数为32。以第一参数为6为例,第一编码子结果为:100000。
需要说明的是,编码所述第一值所需的编码位数小于或等于编码预测残差的绝对值所需的编码位数,编码预测残差的绝对值所需的编码位数小于或等于编码待编码点云块大小所需的比特位数,第二参数可以表征待编码点云块的边长的比特深度,因此,编码所述第一值所需的编码位数(即目标编码位数)小于或等于第二参数,从而编码目标编码位数所需的比特位数小于或等于编码第二参数所需的比特位数(即第一参数)。以所述第一参数作为编码位数对所述目标编码位数进行编码,可以满足对目标编码位数的编码需求,且可以较大程度地减少编码冗余,提高编码效率。
该实施方式中,对所述预测残差的绝对值进行移位运算处理,得到第一值;确定编码所述第一值所需的目标编码位数;以所述第一参数作为编码位数对所述目标编码位数进行编码,得到第一编码子结果;其中,所述几何编码结果包括所述第一编码子结果。这样,通过由待编码点云块的大小自适应确定的第一参数作为编码位数对所述目标编码位数进行编码,相对于采用预先设置的固定的编码参数对所述目标编码位数进行编码,能够减少编码冗余,提高编码效率。
可选地,所述基于所述第一参数对所述预测残差进行熵编码,还包括:
基于所述目标编码位数对所述第一值进行编码,得到第二编码子结果;
对所述预测残差的绝对值进行取余运算处理,得到第二值;
对所述第二值进行编码,得到第三编码子结果;
对第三值进行编码,得到第四编码子结果,所述第三值用于指示所述预测残差是否大于零;
其中,所述几何编码结果包括所述第一编码子结果、所述第二编码子结果、所述第三编码子结果及所述第四编码子结果。
其中,对所述预测残差的绝对值进行取余运算处理,得到第二值,可以是,将所述预测残差的绝对值与2进行取余运算,得到第二值。示例地,第二值ResRemainder为:ResRemainder=absRes%2。
另外,第三值用于指示所述预测残差是否大于零,从而可以通过编码第三值对预测残差的正负符号进行编码。
需要说明的是,还可以通过一个标识来指示预测残差是否为0,并将该标识传入解码端。
该实施方式中,基于所述目标编码位数对所述第一值进行编码,得到第二编码子结果;
对所述预测残差的绝对值进行取余运算处理,得到第二值;对所述第二值进行编码,得到第三编码子结果;对第三值进行编码,得到第四编码子结果,所述第三值用于指示所述预测残差是否大于零;其中,所述几何编码结果包括所述第一编码子结果、所述第二编码子结果、所述第三编码子结果及所述第四编码子结果,从而能够实现对所述预测残差的熵编码。
可选地,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待编码点云块在第一方向上的比特深度,所述第二子参数表示所述待编码点云块在第二方向上的比特深度,所述第三子参数表示所述待编码点云块在第三方向上的比特深度;
所述第一参数包括第四子参数、第五子参数及第六子参数,所述第四子参数表示编码所述第一子参数所需的比特位数,所述第五子参数表示编码所述第二子参数所需的比特位数,所述第六子参数表示编码所述第三子参数所需的比特位数;
所述基于所述第一参数对所述预测残差进行熵编码,包括:
基于所述第四子参数对所述第一方向上的预测残差进行熵编码;
基于所述第五子参数对所述第二方向上的预测残差进行熵编码;
基于所述第六子参数对所述第三方向上的预测残差进行熵编码。
其中,第一方向、第二方向和第三方向可以是点云所在的三维空间的三个坐标轴的方向;或者可以是待编码点云块的长度方向,宽度方向及高度方向。以第一方向、第二方向和第三方向为点云所在的三维空间的三个坐标轴(即X、Y及Z轴)的方向为例,所述待编码点云块在第一方向上的比特深度可以是指待编码点云块在第一方向上的边长的比特深度,也就是,表示待编码点云块在第一方向上的边长所需的比特位数;所述待编码点云块在第二方向上的比特深度可以是指待编码点云块在第二方向上的边长的比特深度,也就是,表示待编码点云块在第二方向上的边长所需的比特位数;所述待编码点云块在第三方向上的比特深度可以是指待编码点云块在第三方向上的边长的比特深度,也就是,表示待编码点云块在第三方向上的边长所需的比特位数。
另外,节点的预测残差可以包括第一方向上的预测残差,第二方向上的预测残差及第三方向上的预测残差。以第一方向为X轴方向,第二方向为Y轴方向,第三方向为Z轴方向为例,节点的预测残差可以包括X轴方向上的预测残差,Y轴方向上的预测残差及Z轴方向上的预测残差。第一子参数表示所述待编码点云块在X轴方向上的比特深度,第二子参数表示所述待编码点云块在Y轴方向上的比特深度,第三子参数表示所述待编码点云块在Z轴方向上的比特深度,从而通过第四子参数、第五子参数和第六子参数能够分别对X轴方向上、Y轴方向上及Z轴方向上的预测残差进行熵编码。
该实施方式中,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一参数包括第四子参数、第五子参数及第六子参数,基于所述第四子参数对所述第一方向上的预测残差进行熵编码;基于所述第五子参数对所述第二方向上的预测残差进行熵编码;
基于所述第六子参数对所述第三方向上的预测残差进行熵编码。这样,能够根据待编码点云块在各个方向上的比特深度分别对待编码点云块的节点的各个方向上的预测残差进行熵编码,从而能够在各个方向上减少编码冗余,提高编码效率。
可选地,所述基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果之后,所述方法还包括:
向解码端发送几何码流,所述几何码流包括所述几何编码结果和所述第一参数。
需要说明的是,第一参数可由编码端传入解码端,也可由解码端通过点云比特深度计算得出而不需要写入码流传到解码端。
该实施方式中,向解码端发送几何码流,所述几何码流包括所述几何编码结果和所述第一参数,从而解码端能够通过几何码流中携带的第一参数对预测残差进行解码。
可选地,所述基于所述待编码点云块确定第一参数,包括:
在所述待编码点云块的最长边长小于或等于阈值的情况下,基于所述待编码点云块确定第一参数。
其中,阈值可以设置为232,或者可以设置为240,或者可以设置为250,等等,本实施例对阈值不进行限定,该阈值可以预先设置。待编码点云块的最长边长小于或等于阈值,可以理解为待编码点云块的最长边长的比特深度存在上限。在待编码点云块的最长边长大于阈值时,可以认为超过所支持编码点云的比特深度上限,此时,可以不对其进行编码。
需要说明的是,相关技术中,AVS编码平台没有规定所支持编码点云的比特深度上限,因此若待编码点云块比特深度大于31,现有预测树编码技术仍使用固定5位去编码ResHalf所需的最小编码比特位数,则可能出现位数不够,导致无法正常编解码。本实施例通过限定待编码点云块的最长边长的比特深度,通过由待编码点云块的大小自适应确定的第一参数作为编码位数对编码ResHalf所需的最小编码比特位数进行编码,能够实现正常编解码。
需要说明的是,本申请实施例涉及AVS编码器框架中的预测树熵编码部分。
相关技术中,AVS编码过程中,对几何信息对应的预测树中节点的预测残差进行编码的过程如下:
对预测树中节点的预测残差值,记为Resi[k],k=0,1,2表示对应的几何位置坐标X,Y,Z;i表示点数,i=0,1,…,N-1,N是待编码点云块中节点的点数。对于相邻两点(Pi-1与Pi)之间的预测残差为:
对于Resi[k],其绝对值定义为absResi[k]。
预测残差的绝对值absResi[k]的编码方法如下:
(1)判定当前absResi[k]是否为零,若为零,则采用一个标志位进行指示;
(2)若absResi[k]非零,则计算:
ResHalfi[k]=absResi[k]-1>>1,ResRemainderi[k]=absResi[k]%2;
ResHalfi[k]=absResi[k]-1>>1,ResRemainderi[k]=absResi[k]%2;
其中,“>>”为右移运算符号,“%”为取余运算符号。
(3)计算编码ResHalfi所需的最小编码比特位数Bi[k];
(4)设计上下文模型对Bi[k](b4b3b2b1b0)进行编码,采用固定5位比特编码Bi[k],设计部分相关的上下文模型ctxNumBits[ctxIdx]对Bi[k]的比特位数进行编码:
ctxIdx=0,编码b0;
ctxIdx=1+b0,编码b1;
ctxIdx=3+b1,编码b2;
ctxIdx=5+b2+b1*2,编码b3;
ctxIdx=9,编码b4;
根据比特位数Bi[k],逐位编码ResHalfi[k];再编码ResRemainderi[k]。
对预测残差Resi[k]的符号进行编码。
需要说明的是,相关技术中,预测树编码技术在对残差绝对值进行编码时,采用固定5位比特去编码ResHalfi所需的最小编码比特位数Bi[k],对于较小的待编码点云块来说,编码Bi[k]所需比特位数是小于5比特的,若采用固定5位去编码,则会存在比特的浪费,造成编码冗余,并且在上下文模型的使用上也存在冗余占用。
在本申请实施例中,在基于预测树编解码时,通过当前点云块大小自适应计算出编码ResHalfi所需的编码比特位数Bi[k]的比特深度,能够提高编码效率,并且能够减少上下文模型的冗余占用。
作为一个具体的实施例,由编码端执行的点云编码处理方法可以包括如下过程:
步骤(11):首先对当前待编码点云块的边长大小(或比特位深)规定一个上限,并用参数MaxLCUDimLog2表示,再基于当前待编码点云块大小得到其三个方向的比特深度,计算表示比特位深所需比特数,用参数Maxnumbits[k]表示,k=0,1,2表示对应的几何位置X,Y,Z维度。将Maxnumbits[k]参数作为标识传入解码端。
步骤(12):对当前待编码点云块中的点进行莫顿排序(该步骤非必要),对排完序后的点云进行预测树构建,构建完成后对每个点进行预测并得到其预测残差,记为Resi[k],k=0,1,2表示对应的几何位置坐标X,Y,Z;i表示点数,i=0,1,…,N-1,N是待编码点云块的点数。对于相邻两点(Pi-1与Pi)之间的预测残差为:
其中,Pi为i点的几何位置坐标,Pi-1为i-1点的几何位置坐标。
对于Resi[k],其绝对值定义为absResi[k]。
步骤(13):预测残差的绝对值absResi[k]的编码方法如下:
(a)判定当前absResi[k]是否为零,若为零,则采用一个标志位进行指示;
(b)若absResi[k]非零,则计算:
ResHalfi[k]=absResi[k]>>1,ResRemainderi[k]=absResi[k]%2;
ResHalfi[k]=absResi[k]>>1,ResRemainderi[k]=absResi[k]%2;
其中,“>>”为右移运算符号,“%”为取余运算符号。
(c)计算编码ResHalfi所需的最小编码比特位数Bi[k];
(d)设计上下文模型对Bi[k]进行编码,其所需比特位数为Maxnumbits[k],设计部分相关的上下文模型ctxNumBits[ctxIdx]对Bi[k]各比特位b0b1...bn进行编码:
ctxIdx=0,编码b0;
ctxIdx=1+b0,编码b1;
ctxIdx=3+b1,编码b2;
ctxIdx=5+b2+b1*2,编码b3;
ctxIdx=9,编码b4,b5,...,bn;
其中,n-1为Bi[k]的比特位个数。
根据比特位数Bi,逐位编码ResHalfi[k];再编码ResRemainderi[k];
步骤(14):对预测残差Resi[k]的符号进行编码。
不断重复上述步骤(11)至(14),对每个点的几何位置的预测残差进行熵编码,直至最后一个点编码完成,此时几何编码结束。
参见图5,图5是本申请实施例提供的一种点云解码处理方法的流程图,可以应用于解码端,如图5所示,点云解码处理方法包括以下步骤:
步骤201、获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;
步骤202、基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;
步骤203、基于所述预测残差进行几何重建处理,得到几何信息。
可选地,所述几何编码结果包括第一编码子结果、第二编码子结果、第三编码子结果及第四编码子结果;
所述基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差,包括:
基于所述第一参数对所述第一编码子结果进行解码,得到目标编码位数;
基于所述目标编码位数对所述第二编码子结果进行解码,得到第一值;
对所述第三编码子结果进行解码,得到第二值,所述第二值为预测残差的绝对值进行取余运算处理得到的值;
对所述第四编码子结果进行解码,得到第三值,所述第三值用于指示所述预测残差是否大于零;
基于所述第一值、所述第二值及所述第三值确定所述预测残差。
可选地,所述基于所述第一参数对所述第一编码子结果进行解码,得到目标编码位数,包括:
以所述第一参数作为解码位数对所述第一编码子结果进行解码,得到目标编码位数,所述目标编码位数为编码所述第一值所需的编码位数,所述第一值为所述预测残差的绝对值进行移位运算处理获得。
可选地,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待解码点云块在第一方向上的比特深度,所述第二子参数表示所述待解码点云块在第二方向上的比特深度,所述第三子参数表示所述待解码点云块在第三方向上的比特深度;
所述第一参数包括第四子参数、第五子参数及第六子参数,所述第四子参数表示编码所述第一子参数所需的比特位数,所述第五子参数表示编码所述第二子参数所需的比特位数,所述第六子参数表示编码所述第三子参数所需的比特位数;
所述基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,包括:
基于所述第四子参数对所述待解码点云块在所述第一方向上的几何编码结果进行熵解码;
基于所述第五子参数对所述待解码点云块在所述第二方向上的几何编码结果进行熵解码;
基于所述第六子参数对所述待解码点云块在所述第三方向上的几何编码结果进行熵解码。
可选地,所述获取待解码点云块对应的第一参数,包括:
接收解码端发送的几何码流,所述几何码流包括待解码点云块对应的几何编码结果和第一参数。
可选地,所述获取待解码点云块对应的第一参数,包括:
在待解码点云块的最长边长小于或等于阈值的情况下,获取所述待解码点云块对应的第一参数。
需要说明的是,本实施例作为与图4所示的实施例中对应的解码侧的实施方式,其具体的实施方式可以参见图4所示的实施例的相关说明,为了避免重复说明,本实施例不再赘述,且还可以达到相同有益效果。
作为一个具体的实施例,由解码端执行的点云解码处理方法包括如下过程:
步骤(21):待解码点云块的大小(或比特位深)需在设定的MaxLCUDimLog2参数之内,才能解码。从几何码流中解析得到Maxnumbits[k]参数。
步骤(22):从几何码流中对预测残差信息进行解析,方式如下:
(a)解析当前预测残差的绝对值absResi[k]是否为零,若为零,则预测残差Resi[k]为0;k=0,1,2表示对应的几何位置坐标X,Y,Z;i表示点数,i=0,1,…,N-1,N是待解码点云块的点数。
(b)若absResi[k]非零,由参数Maxnumbits[k]指示解析出ResHalfi所需的最小编码比特位数Bi[k]:
在解析过程中需使用相关的上下文模型ctxNumBits[ctxIdx]对Bi[k]各比特位b0b1...bn进行解码:
ctxIdx=0,解码b0;
ctxIdx=1+b0,解码b1;
ctxIdx=3+b1,解码b2;
ctxIdx=5+b2+b1*2,解码b3;
ctxIdx=9,解码b4,b5,...,bn;
其中,n-1为Bi[k]的比特位个数。
(c)根据比特位数Bi,逐位解码ResHalfi[k];再解码ResRemainderi[k];
步骤(23):对预测残差Resi[k]的符号进行解码。
不断重复上述步骤(21)至(23),对每个点的几何位置的预测残差进行熵解码和坐标补偿,直至最后一个点解码完成,此时重建出几何信息,解码完成。
本实施例提出了一种基于预测树的熵编解码方法,在基于预测树编解码时,通过当前点云块大小自适应计算出编码ResHalfi所需的编码比特位数Bi[k]的比特深度,能够提高编码效率,并且能够减少上下文模型的冗余占用。
需要说明的是,本申请实施例提供的点云编码处理方法,执行主体可以为点云编码处理装置,或者,该点云编码处理装置中的用于执行点云编码处理的方法的控制模块。本申请实施例中以点云编码处理装置执行点云编码处理的方法为例,说明本申请实施例提供的点云编码处理装置。
请参见图6,图6是本申请实施例提供的一种点云编码处理装置的结构图,如图6所示,点云编码处理装置300包括:
第一确定模块301,用于基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;
第二确定模块302,用于构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;
编码模块303,用于基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
可选地,所述编码模块具体用于:
对所述预测残差的绝对值进行移位运算处理,得到第一值;
确定编码所述第一值所需的目标编码位数;
以所述第一参数作为编码位数对所述目标编码位数进行编码,得到第一编码子结果;
其中,所述几何编码结果包括所述第一编码子结果。
可选地,所述编码模块还用于:
基于所述目标编码位数对所述第一值进行编码,得到第二编码子结果;
对所述预测残差的绝对值进行取余运算处理,得到第二值;
对所述第二值进行编码,得到第三编码子结果;
对第三值进行编码,得到第四编码子结果,所述第三值用于指示所述预测残差是否大
于零;
其中,所述几何编码结果包括所述第一编码子结果、所述第二编码子结果、所述第三编码子结果及所述第四编码子结果。
可选地,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待编码点云块在第一方向上的比特深度,所述第二子参数表示所述待编码点云块在第二方向上的比特深度,所述第三子参数表示所述待编码点云块在第三方向上的比特深度;
所述第一参数包括第四子参数、第五子参数及第六子参数,所述第四子参数表示编码所述第一子参数所需的比特位数,所述第五子参数表示编码所述第二子参数所需的比特位数,所述第六子参数表示编码所述第三子参数所需的比特位数;
所述基于所述第一参数对所述预测残差进行熵编码,包括:
基于所述第四子参数对所述第一方向上的预测残差进行熵编码;
基于所述第五子参数对所述第二方向上的预测残差进行熵编码;
基于所述第六子参数对所述第三方向上的预测残差进行熵编码。
可选地,所述装置还包括:
发送模块,用于向解码端发送几何码流,所述几何码流包括所述几何编码结果和所述第一参数。
可选地,所述第一确定模块具体用于:
在所述待编码点云块的最长边长小于或等于阈值的情况下,基于所述待编码点云块确定第一参数。
本申请实施例中的点云编码处理装置300能够减少编码冗余,从而提高编码效率。
本申请实施例中的点云编码处理装置可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例提供的点云编码处理装置能够实现图4的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例提供的点云解码处理方法,执行主体可以为点云解码处理装置,或者,该点云解码处理装置中的用于执行点云解码处理的方法的控制模块。本申请实施例中以点云解码处理装置执行点云解码处理的方法为例,说明本申请实施例提供的点云解码处理装置。
请参见图7,图7是本申请实施例提供的一种点云解码处理装置的结构图,如图7所示,点云解码处理装置400包括:
获取模块401,用于获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;
解码模块402,用于基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;
重建模块403,用于基于所述预测残差进行几何重建处理,得到几何信息。
可选地,所述几何编码结果包括第一编码子结果、第二编码子结果、第三编码子结果及第四编码子结果;
所述解码模块包括:
第一解码单元,用于基于所述第一参数对所述第一编码子结果进行解码,得到目标编码位数;
第二解码单元,用于基于所述目标编码位数对所述第二编码子结果进行解码,得到第一值;
第三解码单元,用于对所述第三编码子结果进行解码,得到第二值,所述第二值为预测残差的绝对值进行取余运算处理得到的值;
第四解码单元,用于对所述第四编码子结果进行解码,得到第三值,所述第三值用于指示所述预测残差是否大于零;
确定单元,用于基于所述第一值、所述第二值及所述第三值确定所述预测残差。
可选地,所述第一解码单元具体用于:
以所述第一参数作为解码位数对所述第一编码子结果进行解码,得到目标编码位数,所述目标编码位数为编码所述第一值所需的编码位数,所述第一值为所述预测残差的绝对值进行移位运算处理获得。
可选地,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待解码点云块在第一方向上的比特深度,所述第二子参数表示所述待解码点云块在第二方向上的比特深度,所述第三子参数表示所述待解码点云块在第三方向上的比特深度;
所述第一参数包括第四子参数、第五子参数及第六子参数,所述第四子参数表示编码所述第一子参数所需的比特位数,所述第五子参数表示编码所述第二子参数所需的比特位数,所述第六子参数表示编码所述第三子参数所需的比特位数;
所述解码模块具体用于:
基于所述第四子参数对所述待解码点云块在所述第一方向上的几何编码结果进行熵解码;
基于所述第五子参数对所述待解码点云块在所述第二方向上的几何编码结果进行熵解码;
基于所述第六子参数对所述待解码点云块在所述第三方向上的几何编码结果进行熵解码。
可选地,所述获取模块具体用于:
接收解码端发送的几何码流,所述几何码流包括待解码点云块对应的几何编码结果和第一参数。
可选地,所述获取模块具体用于:
在待解码点云块的最长边长小于或等于阈值的情况下,获取所述待解码点云块对应的第一参数。
本申请实施例中的点云解码处理装置可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例提供的点云解码处理装置能够实现图5的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
可选地,如图8所示,本申请实施例还提供一种通信设备500,包括处理器501和存储器502,存储器502上存储有可在所述处理器501上运行的程序或指令,例如,该通信设备500为编码端设备时,该程序或指令被处理器501执行时实现上述点云编码处理方法实施例的各个步骤,且能达到相同的技术效果。该通信设备500为解码端设备时,该程序或指令被处理器501执行时实现上述点云解码处理方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种终端,包括处理器及通信接口,所述处理器用于:基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。或者,所述处理器用于:获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;基于所述预测残差进行几何重建处理,得到几何信息。该终端实施例与上述点云编码处理方法或点云解码处理方法实施例对应,上述点云编码处理方法或点云解码处理方法实施例的各个实施过程和实现方式均可适用于该终端实施例中,且能达到相同的技术效果。具体地,图9为实现本申请实施例的一种终端的硬件结构示意图。
该终端600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609以及处理器610等中的至少部分部件。
本领域技术人员可以理解,终端600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图9中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元604可以包括图形处理器(Graphics Processing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元606可包括显示面板6061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6061。用户输入单元607包括触控面板6071以及其他输入设备6072中的至少一种。触控面板6071,也称为触摸屏。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
本申请实施例中,射频单元601接收来自网络侧设备的下行数据后,可以传输给处理器610进行处理;另外,射频单元601可以向网络侧设备发送上行数据。通常,射频单元601包括但不限于天线、放大器、收发信机、耦合器、低噪声放大器、双工器等。
存储器609可用于存储软件程序或指令以及各种数据。存储器609可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器609可以包括易失性存储器或非易失性存储器,或者,存储器609可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器609包括但不限于这些和任意其它适合类型的存储器。
处理器610可包括一个或多个处理单元;可选的,处理器610集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
其中,在所述终端为编码端的情况下:
所述处理器610用于:
基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;
构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;
基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
可选地,所述处理器610用于:
对所述预测残差的绝对值进行移位运算处理,得到第一值;
确定编码所述第一值所需的目标编码位数;
以所述第一参数作为编码位数对所述目标编码位数进行编码,得到第一编码子结果;
其中,所述几何编码结果包括所述第一编码子结果。
可选地,所述处理器610用于:
基于所述目标编码位数对所述第一值进行编码,得到第二编码子结果;
对所述预测残差的绝对值进行取余运算处理,得到第二值;
对所述第二值进行编码,得到第三编码子结果;
对第三值进行编码,得到第四编码子结果,所述第三值用于指示所述预测残差是否大于零;
其中,所述几何编码结果包括所述第一编码子结果、所述第二编码子结果、所述第三编码子结果及所述第四编码子结果。
可选地,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待编码点云块在第一方向上的比特深度,所述第二子参数表示所述待编码点云块在第二方向上的比特深度,所述第三子参数表示所述待编码点云块在第三方向上的比特深度;
所述第一参数包括第四子参数、第五子参数及第六子参数,所述第四子参数表示编码所述第一子参数所需的比特位数,所述第五子参数表示编码所述第二子参数所需的比特位数,所述第六子参数表示编码所述第三子参数所需的比特位数;
所述处理器610用于:
基于所述第四子参数对所述第一方向上的预测残差进行熵编码;
基于所述第五子参数对所述第二方向上的预测残差进行熵编码;
基于所述第六子参数对所述第三方向上的预测残差进行熵编码。
可选地,所述处理器610用于:
向解码端发送几何码流,所述几何码流包括所述几何编码结果和所述第一参数。
可选地,所述处理器610用于:
在所述待编码点云块的最长边长小于或等于阈值的情况下,基于所述待编码点云块确定第一参数。
其中,在所述终端为解码端的情况下:
所述处理器610用于:
获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;
基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;
基于所述预测残差进行几何重建处理,得到几何信息。
可选地,所述几何编码结果包括第一编码子结果、第二编码子结果、第三编码子结果及第四编码子结果;
所述处理器610具体用于:
基于所述第一参数对所述第一编码子结果进行解码,得到目标编码位数;
基于所述目标编码位数对所述第二编码子结果进行解码,得到第一值;
对所述第三编码子结果进行解码,得到第二值,所述第二值为预测残差的绝对值进行取余运算处理得到的值;
对所述第四编码子结果进行解码,得到第三值,所述第三值用于指示所述预测残差是否大于零;
基于所述第一值、所述第二值及所述第三值确定所述预测残差。
可选地,所述处理器610具体用于:
以所述第一参数作为解码位数对所述第一编码子结果进行解码,得到目标编码位数,所述目标编码位数为编码所述第一值所需的编码位数,所述第一值为所述预测残差的绝对值进行移位运算处理获得。
可选地,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待解码点云块在第一方向上的比特深度,所述第二子参数表示所述待解码点云块在第二方向上的比特深度,所述第三子参数表示所述待解码点云块在第三方向上的比特深度;
所述第一参数包括第四子参数、第五子参数及第六子参数,所述第四子参数表示编码所述第一子参数所需的比特位数,所述第五子参数表示编码所述第二子参数所需的比特位数,所述第六子参数表示编码所述第三子参数所需的比特位数;
所述处理器610具体用于:
基于所述第四子参数对所述待解码点云块在所述第一方向上的几何编码结果进行熵解码;
基于所述第五子参数对所述待解码点云块在所述第二方向上的几何编码结果进行熵解码;
基于所述第六子参数对所述待解码点云块在所述第三方向上的几何编码结果进行熵解码。
可选地,所述处理器610具体用于:
接收解码端发送的几何码流,所述几何码流包括待解码点云块对应的几何编码结果和第一参数。
可选地,所述处理器610具体用于:
在待解码点云块的最长边长小于或等于阈值的情况下,获取所述待解码点云块对应的第一参数。
具体地,本申请实施例的终端还包括:存储在存储器609上并可在处理器610上运行的指令或程序,处理器610调用存储器609中的指令或程序执行图6或图7所示各模块执行的方法,并达到相同的技术效果,为避免重复,故不在此赘述。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述点云编码处理方法实施例的各个过程,或者,该程序或指令被处理器执行时实现上述点云解码处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的终端中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。在一些示例中,可读存储介质可以是非瞬态的可读存储介质。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述点云编码处理方法实施例的各个过程,或者,实现上述点云解码处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
本申请实施例另提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现上述点云编码处理方法或点云解码处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种编解码系统,包括:编码端设备及解码端设备,所述编码端设备可用于执行如上所述的点云编码处理方法的步骤,所述解码端设备可用于执行如上所述的点云解码处理方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于
所描述的次序来执行所描述的方法,并且还可以添加、省去或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助计算机软件产品加必需的通用硬件平台的方式来实现,当然也可以通过硬件。该计算机软件产品存储在存储介质(如ROM、RAM、磁碟、光盘等)中,包括若干指令,用以使得终端或者网络侧设备执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式的实施方式,这些实施方式均属于本申请的保护之内。
Claims (19)
- 一种点云编码处理方法,由编码端执行,包括:基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
- 根据权利要求1所述的方法,其中,所述基于所述第一参数对所述预测残差进行熵编码,包括:对所述预测残差的绝对值进行移位运算处理,得到第一值;确定编码所述第一值所需的目标编码位数;以所述第一参数作为编码位数对所述目标编码位数进行编码,得到第一编码子结果;其中,所述几何编码结果包括所述第一编码子结果。
- 根据权利要求2所述的方法,其中,所述基于所述第一参数对所述预测残差进行熵编码,还包括:基于所述目标编码位数对所述第一值进行编码,得到第二编码子结果;对所述预测残差的绝对值进行取余运算处理,得到第二值;对所述第二值进行编码,得到第三编码子结果;对第三值进行编码,得到第四编码子结果,所述第三值用于指示所述预测残差是否大于零;其中,所述几何编码结果包括所述第一编码子结果、所述第二编码子结果、所述第三编码子结果及所述第四编码子结果。
- 根据权利要求1-3中任一项所述的方法,其中,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待编码点云块在第一方向上的比特深度,所述第二子参数表示所述待编码点云块在第二方向上的比特深度,所述第三子参数表示所述待编码点云块在第三方向上的比特深度;所述第一参数包括第四子参数、第五子参数及第六子参数,所述第四子参数表示编码所述第一子参数所需的比特位数,所述第五子参数表示编码所述第二子参数所需的比特位数,所述第六子参数表示编码所述第三子参数所需的比特位数;所述基于所述第一参数对所述预测残差进行熵编码,包括:基于所述第四子参数对所述第一方向上的预测残差进行熵编码;基于所述第五子参数对所述第二方向上的预测残差进行熵编码;基于所述第六子参数对所述第三方向上的预测残差进行熵编码。
- 根据权利要求1-4中任一项所述的方法,其中,所述基于所述第一参数对所述预测 残差进行熵编码,得到几何编码结果之后,所述方法还包括:向解码端发送几何码流,所述几何码流包括所述几何编码结果和所述第一参数。
- 根据权利要求1-5中任一项所述的方法,其中,所述基于所述待编码点云块确定第一参数,包括:在所述待编码点云块的最长边长小于或等于阈值的情况下,基于所述待编码点云块确定第一参数。
- 一种点云解码处理方法,由解码端执行,包括:获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;基于所述预测残差进行几何重建处理,得到几何信息。
- 根据权利要求7所述的方法,其中,所述几何编码结果包括第一编码子结果、第二编码子结果、第三编码子结果及第四编码子结果;所述基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差,包括:基于所述第一参数对所述第一编码子结果进行解码,得到目标编码位数;基于所述目标编码位数对所述第二编码子结果进行解码,得到第一值;对所述第三编码子结果进行解码,得到第二值,所述第二值为预测残差的绝对值进行取余运算处理得到的值;对所述第四编码子结果进行解码,得到第三值,所述第三值用于指示所述预测残差是否大于零;基于所述第一值、所述第二值及所述第三值确定所述预测残差。
- 根据权利要求8所述的方法,其中,所述基于所述第一参数对所述第一编码子结果进行解码,得到目标编码位数,包括:以所述第一参数作为解码位数对所述第一编码子结果进行解码,得到目标编码位数,所述目标编码位数为编码所述第一值所需的编码位数,所述第一值为所述预测残差的绝对值进行移位运算处理获得。
- 根据权利要求7-9中任一项所述的方法,其中,所述第二参数包括第一子参数、第二子参数及第三子参数,所述第一子参数表示所述待解码点云块在第一方向上的比特深度,所述第二子参数表示所述待解码点云块在第二方向上的比特深度,所述第三子参数表示所述待解码点云块在第三方向上的比特深度;所述第一参数包括第四子参数、第五子参数及第六子参数,所述第四子参数表示编码所述第一子参数所需的比特位数,所述第五子参数表示编码所述第二子参数所需的比特位数,所述第六子参数表示编码所述第三子参数所需的比特位数;所述基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,包括:基于所述第四子参数对所述待解码点云块在所述第一方向上的几何编码结果进行熵解码;基于所述第五子参数对所述待解码点云块在所述第二方向上的几何编码结果进行熵解码;基于所述第六子参数对所述待解码点云块在所述第三方向上的几何编码结果进行熵解码。
- 根据权利要求7-10中任一项所述的方法,其中,所述获取待解码点云块对应的第一参数,包括:接收解码端发送的几何码流,所述几何码流包括待解码点云块对应的几何编码结果和第一参数。
- 根据权利要求7-10中任一项所述的方法,其中,所述获取待解码点云块对应的第一参数,包括:在待解码点云块的最长边长小于或等于阈值的情况下,获取所述待解码点云块对应的第一参数。
- 一种点云编码处理装置,包括:第一确定模块,用于基于点云的几何信息确定待编码点云块,基于所述待编码点云块确定第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待编码点云块的大小;第二确定模块,用于构建所述待编码点云块对应的预测树,并确定所述预测树中节点的预测残差;编码模块,用于基于所述第一参数对所述预测残差进行熵编码,得到几何编码结果。
- 一种点云解码处理装置,包括:获取模块,用于获取待解码点云块对应的第一参数,所述第一参数用于表征编码第二参数所需的比特位数,所述第二参数用于指示所述待解码点云块的大小;解码模块,用于基于所述第一参数对所述待解码点云块对应的几何编码结果进行熵解码,得到预测残差;重建模块,用于基于所述预测残差进行几何重建处理,得到几何信息。
- 一种终端,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6任一项所述的点云编码处理方法的步骤;或者,所述程序或指令被所述处理器执行时实现如权利要求7至12任一项所述的点云解码处理方法的步骤。
- 一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至6任一项所述的点云编码处理方法的步骤,或者,所述程序或指令被处理器执行时实现如权利要求7至12任一项所述的点云解码处理方法的步骤。
- 一种编解码系统,包括:编码端设备及解码端设备,所述编码端设备可用于执行如权利要求1至6任一项所述的点云编码处理方法的步骤,所述解码端设备可用于执行如权利要求7至12任一项所述的点云解码处理方法的步骤。
- 一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如权利要求1至6任一项所述的点云编码处理方法的步骤;或者,实现如权利要求7至12任一项所述的点云解码处理方法的步骤。
- 一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述程序/程序产品被至少一个处理器执行以实现如权利要求1至6任一项所述的点云编码处理方法的步骤;或者,实现如权利要求7至12任一项所述的点云解码处理方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310243014.5A CN118678075A (zh) | 2023-03-14 | 2023-03-14 | 点云编码处理方法、点云解码处理方法及相关设备 |
CN202310243014.5 | 2023-03-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024188138A1 true WO2024188138A1 (zh) | 2024-09-19 |
Family
ID=92725353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2024/080422 WO2024188138A1 (zh) | 2023-03-14 | 2024-03-07 | 点云编码处理方法、点云解码处理方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118678075A (zh) |
WO (1) | WO2024188138A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021201384A1 (ko) * | 2020-04-03 | 2021-10-07 | 엘지전자 주식회사 | 포인트 클라우드 데이터 처리 장치 및 방법 |
CN115335868A (zh) * | 2020-03-27 | 2022-11-11 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 |
CN115474051A (zh) * | 2021-06-11 | 2022-12-13 | 维沃移动通信有限公司 | 点云编码方法、点云解码方法及终端 |
WO2022258009A1 (zh) * | 2021-06-11 | 2022-12-15 | 维沃移动通信有限公司 | 熵编码、解码方法及装置 |
-
2023
- 2023-03-14 CN CN202310243014.5A patent/CN118678075A/zh active Pending
-
2024
- 2024-03-07 WO PCT/CN2024/080422 patent/WO2024188138A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115335868A (zh) * | 2020-03-27 | 2022-11-11 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 |
WO2021201384A1 (ko) * | 2020-04-03 | 2021-10-07 | 엘지전자 주식회사 | 포인트 클라우드 데이터 처리 장치 및 방법 |
CN115474051A (zh) * | 2021-06-11 | 2022-12-13 | 维沃移动通信有限公司 | 点云编码方法、点云解码方法及终端 |
WO2022258009A1 (zh) * | 2021-06-11 | 2022-12-15 | 维沃移动通信有限公司 | 熵编码、解码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN118678075A (zh) | 2024-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115471627A (zh) | 点云的几何信息编码处理方法、解码处理方法及相关设备 | |
US20240112373A1 (en) | Point Cloud Coding Method, Decoding Method, and Related Device | |
WO2022257971A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
EP4354864A1 (en) | Entropy encoding/decoding methods and apparatuses | |
US20240121439A1 (en) | Point cloud attribute information encoding method and apparatus, point cloud attribute information decoding method and apparatus, and related device | |
WO2022257968A1 (zh) | 点云编码方法、点云解码方法及终端 | |
WO2024188138A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
WO2024188139A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
WO2024120431A1 (zh) | 点云编码方法、点云解码方法及相关设备 | |
WO2024217340A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
WO2024217303A1 (zh) | 变换系数编码方法、变换系数解码方法及终端 | |
WO2023098803A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
WO2023098802A1 (zh) | 点云属性编码方法、点云属性解码方法及终端 | |
WO2023025024A1 (zh) | 点云属性编码方法、点云属性解码方法及终端 | |
WO2024217301A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
WO2024217302A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
WO2024120323A1 (zh) | 属性变换编码方法、属性变换解码方法及终端 | |
WO2023098820A1 (zh) | 点云编码、解码方法、装置及通信设备 | |
EP4319167A1 (en) | Point cloud encoding processing method and apparatus, and point cloud decoding processing method and apparatus | |
WO2024120325A1 (zh) | 点云编码方法、点云解码方法及终端 | |
WO2024083039A1 (zh) | 网格编码方法、网格解码方法及相关设备 | |
EP4354876A1 (en) | Encoding control method and apparatus, and decoding control method and apparatus | |
WO2022257978A1 (zh) | 点云编码方法、解码方法及装置 | |
WO2024193487A1 (zh) | 三维网格位移信息编码方法、解码方法、装置及终端 | |
CN118828023A (zh) | 点云编码处理方法、点云解码处理方法及相关设备 |