[go: up one dir, main page]

WO2025218557A1 - Geometry reconstruction method and apparatus, and device - Google Patents

Geometry reconstruction method and apparatus, and device

Info

Publication number
WO2025218557A1
WO2025218557A1 PCT/CN2025/088175 CN2025088175W WO2025218557A1 WO 2025218557 A1 WO2025218557 A1 WO 2025218557A1 CN 2025088175 W CN2025088175 W CN 2025088175W WO 2025218557 A1 WO2025218557 A1 WO 2025218557A1
Authority
WO
WIPO (PCT)
Prior art keywords
vertex
flag
vertices
axis
geometric
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/CN2025/088175
Other languages
French (fr)
Chinese (zh)
Inventor
张伟
姚凯
杨付正
吕卓逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Publication of WO2025218557A1 publication Critical patent/WO2025218557A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/18Methods 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 a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree coding, e.g. quad-tree coding

Definitions

  • G-PCC geometry-based point cloud compression
  • the decoding end reconstructs the point cloud using the processed vertices.
  • a geometric reconstruction method which is performed by an encoding end and includes:
  • the encoding end encodes the first flag to obtain a first code stream, where the first flag is used to indicate original point cloud distribution information in the geometric structure corresponding to the Trisoup node;
  • the encoding end processes the vertices in the geometric structure according to the first flag
  • the encoder reconstructs the point cloud using the processed vertices.
  • a geometric reconstruction device which is applied to a decoding end, and the device includes:
  • a first decoding module is configured to decode the first code stream to obtain a first flag, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node;
  • a first processing module configured to process vertices in the geometric structure according to the first flag
  • the second processing module is used to reconstruct the point cloud using the processed vertices.
  • a geometric reconstruction device which is applied to an encoding end, and the device includes:
  • a first encoding module configured to encode a first flag to obtain a first code stream, wherein the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node;
  • a third processing module configured to process vertices in the geometric structure according to the first flag
  • the fourth processing module is used to reconstruct the point cloud using the processed vertices.
  • an electronic device which terminal includes a processor and a memory, wherein the memory stores programs or instructions that can be run on the processor, and when the program or instructions are 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.
  • an electronic device comprising a processor and a communication interface, wherein the processor is used to: decode a first code stream to obtain a first flag, the first flag being used to indicate the original point cloud distribution information in the geometric structure corresponding to the Trisoup node; process the vertices in the geometric structure according to the first flag; and reconstruct the point cloud using the processed vertices; or, the processor is used to: encode the first flag to obtain a first code stream, the first flag being used to indicate the original point cloud distribution information in the geometric structure corresponding to the Trisoup node; process the vertices in the geometric structure according to the first flag; and reconstruct the point cloud using the processed vertices.
  • an electronic device comprising: a memory configured to store video data, and a processing circuit configured 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 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 second aspect, and the decoding end device can be used to execute the steps of the method described in the first aspect.
  • a chip which includes a processor and a communication interface, the communication interface and the processor are coupled, and the processor is used to run programs or instructions 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 computer program product comprising computer instructions, which, when executed by a processor, implement the steps of the method described in the first aspect, or implement the steps of the method described in the second aspect.
  • FIG1 is a schematic diagram of a coding and decoding system provided in an embodiment of the present application.
  • FIG2 a is a flowchart of encoding performed by an encoder based on an AVS-PCC encoding framework
  • FIG2 b is a flowchart of encoding performed by an encoder based on the MPEG G-PCC encoding framework
  • FIG3 a is a flowchart of decoding performed by a decoder based on the AVS-PCC decoding framework
  • FIG3 b is a flowchart of decoding performed by a decoder based on the MPEG G-PCC decoding framework
  • FIG4 is a schematic diagram of a flow chart of a geometric reconstruction method according to an embodiment of the present application.
  • FIG5 is a schematic diagram of a reconstructed surface according to an embodiment of the present application.
  • FIG6 is a schematic diagram of the geometric structure corresponding to the Trisoup node
  • FIG7 is a schematic flow chart of a decoding process according to an embodiment of the present application.
  • FIG8 is a second flow chart of the geometric reconstruction method according to an embodiment of the present application.
  • FIG9 is a schematic flow chart of the encoding process according to an embodiment of the present application.
  • FIG10 is a schematic diagram of a structure of a geometric reconstruction device according to an embodiment of the present application.
  • FIG11 is a second structural diagram of the geometric reconstruction device according to an embodiment of the present application.
  • FIG12 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
  • FIG13 is a schematic structural diagram of a terminal according to an embodiment of the present application.
  • first, second, etc. in this 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 the same type, and do not limit the number of objects, for example, the first object can be one or more.
  • “or” in this application represents at least one of the connected objects. For example, “A or B” covers three options, namely, Option 1: including A but not including B; Option 2: including B but not including A; Option 3: including both A and B.
  • the character "/" generally indicates that the objects associated before and after are in an "or” relationship.
  • Point Cloud is a set of irregularly distributed discrete points in space that represent the spatial structure and surface properties of a 3D object or scene. Point clouds can be categorized into different types based on different classification criteria. For example, based on how the point cloud is acquired, they can be divided into dense point clouds and sparse point clouds. Based on the temporal nature of the point cloud, they can be divided into static point clouds and dynamic point clouds.
  • Point Cloud Data The geometric coordinate information and attribute information of each point in the point cloud together constitute the point cloud data.
  • the geometric coordinate information can also be called three-dimensional position information.
  • the geometric coordinate information of a point in the point cloud refers to the spatial coordinates (x, y, z) of the point, which can include the coordinate values of the point in the directions of each coordinate axis of the three-dimensional coordinate system, for example, the coordinate value x in the X-axis direction, the coordinate value y in the Y-axis direction, and the coordinate value z in the Z-axis direction.
  • the attribute information of a point in the point cloud can include at least one of the following: color information, material information, laser reflection intensity information (also called reflectivity).
  • each point in the point cloud has the same amount of attribute information.
  • each point in the point cloud can have two kinds of attribute information: color information and laser reflection intensity.
  • each point in the point cloud can have three kinds of attribute information: color information, material information, and laser reflection intensity information.
  • Point cloud coding refers to the process of encoding the geometric coordinate information and attribute information of each point in the point cloud to obtain a compressed code stream.
  • Point cloud coding can include two main processes: geometric coordinate information encoding and attribute information encoding.
  • the point cloud coding framework that can compress point clouds can be the geometry-based Point Cloud Compression (G-PCC) codec framework provided by the Moving Picture Experts Group (MPEG) or the video-based Point Cloud Compression (V-PCC) codec framework, or the AVS-PCC codec framework provided by the Audio Video Standard (AVS).
  • G-PCC geometry-based Point Cloud Compression
  • MPEG Moving Picture Experts Group
  • V-PCC video-based Point Cloud Compression
  • AVS-PCC codec framework provided by the Audio Video Standard (AVS).
  • Point cloud decoding refers to the process of decoding the compressed bitstream obtained from point cloud encoding to reconstruct the point cloud. Specifically, it refers to the process of reconstructing the geometric coordinate information and attribute information of each point in the point cloud based on the geometric bitstream and attribute bitstream in the compressed bitstream.
  • the geometric bitstream is first entropy decoded to obtain the quantized information of each point in the point cloud, and then dequantized to reconstruct the geometric coordinate information of each point in the point cloud.
  • entropy decoding is first performed to obtain the quantized attribute residual information or quantized transform coefficients of each point in the point cloud.
  • the quantized attribute residual information is then dequantized to obtain the reconstructed residual information, and the quantized transform coefficients are dequantized to obtain the reconstructed transform coefficients.
  • the reconstructed transform coefficients are then inversely transformed to obtain the reconstructed residual information.
  • the attribute information of each point in the point cloud can be reconstructed.
  • the reconstructed attribute information of each point in the point cloud is sequentially associated with the reconstructed geometric coordinate information to reconstruct the point cloud.
  • Figure 1 is a schematic diagram of a codec system 10 provided in an embodiment of the present application.
  • the technical solution of the embodiment of the present application involves performing codec (including encoding or decoding) on point cloud data.
  • the codec system 10 includes a source device 100 that provides encoded point cloud data that is decoded and displayed by a destination device 110.
  • the source device 100 provides the point cloud data to the destination device 110 via a communication medium 120.
  • the source device 100 and the destination device 110 may include any one or more of a desktop computer, a notebook (i.e., laptop) computer, a tablet computer, a set-top box, a mobile phone, a wearable device (e.g., a smart watch or a wearable camera), a television, a camera, a display device, an in-vehicle device, a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (MR) device, a digital media player, a video game console, a video conferencing device, a video streaming device, a broadcast receiver device, a broadcast transmitter device, a spacecraft, an aircraft, a robot, a satellite, and the like.
  • VR virtual reality
  • AR augmented reality
  • MR mixed reality
  • the source device 100 includes a data source 101, a memory 102, an encoder 200, and an output interface 104.
  • the destination device 110 includes an input interface 111, a decoder 300, a memory 113, and a display device 114.
  • the source device 100 represents an example of an encoding device, while the destination device 110 represents an example of a decoding device.
  • the source device 100 and the destination device 110 may not include some of the components in Figure 1, or may include other components other than Figure 1.
  • the source device 100 may obtain point cloud data through an external capture device.
  • the destination device 110 may be connected to an external display device interface without including an integrated display device.
  • the memory 102 and the memory 113 may be external memories.
  • FIG1 illustrates source device 100 and destination device 110 as separate devices, in some examples, the two may be integrated into a single device. In such embodiments, the functions corresponding to source device 100 and the functions corresponding to destination device 110 may be implemented using the same hardware or software, or using separate hardware or software, or any combination thereof.
  • source device 100 and destination device 110 can perform unidirectional data transmission or bidirectional data transmission. If bidirectional data transmission is performed, source device 100 and destination device 110 can operate in a substantially symmetrical manner, that is, each of source device 100 and destination device 110 includes an encoder and a decoder.
  • the data source 101 represents the source of point cloud data (i.e., raw, unencoded point cloud data) and provides the point cloud data to the encoder 200, and the encoder 103 encodes the point cloud data.
  • the source device 100 may include a capture device (e.g., a camera device, a sensor device, or a scanning device), an archive of previously captured point cloud data, or a feed interface for receiving point cloud data from a data content provider.
  • the camera device may include an ordinary camera, a stereo camera, and a light field camera, etc.
  • the sensor device may include a laser device, a radar device, etc.
  • the scanning device may include a three-dimensional laser scanning device, etc.
  • Point cloud data can be obtained by capturing a real-world visual scene through a capture device.
  • the data source 101 may generate computer graphics-based data as source data, or combine real-time data, archived data, and computer-generated data.
  • the data source generates point cloud data based on a virtual object (e.g., a virtual three-dimensional object and a virtual three-dimensional scene obtained by three-dimensional modeling).
  • the encoder 200 encodes captured, pre-captured, or computer-generated data.
  • the encoder 200 can rearrange the point cloud data from the order in which it was received (sometimes referred to as "display order") into an encoding order.
  • the encoder 200 can generate a bitstream comprising the encoded point cloud data.
  • the source device 100 can then output the encoded point cloud data to the communication medium 120 via the output interface 104 for receipt or retrieval by, for example, the input interface 111 of the destination device 110.
  • Memory 102 of source device 100 and memory 113 of destination device 110 represent general-purpose memories.
  • memory 102 may store raw data from data source 101
  • memory 113 may store decoded point cloud data from decoder 300.
  • memories 102 and 113 may store software instructions executable by, for example, encoder 200 and decoder 300, respectively.
  • memory 102 and memory 113 are shown separately from encoder 200 and decoder 300 in this example, it should be understood that encoder 200 and decoder 300 may also include internal memory for functionally similar or equivalent purposes. If encoder 200 and decoder 300 are deployed on the same hardware device, memory 102 and memory 113 may be the same memory.
  • the output interface 104 may include any type of medium or device capable of transmitting the encoded point cloud data from the source device 100 to the destination device 110.
  • the output interface 104 may include a transmitter or transceiver, such as an antenna, configured to transmit the encoded point cloud data directly from the source device 100 to the destination device 110 in real time.
  • the encoded point cloud data may be modulated according to a communication standard of a wireless communication protocol and transmitted to the destination device 110.
  • the communication medium 120 may include a router, a switch, a base station, or any other device that can be used to facilitate communication from the source device 100 to the destination device 110.
  • a server (not shown) can receive the encoded point cloud data from the source device 100 and provide it to the destination device 110, for example, by transmitting it to the destination device 110 via a network.
  • the server may include, for example, a web server (for a website), a server configured to provide file transfer protocol services (such as File Transfer Protocol (FTP) or File Delivery Over Unidirectional Transport (FLUTE) protocol), a content delivery network (CDN) device, a Hypertext Transfer Protocol (HTTP) server, a Multimedia Broadcast Multicast Services (MBMS) or an evolved Multimedia Broadcast Multicast Service (eMBMS) server, or a network-attached storage (NAS) device, etc.
  • the server can implement one or more HTTP streaming protocols, such as MPEG Media Transport (MMT) protocol, Dynamic Adaptive Streaming over HTTP (DASH) protocol, HTTP Live Streaming (HLS) protocol or Real Time Streaming Protocol (RTSP).
  • MMT MPEG Media Transport
  • DASH Dynamic Adaptive Streaming over HTTP
  • HLS HTTP Live Streaming
  • RTSP Real Time Streaming Protocol
  • the destination device 110 can access the encoded point cloud data from the server, for example, via a wireless channel (e.g., a Wi-Fi connection) or a wired connection (e.g., a digital subscriber line (DSL), a cable modem, etc.) for accessing the encoded point cloud data stored on the server.
  • a wireless channel e.g., a Wi-Fi connection
  • a wired connection e.g., a digital subscriber line (DSL), a cable modem, etc.
  • the output interface 104 and the input interface 111 may represent a wireless transmitter/receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to the IEEE 802.11 standard or the IEEE 802.15 standard (e.g., ZigBeeTM), the Bluetooth standard, or other physical components.
  • the output interface 104 and the input interface 111 may be configured to transmit data, such as encoded point cloud data, according to WIFI, Ethernet, a cellular network (such as 4th Generation (4G), Long Term Evolution (LTE), Advanced LTE, 5th Generation (5G), 6th Generation (6G)), etc.).
  • the technology provided in the embodiments of the present application can be applied to support one or more application scenarios such as: machine perception of point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, emergency rescue robots, etc.; human eye perception of point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive communication, and three-dimensional immersive interaction.
  • machine perception of point cloud which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, emergency rescue robots, etc.
  • human eye perception of point cloud which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive communication, and three-dimensional immersive interaction.
  • Input interface 111 of destination device 110 receives an encoded bitstream from communication medium 120.
  • the encoded bitstream may include high-level syntax elements and encoded data units (e.g., sequences, groups of pictures, pictures, slices, blocks, etc.), wherein the high-level syntax elements are used to decode the encoded data units to obtain decoded point cloud data.
  • Display device 114 displays the decoded point cloud data to a user.
  • Display device 114 may include a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or other types of display devices.
  • destination device 110 may not have display device 114. For example, if the decoded point cloud data is used to determine the position of a physical object, display device 114 may be replaced by a processor.
  • the encoder 200 and the decoder 300 may be implemented as one or more of a variety of processing circuits, which may include a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), discrete logic, hardware, or any combination thereof.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • the device may store instructions for the software in an appropriate non-transitory computer-readable storage medium and use one or more processors to execute the instructions in hardware to perform the technology provided in the embodiments of the present application.
  • Figure 2a shows a coding flow chart executed by an encoder based on the AVS-PCC coding framework
  • Figure 2b shows a coding flow chart executed by an encoder based on the MPEG G-PCC coding framework.
  • the above encoders may be encoder 200 shown in Figure 1. Both of these coding frameworks can be roughly divided into a geometric coordinate information encoding process and an attribute information encoding process.
  • the geometric coordinate information of each point in the point cloud is encoded to obtain a geometric bitstream; in the attribute information encoding process, the attribute information of each point in the point cloud is encoded to obtain an attribute bitstream; the geometric bitstream and the attribute bitstream together constitute the compressed bitstream of the point cloud.
  • the encoding process performed by the encoder 200 is as follows:
  • Pre-processing This may include coordinate transformation and voxelization. Pre-processing converts point cloud data in three-dimensional space into integer form through scaling and translation operations, and moves its minimum geometric position to the coordinate origin. In some examples, encoder 200 may not perform pre-processing.
  • Geometric coding For the AVS-PCC coding framework, geometric coding includes two modes, namely, geometric coding based on multi-tree (Octree) and geometric coding based on prediction tree.
  • geometric coding For the G-PCC coding framework, geometric coding includes three modes, namely, geometric coding based on multi-tree, geometric coding based on trisoup, and prediction coding based on prediction tree. Among them:
  • Multitree-based geometric coding such as octree-based geometric coding:
  • An octree is a tree-like data structure that evenly divides a predefined bounding box in three-dimensional space, with each node having eight children. By indicating whether each child node in the octree is occupied using "1" or "0", occupancy codes are generated as the code stream of point cloud geometric information.
  • Geometric coding based on prediction tree A prediction strategy is used to generate a prediction tree, and each node is traversed from the root node of the prediction tree, and the residual coordinate value corresponding to each traversed node is encoded.
  • Triangle-based geometric encoding Divide the point cloud into blocks of a certain size and locate the intersection points (called vertices) of the point cloud surface at the edges of the blocks. The geometric information is compressed by encoding whether each edge on the block has an intersection and the location of the intersection point.
  • Geometry Entropy Encoding Statistical compression encoding is performed on the occupancy code information of the multi-branch tree, the prediction residual information of the prediction tree, and the vertex information of the triangle representation, and the final output is a binary (0 or 1) compressed code stream.
  • Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal.
  • a commonly used statistical coding method is context-based binary arithmetic coding (CABAC).
  • Geometric reconstruction Decode and reconstruct the geometric information after geometric encoding.
  • the encoding process performed by the encoder 200 is as follows:
  • Color transformation Apply a transformation to transform the color information of an attribute to a different domain.
  • the color information can be transformed from the RGB color space to the YCbCr color space.
  • Attribute Recoloring In lossy encoding, after encoding the geometric coordinates, the encoder needs to decode and reconstruct the geometry, restoring the geometry of each point in the point cloud. The attribute information of one or more neighboring points in the original point cloud is searched for and used as the attribute information for the reconstructed point.
  • encoder 200 may not perform color conversion or attribute recoloring.
  • attribute information processing can include three modes, namely prediction coding, transform coding, and prediction and transform coding. These three coding modes can be used under different conditions.
  • Predictive coding involves determining neighboring points of the point to be coded from among the coded points based on information such as distance or spatial relationships, and then calculating predicted attribute information for the point to be coded based on the attribute information of the predicted points, based on a set criterion. The difference between the actual attribute information of the point to be coded and the predicted attribute information is calculated as the attribute residual information, which is then quantized, transformed (optionally), and entropy coded.
  • Transform coding refers to the use of transformation methods such as Discrete Cosine Transform (DCT) and Haar Transform (Haar) to group and transform attribute information and quantize the transform coefficients; through inverse quantization and inverse transformation, attribute reconstruction information is obtained; the difference between the real attribute information and the attribute reconstruction information is calculated to obtain attribute residual information and quantize it; and the quantized transform coefficients and attribute residuals are entropy coded.
  • DCT Discrete Cosine Transform
  • Haar Haar Transform
  • Predictive transform coding refers to using the attribute residual information obtained by prediction to perform transformation, quantize the transform coefficients, and perform entropy coding.
  • attribute information processing can include three modes, namely Prediction Transform coding, Lifting Transform coding, and Region Adaptive Hierarchical Transform (RAHT) coding. These three coding modes can be used under different conditions.
  • Prediction Transform coding namely Prediction Transform coding, Lifting Transform coding, and Region Adaptive Hierarchical Transform (RAHT) coding.
  • RAHT Region Adaptive Hierarchical Transform
  • Predictive transform coding involves dividing the point cloud into multiple levels of detail (LoDs) by selecting subsets of points based on distance, achieving a multi-level point cloud representation from coarse to fine quality. Adjacent layers can be predicted from the bottom up, where neighboring points in the coarse layer predict the attributes of points introduced in the fine layer, obtaining the corresponding attribute residual information. The points in the lowest layer are encoded as reference information.
  • LoDs levels of detail
  • Lifting transform coding refers to introducing a weight update strategy for neighborhood points based on the prediction of adjacent layers of LoD, ultimately obtaining the predicted attribute information of each point and the corresponding attribute residual information.
  • Hierarchical region adaptive transform coding means that the attribute information is transformed into a transform domain through RAHT transformation, which is called transform coefficient.
  • Entropy Coding Run-length coding and arithmetic coding are typically used to achieve final compression of quantized attribute residual information and/or transform coefficients. The corresponding coding mode, quantization parameters, and other information are also encoded using an entropy encoder.
  • FIG3a shows a decoding flowchart performed by a decoder based on the AVS-PCC decoding framework
  • FIG3b shows a decoding flowchart performed by a decoder based on the MPEG G-PCC decoding framework.
  • the decoder may be decoder 300 shown in FIG1 .
  • decoder 300 After receiving the compressed code stream (i.e., the attribute bit stream and the geometry bit stream) transmitted by encoder 200, decoder 300 decodes the geometry bit stream to reconstruct the geometric coordinate information of each point in the point cloud, and decodes the attribute bit stream to reconstruct the attribute information of each point in the point cloud.
  • the decoding process performed by the decoder 300 is as follows:
  • Entropy Decoding Entropy decoding is performed on the geometry bit stream and attribute bit stream respectively to obtain the geometry syntax elements and attribute syntax elements.
  • Geometric decoding For the AVS-PCC coding framework, geometric decoding includes two modes: octree-based geometric decoding and prediction tree-based geometric decoding. For the G-PCC coding framework, geometric coding includes three modes: octree-based geometric decoding, trisoup-based geometric decoding, and prediction tree-based prediction decoding.
  • Multitree-based geometry decoding such as octree-based geometry decoding: an octree is reconstructed based on geometry syntax elements parsed from a geometry bitstream.
  • Prediction tree-based geometry decoding The prediction tree is reconstructed based on the geometry syntax elements parsed from the geometry bitstream.
  • Geometry decoding based on triangle representation reconstructs the triangle model based on the geometry syntax elements parsed from the geometry bitstream.
  • Geometric reconstruction Perform reconstruction to obtain the geometric coordinate information of the points in the point cloud.
  • Coordinate inverse transformation Perform inverse transformation on the reconstructed geometric coordinate information to convert the reconstructed coordinates (positions) of the points in the point cloud from the transformed domain back to the initial domain.
  • Dequantization Dequantize the attribute syntax elements.
  • attribute information processing determines the color information of the midpoint in the point cloud by predicting or transforming the inverse quantized prediction residual or prediction residual transformation coefficient, or by transforming the inverse quantized transformation coefficient to determine the color information of the midpoint in the point cloud.
  • attribute information processing determines the color information of the point in the point cloud by using RAHT to inversely quantize the attribute information, or by using LOD and inverse lifting to determine the color information of the point in the point cloud.
  • Color inversion Convert the color information from the YCbCr color space to the RGB color space. In some examples, the color inversion operation may not be performed.
  • the present application provides a geometric reconstruction method, which is performed by a decoding end.
  • the method includes:
  • Step 401 The decoding end decodes the first code stream to obtain a first flag, where the first flag is used to indicate the original point cloud distribution information in the geometric structure corresponding to the Trisoup node; the original point cloud refers to the point cloud before the point cloud is reconstructed; and the original point cloud distribution information refers to the point cloud distribution in the geometric structure before the point cloud is reconstructed.
  • Step 402 The decoding end processes the vertices in the geometric structure according to the first flag
  • Step 403 The decoding end reconstructs the point cloud using the processed vertices.
  • a Trisoup node refers to a multi-branch tree node. Trisoup conceptualizes the geometric shape of the point cloud within each node as a surface that intersects the edge of each geometric body at most once. The points that intersect the edge of the geometric body are called vertices. These vertices are shared between adjacent nodes, ensuring the continuity of the reconstructed surface between nodes. The existence of a vertex on the edge of the geometric body corresponding to each node and the quantized position of the vertex on the edge can be represented as 1 bit and 2 bits, respectively. Inside the geometric body corresponding to each node, the reconstructed surface is composed of non-planar polygons formed by these vertices, as shown in Figure 5, organized as a set of triangles.
  • the decoding end can determine the neighbor information of each edge of the geometric structure corresponding to the Trisoup node, and the neighbor information can be used as context for subsequent entropy decoding.
  • the neighbor information includes point cloud occupancy information of adjacent edges.
  • the decoding end may use the neighbor information to decode a vertex existence flag and a quantized vertex position of each edge of the geometric structure, wherein the quantized vertex position exists when the vertex existence flag indicates that a vertex exists.
  • the encoding end obtains a first flag based on the occupancy information of the eight sub-geometric bodies and the vertex existence flag obtained from a Trisoup node.
  • the first flag is used to represent the original point cloud distribution information of the Trisoup node.
  • the encoding end encodes the first flag to generate a first code stream and sends it to the decoding end.
  • the decoding end decodes the first flag to obtain the original point cloud distribution information; the decoding end determines the qualifications of the vertices in the Trisoup node based on the first flag obtained by decoding.
  • the decoding end determines reasonable vertices (which can be used for point cloud reconstruction), unreasonable vertices (not suitable for point cloud reconstruction, such as there is no original point cloud in the first range around the vertex), and relatively reasonable vertices (such as there is no original point cloud in the second range around the vertex or the original point cloud is small, such as less than a threshold), etc., based on the first flag, and deletes or corrects the vertices according to the judgment result.
  • the decoding end determines that the vertex is a reasonable vertex, it does not process the reasonable vertex. After processing the vertex, the decoding end uses the processed vertex to reconstruct the point cloud.
  • the first mark may include one or more flags, that is, the encoding end may determine one or more flags for indicating the distribution of the original point cloud and encode the one or more flags.
  • the decoding end may obtain one or more flags by decoding.
  • the one or more flags included in the first mark may be flags corresponding to different axes.
  • the first mark includes mark 1, mark 2, and mark 3, wherein mark 2 may include mark 2 corresponding to the three axes of x, y, and z, respectively, and mark 3 may include mark 3 corresponding to the three axes of x, y, and z, respectively.
  • a decoding end decodes and obtains a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.
  • the method further includes:
  • the decoding of the first code stream to obtain the first flag includes:
  • the first code stream is decoded according to the context to obtain a first flag.
  • the decoding end may further determine a context according to the distribution of vertices in the Trisoup node, and decode the first code stream using the context to obtain the first flag.
  • the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.
  • the target axis can be any of the three axes: x, y, and z.
  • the context can include contexts corresponding to the multiple flags. For example, if the first flag includes flag 1, flag 2, and flag 3, the context can include the context of flag 2 and the context of flag 3.
  • the context corresponding to the axis to be decoded is used.
  • the context corresponding to the x-axis is used, that is, whether the ratio of the number of vertices in the first area along the x-axis to the total number of vertices is greater than or equal to the first threshold
  • the context corresponding to the y-axis is used, that is, whether the ratio of the number of vertices in the first area along the y-axis to the total number of vertices is greater than or equal to the first threshold
  • the context corresponding to the z-axis is used, that is, whether the ratio of the number of vertices in the first area along the z-axis to the total number of vertices is greater than or equal to the first threshold.
  • the first area may be a preset range of the target area, and the first area may be recorded as the negative semi-axis or the positive semi-axis.
  • the first area may be recorded as the negative semi-axis or the positive semi-axis.
  • the ratio of the number of vertices in the first area of the target axial direction to the total number of vertices is: the ratio of the number of vertices in the negative semi-axis of the target axial direction to the total number of vertices.
  • the vertex is considered to be located on the positive semi-axis of the target axial direction.
  • the ratio of the number of vertices in the first area of the target axial direction to the total number of vertices is: the ratio of the number of vertices in the positive semi-axis of the target axial direction to the total number of vertices.
  • the first threshold indicated in the context may be different, for example: the context indicates whether the ratio of the number of vertices in the negative semi-axis of the target axis to the total number of vertices is greater than th1, or the context indicates whether the ratio of the number of vertices in the positive semi-axis of the target axis to the total number of vertices is greater than th2, and th1 and th2 may be different.
  • the context of the target axis corresponding to the first flag to be decoded is used. For example, if the decoding end decodes flag 2 corresponding to the x-axis, the flag 2 is decoded based on whether the ratio of the number of vertices in the first region along the x-axis to the total number of vertices is greater than or equal to a first threshold; if the decoding end decodes flag 3 corresponding to the y-axis, the flag 3 is decoded based on whether the ratio of the number of vertices in the first region along the y-axis to the total number of vertices is greater than or equal to the first threshold. Decoding flags for other axes is similar to the above examples and is not listed here one by one.
  • the first flag includes at least one of the following:
  • Flag 2 used to indicate whether it is necessary to correct the dimension value of the vertex in the target axis, and the target axis is any of the three axes; the flag 2 can be recorded as axiFlag, and axiFlag is used to indicate based on which circumferential axis the dimension value of the vertex needs to be corrected, for example: axiFlag can include axiFlag_1, axiFlag_2, axiFlag_3, axiFlag_1, axiFlag-_2, axiFlag_3 correspond to the x-axis, y-axis, and z-axis respectively, and the correspondence between the two is not limited here.
  • axiFlag_1 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the x-axis (or y-axis or z-axis); axiFlag_2 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the y-axis (or z-axis or x-axis); axiFlag_3 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the z-axis (or x-axis or y-axis).
  • axiFlag can be used to indicate whether the dimension value of the vertex in a certain axis needs to be corrected.
  • the first flag does not include the flag 3 corresponding to the axis.
  • Flag 3 used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or the negative direction of the target axis.
  • Flag 3 can be denoted as flag01.
  • Flag01 is used to indicate the direction in which the vertex dimension value in a certain axis needs to be corrected.
  • flag01 can include flag01_1, flag01_2, and flag01_3, where flag01_1, flag01_2, and flag01_3 correspond to the x, y, and z axes, respectively. The correspondence between the two is not limited here.
  • flag01_1 can be used to indicate the correction direction when the dimension value of the vertex in the x-axis (or y-axis or z-axis) needs to be corrected
  • flag01_2 can be used to indicate the correction direction when the dimension value of the vertex in the y-axis (or z-axis or x-axis) needs to be corrected
  • flag01_3 can be used to indicate the correction direction when the dimension value of the vertex in the z-axis (or x-axis or y-axis) needs to be corrected.
  • the decoding end decodes the first flag, which may include one or more flags for indicating point cloud distribution information. According to the one or more flags, the decoding end can determine the correction status of the vertex and thus process the vertex.
  • decoding the first code stream to obtain the first flag includes:
  • the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, decoding the flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, decoding the flag 3 corresponding to the first axis;
  • the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected
  • the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected
  • determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; decode the mark 3 corresponding to the third axis.
  • the decoding end when decoding the first bitstream, the decoding end first decodes flag 1 (nodeflag) and decodes flag 2 (axiFlag) according to the indication of flag 1. If flag 1 indicates that a vertex requires correction, flag 2 is decoded; if flag 1 indicates that no vertex requires correction, flag 2 does not need to be decoded.
  • flag 2 two axial flags 2 can be first decoded according to the bitstream order, and the need to decode the third axial flag 2 can be determined based on the two axial flags 2. Whether to decode flag 3 (flag01) is determined based on the indication of flag 2.
  • flag 2 indicates that the dimension value of the vertex in a certain axis does not need to be corrected, then the flag 3 of that axis does not need to be decoded. If both axial flags 2 indicate that the dimension value of the vertex in the corresponding axis does not need to be corrected, then the third axial flag 2 does not need to be decoded. It can be directly determined that the third axial flag 2 indicates that the dimension value of the vertex in that axis requires correction (because flag 1 indicates that a vertex requires correction, if both axial flags 2 indicate that no correction is required, then the third axial flag 2 must indicate that the dimension value of the vertex in that axis requires correction).
  • the following example illustrates the process of decoding the first flag at the decoding end.
  • the decoding code is as follows:
  • processing the vertices in the geometric structure according to the first flag includes:
  • the vertex is processed according to the type of the vertex.
  • the decoding end decodes the first flag, it can mark whether the original point cloud exists in the eight sub-geometric bodies divided by the current node according to the decoded nodeflag and the three axial axiFlag and flag01.
  • the vertices in this node are qualified, the type of the vertex is determined, and the vertex is processed or not processed according to the type of the vertex.
  • the type of the vertex may include: a first type of vertex, which is an unreasonable vertex, for example, there is no original point cloud around the vertex; a second type of vertex, which is a more reasonable vertex, for example, the number of original point clouds around the vertex is small, such as the number of original point clouds is less than or equal to a threshold; a third type of vertex, which is a reasonable vertex.
  • Reasonable vertices can be left unprocessed.
  • determining the type of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body includes at least one of the following:
  • the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;
  • the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;
  • the vertex when the four sub-geometric bodies within the first plane to which the vertex belongs are marked as not existing in the original point cloud, the vertex is determined to be an unreasonable vertex, that is, the first type of vertex.
  • the edge where the vertex belongs is the edge of the bottom surface in Figure 6 (the edge where sub-geometric bodies 0 and 4 are located)
  • the first plane to which the edge belongs can be the surface where sub-geometric bodies 0, 1, 4, and 5 are located, or the surface where sub-geometric bodies 0, 2, 4, and 6 are located; if sub-geometric bodies 0, 1, 4, and 5 or sub-geometric bodies 0, 2, 4, and 6 do not exist in the original point cloud, then the vertex is a first type of vertex, that is, an unreasonable vertex.
  • the vertex is determined to be a more reasonable vertex, that is, the second type vertex.
  • the first vertical plane of the edge can be the surface where sub-geometry 0, 1, 2, 3 is located or the surface where sub-geometry 4, 5, 6, 7 is located.
  • the vertex is determined to be a second type vertex, or if the sub-geometry 4, 5, 6, 7 does not have an original point cloud and the vertex is in any one of the sub-geometry 4, 5, 6, 7, then the vertex is determined to be a second type vertex, that is, a more reasonable vertex.
  • vertices other than the first type vertices and the second type vertices are considered to be reasonable vertices, namely the third type vertices.
  • processing the vertex according to the type of the vertex includes at least one of the following:
  • the third type of vertices i.e., reasonable vertices, are not processed.
  • the method further includes:
  • the second code stream is decoded to obtain a second flag, where the second flag is used to indicate whether the geometric reconstruction technology is enabled or not.
  • the encoder encodes a flag indicating whether the geometric reconstruction method of the present application is enabled to obtain a second bitstream.
  • the decoder decodes the second bitstream to determine whether the geometric reconstruction method is enabled. If the geometric reconstruction method is enabled, the implementation process of the geometric reconstruction method of the embodiment of the present application is performed.
  • the second bitstream and the first bitstream can be the same bitstream or different bitstreams.
  • the decoding end may decode the second bitstream when Trisoup is enabled.
  • the encoding end may encode a flag indicating whether Trisoup is enabled; and the decoding end may determine whether Trisoup is enabled by decoding the flag.
  • the method before decoding the first code stream and obtaining the first flag, the method further includes:
  • the first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.
  • whether a Trisoup node enables the geometric reconstruction method of the present application is determined by the value of eligible.
  • the value of eligible is set to 1, indicating that the Trisoup node executes the geometric reconstruction method of the present application.
  • the decoding end needs to decode the first bitstream; otherwise, the value of eligible is set to 0, indicating that the Trisoup node does not execute the geometric reconstruction method of the present application, and the decoding end does not need to decode the first bitstream.
  • the second region may be a threshold range, and the second region may be a semi-axis region of a certain axis.
  • the second region may be the negative semi-axis or the positive semi-axis of a certain axis.
  • the first condition may be, for example: the total number of vertices is greater than or equal to the second threshold, and the ratio P of the number of vertices in a semi-axis region of any axis to the total number of vertices is greater than or equal to a third threshold.
  • the any axis may be any one or more of the x-axis, y-axis, and z-axis.
  • the vertex is considered to be located on the negative half-axis of the x-axis.
  • the ratio of the number of vertices in the second region along the x-axis to the total number of vertices is: the ratio of the number of vertices in the negative half-axis of the x-axis to the total number of vertices.
  • the vertex is considered to be located on the positive half-axis of the x-axis.
  • the ratio of the number of vertices in the second region along the x-axis to the total number of vertices is: the ratio of the number of vertices in the positive half-axis of the x-axis to the total number of vertices.
  • reconstructing the point cloud using the processed vertices includes:
  • Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.
  • the decoding end decodes the quantized offset value of the centroid vertex in the bitstream; calculates the initial position of the centroid vertex based on the vertex coordinates remaining after processing; sums the inverse quantized offset value and the initial position of the centroid vertex to obtain the position of the centroid vertex after the offset;
  • the third code stream and the first code stream can be the same code stream or different code streams.
  • the encoding end selectively determines the face vertices for each node, and encodes and sends it to the decoding end; the decoding end decodes the information on whether vertices exist to obtain the TriSoup face vertices corresponding to each TriSoup node; the decoding end sorts the vertex coordinates and face vertex coordinates in each node, and then uses the edge vertices, offset centroid vertices and face vertices to construct triangular face patches; perform ray tracing sampling on the triangular face patches to obtain a reconstructed point cloud.
  • the decoding process includes the following three steps:
  • the decoding end When determining whether the node enables the geometric reconstruction method, the decoding end decodes the Trisoup edge vertices located on the Trisoup edge, and then decodes the first flag used to represent the distribution of the original point cloud in the trisoup node.
  • the first flag includes nodeFlag, axiFlag, and flag01.
  • the decoding end designs a corresponding context for the flag that needs to be decoded.
  • the decoding end determines whether the vertices in the node can directly participate in the process of constructing the Trisoup triangle of this node, and processes the vertices based on the determination result; constructs the Trisoup triangle based on the remaining nodes after processing, and then determines the decoding point by voxelizing the Trisoup triangle.
  • axiFlag_y 1, indicating that the dimension value of the vertex in the y-axis direction needs to be corrected, then decode flag01_y corresponding to the y-axis.
  • axiFlag_x 1, that is, the dimension value of the vertex in the x-axis direction needs to be corrected, then flag01_x is decoded and the vertex is corrected according to the value of flag01_x (modify edge vertex);
  • Ray tracing sampling is performed using the corrected vertices, centroid vertices, and face vertices to obtain a reconstructed point cloud.
  • the distribution of vertices and the total number of vertices in the trisoup node are used to adaptively select whether to turn on the geometric reconstruction technology of the present application.
  • three groups of context models are constructed again using the distribution of vertices in the trisoup node, which are used to decode the nodeFlag, axiFlag, and flag01 that represent the distribution of the original point cloud in the node.
  • each Trisoup node is divided into sub-geometries, and the decoded flag is used to infer the original point cloud distribution of the sub-geometries in the node, which is then used to judge the rationality of each vertex in the node. After different processing is performed on the vertices judged to be of different rationality, the subsequent point cloud reconstruction process is carried out.
  • a decoding end decodes and obtains a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.
  • an embodiment of the present application further provides a geometric reconstruction method, which is performed by an encoding end.
  • the method includes:
  • Step 801 The encoder encodes a first flag to obtain a first bitstream, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node.
  • Step 802 The encoding end processes the vertices in the geometric structure according to the first flag
  • Step 803 The encoder reconstructs the point cloud using the processed vertices.
  • the encoding end may determine a vertex presence flag and a quantized vertex position for each edge of the geometric structure corresponding to the Trisoup node, wherein the quantized vertex position exists when the vertex presence flag indicates that a vertex exists.
  • the encoder may reorder the non-repeated edges in lexicographic order to determine an encoding order.
  • the encoder may use neighbor information to determine the context of the vertex existence flag and the vertex position, and encode the vertex existence flag and the quantized vertex position into a bitstream using a dynamic and instantaneously updated optimal binarization technique (Optional Binarization with Update on the Fly, OBUF) according to the determined encoding order.
  • Optional Binarization with Update on the Fly, OBUF optimal binarization with Update on the Fly
  • the encoding end can determine a first flag based on the point cloud distribution information.
  • the first flag is used to represent the original point cloud distribution information of the Trisoup node.
  • the encoding end encodes the first flag to generate a first code stream and sends it to the decoding end.
  • the encoding end determines the qualifications of the vertices in the Trisoup node based on the first flag. For example, the encoding end determines reasonable vertices, unreasonable vertices, relatively reasonable vertices, etc. based on the first flag, and deletes or corrects the vertices according to the judgment results.
  • the encoding end uses the processed vertex to reconstruct the point cloud.
  • the first flag may include one or more flags, that is, the encoding end may determine one or more flags for indicating the distribution of the original point cloud, and encode the one or more flags so that the decoding end can obtain one or more flags through decoding.
  • the encoding end determines and encodes a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.
  • the method further includes:
  • the first flag is determined according to the original point cloud distribution information of the sub-geometric body and the vertex existence flag of the edge of the geometric structure.
  • the decoding end can divide the Trisoup node into multiple sub-geometric bodies, as shown in Figure 6, and give the sub-geometric body a flag indicating whether the original point cloud exists based on the original point cloud distribution information in the node; the decoding end determines the first flag based on the point cloud occupancy information and vertex existence flag information of the multiple sub-geometric bodies divided by the Trisoup node.
  • the first mark may include one or more flags, which may be flags corresponding to different axes.
  • the first mark includes mark 1, mark 2 and mark 3, among which mark 2 may include mark 2 corresponding to the three axes of x, y, and z respectively, and mark 3 may include mark 3 corresponding to the three axes of x, y, and z respectively.
  • the first flag includes at least one of the following:
  • Flag 2 used to indicate whether it is necessary to correct the dimension value of the vertex in the target axis, and the target axis is any of the three axes; the flag 2 can be recorded as axiFlag, and axiFlag is used to indicate based on which circumferential axis the dimension value of the vertex needs to be corrected, for example: axiFlag can include axiFlag_1, axiFlag_2, axiFlag_3, axiFlag_1, axiFlag-_2, axiFlag_3 correspond to the x-axis, y-axis, and z-axis respectively, and the correspondence between the two is not limited here.
  • axiFlag_1 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the x-axis (or y-axis or z-axis); axiFlag_2 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the y-axis (or z-axis or x-axis); axiFlag_3 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the z-axis (or x-axis or y-axis).
  • axiFlag can be used to indicate whether the dimension value of the vertex in a certain axis needs to be corrected.
  • the first flag does not include the flag 3 corresponding to the axis.
  • Flag 3 used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or the negative direction of the target axis.
  • Flag 3 can be denoted as flag01.
  • Flag01 is used to indicate the direction in which the vertex dimension value in a certain axis needs to be corrected.
  • flag01 can include flag01_1, flag01_2, and flag01_3, where flag01_1, flag01_2, and flag01_3 correspond to the x, y, and z axes, respectively. The correspondence between the two is not limited here.
  • flag01_1 can be used to indicate the correction direction when the dimension value of the vertex in the x-axis (or y-axis or z-axis) needs to be corrected
  • flag01_2 can be used to indicate the correction direction when the dimension value of the vertex in the y-axis (or z-axis or x-axis) needs to be corrected
  • flag01_3 can be used to indicate the correction direction when the dimension value of the vertex in the z-axis (or x-axis or y-axis) needs to be corrected.
  • the encoding end further processes according to the three dimensions of x, y, and z to obtain nodeFlag, axiFlag, and flag01.
  • the encoding end can determine the values of the three flags based on the point cloud distribution information of the multiple sub-geometric bodies divided by a node and the vertex existence flag information.
  • axiFlag_y, flag01_y and axiFlag_z, flag01_z of each node can be obtained in the y and z dimensions.
  • nodeflag 1 (indicating that there is a vertex that needs to be corrected)
  • nodeflag 0 (indicating that there is no vertex that needs to be corrected).
  • the method further includes:
  • the encoding of the first flag to obtain the first code stream includes: encoding the first flag according to the context to obtain the first code stream.
  • determining the context of the first flag includes:
  • the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.
  • the encoding end may determine a context based on vertex distribution information within a node, and use the context to encode the first flag.
  • the target axis can be any of the three axes: x, y, and z.
  • the context can include contexts corresponding to the multiple flags. For example, if the first flag includes flag 1, flag 2, and flag 3, the context can include the context of flag 2 and the context of flag 3.
  • the context corresponding to the axis to be encoded is used. For example, when encoding the flag corresponding to the x-axis 2, the context corresponding to the x-axis is used, that is, whether the ratio of the number of vertices in the first area along the x-axis to the total number of vertices is greater than or equal to the first threshold; when encoding the flag corresponding to the y-axis 2, the context corresponding to the y-axis is used, that is, whether the ratio of the number of vertices in the first area along the y-axis to the total number of vertices is greater than or equal to the first threshold; when encoding the flag corresponding to the z-axis 3, the context corresponding to the z-axis is used, that is, whether the ratio of the number of vertices in the first area along the z-axis to the total number of vertices is greater than or equal to the first threshold.
  • the first area may be a preset range of the target area, and the first area may be recorded as the negative semi-axis or the positive semi-axis.
  • the first area may be recorded as the negative semi-axis or the positive semi-axis.
  • the ratio of the number of vertices in the first area of the target axial direction to the total number of vertices is: the ratio of the number of vertices in the negative semi-axis of the target axial direction to the total number of vertices.
  • the vertex is considered to be located on the positive semi-axis of the target axial direction.
  • the ratio of the number of vertices in the first area of the target axial direction to the total number of vertices is: the ratio of the number of vertices in the positive semi-axis of the target axial direction to the total number of vertices.
  • the first threshold indicated in the context may be different, for example: the context indicates whether the ratio of the number of vertices in the negative semi-axis of the target axis to the total number of vertices is greater than th1, or the context indicates whether the ratio of the number of vertices in the positive semi-axis of the target axis to the total number of vertices is greater than th2, and th1 and th2 may be different.
  • encoding the first flag includes:
  • the flag 2 corresponding to the first axis is encoded; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, the flag 3 corresponding to the first axis is encoded;
  • the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected
  • the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected
  • determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; encode the mark 3 corresponding to the third axis.
  • the encoding end when encoding the first code stream, first encodes flag 1 (nodeflag), and encodes flag 2 (axiFlag) according to the indication of flag 1; wherein, if flag 1 indicates that there is a vertex that needs to be corrected, flag 2 is encoded, and if flag 1 indicates that there is no vertex that needs to be corrected, flag 2 does not need to be encoded.
  • two axial flags 2 can be encoded first in order, and it is determined whether the third axial flag 2 needs to be encoded based on the two axial flags 2; it is determined whether flag 3 (flag01) is encoded based on the indication of flag 2, and when flag 2 indicates that the dimensional value of the vertex in a certain axis does not need to be corrected, the flag 3 of the axis does not need to be encoded.
  • both axial flags 2 indicate that the dimensional value of the vertex in the corresponding axis does not need to be corrected
  • the following example illustrates the process of encoding the first flag at the encoding end.
  • the encoding code is as follows:
  • processing the vertices in the geometric structure according to the first flag includes:
  • the vertex is processed according to the type of the vertex.
  • the encoding end can mark whether the eight sub-geometric bodies divided by the current node have the original point cloud based on nodeflag and the three axial directions axiFlag and flag01.
  • the vertices in this node are qualified to determine the type of the vertex, and the vertex is processed or not processed according to the type of the vertex.
  • the vertex type may include: a first type vertex, which is an unreasonable vertex; a second type vertex, which is a relatively reasonable vertex; and a third type vertex, which is a reasonable vertex.
  • Reasonable vertices may not be processed.
  • determining the type of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body includes at least one of the following:
  • the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;
  • the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;
  • the vertex when the four sub-geometric bodies within the first plane to which the vertex belongs are marked as not existing in the original point cloud, the vertex is determined to be an unreasonable vertex, that is, the first type of vertex.
  • the edge where the vertex belongs is the edge of the bottom surface in Figure 6 (the edge where sub-geometric bodies 0 and 4 are located)
  • the first plane to which the edge belongs can be the surface where sub-geometric bodies 0, 1, 4, and 5 are located, or the surface where sub-geometric bodies 0, 2, 4, and 6 are located; if sub-geometric bodies 0, 1, 4, and 5 or sub-geometric bodies 0, 2, 4, and 6 do not exist in the original point cloud, then the vertex is a first type of vertex, that is, an unreasonable vertex.
  • the vertex is determined to be a more reasonable vertex, that is, the second type vertex.
  • the first vertical plane of the edge can be the surface where sub-geometry 0, 1, 2, 3 is located or the surface where sub-geometry 4, 5, 6, 7 is located.
  • the vertex is determined to be a second type vertex, or if the sub-geometry 4, 5, 6, 7 does not have an original point cloud and the vertex is in any one of the sub-geometry 4, 5, 6, 7, then the vertex is determined to be a second type vertex, that is, a more reasonable vertex.
  • vertices other than the first type vertices and the second type vertices are considered to be reasonable vertices, namely the third type vertices.
  • processing the vertex according to the type of the vertex includes at least one of the following:
  • the third type of vertices i.e., reasonable vertices, are not processed.
  • the method further includes:
  • the second flag is encoded into a second code stream, where the second flag is used to indicate whether to enable or not enable the geometric reconstruction technology.
  • the encoder encodes a flag indicating whether the geometric reconstruction method of the present application is enabled to obtain a second bitstream; when the geometric reconstruction method is enabled, the implementation process of the geometric reconstruction method of the embodiment of the present application is performed.
  • the second bitstream and the first bitstream can be the same bitstream or different bitstreams.
  • the encoding end may encode the second flag into a second code stream when Trisoup is enabled.
  • the encoding end may encode a flag indicating whether Trisoup is enabled; and the decoding end may determine whether Trisoup is enabled by decoding the flag.
  • the method before determining the first marker, the method further includes:
  • the first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.
  • whether the Trisoup node enables the geometric reconstruction method of the present application is determined by the value of eligible.
  • the value of eligible is set to 1, indicating that the Trisoup node executes the geometric reconstruction method of the present application, that is, when the vertices in the geometric structure corresponding to the Trisoup node meet the first condition, the encoder needs to encode the first bitstream; otherwise, the value of eligible is set to 0, indicating that the Trisoup node does not execute the geometric reconstruction method of the present application, and the encoder does not need to encode the first bitstream.
  • the second region may be a threshold range, and the second region may be a semi-axis region of a certain axis.
  • the second region may be the negative semi-axis or the positive semi-axis of a certain axis.
  • the first condition may be, for example: the total number of vertices is greater than or equal to the second threshold, and the ratio P of the number of vertices in a semi-axis region of any axis to the total number of vertices is greater than or equal to a third threshold.
  • the any axis may be any one or more of the x-axis, y-axis, and z-axis.
  • the vertex is considered to be located on the negative half-axis of the x-axis.
  • the ratio of the number of vertices in the second region along the x-axis to the total number of vertices is: the ratio of the number of vertices in the negative half-axis of the x-axis to the total number of vertices.
  • the vertex is considered to be located on the positive half-axis of the x-axis.
  • the ratio of the number of vertices in the second region along the x-axis to the total number of vertices is: the ratio of the number of vertices in the positive half-axis of the x-axis to the total number of vertices.
  • reconstructing the point cloud using the processed vertices includes:
  • Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.
  • the encoder calculates the initial position of the centroid vertex based on the processed vertices. It then calculates an offset value for the centroid vertex based on the original point cloud surrounding the initial position. This offset value is then quantized and encoded into the bitstream. The inverse quantized drift value is summed with the initial position of the centroid vertex to obtain the offset position of the centroid vertex.
  • the encoder selectively determines face vertices for each node.
  • the face vertices are encoded and sent to the decoder.
  • the encoder sorts the vertex coordinates and face vertex coordinates within each node, constructs triangular facets using edge vertices, offset centroid vertices, and face vertices, and performs ray tracing sampling on the triangular facets to obtain a reconstructed point cloud.
  • the geometric structure corresponding to the Trisoup node is divided into eight sub-geometric bodies, as shown in Figure 6.
  • the flag (8) indicating whether the original point cloud exists is given to the eight sub-geometric bodies according to the original point cloud information in the node.
  • axiFlag_x 1, that is, the dimension value of the vertex in the x-axis direction needs to be corrected, then flag01_x is encoded, and the vertex is corrected according to the value of flag01_x (modify edge vertex);
  • Ray tracing sampling is performed using the corrected vertices, centroid vertices, and face vertices to obtain a reconstructed point cloud.
  • the geometric reconstruction technology of the present application it is necessary to decode whether the geometric reconstruction technology of the present application is turned on when the trisoup technology is enabled.
  • the distribution of vertices and the total number of vertices in the trisoup node are used to adaptively select whether to turn on the geometric reconstruction technology of the present application.
  • three groups of context models are constructed again using the distribution of vertices in the trisoup node, which are used to encode the nodeFlag, axiFlag, and flag01 that represent the distribution of the original point cloud in the node.
  • each Trisoup node is divided into sub-geometries, and each flag is used to indicate the original point cloud distribution of the sub-geometries in the node, which is then used to judge the rationality of each vertex in the node. After different processing is performed on the vertices judged to be of different rationality, the subsequent point cloud reconstruction process is carried out.
  • the encoding end determines and encodes a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.
  • the geometric reconstruction method provided in the embodiment of the present application can be executed by a geometric reconstruction device.
  • the geometric reconstruction device provided in the embodiment of the present application is described by taking the geometric reconstruction method performed by the geometric reconstruction device as an example.
  • an embodiment of the present application provides a geometric reconstruction device 1000 , which is applied to a decoding end.
  • the device includes:
  • a first decoding module 1010 is configured to decode the first code stream to obtain a first flag, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node;
  • a first processing module 1020 configured to process vertices in the geometric structure according to the first flag
  • the second processing module 1030 is configured to reconstruct a point cloud using the processed vertices.
  • the device further includes:
  • a first determination module is used to determine the context according to vertex distribution information in the geometric structure corresponding to the Trisoup node;
  • the first decoding module is specifically configured to decode the first code stream according to the context to obtain a first flag.
  • the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.
  • the first flag includes at least one of the following:
  • Flag 1 used to indicate whether there are vertices in the geometric structure that need to be corrected
  • Flag 2 used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes;
  • Flag 3 used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis.
  • the first decoding module is specifically configured to:
  • the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, decoding the flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, decoding the flag 3 corresponding to the first axis;
  • the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected
  • the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected
  • determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; decode the mark 3 corresponding to the third axis.
  • the first processing module is specifically configured to:
  • the vertex is processed according to the type of the vertex.
  • the first processing module is specifically configured to perform at least one of the following:
  • the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;
  • the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;
  • the first processing module is specifically configured to perform at least one of the following:
  • the second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located.
  • the device further includes:
  • the second decoding module is used to decode the second code stream to obtain a second flag, where the second flag is used to indicate whether to enable or disable the geometric reconstruction technology.
  • the device further includes:
  • a second determination module is used to determine whether a vertex in the geometric structure corresponding to the Trisoup node satisfies a first condition
  • the first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.
  • the second processing module is specifically configured to
  • Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.
  • a decoding end decodes and obtains a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.
  • the geometric reconstruction device provided in the embodiment of the present application can implement the various processes implemented in the method embodiments of Figures 4 to 7 and achieve the same technical effects. To avoid repetition, they will not be described here.
  • an embodiment of the present application further provides a geometric reconstruction device 1100 , which is applied to an encoding end and includes:
  • a first encoding module 1110 is configured to encode a first flag to obtain a first code stream, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node;
  • a third processing module 1120 configured to process vertices in the geometric structure according to the first flag
  • the fourth processing module 1130 is configured to reconstruct a point cloud using the processed vertices.
  • the device further includes: a third determining module, specifically configured to:
  • the first flag is determined according to the original point cloud distribution information of the sub-geometric body and the vertex existence flag of the edge of the geometric structure.
  • the first flag includes at least one of the following:
  • Flag 1 used to indicate whether there are vertices in the geometric structure that need to be corrected
  • Flag 2 used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes;
  • Flag 3 used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis.
  • the first encoding module is specifically configured to:
  • the flag 2 corresponding to the first axis is encoded; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, the flag 3 corresponding to the first axis is encoded;
  • the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected
  • the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected
  • determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; encode the mark 3 corresponding to the third axis.
  • the device further includes:
  • a fourth determining module configured to determine a context of the first sign
  • the first encoding module is specifically configured to encode the first flag according to the context to obtain a first code stream.
  • the fourth determining module is specifically configured to:
  • the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.
  • the third processing module is specifically configured to:
  • the vertex is processed according to the type of the vertex.
  • the third processing module is specifically configured to perform at least one of the following:
  • the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;
  • the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;
  • the third processing module is specifically configured to perform at least one of the following:
  • the second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located.
  • the device further includes:
  • the second encoding module is used to encode a second flag into a second code stream, where the second flag is used to indicate whether to enable or disable the geometric reconstruction technology.
  • the device further includes:
  • a fifth determining module configured to determine whether a vertex in the geometric structure corresponding to the Trisoup node satisfies a first condition
  • the first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.
  • the fourth processing module is specifically configured to:
  • Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.
  • the encoding end determines and encodes a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.
  • the geometric reconstruction device provided in the embodiment of the present application can implement the various processes implemented in the method embodiments of Figures 8 to 9 and achieve the same technical effects. To avoid repetition, they will not be described here.
  • an embodiment of the present application further provides an electronic device 1200, including a processor 1201 and a memory 1202, wherein the memory 1202 stores programs or instructions that can be run on the processor 1201.
  • the program or instruction is executed by the processor 1201 to implement the various steps of the above-mentioned geometric reconstruction method embodiment, and can achieve the same technical effect.
  • the electronic device 1200 is a decoding end device
  • the program or instruction is executed by the processor 1201 to implement the various steps of the above-mentioned geometric reconstruction method embodiment, and can achieve the same technical effect.
  • the memory 1202 can be the memory 102 or the memory 113 in the embodiment shown in Figure 1, and the processor 1201 can implement the functions of the encoder 200 or the decoder 300 in the embodiment shown in Figures 1-3.
  • the present application also provides an electronic device including: a memory configured to store video data; and a processing circuit configured to implement the steps of the geometric reconstruction method described above.
  • the memory may be memory 102 or memory 113 in the embodiment shown in FIG. 1
  • the processing circuit may implement the functions of encoder 200 or decoder 300 in the embodiments shown in FIG. 1-3 .
  • the present application also provides an electronic device including a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is configured to execute a program or instruction to implement the steps in the method embodiment shown in FIG4 or FIG8.
  • This device embodiment corresponds to the aforementioned method embodiment, and each implementation process and implementation method of the aforementioned method embodiment can be applied to this terminal embodiment and can achieve the same technical effects.
  • the above-mentioned electronic device can be a terminal or other devices other than a terminal, such as a server, a network attached storage (NAS), etc.
  • a terminal or other devices other than a terminal such as a server, a network attached storage (NAS), etc.
  • the terminal can be a mobile phone, tablet computer (Tablet Personal Computer), laptop computer, notebook computer, personal digital assistant (PDA), handheld computer, netbook, ultra-mobile personal computer (UMPC), mobile Internet device (MID), augmented reality (AR), virtual reality (VR) equipment, mixed reality (MR) equipment, robot, wearable device (Wearable Device), flight vehicle, vehicle user equipment (VUE), shipborne equipment, pedestrian user equipment (PUE), smart home (home appliances with wireless communication function, such as refrigerator, TV, washing machine or furniture, etc.), game console, personal computer (PC), ATM or self-service machine and other terminal side devices.
  • Tablet Personal Computer Tablet Personal Computer
  • laptop computer notebook computer
  • PDA personal digital assistant
  • UMPC ultra-mobile personal computer
  • MID mobile Internet device
  • AR augmented reality
  • VR virtual reality
  • MR mixed reality
  • WUE wearable device
  • flight vehicle vehicle user equipment
  • VUE vehicle user equipment
  • PUE shipborne equipment
  • PUE pedestrian user equipment
  • smart home home appliances with wireless communication function, such as refrigerator, TV
  • Wearable devices include: smart watches, smart bracelets, smart headphones, smart glasses, smart jewelry (smart bracelets, smart bracelets, smart rings, smart necklaces, smart anklets, smart anklets, etc.), smart wristbands, smart clothing, etc.
  • vehicle-mounted devices can also be called vehicle-mounted terminals, vehicle-mounted controllers, vehicle-mounted modules, vehicle-mounted components, vehicle-mounted chips, or vehicle-mounted units, etc. It should be noted that the specific type of terminal is not limited in the embodiments of this application.
  • the server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that can provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), or cloud computing services based on big data and artificial intelligence platforms.
  • cloud servers can provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), or cloud computing services based on big data and artificial intelligence platforms.
  • the electronic device may include but is not limited to the source device 100 or the destination device 110 shown in FIG. 1 .
  • FIG13 is a schematic diagram of the hardware structure of a terminal implementing an embodiment of the present application.
  • the terminal 1300 includes but is not limited to: a radio frequency unit 1301, a network module 1302, an audio output unit 1303, an input unit 1304, a sensor 1305, a display unit 1306, a user input unit 1307, an interface unit 1308, a memory 1309 and at least some of the components of the processor 1310.
  • the terminal 1300 may also include a power supply (such as a battery) to power various components.
  • the power supply may be logically connected to the processor 1310 via a power management system, thereby enabling the power management system to manage charging, discharging, and power consumption.
  • the terminal structure shown in FIG13 does not limit the terminal.
  • the terminal may include more or fewer components than shown, or may combine certain components, or have different component arrangements, which will not be described in detail here.
  • the input unit 1304 may include a graphics processing unit (GPU) 13041 and a microphone 13042.
  • the graphics processor 13041 processes image data of static images or videos obtained by an image acquisition device (such as a camera) in video acquisition mode or image acquisition mode, or may process the obtained point cloud data.
  • the display unit 1306 may include a display panel 13061, which may be configured in the form of a liquid crystal display, an organic light emitting diode, etc.
  • the user input unit 1307 includes a touch panel 13071 and at least one of other input devices 13072.
  • the touch panel 13071 is also called a touch screen.
  • the touch panel 13071 may include two parts: a touch detection device and a touch controller.
  • Other input devices 13072 may include, but are not limited to, a physical keyboard, function keys (such as volume control keys, power keys, etc.), a trackball, a mouse, and a joystick, which will not be described in detail here.
  • the RF unit 1301 may transmit the data to the processor 1310 for processing. Furthermore, the RF unit 1301 may send uplink data to the network-side device.
  • the RF unit 1301 includes, but is not limited to, an antenna, an amplifier, a transceiver, a coupler, a low-noise amplifier, a duplexer, and the like.
  • Memory 1309 can be used to store software programs or instructions and various data.
  • Memory 1309 may primarily include a first storage area for storing programs or instructions and a second storage area for storing data.
  • the first storage area may store an operating system, applications or instructions required for at least one function (such as a sound playback function, an image playback function, etc.).
  • memory 1309 may include volatile memory or non-volatile memory.
  • 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 random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM (DRRAM).
  • RAM random access memory
  • SRAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDRSDRAM double data rate synchronous DRAM
  • ESDRAM enhanced SDRAM
  • SLDRAM synchronous link DRAM
  • DRRAM direct RAM
  • the memory 1309 in the embodiments of the present application includes, but is not limited to, these and any other suitable types of memory.
  • Processor 1310 may include one or more processing units.
  • processor 1310 integrates an application processor and a modem processor.
  • the application processor primarily handles operations related to the operating system, user interface, and application programs, while the modem processor primarily processes wireless communication signals, such as a baseband processor. It is understood that the modem processor may not be integrated into processor 1310.
  • the processor 1310 is used to: decode the first code stream to obtain a first flag, where the first flag is used to indicate the original point cloud distribution information in the geometric structure corresponding to the Trisoup node; process the vertices in the geometric structure according to the first flag; and reconstruct the point cloud using the processed vertices.
  • processor 1310 is further configured to:
  • the decoding of the first code stream to obtain the first flag includes:
  • the first code stream is decoded according to the context to obtain a first flag.
  • the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.
  • the first flag includes at least one of the following:
  • Flag 1 used to indicate whether there are vertices in the geometric structure that need to be corrected
  • Flag 2 used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes;
  • Flag 3 used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis.
  • processor 1310 is specifically configured to:
  • the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, decoding the flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, decoding the flag 3 corresponding to the first axis;
  • the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected
  • the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected
  • determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; decode the mark 3 corresponding to the third axis.
  • processor 1310 is specifically configured to:
  • the vertex is processed according to the type of the vertex.
  • the processor 1310 is specifically configured to perform at least one of the following:
  • the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;
  • the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;
  • the processor 1310 is specifically configured to perform at least one of the following:
  • the second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located.
  • processor 1310 is further configured to:
  • the second code stream is decoded to obtain a second flag, where the second flag is used to indicate whether the geometric reconstruction technology is enabled or not.
  • processor 1310 is further configured to:
  • the first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.
  • processor 1310 is specifically configured to:
  • Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.
  • the processor 1310 is used to: encode a first flag to obtain a first code stream, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node; process vertices in the geometric structure according to the first flag; and reconstruct a point cloud using the processed vertices.
  • processor 1310 is specifically configured to:
  • the first flag is determined according to the original point cloud distribution information of the sub-geometric body and the vertex existence flag of the edge of the geometric structure.
  • the first flag includes at least one of the following:
  • Flag 1 used to indicate whether there are vertices in the geometric structure that need to be corrected
  • Flag 2 used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes;
  • Flag 3 used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis.
  • processor 1310 is specifically configured to:
  • the flag 2 corresponding to the first axis is encoded; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, the flag 3 corresponding to the first axis is encoded;
  • the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected
  • the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected
  • determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; encode the mark 3 corresponding to the third axis.
  • processor 1310 is further configured to:
  • the encoding of the first flag to obtain a first code stream includes:
  • the first flag is encoded according to the context to obtain a first code stream.
  • processor 1310 is specifically configured to:
  • the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.
  • processor 1310 is specifically configured to:
  • the vertex is processed according to the type of the vertex.
  • the processor 1310 is specifically configured to perform at least one of the following:
  • the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;
  • the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;
  • the processor 1310 is specifically configured to perform at least one of the following:
  • the second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located.
  • processor 1310 is further configured to:
  • the second flag is encoded into a second code stream, where the second flag is used to indicate whether to enable or not enable the geometric reconstruction technology.
  • processor 1310 is further configured to:
  • the first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.
  • processor 1310 is specifically configured to:
  • Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.
  • the terminal can determine the distribution of the original point cloud in the geometric structure based on the first flag, then process the vertices in the geometric structure and reconstruct the point cloud using the processed vertices.
  • process the vertices erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.
  • 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 geometric reconstruction 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 ROM, RAM, a magnetic disk, or an optical disk.
  • the readable storage medium may be a non-transitory 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 geometric reconstruction 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 may include a system-level chip (also referred to as a system chip, a chip system or a system-on-chip chip), and may also include an independent display chip, etc.
  • a system-level chip also referred to as a system chip, a chip system or a system-on-chip chip
  • independent display chip etc.
  • An embodiment of the present application further provides 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 geometric reconstruction 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 geometric reconstruction method of the encoding end as described above, and the decoding end device can be used to execute the steps of the geometric reconstruction method of the decoding end as described above.
  • An embodiment of the present application also provides a computer program product, including computer instructions.
  • the computer instructions are executed by a processor, the steps of the above-mentioned geometric reconstruction method are implemented and the same technical effect can be achieved. To avoid repetition, they will not be repeated here.
  • the computer software product is stored in a storage medium (such as ROM, RAM, magnetic disk, optical disk, etc.) and includes a number of instructions for enabling a terminal or network-side device to execute the methods described in each embodiment of the present application.
  • a storage medium such as ROM, RAM, magnetic disk, optical disk, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Generation (AREA)

Abstract

The present application belongs to the technical field of communications. Disclosed are a geometry reconstruction method and apparatus, and a device. The geometry reconstruction method comprises: a decoding end decoding a first bitstream to obtain a first flag, wherein the first flag is used for indicating distribution information of original point clouds in a geometric structure corresponding to a Trisoup node; the decoding end processing vertices in the geometric structure on the basis of the first flag; and the decoding end using the processed vertices to reconstruct a point cloud.

Description

几何重建方法、装置及设备Geometric reconstruction method, device and equipment

相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS

本申请主张在2024年04月17日在中国提交的中国专利申请No.202410464478.3的优先权,其全部内容通过引用包含于此。This application claims priority to Chinese Patent Application No. 202410464478.3 filed in China on April 17, 2024, the entire contents of which are incorporated herein by reference.

技术领域Technical Field

本申请属于通信技术领域,具体涉及一种几何重建方法、装置及设备。The present application belongs to the field of communication technology, and specifically relates to a geometric reconstruction method, device and equipment.

背景技术Background Art

在点云基于几何的点云压缩(Geometry Point Cloud Compression,G-PCC)编码器框架中,点云的几何信息和属性信息是分开进行编码的。其中几何信息存在两种编码方法,即基于多叉树的几何编码和基于预测树几何编码。在基于多叉树几何编码方法中,Trisoup几何编码算法逐渐体现出优异的压缩性能。In the geometry-based point cloud compression (G-PCC) encoder framework, the geometric and attribute information of a point cloud are encoded separately. Two methods exist for encoding geometric information: multitree-based geometry encoding and prediction tree-based geometry encoding. Among these multitree-based geometry encoding methods, the Trisoup geometry encoding algorithm has demonstrated superior compression performance.

在相关技术中的Trisoup几何编码算法中,为了节省码流,节点与节点之间共用多次的边上的顶点仅编码一个标识信息和2bit位置信息。这一做法忽略了节点与节点之间点云分布的差异性。尤其当节点较大时,节点内部点云分布不均匀,比如一些顶点周围不存在原始点云,因此并不是所有顶点都适用于进行点云重建的。如果仍然采用相关技术中的点云重建方法,很可能会导致重建点云的失真较大。In the Trisoup geometric coding algorithm in related technologies, in order to save code streams, vertices on edges that are shared multiple times between nodes are only encoded with one identification information and 2 bits of position information. This approach ignores the differences in point cloud distribution between nodes. Especially when the nodes are large, the point cloud distribution within the nodes is uneven. For example, there is no original point cloud around some vertices, so not all vertices are suitable for point cloud reconstruction. If the point cloud reconstruction method in related technologies is still used, it is likely to cause significant distortion of the reconstructed point cloud.

发明内容Summary of the Invention

本申请实施例提供一种几何重建方法、装置及设备,能够解决重建点云失真较大的问题。The embodiments of the present application provide a geometric reconstruction method, apparatus, and device that can solve the problem of large distortion in reconstructed point clouds.

第一方面,提供了一种几何重建方法,由解码端执行,该方法包括:In a first aspect, a geometric reconstruction method is provided, which is performed by a decoding end and includes:

解码端解码第一码流,获得第一标志,所述第一标志用于指示三角形集合(Triangle soup,Trisoup)节点对应的几何结构中的原始点云分布信息;The decoding end decodes the first code stream to obtain a first flag, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a triangle soup (Trisoup) node;

所述解码端根据所述第一标志对所述几何结构中的顶点进行处理;The decoding end processes the vertices in the geometric structure according to the first flag;

所述解码端使用处理后的顶点重构点云。The decoding end reconstructs the point cloud using the processed vertices.

第二方面,提供了一种几何重建方法,由编码端执行,该方法包括:In a second aspect, a geometric reconstruction method is provided, which is performed by an encoding end and includes:

编码端对第一标志进行编码,获得第一码流,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;The encoding end encodes the first flag to obtain a first code stream, where the first flag is used to indicate original point cloud distribution information in the geometric structure corresponding to the Trisoup node;

所述编码端根据所述第一标志对所述几何结构中的顶点进行处理;The encoding end processes the vertices in the geometric structure according to the first flag;

所述编码端使用处理后的顶点重构点云。The encoder reconstructs the point cloud using the processed vertices.

第三方面,提供了一种几何重建装置,应用于解码端,所述装置包括:In a third aspect, a geometric reconstruction device is provided, which is applied to a decoding end, and the device includes:

第一解码模块,用于解码第一码流,获得第一标志,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;A first decoding module is configured to decode the first code stream to obtain a first flag, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node;

第一处理模块,用于根据所述第一标志对所述几何结构中的顶点进行处理;a first processing module, configured to process vertices in the geometric structure according to the first flag;

第二处理模块,用于使用处理后的顶点重构点云。The second processing module is used to reconstruct the point cloud using the processed vertices.

第四方面,提供了一种几何重建装置,应用于编码端,所述装置包括:In a fourth aspect, a geometric reconstruction device is provided, which is applied to an encoding end, and the device includes:

第一编码模块,用于对第一标志进行编码,获得第一码流,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;A first encoding module, configured to encode a first flag to obtain a first code stream, wherein the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node;

第三处理模块,用于根据所述第一标志对所述几何结构中的顶点进行处理;a third processing module, configured to process vertices in the geometric structure according to the first flag;

第四处理模块,用于使用处理后的顶点重构点云。The fourth processing module is used to reconstruct the point cloud using the processed vertices.

第五方面,提供了一种电子设备,该终端包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。In a fifth aspect, an electronic device is provided, which terminal includes a processor and a memory, wherein the memory stores programs or instructions that can be run on the processor, and when the program or instructions are 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.

第六方面,提供了一种电子设备,包括处理器及通信接口,其中,所述处理器用于:解码第一码流,获得第一标志,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;根据所述第一标志对所述几何结构中的顶点进行处理;使用处理后的顶点重构点云;或者,所述处理器用于:对第一标志进行编码,获得第一码流,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;根据所述第一标志对所述几何结构中的顶点进行处理;使用处理后的顶点重构点云。In a sixth aspect, an electronic device is provided, comprising a processor and a communication interface, wherein the processor is used to: decode a first code stream to obtain a first flag, the first flag being used to indicate the original point cloud distribution information in the geometric structure corresponding to the Trisoup node; process the vertices in the geometric structure according to the first flag; and reconstruct the point cloud using the processed vertices; or, the processor is used to: encode the first flag to obtain a first code stream, the first flag being used to indicate the original point cloud distribution information in the geometric structure corresponding to the Trisoup node; process the vertices in the geometric structure according to the first flag; and reconstruct the point cloud using the processed vertices.

第七方面,提供了一种电子设备,包括:存储器,被配置为存储视频数据,以及处理电路,被配置为实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。In a seventh aspect, an electronic device is provided, comprising: a memory configured to store video data, and a processing circuit configured 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.

第八方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。In an eighth aspect, a readable storage medium is provided, on which a program or instruction is stored. When 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.

第九方面,提供了一种编解码系统,包括:编码端设备及解码端设备,所述编码端设备可用于执行如第二方面所述的方法的步骤,所述解码端设备可用于执行如第一方面所述的方法的步骤。In the ninth aspect, a coding and decoding system is provided, 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 second aspect, and the decoding end device can be used to execute the steps of the method described in the first aspect.

第十方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法的步骤,或实现如第二方面所述的方法的步骤。In the tenth aspect, a chip is provided, which includes a processor and a communication interface, the communication interface and the processor are coupled, and the processor is used to run programs or instructions 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.

第十一方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或者实现如第二方面所述的方法的步骤。In the eleventh aspect, a computer program/program product is provided, which is stored in a storage medium and 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.

第十二方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如第一方面所述的方法的步骤,或实现如第二方面所述的方法的步骤。In a twelfth aspect, a computer program product is provided, comprising computer instructions, which, when executed by a processor, implement the steps of the method described in the first aspect, or implement the steps of the method described in the second aspect.

在本申请实施例中,解码端解码获得第一标志,根据第一标志可以确定几何结构中的原始点云的分布情况,进而对几何结构中的顶点进行处理,使用处理后的顶点重构点云。通过对顶点进行处理,能够去掉错误点云,减少重建点云的失真情况,提高重建点云的性能增益。In the embodiment of the present application, the decoding end decodes and obtains a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1是本申请实施例提供的编解码系统的示意图;FIG1 is a schematic diagram of a coding and decoding system provided in an embodiment of the present application;

图2a是基于AVS-PCC的编码框架的编码器执行的编码流程图;FIG2 a is a flowchart of encoding performed by an encoder based on an AVS-PCC encoding framework;

图2b是基于MPEG G-PCC的编码框架的编码器执行的编码流程图;FIG2 b is a flowchart of encoding performed by an encoder based on the MPEG G-PCC encoding framework;

图3a是基于AVS-PCC的解码框架的解码器执行的解码流程图;FIG3 a is a flowchart of decoding performed by a decoder based on the AVS-PCC decoding framework;

图3b是基于MPEG G-PCC的解码框架的解码器执行的解码流程图;FIG3 b is a flowchart of decoding performed by a decoder based on the MPEG G-PCC decoding framework;

图4是本申请实施例的几何重建方法的流程示意图之一;FIG4 is a schematic diagram of a flow chart of a geometric reconstruction method according to an embodiment of the present application;

图5是本申请实施例的重构表面的示意图;FIG5 is a schematic diagram of a reconstructed surface according to an embodiment of the present application;

图6是Trisoup节点对应的几何结构的示意图;FIG6 is a schematic diagram of the geometric structure corresponding to the Trisoup node;

图7是本申请实施例的解码过程的流程示意图;FIG7 is a schematic flow chart of a decoding process according to an embodiment of the present application;

图8是本申请实施例的几何重建方法的流程示意图之二;FIG8 is a second flow chart of the geometric reconstruction method according to an embodiment of the present application;

图9是本申请实施例的编码过程的流程示意图;FIG9 is a schematic flow chart of the encoding process according to an embodiment of the present application;

图10是本申请实施例的几何重建装置的结构示意图之一;FIG10 is a schematic diagram of a structure of a geometric reconstruction device according to an embodiment of the present application;

图11是本申请实施例的几何重建装置的结构示意图之二;FIG11 is a second structural diagram of the geometric reconstruction device according to an embodiment of the present application;

图12是本申请实施例的电子设备的结构示意图;FIG12 is a schematic structural diagram of an electronic device according to an embodiment of the present application;

图13是本申请实施例的终端的结构示意图。FIG13 is a schematic structural diagram of a terminal according to an embodiment of the present application.

具体实施方式DETAILED DESCRIPTION

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。The following will be combined with the accompanying drawings in the embodiments of this application to clearly describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field are within the scope of protection of this application.

本申请的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,本申请中的“或”表示所连接对象的至少其中之一。例如“A或B”涵盖三种方案,即,方案一:包括A且不包括B;方案二:包括B且不包括A;方案三:既包括A又包括B。字符“/”一般表示前后关联对象是一种“或”的关系。The terms "first", "second", etc. in this 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 the same type, and do not limit the number of objects, for example, the first object can be one or more. In addition, "or" in this application represents at least one of the connected objects. For example, "A or B" covers three options, namely, Option 1: including A but not including B; Option 2: including B but not including A; Option 3: including both A and B. The character "/" generally indicates that the objects associated before and after are in an "or" relationship.

在介绍本申请实施例提供的技术方案之前,首先介绍其中的一些名词的含义。Before introducing the technical solutions provided by the embodiments of the present application, the meanings of some of the terms are first introduced.

点云(Point Cloud):点云是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。可以根据不同的分类标准将点云划分为不同的类别,例如,按照点云的获取方式划分,可以分为密集型点云和稀疏型点云;又如,按照点云的时序类型划分,可以分为静态点云和动态点云。Point Cloud: A point cloud is a set of irregularly distributed discrete points in space that represent the spatial structure and surface properties of a 3D object or scene. Point clouds can be categorized into different types based on different classification criteria. For example, based on how the point cloud is acquired, they can be divided into dense point clouds and sparse point clouds. Based on the temporal nature of the point cloud, they can be divided into static point clouds and dynamic point clouds.

点云数据(Point Cloud Data):点云中各个点具备的几何坐标信息和属性信息共同组成点云数据。其中,几何坐标信息也可以称为三维位置信息,点云中某个点的几何坐标信息是指该点的空间坐标(x,y,z),可以包括该点在三维坐标系统的各个坐标轴方向上的坐标值,例如,X轴方向上的坐标值x,Y轴方向上的坐标值y和Z轴方向上的坐标值z。点云中某个点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率)。通常,点云中的每个点具有相同数量的属性信息,例如,点云中的每个点都可以具有颜色信息和激光反射强度两种属性信息,又如,点云中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。Point Cloud Data: The geometric coordinate information and attribute information of each point in the point cloud together constitute the point cloud data. Among them, the geometric coordinate information can also be called three-dimensional position information. The geometric coordinate information of a point in the point cloud refers to the spatial coordinates (x, y, z) of the point, which can include the coordinate values of the point in the directions of each coordinate axis of the three-dimensional coordinate system, for example, the coordinate value x in the X-axis direction, the coordinate value y in the Y-axis direction, and the coordinate value z in the Z-axis direction. The attribute information of a point in the point cloud can include at least one of the following: color information, material information, laser reflection intensity information (also called reflectivity). Usually, each point in the point cloud has the same amount of attribute information. For example, each point in the point cloud can have two kinds of attribute information: color information and laser reflection intensity. For another example, each point in the point cloud can have three kinds of attribute information: color information, material information, and laser reflection intensity information.

点云编码(Point Cloud Compression,PCC):点云编码是指对点云中各点的几何坐标信息和属性信息进行编码,得到压缩码流的过程。点云编码可以包括几何坐标信息编码和属性信息编码两个主要过程。目前,可对点云进行压缩的点云编码框架可以是运动图像专家组(Moving Picture Experts Group,MPEG)提供的基于几何的点云压缩(Geometry Point Cloud Compression,G-PCC)编解码框架或基于视频的点云压缩(Video Point Cloud Compression,V-PCC)编解码框架,也可以是音视频标准(Audio Video Standard,AVS)提供的AVS-PCC编解码框架。Point Cloud Compression (PCC): Point cloud coding refers to the process of encoding the geometric coordinate information and attribute information of each point in the point cloud to obtain a compressed code stream. Point cloud coding can include two main processes: geometric coordinate information encoding and attribute information encoding. Currently, the point cloud coding framework that can compress point clouds can be the geometry-based Point Cloud Compression (G-PCC) codec framework provided by the Moving Picture Experts Group (MPEG) or the video-based Point Cloud Compression (V-PCC) codec framework, or the AVS-PCC codec framework provided by the Audio Video Standard (AVS).

点云解码:点云解码是指对点云编码得到的压缩码流进行解码,以重建点云的过。详细地说,是指基于压缩码流中的几何比特流和属性比特流,重建点云中各点的几何坐标信息和属性信息的过程。在解码端获得压缩码流之后,对于几何比特流,首先进行熵解码,得到点云中各点量化后的信息,然后进行反量化,以重建点云中各点的几何坐标信息。而对于属性比特流,首先进行熵解码,得到点云中各点量化后的属性残差信息或量化后的变换系数;然后对量化后的属性残差信息进行反量化得到重建残差信息,对量化后的变换系数进行反量化得到重建变换系数,重建变换系数经反变换后得到重建残差信息,根据点云中各点的重建残差信息可以重建点云中各点的属性信息。将点云中各点重建的属性信息,按顺序与重建的几何坐标信息一一对应,以重建点云。Point cloud decoding: Point cloud decoding refers to the process of decoding the compressed bitstream obtained from point cloud encoding to reconstruct the point cloud. Specifically, it refers to the process of reconstructing the geometric coordinate information and attribute information of each point in the point cloud based on the geometric bitstream and attribute bitstream in the compressed bitstream. After obtaining the compressed bitstream at the decoding end, the geometric bitstream is first entropy decoded to obtain the quantized information of each point in the point cloud, and then dequantized to reconstruct the geometric coordinate information of each point in the point cloud. For the attribute bitstream, entropy decoding is first performed to obtain the quantized attribute residual information or quantized transform coefficients of each point in the point cloud. The quantized attribute residual information is then dequantized to obtain the reconstructed residual information, and the quantized transform coefficients are dequantized to obtain the reconstructed transform coefficients. The reconstructed transform coefficients are then inversely transformed to obtain the reconstructed residual information. Based on the reconstructed residual information of each point in the point cloud, the attribute information of each point in the point cloud can be reconstructed. The reconstructed attribute information of each point in the point cloud is sequentially associated with the reconstructed geometric coordinate information to reconstruct the point cloud.

图1是本申请实施例提供的编解码系统10的示意图。本申请实施例的技术方案涉及对点云数据进行编解码(CODEC)(包括编码或解码)。Figure 1 is a schematic diagram of a codec system 10 provided in an embodiment of the present application. The technical solution of the embodiment of the present application involves performing codec (including encoding or decoding) on point cloud data.

如图1所示,编解码系统10包括源设备100,源设备100提供被目的地设备110解码和显示的已编码的点云数据。具体地,源设备100经由通信介质120向目的地设备110提供点云数据。源设备100和目的地设备110可以包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、移动电话、可穿戴设备(例如智能手表或可穿戴相机)、电视、相机、显示设备、车载设备、虚拟现实(virtual reality,VR)设备、增强现实(Augmented reality,AR)设备、混合现实(mixed reality,MR)设备、数字媒体播放器、视频游戏控制台、视频会议设备、视频流式传输设备、广播接收器设备、广播发射器设备、航天器、飞机、机器人、卫星等任意一种或多种。As shown in FIG1 , the codec system 10 includes a source device 100 that provides encoded point cloud data that is decoded and displayed by a destination device 110. Specifically, the source device 100 provides the point cloud data to the destination device 110 via a communication medium 120. The source device 100 and the destination device 110 may include any one or more of a desktop computer, a notebook (i.e., laptop) computer, a tablet computer, a set-top box, a mobile phone, a wearable device (e.g., a smart watch or a wearable camera), a television, a camera, a display device, an in-vehicle device, a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (MR) device, a digital media player, a video game console, a video conferencing device, a video streaming device, a broadcast receiver device, a broadcast transmitter device, a spacecraft, an aircraft, a robot, a satellite, and the like.

在图1的示例中,源设备100包括数据源101、存储器102、编码器200以及输出接口104。目的地设备110包括输入接口111、解码器300、存储器113和显示设备114。源设备100表示编码设备的示例,而目的地设备110表示解码设备的示例。在其他示例中,源设备100和目的地设备110可以不包括图1中的部分组件,或者也可以包括图1以外的其他组件。例如,源设备100可以通过外部捕获设备获取点云数据。同样,目的地设备110可以与外部显示设备接口连接,而不包括集成的显示设备。再例如,存储器102、存储器113可以是外置的存储器。In the example of Figure 1, the source device 100 includes a data source 101, a memory 102, an encoder 200, and an output interface 104. The destination device 110 includes an input interface 111, a decoder 300, a memory 113, and a display device 114. The source device 100 represents an example of an encoding device, while the destination device 110 represents an example of a decoding device. In other examples, the source device 100 and the destination device 110 may not include some of the components in Figure 1, or may include other components other than Figure 1. For example, the source device 100 may obtain point cloud data through an external capture device. Similarly, the destination device 110 may be connected to an external display device interface without including an integrated display device. For another example, the memory 102 and the memory 113 may be external memories.

虽然图1将源设备100和目的地设备110绘示为单独的设备,但在一些示例中,二者也可以集成在一个设备中。在此类实施例中,可以使用相同硬件或软件,或使用单独的硬件或软件,或其任何组合来实施源设备100对应的功能以及目的地设备110对应的功能。Although FIG1 illustrates source device 100 and destination device 110 as separate devices, in some examples, the two may be integrated into a single device. In such embodiments, the functions corresponding to source device 100 and the functions corresponding to destination device 110 may be implemented using the same hardware or software, or using separate hardware or software, or any combination thereof.

在一些示例中,源设备100和目的地设备110可以进行单向数据传输或双向数据传输。如果是双向数据传输,则源设备100和目的设备110可以以基本对称的方式操作,即源设备100和目的地设备110中的每一个都包括编码器和解码器。In some examples, source device 100 and destination device 110 can perform unidirectional data transmission or bidirectional data transmission. If bidirectional data transmission is performed, source device 100 and destination device 110 can operate in a substantially symmetrical manner, that is, each of source device 100 and destination device 110 includes an encoder and a decoder.

数据源101表示点云数据的源(即,原始的、未编码的点云数据)并且向编码器200提供包含点云数据,编码器103对点云数据进行编码。源设备100可以包括捕获设备(例如摄像设备、传感设备或扫描设备)、包括先前捕获的点云数据的存档或用于从数据内容提供商接收点云数据的馈送接口。其中,摄像设备可以包括普通摄像头、立体摄像头、以及光场摄像头等,传感设备可以包括激光设备、雷达设备等,扫描设备可以包括三维激光扫描设备等。通过捕获设备采集真实世界的视觉场景可以得到点云数据。作为替代,数据源101可以生成基于计算机图形的数据作为源数据,或者对实时数据、存档数据和计算机生成的数据进行组合。例如,数据源根据虚拟对象(例如通过三维建模得到的虚拟三维物体及虚拟三维场景)的生成点云数据。The data source 101 represents the source of point cloud data (i.e., raw, unencoded point cloud data) and provides the point cloud data to the encoder 200, and the encoder 103 encodes the point cloud data. The source device 100 may include a capture device (e.g., a camera device, a sensor device, or a scanning device), an archive of previously captured point cloud data, or a feed interface for receiving point cloud data from a data content provider. Among them, the camera device may include an ordinary camera, a stereo camera, and a light field camera, etc., the sensor device may include a laser device, a radar device, etc., and the scanning device may include a three-dimensional laser scanning device, etc. Point cloud data can be obtained by capturing a real-world visual scene through a capture device. Alternatively, the data source 101 may generate computer graphics-based data as source data, or combine real-time data, archived data, and computer-generated data. For example, the data source generates point cloud data based on a virtual object (e.g., a virtual three-dimensional object and a virtual three-dimensional scene obtained by three-dimensional modeling).

编码器200对所捕获的、预捕获的或计算机生成的数据进行编码。编码器200可以将点云数据从所接收的顺序(有时被称为“显示顺序″)重新按照编码顺序布置。编码器200可以生成包括已编码的点云数据的比特流。源设备100随后可以经由输出接口104将已编码的点云数据输出到通信介质120上,以供例如目的地设备110的输入接口111接收或检索。The encoder 200 encodes captured, pre-captured, or computer-generated data. The encoder 200 can rearrange the point cloud data from the order in which it was received (sometimes referred to as "display order") into an encoding order. The encoder 200 can generate a bitstream comprising the encoded point cloud data. The source device 100 can then output the encoded point cloud data to the communication medium 120 via the output interface 104 for receipt or retrieval by, for example, the input interface 111 of the destination device 110.

源设备100的存储器102和目的地设备110的存储器113表示通用存储器。在一些示例中,存储器102可以存储来自数据源101的原始数据,存储器113可以存储来自解码器300的已解码的点云数据。附加地或替代地,存储器102、113可以分别存储能由例如编码器200和解码器300执行的软件指令。尽管在此示例中存储器102和存储器113与编码器200和解码器300被分开地示出,但应理解,编码器200和解码器300还可以包括用于功能上类似或等同目的的内部存储器。若编码器200和解码器300部署在同一个硬件设备上,存储器102和存储器113可以是同一个存储器。此外,存储器102、113可以存储例如从编码器200输出且被输入到解码器300的已编码的点云数据。在一些示例中,存储器102、113的部分可以被分配为一个或多个点云缓冲器,例如用于存储原始的、已解码的或已编码的点云数据。Memory 102 of source device 100 and memory 113 of destination device 110 represent general-purpose memories. In some examples, memory 102 may store raw data from data source 101, and memory 113 may store decoded point cloud data from decoder 300. Additionally or alternatively, memories 102 and 113 may store software instructions executable by, for example, encoder 200 and decoder 300, respectively. Although memory 102 and memory 113 are shown separately from encoder 200 and decoder 300 in this example, it should be understood that encoder 200 and decoder 300 may also include internal memory for functionally similar or equivalent purposes. If encoder 200 and decoder 300 are deployed on the same hardware device, memory 102 and memory 113 may be the same memory. Furthermore, memories 102 and 113 may store, for example, encoded point cloud data output from encoder 200 and input to decoder 300. In some examples, portions of memory 102 , 113 may be allocated as one or more point cloud buffers, eg, for storing raw, decoded, or encoded point cloud data.

在一些示例中,源设备100可以将已编码的数据从输出接口104输出到存储器113。类似地,目的地设备110可以经由输入接口111从存储器113访问已编码的数据。存储器113或存储器102可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬驱动器、蓝光光盘、数字多功能光盘(Digital Versatile Disc,DVD)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、闪存、易失性或非易失性存储器或者用于存储已编码的点云数据的任何其他合适的数字存储介质。In some examples, source device 100 can output the encoded data from output interface 104 to memory 113. Similarly, destination device 110 can access the encoded data from memory 113 via input interface 111. Memory 113 or storage 102 can include any of a variety of distributed or locally accessed data storage media, such as a hard drive, a Blu-ray disc, a Digital Versatile Disc (DVD), a Compact Disc Read-Only Memory (CD-ROM), flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded point cloud data.

输出接口104可以包括能够将已编码的点云数据从源设备100发送至目的地设备110的任何类型的介质或设备。例如,输出接口104可以包括被配置为将已编码的点云数据从源设备100直接实时发送至目的地设备110的发送器或收发器,例如天线。已编码的点云数据可以根据无线通信协议的通信标准被调制,并且被发送至目的地设备110。The output interface 104 may include any type of medium or device capable of transmitting the encoded point cloud data from the source device 100 to the destination device 110. For example, the output interface 104 may include a transmitter or transceiver, such as an antenna, configured to transmit the encoded point cloud data directly from the source device 100 to the destination device 110 in real time. The encoded point cloud data may be modulated according to a communication standard of a wireless communication protocol and transmitted to the destination device 110.

通信介质120可以包括瞬时介质,诸如无线广播或有线网络传输。例如,通信介质120可以包括射频(radio frequency,RF)频谱或者一个或更多个物理传输线(例如,电缆)。通信介质120可以形成基于分组的网络(诸如局域网、广域网或诸如互联网的全球网络)的一部分。通信介质120也可以采用存储介质(例如,非暂时性存储介质)的形式,诸如硬盘、闪存驱动器、压缩盘、数字点云盘、蓝光光盘、易失性或非易失性存储器或用于存储已编码的点云数据的任何其它合适的数字存储介质。The communication medium 120 may include a transient medium such as a wireless broadcast or a wired network transmission. For example, the communication medium 120 may include a radio frequency (RF) spectrum or one or more physical transmission lines (e.g., cables). The communication medium 120 may form part of a packet-based network such as a local area network, a wide area network, or a global network such as the Internet. The communication medium 120 may also take the form of a storage medium (e.g., a non-transitory storage medium) such as a hard disk, a flash drive, a compact disk, a digital point cloud disk, a Blu-ray disc, a volatile or non-volatile memory, or any other suitable digital storage medium for storing the encoded point cloud data.

在一些实施方式中,通信介质120可以包括路由器、交换机、基站或可以用于促进从源设备100到目的地设备110的通信的任何其它设备。例如,服务器(图中未示出)可以从源设备100接收已编码的点云数据提供给目的地设备110,例如,经由网络传输提供给目的地设备110。该服务器可以包括(例如,用于网站的)web服务器、被配置为提供文件传输协议服务(诸如文件传输协议(File Transfer Protocol,FTP)或单向文件传输(File Delivery Over Unidirectional Transport,FLUTE)协议)的服务器、内容递送网络(content delivery network,CDN)设备、超文本传输协议(Hypertext Transfer Protocol,HTTP)服务器、多媒体广播多播服务(Multimedia Broadcast Multicast Services,MBMS)或增强型MBMS(evolved Multimedia Broadcast Multicast Service,eMBMS)服务器或网络附属存储(Network-attached storage,NAS)设备等。服务器可以实施一个或多个HTTP流式传输协议,诸如MPEG媒体传输(MPEG Media Transport,MMT)协议、基于HTTP的动态自适应流式传输(Dynamic Adaptive Streaming over HTTP,DASH)协议、HTTP实时流式传输(HTTP Live Streaming,HLS)协议或实时流式传输协议(Real Time Streaming Protocol,RTSP)等。In some embodiments, the communication medium 120 may include a router, a switch, a base station, or any other device that can be used to facilitate communication from the source device 100 to the destination device 110. For example, a server (not shown) can receive the encoded point cloud data from the source device 100 and provide it to the destination device 110, for example, by transmitting it to the destination device 110 via a network. The server may include, for example, a web server (for a website), a server configured to provide file transfer protocol services (such as File Transfer Protocol (FTP) or File Delivery Over Unidirectional Transport (FLUTE) protocol), a content delivery network (CDN) device, a Hypertext Transfer Protocol (HTTP) server, a Multimedia Broadcast Multicast Services (MBMS) or an evolved Multimedia Broadcast Multicast Service (eMBMS) server, or a network-attached storage (NAS) device, etc. The server can implement one or more HTTP streaming protocols, such as MPEG Media Transport (MMT) protocol, Dynamic Adaptive Streaming over HTTP (DASH) protocol, HTTP Live Streaming (HLS) protocol or Real Time Streaming Protocol (RTSP).

目的地设备110可以从服务器访问已编码的点云数据,例如通过用于访问被存储在服务器上的已编码的点云数据的无线信道(例如,Wi-Fi连接)或有线连接(例如,数字订户线(Digital subscriber line,DSL)、电缆调制解调器等)。The destination device 110 can access the encoded point cloud data from the server, for example, via a wireless channel (e.g., a Wi-Fi connection) or a wired connection (e.g., a digital subscriber line (DSL), a cable modem, etc.) for accessing the encoded point cloud data stored on the server.

输出接口104和输入接口111可以表示无线发送器/接收器、调制解调器、有线联网组件(例如,以太网卡)、根据IEEE 802.11标准或IEEE 802.15标准(例如,ZigBeeTM)、蓝牙标准等)操作的无线通信组件或者其他物理组件。在输出接口104和输入接口111包括无线组件的示例中,输出接口104和输入接口111可以被配置为根据WIFI、以太网、蜂窝网络(诸如第四代移动通信技术(4th Generation,4G)、长期演进(Long Term Evolution,LTE)、高级LTE、第五代移动通信技术(5th Generation,5G)、第六代移动通信技术(6th Generation,6G)等)来传递数据,诸如已编码的点云数据。The output interface 104 and the input interface 111 may represent a wireless transmitter/receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to the IEEE 802.11 standard or the IEEE 802.15 standard (e.g., ZigBee™), the Bluetooth standard, or other physical components. In examples where the output interface 104 and the input interface 111 include wireless components, the output interface 104 and the input interface 111 may be configured to transmit data, such as encoded point cloud data, according to WIFI, Ethernet, a cellular network (such as 4th Generation (4G), Long Term Evolution (LTE), Advanced LTE, 5th Generation (5G), 6th Generation (6G)), etc.).

本申请实施例提供的技术可以被应用于支持诸如以下一种或多种应用场景:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。The technology provided in the embodiments of the present application can be applied to support one or more application scenarios such as: machine perception of point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, emergency rescue robots, etc.; human eye perception of point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive communication, and three-dimensional immersive interaction.

目的地设备110的输入接口111从通信介质120接收已编码的比特流(bitstream)。已编码的比特流可以包括高层语法元素和已编码的数据单元(例如序列、图片组、图片、切片、块等),其中高层语法元素用于对已编码的数据单元进行解码,得到已解码的点云数据。显示设备114向用户显示已解码的点云数据。显示设备114可以包括阴极射线管(Cathode ray tube,CRT)、液晶显示器(liquid-crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其他类型的显示设备。在一些示例中,目的地设备110可以没有显示设备114,例如若已解码的点云数据被用于确定物理对象的位置,显示设备114可以替换为处理器。Input interface 111 of destination device 110 receives an encoded bitstream from communication medium 120. The encoded bitstream may include high-level syntax elements and encoded data units (e.g., sequences, groups of pictures, pictures, slices, blocks, etc.), wherein the high-level syntax elements are used to decode the encoded data units to obtain decoded point cloud data. Display device 114 displays the decoded point cloud data to a user. Display device 114 may include a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or other types of display devices. In some examples, destination device 110 may not have display device 114. For example, if the decoded point cloud data is used to determine the position of a physical object, display device 114 may be replaced by a processor.

编码器200和解码器300可以被实施为各种处理电路中的一个或多个,该处理电路可以包括微处理器、数字信号处理器(Digital Signal Processors,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Arrays,FPGA)、分立逻辑、硬件或其任何组合。当所述技术全部或部分地被实施在软件中时,设备可以将用于软件的指令存储在适当的非暂态计算机可读存储介质中,并且使用一个或多个处理器在硬件中执行指令以执行本申请实施例提供的技术。The encoder 200 and the decoder 300 may be implemented as one or more of a variety of processing circuits, which may include a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), discrete logic, hardware, or any combination thereof. When the technology is implemented in whole or in part in software, the device may store instructions for the software in an appropriate non-transitory computer-readable storage medium and use one or more processors to execute the instructions in hardware to perform the technology provided in the embodiments of the present application.

下面以G-PCC和AVS-PCC编解码框架为例对本申请实施例提供的编码器200和解码器300的基本原理进行介绍。The following describes the basic principles of the encoder 200 and decoder 300 provided in the embodiments of the present application, taking the G-PCC and AVS-PCC codec frameworks as examples.

G-PCC及AVS-PCC的编解码框架大致相同。如图2a示出了基于AVS-PCC的编码框架的编码器执行的编码流程图,如图2b示出了基于MPEG G-PCC的编码框架的编码器执行的编码流程图,上述编码器可以是图1所示的编码器200。上述编码框架大体均可以分为几何坐标信息编码过程以及属性信息编码过程。在几何信息编码过程中,对点云中各点的几何坐标信息进行编码,得到几何比特流;在属性信息编码过程中,对点云中各点的属性信息进行编码,得到属性比特流;几何比特流和属性比特流共同组成点云的压缩码流。The encoding and decoding frameworks of G-PCC and AVS-PCC are roughly the same. Figure 2a shows a coding flow chart executed by an encoder based on the AVS-PCC coding framework, and Figure 2b shows a coding flow chart executed by an encoder based on the MPEG G-PCC coding framework. The above encoders may be encoder 200 shown in Figure 1. Both of these coding frameworks can be roughly divided into a geometric coordinate information encoding process and an attribute information encoding process. In the geometric information encoding process, the geometric coordinate information of each point in the point cloud is encoded to obtain a geometric bitstream; in the attribute information encoding process, the attribute information of each point in the point cloud is encoded to obtain an attribute bitstream; the geometric bitstream and the attribute bitstream together constitute the compressed bitstream of the point cloud.

对于几何信息编码过程,编码器200执行的编码流程如下:For the geometric information encoding process, the encoding process performed by the encoder 200 is as follows:

1、预处理(Pre-Processing):可以包括坐标变换(Transform Coordinates)和体素化(Voxelize)。通过缩放和平移的操作,预处理是将三维空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。在一些示例中,编码器200可以不进行预处理。1. Pre-processing: This may include coordinate transformation and voxelization. Pre-processing converts point cloud data in three-dimensional space into integer form through scaling and translation operations, and moves its minimum geometric position to the coordinate origin. In some examples, encoder 200 may not perform pre-processing.

2、几何编码:对于AVS-PCC编码框架,几何编码包括两种模式,分别是基于多叉树(Octree)的几何编码和基于预测树的几何编码。对于G-PCC编码框架,几何编码包括三种模式,分别是基于多叉树的几何编码、基于三角表示(Trisoup)的几何编码以及基于预测树的预测编码。其中:2. Geometric coding: For the AVS-PCC coding framework, geometric coding includes two modes, namely, geometric coding based on multi-tree (Octree) and geometric coding based on prediction tree. For the G-PCC coding framework, geometric coding includes three modes, namely, geometric coding based on multi-tree, geometric coding based on trisoup, and prediction coding based on prediction tree. Among them:

基于多叉树的几何编码,例如基于八叉树的几何编码:八叉树是一种树形数据结构,在三维空间划分中,对预先设定的包围盒(bounding box)进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用“1”和“0”指示,获得占用码信息(Occupancy Code)作为点云几何信息的码流。Multitree-based geometric coding, such as octree-based geometric coding: An octree is a tree-like data structure that evenly divides a predefined bounding box in three-dimensional space, with each node having eight children. By indicating whether each child node in the octree is occupied using "1" or "0", occupancy codes are generated as the code stream of point cloud geometric information.

基于预测树的几何编码:采用预测策略生成预测树,从预测树的根节点开始遍历每个节点,对遍历到的每个节点对应的残差坐标值进行编码。Geometric coding based on prediction tree: A prediction strategy is used to generate a prediction tree, and each node is traversed from the root node of the prediction tree, and the residual coordinate value corresponding to each traversed node is encoded.

基于三角表示的几何编码:将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点(称为顶点)。通过编码块上各边是否有交点以及交点的位置实现几何信息的压缩。Triangle-based geometric encoding: Divide the point cloud into blocks of a certain size and locate the intersection points (called vertices) of the point cloud surface at the edges of the blocks. The geometric information is compressed by encoding whether each edge on the block has an intersection and the location of the intersection point.

3、几何熵编码(Geometry Entropy Encoding):针对多叉树的占用码信息、预测树的预测残差信息和三角表示的顶点信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。3. Geometry Entropy Encoding: Statistical compression encoding is performed on the occupancy code information of the multi-branch tree, the prediction residual information of the prediction tree, and the vertex information of the triangle representation, and the final output is a binary (0 or 1) compressed code stream. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal. A commonly used statistical coding method is context-based binary arithmetic coding (CABAC).

4、几何重建:对几何编码后的几何信息进行解码和重建。4. Geometric reconstruction: Decode and reconstruct the geometric information after geometric encoding.

对于属性信息编码过程,编码器200执行的编码流程如下:For the attribute information encoding process, the encoding process performed by the encoder 200 is as follows:

1、颜色变换:应用变换以将属性的颜色信息变换到不同的域,例如,可以将颜色信息从RGB颜色空间变换到YCbCr颜色空间。1. Color transformation: Apply a transformation to transform the color information of an attribute to a different domain. For example, the color information can be transformed from the RGB color space to the YCbCr color space.

2、属性重上色(Recoloring):有损编码情况下,在几何坐标信息编码后,需编码端解码并重建几何信息,即恢复点云中各点的几何信息。在原始的点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。2. Attribute Recoloring: In lossy encoding, after encoding the geometric coordinates, the encoder needs to decode and reconstruct the geometry, restoring the geometry of each point in the point cloud. The attribute information of one or more neighboring points in the original point cloud is searched for and used as the attribute information for the reconstructed point.

在一些示例中,编码器200可以不执行颜色变换或属性重上色。In some examples, encoder 200 may not perform color conversion or attribute recoloring.

3、属性信息处理:在AVS-PCC中,属性信息处理可以包括三种模式,分别是预测(Prediction)编码、变换(Transform)编码以及预测变换(Prediction&Transform)编码,这三种编码模式可以在不同的条件下使用。3. Attribute information processing: In AVS-PCC, attribute information processing can include three modes, namely prediction coding, transform coding, and prediction and transform coding. These three coding modes can be used under different conditions.

其中,预测编码是指根据距离或空间关系等信息,在已编码点中确定待编码点的邻居点作为预测点,基于设定的准则,根据预测点的属性信息计算待编码点的预测属性信息。计算待编码点的真实属性信息与预测属性信息之间的差值作为属性残差信息,对属性残差信息进行量化、变换(可选)及熵编码。Predictive coding involves determining neighboring points of the point to be coded from among the coded points based on information such as distance or spatial relationships, and then calculating predicted attribute information for the point to be coded based on the attribute information of the predicted points, based on a set criterion. The difference between the actual attribute information of the point to be coded and the predicted attribute information is calculated as the attribute residual information, which is then quantized, transformed (optionally), and entropy coded.

变换编码是指利用离散余弦变换(Discrete Cosine Transform,DCT)、哈尔变换(Haar Transform,Haar)等变换方法,对属性信息进行分组、变换,对变换系数做量化;通过逆量化,逆变换后得到属性重建信息;计算真实属性信息和属性重建信息的差得到属性残差信息并对其量化;将量化后的变换系数和属性残差进行熵编码。Transform coding refers to the use of transformation methods such as Discrete Cosine Transform (DCT) and Haar Transform (Haar) to group and transform attribute information and quantize the transform coefficients; through inverse quantization and inverse transformation, attribute reconstruction information is obtained; the difference between the real attribute information and the attribute reconstruction information is calculated to obtain attribute residual information and quantize it; and the quantized transform coefficients and attribute residuals are entropy coded.

预测变换编码是指利用预测获得的属性残差信息进行变换,对变换系数进行量化、熵编码。Predictive transform coding refers to using the attribute residual information obtained by prediction to perform transformation, quantize the transform coefficients, and perform entropy coding.

在MPEG G-PCC中,属性信息处理可以包括三种模式,分别是预测变换(Prediction Transform)编码、提升变换(Lifting Transform)编码、以及分层区域自适应变换(Region Adaptive Hierarchical Transform,RAHT)编码,这三种编码模式可以在不同的条件下使用。In MPEG G-PCC, attribute information processing can include three modes, namely Prediction Transform coding, Lifting Transform coding, and Region Adaptive Hierarchical Transform (RAHT) coding. These three coding modes can be used under different conditions.

其中,预测变换编码是指根据距离选择子点集,将点云划分成多个不同的层级(Level of Detail,LoD),实现由粗糙到精细化的多质量层级点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的属性残差信息。其中,最底层的点作为参考信息进行编码。Predictive transform coding involves dividing the point cloud into multiple levels of detail (LoDs) by selecting subsets of points based on distance, achieving a multi-level point cloud representation from coarse to fine quality. Adjacent layers can be predicted from the bottom up, where neighboring points in the coarse layer predict the attributes of points introduced in the fine layer, obtaining the corresponding attribute residual information. The points in the lowest layer are encoded as reference information.

提升变换编码是指在LoD相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性信息,获得对应的属性残差信息。Lifting transform coding refers to introducing a weight update strategy for neighborhood points based on the prediction of adjacent layers of LoD, ultimately obtaining the predicted attribute information of each point and the corresponding attribute residual information.

分层区域自适应变换编码是指属性信息经过RAHT变换,将信号转换到变换域中,称之为变换系数。Hierarchical region adaptive transform coding means that the attribute information is transformed into a transform domain through RAHT transformation, which is called transform coefficient.

4、属性信息量化(Attribute Quantization):量化的精细程度通常由量化参数来决定。对属性信息处理得到的变换系数或属性残差信息进行量化,并对量化后的结果进行熵编码,例如,在预测变换编码及提升变换编码中,是对量化后的属性残差信息进行熵编码;在RAHT中,是对量化后的变换系数进行熵编码。4. Attribute Quantization: The degree of quantization is usually determined by the quantization parameter. The transform coefficients or attribute residual information obtained by attribute information processing are quantized and entropy coded. For example, in predictive transform coding and lifting transform coding, entropy coding is performed on the quantized attribute residual information; in RAHT, entropy coding is performed on the quantized transform coefficients.

5、熵编码(Entropy Coding):量化后的属性残差信息和/或变换系数一般使用行程编码(Run Length Coding)及算数编码(Arithmetic Coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。5. Entropy Coding: Run-length coding and arithmetic coding are typically used to achieve final compression of quantized attribute residual information and/or transform coefficients. The corresponding coding mode, quantization parameters, and other information are also encoded using an entropy encoder.

编码器200对点云中各点的几何坐标信息进行编码处理,得到几何比特流,以及对点云中各点的属性信息进行编码处理,得到属性比特流。编码器200可以将编码得到的几何比特流和属性比特流一起传输至解码器300。The encoder 200 encodes the geometric coordinate information of each point in the point cloud to obtain a geometry bitstream, and encodes the attribute information of each point in the point cloud to obtain an attribute bitstream. The encoder 200 can transmit the encoded geometry bitstream and attribute bitstream together to the decoder 300.

图3a示出了基于AVS-PCC的解码框架的解码器执行的解码流程图,如图3b示出了基于MPEG G-PCC的解码框架的解码器执行的解码流程图,上述解码器可以是图1所示的解码器300。解码器300接收到编码器200传输的压缩码流(即属性比特流和几何比特流)后,对几何比特流进行解码处理,以重建点云中各点的几何坐标信息,以及对属性比特流进行解码处理,以重建点云中各点的属性信息。FIG3a shows a decoding flowchart performed by a decoder based on the AVS-PCC decoding framework, and FIG3b shows a decoding flowchart performed by a decoder based on the MPEG G-PCC decoding framework. The decoder may be decoder 300 shown in FIG1 . After receiving the compressed code stream (i.e., the attribute bit stream and the geometry bit stream) transmitted by encoder 200, decoder 300 decodes the geometry bit stream to reconstruct the geometric coordinate information of each point in the point cloud, and decodes the attribute bit stream to reconstruct the attribute information of each point in the point cloud.

解码器300执行的解码流程如下:The decoding process performed by the decoder 300 is as follows:

1、熵解码(Entropy Decoding):对几何比特流和属性比特流分别进行熵解码,得到几何语法元素和属性语法元素。1. Entropy Decoding: Entropy decoding is performed on the geometry bit stream and attribute bit stream respectively to obtain the geometry syntax elements and attribute syntax elements.

2、几何解码:对于AVS-PCC编码框架,几何解码包括两种模式,分别是基于多叉树(Octree)的几何解码和基于预测树的几何解码。对于G-PCC编码框架,几何编码包括三种模式,分别是基于多叉树的几何解码、基于三角表示(Trisoup)的几何解码以及基于预测树的预测解码。2. Geometric decoding: For the AVS-PCC coding framework, geometric decoding includes two modes: octree-based geometric decoding and prediction tree-based geometric decoding. For the G-PCC coding framework, geometric coding includes three modes: octree-based geometric decoding, trisoup-based geometric decoding, and prediction tree-based prediction decoding.

基于多叉树的几何解码,例如基于八叉树的几何解码:基于从几何比特流解析得到的几何语法元素来重构八叉树。Multitree-based geometry decoding, such as octree-based geometry decoding: an octree is reconstructed based on geometry syntax elements parsed from a geometry bitstream.

基于预测树的几何解码:基于从几何比特流解析得到的几何语法元素来重构预测树。Prediction tree-based geometry decoding: The prediction tree is reconstructed based on the geometry syntax elements parsed from the geometry bitstream.

基于三角表示的几何解码:基于从几何比特流解析得到的几何语法元素来重构三角模型。Geometry decoding based on triangle representation: reconstructs the triangle model based on the geometry syntax elements parsed from the geometry bitstream.

3、几何重建:执行重建以获得点云中点的几何坐标信息。3. Geometric reconstruction: Perform reconstruction to obtain the geometric coordinate information of the points in the point cloud.

4、坐标反变换:对重建得到的几何坐标信息进行反变换,以将点云中的点的重建坐标(位置)从变换域转换回初始域。4. Coordinate inverse transformation: Perform inverse transformation on the reconstructed geometric coordinate information to convert the reconstructed coordinates (positions) of the points in the point cloud from the transformed domain back to the initial domain.

5、反量化:对属性语法元素进行反量化。5. Dequantization: Dequantize the attribute syntax elements.

6、属性信息处理:在AVS-PCC中,属性信息处理通过预测或预测变换对反量化后的预测残差或预测残差变换系数确定点云中点的颜色信息,或者通过变换对反量化后的变换系数确定点云中中点的颜色信息。6. Attribute information processing: In AVS-PCC, attribute information processing determines the color information of the midpoint in the point cloud by predicting or transforming the inverse quantized prediction residual or prediction residual transformation coefficient, or by transforming the inverse quantized transformation coefficient to determine the color information of the midpoint in the point cloud.

在MPEG G-PCC中,属性信息处理通过RAHT对反量化后的属性信息确定点云中点的颜色信息,或者通过LOD和反提升对反量化后的属性信息进确定点云中点的颜色信息。In MPEG G-PCC, attribute information processing determines the color information of the point in the point cloud by using RAHT to inversely quantize the attribute information, or by using LOD and inverse lifting to determine the color information of the point in the point cloud.

7、颜色反变换:将颜色信息从YCbCr颜色空间变换到RGB颜色空间。在一些示例中,可以不进行颜色反变换操作。7. Color inversion: Convert the color information from the YCbCr color space to the RGB color space. In some examples, the color inversion operation may not be performed.

如图4所示,本申请提供一种几何重建方法,由解码端执行,所述方法包括:As shown in FIG4 , the present application provides a geometric reconstruction method, which is performed by a decoding end. The method includes:

步骤401、解码端解码第一码流,获得第一标志,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;所述原始点云是指重构点云前的点云;所述原始点云分布信息是指重构点云前在几何结构中的点云分布情况。Step 401: The decoding end decodes the first code stream to obtain a first flag, where the first flag is used to indicate the original point cloud distribution information in the geometric structure corresponding to the Trisoup node; the original point cloud refers to the point cloud before the point cloud is reconstructed; and the original point cloud distribution information refers to the point cloud distribution in the geometric structure before the point cloud is reconstructed.

步骤402、所述解码端根据所述第一标志对所述几何结构中的顶点进行处理;Step 402: The decoding end processes the vertices in the geometric structure according to the first flag;

步骤403、所述解码端使用处理后的顶点重构点云。Step 403: The decoding end reconstructs the point cloud using the processed vertices.

该实施例中,Trisoup节点是指多叉树节点,Trisoup将每个节点内点云的几何形状概念化为与每个几何体的边缘最多相交一次的表面,与几何体的边缘相交的点称为顶点,这些顶点在相邻的节点之间共享,确保了节点之间重构表面的连续性。每个节点对应的几何体边缘上的顶点的存在以及顶点在边缘上的量化位置可以分别表示为1比特(bit)和2bit。在每个节点对应的几何体内部,重构表面由通过这些顶点形成的非平面多边形构成,如图5所示,组织为三角形的集合。In this embodiment, a Trisoup node refers to a multi-branch tree node. Trisoup conceptualizes the geometric shape of the point cloud within each node as a surface that intersects the edge of each geometric body at most once. The points that intersect the edge of the geometric body are called vertices. These vertices are shared between adjacent nodes, ensuring the continuity of the reconstructed surface between nodes. The existence of a vertex on the edge of the geometric body corresponding to each node and the quantized position of the vertex on the edge can be represented as 1 bit and 2 bits, respectively. Inside the geometric body corresponding to each node, the reconstructed surface is composed of non-planar polygons formed by these vertices, as shown in Figure 5, organized as a set of triangles.

可选的,所述解码端可以确定Trisoup节点对应的几何结构的每条边的邻居信息,该邻居信息可以作为后续熵解码的上下文。所述邻居信息包括相邻边的点云占据信息。Optionally, the decoding end can determine the neighbor information of each edge of the geometric structure corresponding to the Trisoup node, and the neighbor information can be used as context for subsequent entropy decoding. The neighbor information includes point cloud occupancy information of adjacent edges.

所述解码端可以利用所述邻居信息解码所述几何结构的每个边的顶点存在标志和量化的顶点位置。其中,在所述顶点存在标志指示存在顶点的情况下存在所述量化的顶点位置。The decoding end may use the neighbor information to decode a vertex existence flag and a quantized vertex position of each edge of the geometric structure, wherein the quantized vertex position exists when the vertex existence flag indicates that a vertex exists.

编码端依据一个Trisoup节点获得的八个子几何体的占据信息和顶点存在标志获得第一标志,该第一标志用于表示Trisoup节点的原始点云分布信息,编码端编码第一标志生成第一码流,并发送给解码端。所述解码端解码所述第一标志,获得原始点云分布信息;解码端根据解码获得的第一标志对所述Trisoup节点内的顶点进行资格判定,例如:解码端根据第一标志确定合理顶点(能够用于点云重建)、不合理顶点(不适用于点云重建,例如顶点周围的第一范围内不存在原始点云)、较合理顶点(例如顶点周围第二范围内不存在原始点云或者原始点云较少,比如少于一个阈值)等,从而根据判定结果对顶点进行删除或者修正处理。可选的,解码端在确定顶点为合理顶点时,不对合理顶点进行处理。所述解码端在对顶点进行处理后,利用处理后的顶点重构点云。The encoding end obtains a first flag based on the occupancy information of the eight sub-geometric bodies and the vertex existence flag obtained from a Trisoup node. The first flag is used to represent the original point cloud distribution information of the Trisoup node. The encoding end encodes the first flag to generate a first code stream and sends it to the decoding end. The decoding end decodes the first flag to obtain the original point cloud distribution information; the decoding end determines the qualifications of the vertices in the Trisoup node based on the first flag obtained by decoding. For example, the decoding end determines reasonable vertices (which can be used for point cloud reconstruction), unreasonable vertices (not suitable for point cloud reconstruction, such as there is no original point cloud in the first range around the vertex), and relatively reasonable vertices (such as there is no original point cloud in the second range around the vertex or the original point cloud is small, such as less than a threshold), etc., based on the first flag, and deletes or corrects the vertices according to the judgment result. Optionally, when the decoding end determines that the vertex is a reasonable vertex, it does not process the reasonable vertex. After processing the vertex, the decoding end uses the processed vertex to reconstruct the point cloud.

可选的,所述第一标志可以包含一个或者多个标志(flag),即编码端可以确定一个或者多个用于指示原始点云分布的flag,并将该一个或者多个flag进行编码。所述解码端通过解码可以获得一个或者多个flag。所述第一标志包含的一个或者多个flag,可以是不同轴向对应的flag,例如:第一标志包含标志1、标志2以及标志3,其中,标志2可以包含x、y、z三个轴向分别对应的标志2,标志3可以包含x、y、z三个轴向分别对应的标志3。Optionally, the first mark may include one or more flags, that is, the encoding end may determine one or more flags for indicating the distribution of the original point cloud and encode the one or more flags. The decoding end may obtain one or more flags by decoding. The one or more flags included in the first mark may be flags corresponding to different axes. For example, the first mark includes mark 1, mark 2, and mark 3, wherein mark 2 may include mark 2 corresponding to the three axes of x, y, and z, respectively, and mark 3 may include mark 3 corresponding to the three axes of x, y, and z, respectively.

本申请的实施例,解码端解码获得第一标志,根据第一标志可以确定几何结构中的原始点云的分布情况,进而对几何结构中的顶点进行处理,使用处理后的顶点重构点云。通过对顶点进行处理,能够去掉错误点云,减少重建点云的失真情况,提高重建点云的性能增益。In an embodiment of the present application, a decoding end decodes and obtains a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

作为一个可选实施例,所述方法还包括:As an optional embodiment, the method further includes:

根据Trisoup节点对应的几何结构中的顶点分布信息,确定上下文;Determine the context based on the vertex distribution information in the geometric structure corresponding to the Trisoup node;

所述解码第一码流,获得第一标志,包括:The decoding of the first code stream to obtain the first flag includes:

根据所述上下文解码所述第一码流,获得第一标志。The first code stream is decoded according to the context to obtain a first flag.

该实施例中,所述解码端还可以根据Trisoup节点内的顶点分布情况确定上下文,通过该上下文解码所述第一码流,获得第一标志。In this embodiment, the decoding end may further determine a context according to the distribution of vertices in the Trisoup node, and decode the first code stream using the context to obtain the first flag.

可选的,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。Optionally, the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.

该实施例中,所述目标轴向可以是x、y、z三个轴向的任一轴向,在所述第一标志包含多个flag的情况下,所述上下文可以包括多个flag对应的上下文。例如:所述第一标志包括:标志1、标志2以及标志3,所述上下文可以包括标志2的上下文以及标志3的上下文。In this embodiment, the target axis can be any of the three axes: x, y, and z. If the first flag includes multiple flags, the context can include contexts corresponding to the multiple flags. For example, if the first flag includes flag 1, flag 2, and flag 3, the context can include the context of flag 2 and the context of flag 3.

在所述解码端解码所述第一标志时,解码哪个轴向的标志则使用哪个轴向对应的上下文,例如:解码x轴向对应的标志2,则使用x轴向对应的上下文,即:在x轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;解码y轴向对应的标志2,则使用y轴向对应的上下文,即:在y轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;解码z轴向对应的标志3,则使用z轴向对应的上下文,即:在z轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值。When decoding the first flag at the decoding end, the context corresponding to the axis to be decoded is used. For example, when decoding flag 2 corresponding to the x-axis, the context corresponding to the x-axis is used, that is, whether the ratio of the number of vertices in the first area along the x-axis to the total number of vertices is greater than or equal to the first threshold; when decoding flag 2 corresponding to the y-axis, the context corresponding to the y-axis is used, that is, whether the ratio of the number of vertices in the first area along the y-axis to the total number of vertices is greater than or equal to the first threshold; when decoding flag 3 corresponding to the z-axis, the context corresponding to the z-axis is used, that is, whether the ratio of the number of vertices in the first area along the z-axis to the total number of vertices is greater than or equal to the first threshold.

可选的,所述第一区域可以是目标区域的预设范围,所述第一区域可以记为负半轴或者正半轴,例如:顶点坐标的目标轴向的维度值与所述顶点所在边的起点的目标轴向的维度值之间的距离小于第一预定阈值,认为该顶点位于所述目标轴向的负半轴,该情况下在目标轴向的第一区域的顶点数量与顶点的总数量的比值是:在目标轴向的负半轴的顶点数量与顶点总数量的比值。顶点坐标的目标轴向的维度值与所述顶点所在边的终点的目标轴向的维度值之间的距离小于第二预定阈值,认为该顶点位于所述目标轴向的正半轴,该情况下在目标轴向的第一区域的顶点数量与顶点的总数量的比值是:在目标轴向的正半轴的顶点数量与顶点总数量的比值。Optionally, the first area may be a preset range of the target area, and the first area may be recorded as the negative semi-axis or the positive semi-axis. For example, if the distance between the target axial dimension value of the vertex coordinate and the target axial dimension value of the starting point of the edge where the vertex is located is less than a first predetermined threshold, the vertex is considered to be located on the negative semi-axis of the target axial direction. In this case, the ratio of the number of vertices in the first area of the target axial direction to the total number of vertices is: the ratio of the number of vertices in the negative semi-axis of the target axial direction to the total number of vertices. If the distance between the target axial dimension value of the vertex coordinate and the target axial dimension value of the end point of the edge where the vertex is located is less than a second predetermined threshold, the vertex is considered to be located on the positive semi-axis of the target axial direction. In this case, the ratio of the number of vertices in the first area of the target axial direction to the total number of vertices is: the ratio of the number of vertices in the positive semi-axis of the target axial direction to the total number of vertices.

在所述第一区域是所述目标轴向的负半轴或者正半轴时,所述上下文中指示第一阈值可以不同,例如:上下文指示在目标轴向的负半轴的顶点数量与顶点的总数量的比值是否大于th1,或者,上下文指示在目标轴向的正半轴的顶点数量与顶点的总数量的比值是否大于th2,th1和th2可以不同。When the first area is the negative semi-axis or the positive semi-axis of the target axis, the first threshold indicated in the context may be different, for example: the context indicates whether the ratio of the number of vertices in the negative semi-axis of the target axis to the total number of vertices is greater than th1, or the context indicates whether the ratio of the number of vertices in the positive semi-axis of the target axis to the total number of vertices is greater than th2, and th1 and th2 may be different.

所述解码端根据所述上下文解码获得第一标志时,使用与要解码的第一标志对应的目标轴向的上下文,例如:解码端解码x轴向对应的标志2,则根据在x轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值解码该标志2;解码端解码y轴向对应的标志3,则根据在y轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值解码该标志3。解码其他轴向的标志与上述举例类似,在此不一一列举。When the decoding end obtains the first flag according to the context decoding, the context of the target axis corresponding to the first flag to be decoded is used. For example, if the decoding end decodes flag 2 corresponding to the x-axis, the flag 2 is decoded based on whether the ratio of the number of vertices in the first region along the x-axis to the total number of vertices is greater than or equal to a first threshold; if the decoding end decodes flag 3 corresponding to the y-axis, the flag 3 is decoded based on whether the ratio of the number of vertices in the first region along the y-axis to the total number of vertices is greater than or equal to the first threshold. Decoding flags for other axes is similar to the above examples and is not listed here one by one.

作为一个可选实施例,所述第一标志包括以下至少一项:As an optional embodiment, the first flag includes at least one of the following:

(1)标志1:用于指示所述几何结构中是否存在需要修正的顶点;所述标志1可以记为nodeflag,nodeflag用于指示Trisoup节点对应的几何结构内是否有顶点需要处理,例如:nodeflag=1表示几何结构内有顶点需要处理,nodeflag=0表示几何结构内没有顶点需要处理。需要说明的是,在nodeflag指示几何结构内没有顶点需要处理的情况下,第一标志不包含标志2和标志3。(1) Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected; Flag 1 can be denoted as nodeflag, which is used to indicate whether there are vertices in the geometric structure corresponding to the Trisoup node that need to be processed. For example, nodeflag = 1 indicates that there are vertices in the geometric structure that need to be processed, and nodeflag = 0 indicates that there are no vertices in the geometric structure that need to be processed. It should be noted that when nodeflag indicates that there are no vertices in the geometric structure that need to be processed, the first flag does not include flags 2 and 3.

(2)标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;所述标志2可以记为axiFlag,axiFlag用于指示顶点基于哪个周轴向的维度值需要修正,例如:axiFlag可以包含axiFlag_1、axiFlag_2、axiFlag_3,axiFlag_1、axiFlag-_2、axiFlag_3分别对应x、y、z轴向,这里不限定两者的对应关系。例如:axiFlag_1可以用于指示是否需要修正顶点在x轴向(或者y轴向或者z轴向)的维度值;axiFlag_2可以用于指示是否需要修正顶点在y轴向(或者z轴向或者x轴向)的维度值;axiFlag_3可以用于指示是否需要修正顶点在z轴向(或者x轴向或者y轴向)的维度值。(2) Flag 2: used to indicate whether it is necessary to correct the dimension value of the vertex in the target axis, and the target axis is any of the three axes; the flag 2 can be recorded as axiFlag, and axiFlag is used to indicate based on which circumferential axis the dimension value of the vertex needs to be corrected, for example: axiFlag can include axiFlag_1, axiFlag_2, axiFlag_3, axiFlag_1, axiFlag-_2, axiFlag_3 correspond to the x-axis, y-axis, and z-axis respectively, and the correspondence between the two is not limited here. For example: axiFlag_1 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the x-axis (or y-axis or z-axis); axiFlag_2 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the y-axis (or z-axis or x-axis); axiFlag_3 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the z-axis (or x-axis or y-axis).

axiFlag的取值可以用于指示是否需要修正顶点在某个轴向的维度值,例如:axiFlag_1=1表示需要修正顶点在x轴向的维度值,axiFlag_1=0表示不需要修正顶点在x轴向的维度值;axiFlag_2=1表示需要修正顶点在y轴向的维度值,axiFlag_2=0表示不需要修正顶点在y轴向的维度值;axiFlag_3=1表示需要修正顶点在z轴向的维度值,axiFlag_3=0表示不需要修正顶点在z轴向的维度值。The value of axiFlag can be used to indicate whether the dimension value of the vertex in a certain axis needs to be corrected. For example: axiFlag_1=1 indicates that the dimension value of the vertex in the x-axis direction needs to be corrected, and axiFlag_1=0 indicates that the dimension value of the vertex in the x-axis direction does not need to be corrected; axiFlag_2=1 indicates that the dimension value of the vertex in the y-axis direction needs to be corrected, and axiFlag_2=0 indicates that the dimension value of the vertex in the y-axis direction does not need to be corrected; axiFlag_3=1 indicates that the dimension value of the vertex in the z-axis direction needs to be corrected, and axiFlag_3=0 indicates that the dimension value of the vertex in the z-axis direction does not need to be corrected.

需要说明的是,在axiFlag指示不需要修正顶点在某个轴向的维度值时,所述第一标志不包含该轴向对应的标志3。It should be noted that, when axiFlag indicates that the dimension value of the vertex in a certain axis does not need to be corrected, the first flag does not include the flag 3 corresponding to the axis.

(3)标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。(3) Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or the negative direction of the target axis.

所述标志3可以记为flag01,flag01用于指示在需要修正顶点在某个轴向的维度值时,需要向哪个方向修正该维度值。例如:flag01可以包含flag01_1、flag01_2、flag01_3,flag01-_1、flag01_2、flag01_3分别对应x、y、z轴向,这里不限定两者的对应关系。Flag 3 can be denoted as flag01. Flag01 is used to indicate the direction in which the vertex dimension value in a certain axis needs to be corrected. For example, flag01 can include flag01_1, flag01_2, and flag01_3, where flag01_1, flag01_2, and flag01_3 correspond to the x, y, and z axes, respectively. The correspondence between the two is not limited here.

例如:flag01_1可以用于指示在需要修正顶点在x轴向(或者y轴向或者z轴向)的维度值的情况下的修正方向;flag01_2可以用于指示在需要修正顶点在y轴向(或者z轴向或者x轴向)的维度值的情况下的修正方向;flag01_3可以用于指示在需要修正顶点在z轴向(或者x轴向或者y轴向)的维度值的情况下的修正方向。For example: flag01_1 can be used to indicate the correction direction when the dimension value of the vertex in the x-axis (or y-axis or z-axis) needs to be corrected; flag01_2 can be used to indicate the correction direction when the dimension value of the vertex in the y-axis (or z-axis or x-axis) needs to be corrected; flag01_3 can be used to indicate the correction direction when the dimension value of the vertex in the z-axis (or x-axis or y-axis) needs to be corrected.

flag01的取值可以用于指示修正方向,例如:flag01_1=1表示需要朝向x轴的正方向修正顶点在x轴向的维度值;flag01_1=0表示需要朝向x轴的负方向修正顶点在x轴向的维度值;flag01_2=1表示需要朝向y轴的正方向修正顶点在y轴向的维度值;flag01_2=0表示需要朝向y轴的负方向修正顶点在y轴向的维度值;flag01_3=1表示需要朝向z轴的正方向修正顶点在z轴向的维度值;flag01_3=0表示需要朝向z轴的负方向修正顶点在z轴向的维度值。The value of flag01 can be used to indicate the correction direction, for example: flag01_1=1 indicates that the dimension value of the vertex in the x-axis direction needs to be corrected in the positive direction of the x-axis; flag01_1=0 indicates that the dimension value of the vertex in the x-axis direction needs to be corrected in the negative direction of the x-axis; flag01_2=1 indicates that the dimension value of the vertex in the y-axis direction needs to be corrected in the positive direction of the y-axis; flag01_2=0 indicates that the dimension value of the vertex in the y-axis direction needs to be corrected in the negative direction of the y-axis; flag01_3=1 indicates that the dimension value of the vertex in the z-axis direction needs to be corrected in the positive direction of the z-axis; flag01_3=0 indicates that the dimension value of the vertex in the z-axis direction needs to be corrected in the negative direction of the z-axis.

该实施例中,所述解码端解码第一标志,所述第一标志可以包括一个或者多个用于指示点云分布信息的flag,根据上述一个或者多个flag,解码端能够确定顶点的修正情况,从而对顶点进行处理。In this embodiment, the decoding end decodes the first flag, which may include one or more flags for indicating point cloud distribution information. According to the one or more flags, the decoding end can determine the correction status of the vertex and thus process the vertex.

作为一个可选实施例,所述解码第一码流,获得第一标志,包括:As an optional embodiment, decoding the first code stream to obtain the first flag includes:

解码所述第一码流,获得标志1;Decoding the first code stream to obtain flag 1;

在所述标志1指示所述几何结构中存在需要修正的顶点的情况下,解码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则解码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, decoding the flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, decoding the flag 3 corresponding to the first axis;

解码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值的,则解码所述第二轴向对应的标志3;Decode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, decode the flag 3 corresponding to the second axis;

和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;解码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; decode the mark 3 corresponding to the third axis.

该实施例中,所述解码端在解码第一码流时,首先解码获得标志1(nodeflag),根据标志1的指示解码标志2(axiFlag);其中,若标志1指示存在需要修正的顶点,则解码标志2,若标志1指示不存在需要修正的顶点,则无需解码标志2。在解码标志2时,可以按照码流顺序首先解码两个轴向的标志2,根据两个轴向的标志2判断是否需要解码第三个轴向的标志2;根据标志2的指示确定是否解码标志3(flag01),在标志2指示无需修正顶点在某一轴向的维度值时,则无需解码该轴向的标志3。在两个轴向的标志2均指示不需要修正顶点在对应轴向的维度值时,无需解码第三个轴向的标志2,可以直接确定第三个轴向的标志2指示需要修正顶点在该轴向的维度值(因为标志1指示存在需要修正的顶点,若两个轴向的标志2均指示无需修正,则第三个轴向的标志2一定指示需要修正顶点在该轴向的维度值)。In this embodiment, when decoding the first bitstream, the decoding end first decodes flag 1 (nodeflag) and decodes flag 2 (axiFlag) according to the indication of flag 1. If flag 1 indicates that a vertex requires correction, flag 2 is decoded; if flag 1 indicates that no vertex requires correction, flag 2 does not need to be decoded. When decoding flag 2, two axial flags 2 can be first decoded according to the bitstream order, and the need to decode the third axial flag 2 can be determined based on the two axial flags 2. Whether to decode flag 3 (flag01) is determined based on the indication of flag 2. If flag 2 indicates that the dimension value of the vertex in a certain axis does not need to be corrected, then the flag 3 of that axis does not need to be decoded. If both axial flags 2 indicate that the dimension value of the vertex in the corresponding axis does not need to be corrected, then the third axial flag 2 does not need to be decoded. It can be directly determined that the third axial flag 2 indicates that the dimension value of the vertex in that axis requires correction (because flag 1 indicates that a vertex requires correction, if both axial flags 2 indicate that no correction is required, then the third axial flag 2 must indicate that the dimension value of the vertex in that axis requires correction).

下面举例说明解码端解码第一标志的过程,解码代码如下:
The following example illustrates the process of decoding the first flag at the decoding end. The decoding code is as follows:

解码过程描述如下:解码端首先解码nodeflag,若nodeflag指示存在需要修正的顶点(如nodeflag=1),则解码axiFlag_1(假设axiFlag_1对应y轴);若axiFlag_1指示需要修正顶点在y轴向的维度值(如axiFlag_1=1),则解码y轴向对应的flag01_1;解码axiFlag_2(假设axiFlag_2对应z轴);若axiFlag_2指示需要修正顶点在z轴向的维度值,则解码z轴向对应的flag01_2;若axiFlag_1指示不需要修正顶点在y轴向的维度值(如axiFlag_1=0),且axiFlag_2均指示不需要修正顶点在z轴向的维度值(如axiFlag_2=0),则可以确定axiFlag_3指示需要修正顶点在x轴向的维度值(如axiFlag_3=1);解码flag01_3。The decoding process is described as follows: the decoding end first decodes nodeflag. If nodeflag indicates that there is a vertex that needs to be corrected (such as nodeflag=1), it decodes axiFlag_1 (assuming that axiFlag_1 corresponds to the y-axis); if axiFlag_1 indicates that the dimension value of the vertex in the y-axis direction needs to be corrected (such as axiFlag_1=1), it decodes flag01_1 corresponding to the y-axis; decodes axiFlag_2 (assuming that axiFlag_2 corresponds to the z-axis); if axiFlag_2 indicates that the dimension value of the vertex in the z-axis direction needs to be corrected, it decodes flag01_2 corresponding to the z-axis; if axiFlag_1 indicates that the dimension value of the vertex in the y-axis direction does not need to be corrected (such as axiFlag_1=0), and axiFlag_2 both indicate that the dimension value of the vertex in the z-axis direction does not need to be corrected (such as axiFlag_2=0), it can be determined that axiFlag_3 indicates that the dimension value of the vertex in the x-axis direction needs to be corrected (such as axiFlag_3=1); decode flag01_3.

作为一个可选实施例,根据所述第一标志对所述几何结构中的顶点进行处理,包括:As an optional embodiment, processing the vertices in the geometric structure according to the first flag includes:

根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag;

根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the type of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body;

根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex.

该实施例中,所述解码端解码第一标志后,可以根据所解码的nodeflag以及三个轴向的axiFlag、flag01,对当前节点划分的八个子几何体进行是否存在原始点云的标记。对本节点内的顶点进行资格判定,确定顶点的类型,根据顶点的类型对顶点进行处理或者不处理。其中,所述顶点的类型可以包括:第一类型顶点,该第一类型顶点是不合理顶点,例如顶点周围不存在原始点云;第二类型顶点,该第二类型顶点是较合理顶点,例如顶点周围的原始点云数量较少,比如原始点云数量小于或等于一个阈值;第三类型顶点,该第三类型顶点是合理顶点。对于合理顶点可以不做处理。In this embodiment, after the decoding end decodes the first flag, it can mark whether the original point cloud exists in the eight sub-geometric bodies divided by the current node according to the decoded nodeflag and the three axial axiFlag and flag01. The vertices in this node are qualified, the type of the vertex is determined, and the vertex is processed or not processed according to the type of the vertex. Among them, the type of the vertex may include: a first type of vertex, which is an unreasonable vertex, for example, there is no original point cloud around the vertex; a second type of vertex, which is a more reasonable vertex, for example, the number of original point clouds around the vertex is small, such as the number of original point clouds is less than or equal to a threshold; a third type of vertex, which is a reasonable vertex. Reasonable vertices can be left unprocessed.

可选的,根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型,包括以下至少一项:Optionally, determining the type of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body includes at least one of the following:

在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;

在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric body of the first vertical plane, then the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;

在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices.

该实施例中,当顶点所在边所属的第一平面内的四个子几何体标记为不存在原始点云时,该顶点判定为不合理顶点,即所述第一类型顶点。例如图6所示,假设顶点所在边是图6中的底面的边(子几何体0和4所在的一条边),则该条边所属的第一平面可以是子几何体0、1、4、5所在的面,或者子几何体0、2、4、6所在的面;若子几何体0、1、4、5或者子几何体0、2、4、6不存在原始点云,则该顶点是第一类型顶点,即不合理顶点。In this embodiment, when the four sub-geometric bodies within the first plane to which the vertex belongs are marked as not existing in the original point cloud, the vertex is determined to be an unreasonable vertex, that is, the first type of vertex. For example, as shown in Figure 6, assuming that the edge where the vertex belongs is the edge of the bottom surface in Figure 6 (the edge where sub-geometric bodies 0 and 4 are located), then the first plane to which the edge belongs can be the surface where sub-geometric bodies 0, 1, 4, and 5 are located, or the surface where sub-geometric bodies 0, 2, 4, and 6 are located; if sub-geometric bodies 0, 1, 4, and 5 or sub-geometric bodies 0, 2, 4, and 6 do not exist in the original point cloud, then the vertex is a first type of vertex, that is, an unreasonable vertex.

当顶点所在边的第一垂直平面内的子几何体不存在原始点云,且该顶点处于所述第一垂直平面的子几何体中,该顶点判定为较合理顶点,即所述第二类型顶点。例如图6所示,假设顶点所在边是图6中的底面的边(子几何体0和4所在的一条边),则该条边的第一垂直平面可以是子几何体0、1、2、3所在的面或者子几何体4、5、6、7所在的面。若子几何体0、1、2、3不存在原始点云且该顶点处于子几何体0、1、2、3任意一个内,则确定该顶点是第二类型顶点,或者,若子几何体4、5、6、7不存在原始点云且该顶点处于子几何体4、5、6、7任意一个内,则确定该顶点是第二类型顶点,即较为合理顶点。When the sub-geometry within the first vertical plane of the edge where the vertex is located does not have an original point cloud, and the vertex is in the sub-geometry of the first vertical plane, the vertex is determined to be a more reasonable vertex, that is, the second type vertex. For example, as shown in Figure 6, assuming that the edge where the vertex is located is the edge of the bottom surface in Figure 6 (an edge where sub-geometry 0 and 4 are located), the first vertical plane of the edge can be the surface where sub-geometry 0, 1, 2, 3 is located or the surface where sub-geometry 4, 5, 6, 7 is located. If the sub-geometry 0, 1, 2, 3 does not have an original point cloud and the vertex is in any one of the sub-geometry 0, 1, 2, 3, then the vertex is determined to be a second type vertex, or if the sub-geometry 4, 5, 6, 7 does not have an original point cloud and the vertex is in any one of the sub-geometry 4, 5, 6, 7, then the vertex is determined to be a second type vertex, that is, a more reasonable vertex.

在该几何结构中,除所述第一类型顶点和所述第二类型顶点外的其他顶点认为是合理顶点,即所述第三类型顶点。In this geometric structure, vertices other than the first type vertices and the second type vertices are considered to be reasonable vertices, namely the third type vertices.

可选的,根据所述顶点的类型对所述顶点进行处理,包括以下至少一项:Optionally, processing the vertex according to the type of the vertex includes at least one of the following:

1)删除第一类型顶点;即删除不合理顶点;1) Delete the first type of vertices; that is, delete unreasonable vertices;

2)将第二类型顶点修正为所述第二类型顶点所在边的中点;即将较合理顶点进行修正,修正到其所在边的中点。2) Correcting the second type of vertex to the midpoint of the edge where the second type of vertex is located; that is, correcting the more reasonable vertex to the midpoint of the edge where the vertex is located.

可选的,对于第三类型顶点即合理顶点,不进行处理。Optionally, the third type of vertices, i.e., reasonable vertices, are not processed.

作为一个可选实施例,所述方法还包括:As an optional embodiment, the method further includes:

解码第二码流获得第二标志,所述第二标志用于指示启用或不启用几何重建技术。The second code stream is decoded to obtain a second flag, where the second flag is used to indicate whether the geometric reconstruction technology is enabled or not.

在本申请的实施例中,编码端编码本申请的几何重建方法是否开启的标志(flag),获得第二码流;解码端解码第二码流确定是否启用几何重建方法;在几何重建方法启用的情况下,执行本申请实施例的几何重建方法的实施过程。可选的,所述第二码流与所述第一码流可以是同一个码流也可以不同的码流。In an embodiment of the present application, the encoder encodes a flag indicating whether the geometric reconstruction method of the present application is enabled to obtain a second bitstream. The decoder decodes the second bitstream to determine whether the geometric reconstruction method is enabled. If the geometric reconstruction method is enabled, the implementation process of the geometric reconstruction method of the embodiment of the present application is performed. Optionally, the second bitstream and the first bitstream can be the same bitstream or different bitstreams.

可选的,所述解码端可以在Trisoup启用的情况下,解码所述第二码流。所述编码端可以编码Trisoup是否启用的flag;所述解码端通过解码flag可以确定Trisoup是否启用。Optionally, the decoding end may decode the second bitstream when Trisoup is enabled. The encoding end may encode a flag indicating whether Trisoup is enabled; and the decoding end may determine whether Trisoup is enabled by decoding the flag.

可选的,在解码第一码流,获得第一标志之前,所述方法还包括:Optionally, before decoding the first code stream and obtaining the first flag, the method further includes:

确定Trisoup节点对应的几何结构中的顶点满足第一条件;Determine that the vertices in the geometric structure corresponding to the Trisoup node meet the first condition;

其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.

该实施例中,Trisoup节点是否启用本申请的几何重建方法由资格(eligible)取值决定。当节点内顶点总数量大于或等于阈值Num且满足在任一轴向的第二区域的顶点数量与顶点总数量的比值P大于或等于阈值pth1时,设置eligible的取值为1,表示该Trisoup节点执行本申请的几何重建方法,即在Trisoup节点对应的几何结构中的顶点满足第一条件的情况下,解码端需要解码第一码流;否则设置eligible的取值为0,表示该Trisoup节点不执行本申请的几何重建方法,解码端无需解码第一码流。In this embodiment, whether a Trisoup node enables the geometric reconstruction method of the present application is determined by the value of eligible. When the total number of vertices in the node is greater than or equal to the threshold Num and the ratio P of the number of vertices in the second region along any axis to the total number of vertices is greater than or equal to the threshold pth1, the value of eligible is set to 1, indicating that the Trisoup node executes the geometric reconstruction method of the present application. That is, if the vertices in the geometric structure corresponding to the Trisoup node meet the first condition, the decoding end needs to decode the first bitstream; otherwise, the value of eligible is set to 0, indicating that the Trisoup node does not execute the geometric reconstruction method of the present application, and the decoding end does not need to decode the first bitstream.

其中,所述第二区域可以是一个阈值范围,所述第二区域可以是某个轴向的某一半轴区域,例如所述第二区域可以记为某一轴向的负半轴或者正半轴,所述第一条件例如:顶点的总数量大于或等于第二阈值,且存在于任一轴向上某个半轴区域的顶点数量与顶点总数量的比值P大于或等于第三阈值。所述任一轴向可以是x轴向、y轴向、z轴向中的任意一种或者几种。The second region may be a threshold range, and the second region may be a semi-axis region of a certain axis. For example, the second region may be the negative semi-axis or the positive semi-axis of a certain axis. The first condition may be, for example: the total number of vertices is greater than or equal to the second threshold, and the ratio P of the number of vertices in a semi-axis region of any axis to the total number of vertices is greater than or equal to a third threshold. The any axis may be any one or more of the x-axis, y-axis, and z-axis.

例如:顶点坐标的x轴向的维度值与所述顶点所在边的起点的x轴向的维度值之间的距离小于阈值th1,认为该顶点位于所述x轴向的负半轴,该情况下在x轴向的第二区域的顶点数量与顶点的总数量的比值是:在x轴向的负半轴的顶点数量与顶点总数量的比值。顶点坐标的x轴向的维度值与所述顶点所在边的终点的x轴向的维度值之间的距离小于阈值th2,认为该顶点位于所述x轴向的正半轴,该情况下在x轴向的第二区域的顶点数量与顶点的总数量的比值是:在x轴向的正半轴的顶点数量与顶点总数量的比值。For example: if the distance between the x-axis dimension value of the vertex coordinate and the x-axis dimension value of the starting point of the edge where the vertex is located is less than the threshold value th1, the vertex is considered to be located on the negative half-axis of the x-axis. In this case, the ratio of the number of vertices in the second region along the x-axis to the total number of vertices is: the ratio of the number of vertices in the negative half-axis of the x-axis to the total number of vertices. If the distance between the x-axis dimension value of the vertex coordinate and the x-axis dimension value of the end point of the edge where the vertex is located is less than the threshold value th2, the vertex is considered to be located on the positive half-axis of the x-axis. In this case, the ratio of the number of vertices in the second region along the x-axis to the total number of vertices is: the ratio of the number of vertices in the positive half-axis of the x-axis to the total number of vertices.

作为一个可选实施例,所述使用处理后的顶点重构点云,包括:As an optional embodiment, reconstructing the point cloud using the processed vertices includes:

根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex;

解码第三码流,确定Trisoup节点的面顶点;Decode the third code stream and determine the face vertices of the Trisoup node;

根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices;

对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.

该实施例中,解码端解码码流中的质心顶点的量化偏移值;根据处理后剩余的顶点坐标计算质心顶点的初始位置;将反向量化偏移值与质心顶点的初始位置求和,得到偏移后的质心顶点的位置;In this embodiment, the decoding end decodes the quantized offset value of the centroid vertex in the bitstream; calculates the initial position of the centroid vertex based on the vertex coordinates remaining after processing; sums the inverse quantized offset value and the initial position of the centroid vertex to obtain the position of the centroid vertex after the offset;

可选的,所述第三码流与所述第一码流可以是同一个码流也可以是不同的码流。解码面顶点是否存在的信息,得出每个TriSoup节点对应的TriSoup面顶点;对每个节点内的顶点坐标和面顶点坐标进行排序,然后使用边顶点、偏移后的质心和面顶点构造三角面片。编码端为每个节点选择性确定面顶点,并编码发送给所述解码端;所述解码端解码顶点是否存在的信息,获得每个TriSoup节点对应的TriSoup面顶点;解码端对每个节点内的顶点坐标和面顶点坐标进行排序,然后使用边顶点、偏移后的质心顶点和面顶点构造三角面片;对三角面片进行光线追踪采样,得到重建点云。Optionally, the third code stream and the first code stream can be the same code stream or different code streams. Decode the information on whether face vertices exist to obtain the TriSoup face vertices corresponding to each TriSoup node; sort the vertex coordinates and face vertex coordinates in each node, and then use the edge vertices, offset centroid vertices and face vertices to construct triangular face patches. The encoding end selectively determines the face vertices for each node, and encodes and sends it to the decoding end; the decoding end decodes the information on whether vertices exist to obtain the TriSoup face vertices corresponding to each TriSoup node; the decoding end sorts the vertex coordinates and face vertex coordinates in each node, and then uses the edge vertices, offset centroid vertices and face vertices to construct triangular face patches; perform ray tracing sampling on the triangular face patches to obtain a reconstructed point cloud.

本申请的实施例中,解码过程包括如下三个步骤:In the embodiment of the present application, the decoding process includes the following three steps:

1)解码位于Trisoup边缘上的Trisoup边缘顶点,获得顶点的轴向分布信息以及顶点总数量;1) Decode the Trisoup edge vertices located on the Trisoup edge to obtain the axial distribution information of the vertices and the total number of vertices;

2)在Trisoup节点上构造Trisoup三角形;2) Construct a Trisoup triangle on the Trisoup node;

3)通过Trisoup三角形体素化确定解码点。3) Determine the decoding point by trisoup triangle voxelization.

该方案首先需要在trisoup开启的情况下(trisoup_enabled_flag=true)传输本申请的几何重建方法是否开启的Flag,属于gbh参数集;当Flag指示本申请的几何重建方法开启时,进行eligible操作,利用节点内顶点的分布信息和顶点数量信息推断节点是否真正启用本申请的几何重建方法。This solution first needs to transmit the flag indicating whether the geometric reconstruction method of this application is enabled when trisoup is enabled (trisoup_enabled_flag = true), which belongs to the gbh parameter set; when the flag indicates that the geometric reconstruction method of this application is enabled, an eligible operation is performed, and the distribution information and vertex number information within the node are used to infer whether the node actually enables the geometric reconstruction method of this application.

在确定节点启用几何重建方法时,解码端解码位于Trisoup边缘上的Trisoup边缘顶点后,解码用于表示trisoup节点内原始点云分布的第一标志。第一标志包括nodeFlag、axiFlag、flag01。可选的,解码端给需要解码的flag设计了对应的上下文。解码端对节点内顶点是否可以直接参与本节点构造Trisoup三角形的过程进行资格判定,依据判定结果对顶点进行处理;依据处理后剩余的节点构造Trisoup三角形,再通过Trisoup三角形体素化确定解码点。When determining whether the node enables the geometric reconstruction method, the decoding end decodes the Trisoup edge vertices located on the Trisoup edge, and then decodes the first flag used to represent the distribution of the original point cloud in the trisoup node. The first flag includes nodeFlag, axiFlag, and flag01. Optionally, the decoding end designs a corresponding context for the flag that needs to be decoded. The decoding end determines whether the vertices in the node can directly participate in the process of constructing the Trisoup triangle of this node, and processes the vertices based on the determination result; constructs the Trisoup triangle based on the remaining nodes after processing, and then determines the decoding point by voxelizing the Trisoup triangle.

解码端的解码过程如图7所示,包括:The decoding process at the decoding end is shown in Figure 7, including:

确定Trisoup节点对应的几何结构的顶点(vertex)总数量;Determine the total number of vertices (vertex) of the geometric structure corresponding to the Trisoup node;

判断vertex总数量是否大于或等于阈值,若vertex总数量大于或等于阈值,且在任一轴向的第二区域的顶点数量与vertex总数量的比值P大于或等于阈值th1,设置eligible=1,指示该Trisoup节点启用本申请的几何重建方法,否则设置eligible=0,指示该Trisoup节点不启用本申请的几何重建方法;Determine whether the total number of vertices is greater than or equal to a threshold. If the total number of vertices is greater than or equal to the threshold, and the ratio P of the number of vertices in the second region along any axis to the total number of vertices is greater than or equal to the threshold th1, set eligible = 1 to instruct the Trisoup node to enable the geometric reconstruction method of the present application. Otherwise, set eligible = 0 to instruct the Trisoup node not to enable the geometric reconstruction method of the present application.

在eligible=1的情况下,解码nodeflag;In the case of eligible=1, decode nodeflag;

判断nodeflag的取值,若nodeflag=1,即指示存在需要修正的顶点,则解码axiFlag_z;若axiFlag_z=1,即指示需要修正顶点在z轴向的维度值,则解码z轴向对应的flag01_z;Determine the value of nodeflag. If nodeflag = 1, indicating that there is a vertex that needs to be corrected, decode axiFlag_z; if axiFlag_z = 1, indicating that the dimension value of the vertex in the z-axis direction needs to be corrected, decode flag01_z corresponding to the z-axis.

解码axiFlag_y,若axiFlag_y=1,即指示需要修正顶点在y轴向的维度值,则解码y轴向对应的flag01_y;Decode axiFlag_y. If axiFlag_y = 1, indicating that the dimension value of the vertex in the y-axis direction needs to be corrected, then decode flag01_y corresponding to the y-axis.

若axiFlag_z=0且axiFlag_y=0,则确定axiFlag_x=1,即需要修正顶点在x轴向的维度值,则解码flag01_x,根据flag01_x的取值修正顶点(modify edge vertex);If axiFlag_z = 0 and axiFlag_y = 0, then axiFlag_x = 1, that is, the dimension value of the vertex in the x-axis direction needs to be corrected, then flag01_x is decoded and the vertex is corrected according to the value of flag01_x (modify edge vertex);

若axiFlag_z=1和/或axiFlag_y=1,即不满足axiFlag_z=0且axiFlag_y=0,则解码axiFlag_x;判断axiFlag_x的取值,若axiFlag_x=1则指示修正顶点在x轴向的维度值;解码flag01_x,根据flag01_x的取值修正顶点(modify edge vertex);If axiFlag_z = 1 and/or axiFlag_y = 1, that is, axiFlag_z = 0 and axiFlag_y = 0 are not satisfied, then decode axiFlag_x; determine the value of axiFlag_x. If axiFlag_x = 1, it indicates to modify the dimension value of the vertex in the x-axis direction; decode flag01_x and modify the vertex (modify edge vertex) according to the value of flag01_x.

利用修正后的顶点、质心顶点(centroid)以及面顶点(face vertex)进行光线追踪采样,获得重建点云(reconstruct point cloud)。Ray tracing sampling is performed using the corrected vertices, centroid vertices, and face vertices to obtain a reconstructed point cloud.

该实施例中,需要在trisoup技术启用的情况下解码本申请的几何重建技术是否开启。利用trisoup节点内的顶点分布情况和顶点总数量自适应的选择是否开启本申请的几何重建技术。对于开启该技术的节点再次利用trisoup节点内顶点的分布情况构建了三组上下文模型,分别用于解码表征节点内的原始点云的分布的nodeFlag、axiFlag、flag01。此外,每个Trisoup节点对应的几何结构被划分为子几何体,利用解码的flag推断出节点内子几何体的原始点云分布,进而用于评判节点内各顶点的合理性。对判定为不同合理性的顶点进行不同的处理后,进行后续点云重建过程。In this embodiment, it is necessary to decode whether the geometric reconstruction technology of the present application is turned on when the trisoup technology is enabled. The distribution of vertices and the total number of vertices in the trisoup node are used to adaptively select whether to turn on the geometric reconstruction technology of the present application. For the nodes that turn on this technology, three groups of context models are constructed again using the distribution of vertices in the trisoup node, which are used to decode the nodeFlag, axiFlag, and flag01 that represent the distribution of the original point cloud in the node. In addition, the geometric structure corresponding to each Trisoup node is divided into sub-geometries, and the decoded flag is used to infer the original point cloud distribution of the sub-geometries in the node, which is then used to judge the rationality of each vertex in the node. After different processing is performed on the vertices judged to be of different rationality, the subsequent point cloud reconstruction process is carried out.

本申请的实施例,解码端解码获得第一标志,根据第一标志可以确定几何结构中的原始点云的分布情况,进而对几何结构中的顶点进行处理,使用处理后的顶点重构点云。通过对顶点进行处理,能够去掉错误点云,减少重建点云的失真情况,提高重建点云的性能增益。In an embodiment of the present application, a decoding end decodes and obtains a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

如图8所示,本申请实施例还提供一种几何重建方法,由编码端执行,所述方法包括:As shown in FIG8 , an embodiment of the present application further provides a geometric reconstruction method, which is performed by an encoding end. The method includes:

步骤801、编码端对第一标志进行编码,获得第一码流,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;Step 801: The encoder encodes a first flag to obtain a first bitstream, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node.

步骤802、所述编码端根据所述第一标志对所述几何结构中的顶点进行处理;Step 802: The encoding end processes the vertices in the geometric structure according to the first flag;

步骤803、所述编码端使用处理后的顶点重构点云。Step 803: The encoder reconstructs the point cloud using the processed vertices.

可选的,对于每个Trisoup节点,所述编码端可以确定所述Trisoup节点对应的几何结构的每个边的顶点存在标志和量化的顶点位置。其中,在所述顶点存在标志指示存在顶点的情况下存在所述量化的顶点位置。Optionally, for each Trisoup node, the encoding end may determine a vertex presence flag and a quantized vertex position for each edge of the geometric structure corresponding to the Trisoup node, wherein the quantized vertex position exists when the vertex presence flag indicates that a vertex exists.

所述编码端可以将非重复边按照字典序进行重新排序,确定编码顺序。所述编码端可以使用邻居信息确定顶点存在标志和顶点位置的上下文,按照确定的所述编码顺序使用动态(Dynamic)即时更新的最佳二值化技术(Optional Binarization with Update on the Fly,OBUF)将顶点存在标志和量化顶点位置编码为码流。The encoder may reorder the non-repeated edges in lexicographic order to determine an encoding order. The encoder may use neighbor information to determine the context of the vertex existence flag and the vertex position, and encode the vertex existence flag and the quantized vertex position into a bitstream using a dynamic and instantaneously updated optimal binarization technique (Optional Binarization with Update on the Fly, OBUF) according to the determined encoding order.

该实施例中,编码端可以依据点云分布信息确定第一标志,该第一标志用于表示Trisoup节点的原始点云分布信息,编码端编码第一标志生成第一码流,并发送给解码端。所述编码端根据第一标志对Trisoup节点内的顶点进行资格判定,例如:编码端根据第一标志确定合理顶点、不合理顶点、较合理顶点等,从而根据判定结果对顶点进行删除或者修正处理。可选的,编码端在确定顶点为合理顶点时,不对合理顶点进行处理。所述编码端在对顶点进行处理后,利用处理后的顶点重构点云。In this embodiment, the encoding end can determine a first flag based on the point cloud distribution information. The first flag is used to represent the original point cloud distribution information of the Trisoup node. The encoding end encodes the first flag to generate a first code stream and sends it to the decoding end. The encoding end determines the qualifications of the vertices in the Trisoup node based on the first flag. For example, the encoding end determines reasonable vertices, unreasonable vertices, relatively reasonable vertices, etc. based on the first flag, and deletes or corrects the vertices according to the judgment results. Optionally, when the encoding end determines that the vertex is a reasonable vertex, it does not process the reasonable vertex. After processing the vertex, the encoding end uses the processed vertex to reconstruct the point cloud.

可选的,所述第一标志可以包含一个或者多个标志(flag),即编码端可以确定一个或者多个用于指示原始点云分布的flag,并将该一个或者多个flag进行编码,使所述解码端通过解码可以获得一个或者多个flag。Optionally, the first flag may include one or more flags, that is, the encoding end may determine one or more flags for indicating the distribution of the original point cloud, and encode the one or more flags so that the decoding end can obtain one or more flags through decoding.

本申请的实施例,编码端确定第一标志并对第一标志进行编码,根据第一标志可以确定几何结构中的原始点云的分布情况,进而对几何结构中的顶点进行处理,使用处理后的顶点重构点云。通过对顶点进行处理,能够去掉错误点云,减少重建点云的失真情况,提高重建点云的性能增益。In an embodiment of the present application, the encoding end determines and encodes a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

作为一个可选实施例,所述方法还包括:As an optional embodiment, the method further includes:

根据所述Trisoup节点对应的几何结构内的原始点云分布信息,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息,所述子几何体由所述几何结构划分得到;Marking original point cloud distribution information of sub-geometric bodies corresponding to child nodes of the Trisoup node according to original point cloud distribution information within the geometric structure corresponding to the Trisoup node, where the sub-geometric bodies are obtained by dividing the geometric structure;

根据所述子几何体的原始点云分布信息和所述几何结构的边的顶点存在标志,确定所述第一标志。The first flag is determined according to the original point cloud distribution information of the sub-geometric body and the vertex existence flag of the edge of the geometric structure.

该实施例中,所述解码端可以将Trisoup节点划分为多个子几何体,例如图6所示,根据节点内原始点云分布信息给予子几何体是否存在原始点云的标志(flag);所述解码端根据Trisoup节点划分的多个子几何体的点云占据信息和顶点存在标志信息,确定所述第一标志。In this embodiment, the decoding end can divide the Trisoup node into multiple sub-geometric bodies, as shown in Figure 6, and give the sub-geometric body a flag indicating whether the original point cloud exists based on the original point cloud distribution information in the node; the decoding end determines the first flag based on the point cloud occupancy information and vertex existence flag information of the multiple sub-geometric bodies divided by the Trisoup node.

其中,所述第一标志可以包含一个或者多个flag,可以是不同轴向对应的flag,例如:第一标志包含标志1、标志2以及标志3,其中,标志2可以包含x、y、z三个轴向分别对应的标志2,标志3可以包含x、y、z三个轴向分别对应的标志3。Among them, the first mark may include one or more flags, which may be flags corresponding to different axes. For example, the first mark includes mark 1, mark 2 and mark 3, among which mark 2 may include mark 2 corresponding to the three axes of x, y, and z respectively, and mark 3 may include mark 3 corresponding to the three axes of x, y, and z respectively.

作为一个可选实施例,所述第一标志包括以下至少一项:As an optional embodiment, the first flag includes at least one of the following:

(1)标志1:用于指示所述几何结构中是否存在需要修正的顶点;所述标志1可以记为nodeflag,nodeflag用于指示Trisoup节点对应的几何结构内是否有顶点需要处理,例如:nodeflag=1表示几何结构内有顶点需要处理,nodeflag=0表示几何结构内没有顶点需要处理。需要说明的是,在nodeflag指示几何结构内没有顶点需要处理的情况下,第一标志不包含标志2和标志3。(1) Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected; Flag 1 can be denoted as nodeflag, which is used to indicate whether there are vertices in the geometric structure corresponding to the Trisoup node that need to be processed. For example, nodeflag = 1 indicates that there are vertices in the geometric structure that need to be processed, and nodeflag = 0 indicates that there are no vertices in the geometric structure that need to be processed. It should be noted that when nodeflag indicates that there are no vertices in the geometric structure that need to be processed, the first flag does not include flags 2 and 3.

(2)标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;所述标志2可以记为axiFlag,axiFlag用于指示顶点基于哪个周轴向的维度值需要修正,例如:axiFlag可以包含axiFlag_1、axiFlag_2、axiFlag_3,axiFlag_1、axiFlag-_2、axiFlag_3分别对应x、y、z轴向,这里不限定两者的对应关系。例如:axiFlag_1可以用于指示是否需要修正顶点在x轴向(或者y轴向或者z轴向)的维度值;axiFlag_2可以用于指示是否需要修正顶点在y轴向(或者z轴向或者x轴向)的维度值;axiFlag_3可以用于指示是否需要修正顶点在z轴向(或者x轴向或者y轴向)的维度值。(2) Flag 2: used to indicate whether it is necessary to correct the dimension value of the vertex in the target axis, and the target axis is any of the three axes; the flag 2 can be recorded as axiFlag, and axiFlag is used to indicate based on which circumferential axis the dimension value of the vertex needs to be corrected, for example: axiFlag can include axiFlag_1, axiFlag_2, axiFlag_3, axiFlag_1, axiFlag-_2, axiFlag_3 correspond to the x-axis, y-axis, and z-axis respectively, and the correspondence between the two is not limited here. For example: axiFlag_1 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the x-axis (or y-axis or z-axis); axiFlag_2 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the y-axis (or z-axis or x-axis); axiFlag_3 can be used to indicate whether it is necessary to correct the dimension value of the vertex in the z-axis (or x-axis or y-axis).

axiFlag的取值可以用于指示是否需要修正顶点在某个轴向的维度值,例如:axiFlag_1=1表示需要修正顶点在x轴向的维度值,axiFlag_1=0表示不需要修正顶点在x轴向的维度值;axiFlag_2=1表示需要修正顶点在y轴向的维度值,axiFlag_2=0表示不需要修正顶点在y轴向的维度值;axiFlag_3=1表示需要修正顶点在z轴向的维度值,axiFlag_3=0表示不需要修正顶点在z轴向的维度值。The value of axiFlag can be used to indicate whether the dimension value of the vertex in a certain axis needs to be corrected. For example: axiFlag_1=1 indicates that the dimension value of the vertex in the x-axis direction needs to be corrected, and axiFlag_1=0 indicates that the dimension value of the vertex in the x-axis direction does not need to be corrected; axiFlag_2=1 indicates that the dimension value of the vertex in the y-axis direction needs to be corrected, and axiFlag_2=0 indicates that the dimension value of the vertex in the y-axis direction does not need to be corrected; axiFlag_3=1 indicates that the dimension value of the vertex in the z-axis direction needs to be corrected, and axiFlag_3=0 indicates that the dimension value of the vertex in the z-axis direction does not need to be corrected.

需要说明的是,在axiFlag指示不需要修正顶点在某个轴向的维度值时,所述第一标志不包含该轴向对应的标志3。It should be noted that, when axiFlag indicates that the dimension value of the vertex in a certain axis does not need to be corrected, the first flag does not include the flag 3 corresponding to the axis.

(3)标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。(3) Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or the negative direction of the target axis.

所述标志3可以记为flag01,flag01用于指示在需要修正顶点在某个轴向的维度值时,需要向哪个方向修正该维度值。例如:flag01可以包含flag01_1、flag01_2、flag01_3,flag01-_1、flag01_2、flag01_3分别对应x、y、z轴向,这里不限定两者的对应关系。Flag 3 can be denoted as flag01. Flag01 is used to indicate the direction in which the vertex dimension value in a certain axis needs to be corrected. For example, flag01 can include flag01_1, flag01_2, and flag01_3, where flag01_1, flag01_2, and flag01_3 correspond to the x, y, and z axes, respectively. The correspondence between the two is not limited here.

例如:flag01_1可以用于指示在需要修正顶点在x轴向(或者y轴向或者z轴向)的维度值的情况下的修正方向;flag01_2可以用于指示在需要修正顶点在y轴向(或者z轴向或者x轴向)的维度值的情况下的修正方向;flag01_3可以用于指示在需要修正顶点在z轴向(或者x轴向或者y轴向)的维度值的情况下的修正方向。For example: flag01_1 can be used to indicate the correction direction when the dimension value of the vertex in the x-axis (or y-axis or z-axis) needs to be corrected; flag01_2 can be used to indicate the correction direction when the dimension value of the vertex in the y-axis (or z-axis or x-axis) needs to be corrected; flag01_3 can be used to indicate the correction direction when the dimension value of the vertex in the z-axis (or x-axis or y-axis) needs to be corrected.

flag01的取值可以用于指示修正方向,例如:flag01_1=1表示需要朝向x轴的正方向修正顶点在x轴向的维度值;flag01_1=0表示需要朝向x轴的负方向修正顶点在x轴向的维度值;flag01_2=1表示需要朝向y轴的正方向修正顶点在y轴向的维度值;flag01_2=0表示需要朝向y轴的负方向修正顶点在y轴向的维度值;flag01_3=1表示需要朝向z轴的正方向修正顶点在z轴向的维度值;flag01_3=0表示需要朝向z轴的负方向修正顶点在z轴向的维度值。The value of flag01 can be used to indicate the correction direction, for example: flag01_1=1 indicates that the dimension value of the vertex in the x-axis direction needs to be corrected in the positive direction of the x-axis; flag01_1=0 indicates that the dimension value of the vertex in the x-axis direction needs to be corrected in the negative direction of the x-axis; flag01_2=1 indicates that the dimension value of the vertex in the y-axis direction needs to be corrected in the positive direction of the y-axis; flag01_2=0 indicates that the dimension value of the vertex in the y-axis direction needs to be corrected in the negative direction of the y-axis; flag01_3=1 indicates that the dimension value of the vertex in the z-axis direction needs to be corrected in the positive direction of the z-axis; flag01_3=0 indicates that the dimension value of the vertex in the z-axis direction needs to be corrected in the negative direction of the z-axis.

该实施例中,所述编码端按照x,y,z三个维度进行进一步处理得到nodeFlag、axiFlag、flag01。编码端可以根据一个节点划分的多个子几何体的点云分布信息以及顶点存在标志信息确定三个标志的取值,例如:以x维度为例,如图6所示,当左侧四个子几何体都标识为不存在原始点云且Tirsoup节点左面四条边上存在顶点时,flag01_x=0,axiFlag_x=1;或者当右侧四个子几何体都标识为不存在原始点云且Tirsoup节点右面四条边上存在顶点时,flag01_x=1,axiFlag_x=1;否则axiFlag_x=0,不存在flag01_x。同理可以在y、z维度得出每个节点的axiFlag_y,flag01_y和axiFlag_z,flag01_z。当axiFlag_x、axiFlag_y、axiFlag_z存在任意一个值为1时,nodeflag=1(指示存在需要修正的顶点),否则nodeflag=0(指示不存在需要修正的顶点)。In this embodiment, the encoding end further processes according to the three dimensions of x, y, and z to obtain nodeFlag, axiFlag, and flag01. The encoding end can determine the values of the three flags based on the point cloud distribution information of the multiple sub-geometric bodies divided by a node and the vertex existence flag information. For example, taking the x dimension as an example, as shown in Figure 6, when the four sub-geometric bodies on the left are all marked as not having the original point cloud and there are vertices on the four left edges of the Tirsoup node, flag01_x = 0, axiFlag_x = 1; or when the four sub-geometric bodies on the right are all marked as not having the original point cloud and there are vertices on the four right edges of the Tirsoup node, flag01_x = 1, axiFlag_x = 1; otherwise, axiFlag_x = 0, and flag01_x does not exist. Similarly, axiFlag_y, flag01_y and axiFlag_z, flag01_z of each node can be obtained in the y and z dimensions. When any one of the values of axiFlag_x, axiFlag_y, and axiFlag_z is 1, nodeflag=1 (indicating that there is a vertex that needs to be corrected), otherwise nodeflag=0 (indicating that there is no vertex that needs to be corrected).

作为一个可选实施例,所述方法还包括:As an optional embodiment, the method further includes:

确定所述第一标志的上下文;determining a context of the first marker;

所述对第一标志进行编码,获得第一码流,包括:根据所述上下文对所述第一标志进行编码,获得第一码流。The encoding of the first flag to obtain the first code stream includes: encoding the first flag according to the context to obtain the first code stream.

可选的,确定第一标志的上下文,包括:Optionally, determining the context of the first flag includes:

根据Trisoup节点对应的几何结构内的顶点分布信息,确定所述第一标志的上下文;Determining the context of the first marker based on vertex distribution information within the geometric structure corresponding to the Trisoup node;

其中,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。The context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.

该实施例中,所述编码端可以根据节点内顶点分布信息确定上下文,利用该上下文对所述第一标志进行编码。In this embodiment, the encoding end may determine a context based on vertex distribution information within a node, and use the context to encode the first flag.

所述目标轴向可以是x、y、z三个轴向的任一轴向,在所述第一标志包含多个flag的情况下,所述上下文可以包括多个flag对应的上下文。例如:所述第一标志包括:标志1、标志2以及标志3,所述上下文可以包括标志2的上下文以及标志3的上下文。The target axis can be any of the three axes: x, y, and z. If the first flag includes multiple flags, the context can include contexts corresponding to the multiple flags. For example, if the first flag includes flag 1, flag 2, and flag 3, the context can include the context of flag 2 and the context of flag 3.

在所述编码端编码所述第一标志时,编码哪个轴向的标志则使用哪个轴向对应的上下文,例如:编码x轴向对应的标志2,则使用x轴向对应的上下文,即:在x轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;编码y轴向对应的标志2,则使用y轴向对应的上下文,即:在y轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;编码z轴向对应的标志3,则使用z轴向对应的上下文,即:在z轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值。编码端可以利用所述上下文编码nodeFlag、axiFlag、flag01获得第一码流。When encoding the first flag at the encoding end, the context corresponding to the axis to be encoded is used. For example, when encoding the flag corresponding to the x-axis 2, the context corresponding to the x-axis is used, that is, whether the ratio of the number of vertices in the first area along the x-axis to the total number of vertices is greater than or equal to the first threshold; when encoding the flag corresponding to the y-axis 2, the context corresponding to the y-axis is used, that is, whether the ratio of the number of vertices in the first area along the y-axis to the total number of vertices is greater than or equal to the first threshold; when encoding the flag corresponding to the z-axis 3, the context corresponding to the z-axis is used, that is, whether the ratio of the number of vertices in the first area along the z-axis to the total number of vertices is greater than or equal to the first threshold. The encoding end can use the context to encode nodeFlag, axiFlag, and flag01 to obtain the first code stream.

可选的,所述第一区域可以是目标区域的预设范围,所述第一区域可以记为负半轴或者正半轴,例如:顶点坐标的目标轴向的维度值与所述顶点所在边的起点的目标轴向的维度值之间的距离小于第一预定阈值,认为该顶点位于所述目标轴向的负半轴,该情况下在目标轴向的第一区域的顶点数量与顶点的总数量的比值是:在目标轴向的负半轴的顶点数量与顶点总数量的比值。顶点坐标的目标轴向的维度值与所述顶点所在边的终点的目标轴向的维度值之间的距离小于第二预定阈值,认为该顶点位于所述目标轴向的正半轴,该情况下在目标轴向的第一区域的顶点数量与顶点的总数量的比值是:在目标轴向的正半轴的顶点数量与顶点总数量的比值。Optionally, the first area may be a preset range of the target area, and the first area may be recorded as the negative semi-axis or the positive semi-axis. For example, if the distance between the target axial dimension value of the vertex coordinate and the target axial dimension value of the starting point of the edge where the vertex is located is less than a first predetermined threshold, the vertex is considered to be located on the negative semi-axis of the target axial direction. In this case, the ratio of the number of vertices in the first area of the target axial direction to the total number of vertices is: the ratio of the number of vertices in the negative semi-axis of the target axial direction to the total number of vertices. If the distance between the target axial dimension value of the vertex coordinate and the target axial dimension value of the end point of the edge where the vertex is located is less than a second predetermined threshold, the vertex is considered to be located on the positive semi-axis of the target axial direction. In this case, the ratio of the number of vertices in the first area of the target axial direction to the total number of vertices is: the ratio of the number of vertices in the positive semi-axis of the target axial direction to the total number of vertices.

在所述第一区域是所述目标轴向的负半轴或者正半轴时,所述上下文中指示第一阈值可以不同,例如:上下文指示在目标轴向的负半轴的顶点数量与顶点的总数量的比值是否大于th1,或者,上下文指示在目标轴向的正半轴的顶点数量与顶点的总数量的比值是否大于th2,th1和th2可以不同。When the first area is the negative semi-axis or the positive semi-axis of the target axis, the first threshold indicated in the context may be different, for example: the context indicates whether the ratio of the number of vertices in the negative semi-axis of the target axis to the total number of vertices is greater than th1, or the context indicates whether the ratio of the number of vertices in the positive semi-axis of the target axis to the total number of vertices is greater than th2, and th1 and th2 may be different.

作为一个可选实施例,所述对第一标志进行编码,包括:As an optional embodiment, encoding the first flag includes:

编码标志1;Coding mark 1;

若所述标志1指示所述几何结构中存在需要修正的顶点,则编码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则编码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, the flag 2 corresponding to the first axis is encoded; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, the flag 3 corresponding to the first axis is encoded;

编码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值,则编码所述第二轴向对应的标志3;Encode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, then encode the flag 3 corresponding to the second axis;

和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;编码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; encode the mark 3 corresponding to the third axis.

该实施例中,所述编码端在编码第一码流时,首先编码标志1(nodeflag),根据标志1的指示编码标志2(axiFlag);其中,若标志1指示存在需要修正的顶点,则编码标志2,若标志1指示不存在需要修正的顶点,则无需编码标志2。在编码标志2时,可以按照顺序首先编码两个轴向的标志2,根据两个轴向的标志2判断是否需要编码第三个轴向的标志2;根据标志2的指示确定是否编码标志3(flag01),在标志2指示无需修正顶点在某一轴向的维度值时,则无需编码该轴向的标志3。在两个轴向的标志2均指示不需要修正顶点在对应轴向的维度值时,确定第三个轴向的标志2指示需要修正顶点在该轴向的维度值(因为标志1指示存在需要修正的顶点,若两个轴向的标志2均指示无需修正,则第三个轴向的标志2一定指示需要修正顶点在该轴向的维度值)。In this embodiment, when encoding the first code stream, the encoding end first encodes flag 1 (nodeflag), and encodes flag 2 (axiFlag) according to the indication of flag 1; wherein, if flag 1 indicates that there is a vertex that needs to be corrected, flag 2 is encoded, and if flag 1 indicates that there is no vertex that needs to be corrected, flag 2 does not need to be encoded. When encoding flag 2, two axial flags 2 can be encoded first in order, and it is determined whether the third axial flag 2 needs to be encoded based on the two axial flags 2; it is determined whether flag 3 (flag01) is encoded based on the indication of flag 2, and when flag 2 indicates that the dimensional value of the vertex in a certain axis does not need to be corrected, the flag 3 of the axis does not need to be encoded. When both axial flags 2 indicate that the dimensional value of the vertex in the corresponding axis does not need to be corrected, it is determined that the third axial flag 2 indicates that the dimensional value of the vertex in the axis needs to be corrected (because flag 1 indicates that there is a vertex that needs to be corrected, if both axial flags 2 indicate that no correction is required, then the third axial flag 2 must indicate that the dimensional value of the vertex in the axis needs to be corrected).

下面举例说明编码端编码第一标志的过程,编码代码如下:
The following example illustrates the process of encoding the first flag at the encoding end. The encoding code is as follows:

编码过程描述如下:编码端首先编码nodeflag,若nodeflag指示存在需要修正的顶点(如nodeflag=1),则编码axiFlag_1(假设axiFlag_1对应y轴);若axiFlag_1指示需要修正顶点在y轴向的维度值(如axiFlag_1=1),则编码y轴向对应的flag01_1;编码axiFlag_2(假设axiFlag_2对应z轴);若axiFlag_2指示需要修正顶点在z轴向的维度值,则编码z轴向对应的flag01_2;若axiFlag_1指示不需要修正顶点在y轴向的维度值(如axiFlag_1=0),且axiFlag_2均指示不需要修正顶点在z轴向的维度值(如axiFlag_2=0),则可以确定axiFlag_3指示需要修正顶点在x轴向的维度值(如axiFlag_3=1);编码flag01_3。The encoding process is described as follows: the encoding end first encodes nodeflag. If nodeflag indicates that there is a vertex that needs to be corrected (such as nodeflag=1), axiFlag_1 is encoded (assuming axiFlag_1 corresponds to the y-axis); if axiFlag_1 indicates that the dimension value of the vertex in the y-axis direction needs to be corrected (such as axiFlag_1=1), flag01_1 corresponding to the y-axis is encoded; axiFlag_2 is encoded (assuming axiFlag_2 corresponds to the z-axis); if axiFlag_2 indicates that the dimension value of the vertex in the z-axis direction needs to be corrected, flag01_2 corresponding to the z-axis is encoded; if axiFlag_1 indicates that the dimension value of the vertex in the y-axis direction does not need to be corrected (such as axiFlag_1=0), and axiFlag_2 both indicate that the dimension value of the vertex in the z-axis direction does not need to be corrected (such as axiFlag_2=0), it can be determined that axiFlag_3 indicates that the dimension value of the vertex in the x-axis direction needs to be corrected (such as axiFlag_3=1); flag01_3 is encoded.

作为一个可选实施例,根据所述第一标志对所述几何结构中的顶点进行处理,包括:As an optional embodiment, processing the vertices in the geometric structure according to the first flag includes:

根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag;

根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body;

根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex.

该实施例中,所述编码端可以根据nodeflag以及三个轴向的axiFlag、flag01,对当前节点划分的八个子几何体进行是否存在原始点云的标记。对本节点内的顶点进行资格判定,确定顶点的类型,根据顶点的类型对顶点进行处理或者不处理。其中,所述顶点的类型可以包括:第一类型顶点,该第一类型顶点是不合理顶点;第二类型顶点,该第二类型顶点是较合理顶点;第三类型顶点,该第三类型顶点是合理顶点。对于合理顶点可以不做处理。In this embodiment, the encoding end can mark whether the eight sub-geometric bodies divided by the current node have the original point cloud based on nodeflag and the three axial directions axiFlag and flag01. The vertices in this node are qualified to determine the type of the vertex, and the vertex is processed or not processed according to the type of the vertex. The vertex type may include: a first type vertex, which is an unreasonable vertex; a second type vertex, which is a relatively reasonable vertex; and a third type vertex, which is a reasonable vertex. Reasonable vertices may not be processed.

可选的,根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型,包括以下至少一项:Optionally, determining the type of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body includes at least one of the following:

在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;

在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric body of the first vertical plane, then the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;

在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices.

该实施例中,当顶点所在边所属的第一平面内的四个子几何体标记为不存在原始点云时,该顶点判定为不合理顶点,即所述第一类型顶点。例如图6所示,假设顶点所在边是图6中的底面的边(子几何体0和4所在的一条边),则该条边所属的第一平面可以是子几何体0、1、4、5所在的面,或者子几何体0、2、4、6所在的面;若子几何体0、1、4、5或者子几何体0、2、4、6不存在原始点云,则该顶点是第一类型顶点,即不合理顶点。In this embodiment, when the four sub-geometric bodies within the first plane to which the vertex belongs are marked as not existing in the original point cloud, the vertex is determined to be an unreasonable vertex, that is, the first type of vertex. For example, as shown in Figure 6, assuming that the edge where the vertex belongs is the edge of the bottom surface in Figure 6 (the edge where sub-geometric bodies 0 and 4 are located), then the first plane to which the edge belongs can be the surface where sub-geometric bodies 0, 1, 4, and 5 are located, or the surface where sub-geometric bodies 0, 2, 4, and 6 are located; if sub-geometric bodies 0, 1, 4, and 5 or sub-geometric bodies 0, 2, 4, and 6 do not exist in the original point cloud, then the vertex is a first type of vertex, that is, an unreasonable vertex.

当顶点所在边的第一垂直平面内的子几何体不存在原始点云,且该顶点处于所述第一垂直平面的子几何体中,该顶点判定为较合理顶点,即所述第二类型顶点。例如图6所示,假设顶点所在边是图6中的底面的边(子几何体0和4所在的一条边),则该条边的第一垂直平面可以是子几何体0、1、2、3所在的面或者子几何体4、5、6、7所在的面。若子几何体0、1、2、3不存在原始点云且该顶点处于子几何体0、1、2、3任意一个内,则确定该顶点是第二类型顶点,或者,若子几何体4、5、6、7不存在原始点云且该顶点处于子几何体4、5、6、7任意一个内,则确定该顶点是第二类型顶点,即较为合理顶点。When the sub-geometry within the first vertical plane of the edge where the vertex is located does not have an original point cloud, and the vertex is in the sub-geometry of the first vertical plane, the vertex is determined to be a more reasonable vertex, that is, the second type vertex. For example, as shown in Figure 6, assuming that the edge where the vertex is located is the edge of the bottom surface in Figure 6 (an edge where sub-geometry 0 and 4 are located), the first vertical plane of the edge can be the surface where sub-geometry 0, 1, 2, 3 is located or the surface where sub-geometry 4, 5, 6, 7 is located. If the sub-geometry 0, 1, 2, 3 does not have an original point cloud and the vertex is in any one of the sub-geometry 0, 1, 2, 3, then the vertex is determined to be a second type vertex, or if the sub-geometry 4, 5, 6, 7 does not have an original point cloud and the vertex is in any one of the sub-geometry 4, 5, 6, 7, then the vertex is determined to be a second type vertex, that is, a more reasonable vertex.

在该几何结构中,除所述第一类型顶点和所述第二类型顶点外的其他顶点认为是合理顶点,即所述第三类型顶点。In this geometric structure, vertices other than the first type vertices and the second type vertices are considered to be reasonable vertices, namely the third type vertices.

可选的,根据所述顶点的类型对所述顶点进行处理,包括以下至少一项:Optionally, processing the vertex according to the type of the vertex includes at least one of the following:

删除第一类型顶点;即删除不合理顶点;Delete the first type of vertices; that is, delete unreasonable vertices;

将第二类型顶点修正为所述第二类型顶点所在边的中点;即将较合理顶点进行修正,修正到其所在边的中点。Correct the second type vertex to the midpoint of the edge where the second type vertex is located; that is, correct the more reasonable vertex to the midpoint of the edge where the vertex is located.

可选的,对于第三类型顶点即合理顶点,不进行处理。Optionally, the third type of vertices, i.e., reasonable vertices, are not processed.

作为一个可选实施例,所述方法还包括:As an optional embodiment, the method further includes:

编码第二标志为第二码流,所述第二标志用于指示启用或不启用几何重建技术。The second flag is encoded into a second code stream, where the second flag is used to indicate whether to enable or not enable the geometric reconstruction technology.

在本申请的实施例中,编码端编码本申请的几何重建方法是否开启的标志(flag),获得第二码流;在几何重建方法启用的情况下,执行本申请实施例的几何重建方法的实施过程。可选的,所述第二码流与所述第一码流可以是同一个码流也可以不同的码流。In an embodiment of the present application, the encoder encodes a flag indicating whether the geometric reconstruction method of the present application is enabled to obtain a second bitstream; when the geometric reconstruction method is enabled, the implementation process of the geometric reconstruction method of the embodiment of the present application is performed. Optionally, the second bitstream and the first bitstream can be the same bitstream or different bitstreams.

可选的,所述编码端可以在Trisoup启用的情况下,编码第二标志为第二码流。Optionally, the encoding end may encode the second flag into a second code stream when Trisoup is enabled.

可选的,所述编码端可以编码Trisoup是否启用的flag;所述解码端通过解码flag可以确定Trisoup是否启用。Optionally, the encoding end may encode a flag indicating whether Trisoup is enabled; and the decoding end may determine whether Trisoup is enabled by decoding the flag.

可选的,在确定第一标志之前,所述方法还包括:Optionally, before determining the first marker, the method further includes:

确定Trisoup节点对应的几何结构中的顶点满足第一条件;Determine that the vertices in the geometric structure corresponding to the Trisoup node meet the first condition;

其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.

该实施例中,Trisoup节点是否启用本申请的几何重建方法由资格(eligible)取值决定。当节点内顶点总数量大于或等于阈值Num且满足在任一轴向的第二区域的顶点数量与顶点总数量的比值P大于或等于阈值pth1时,设置eligible的取值为1,表示该Trisoup节点执行本申请的几何重建方法,即在Trisoup节点对应的几何结构中的顶点满足第一条件的情况下,编码端需要编码第一码流;否则设置eligible的取值为0,表示该Trisoup节点不执行本申请的几何重建方法,编码端无需编码第一码流。In this embodiment, whether the Trisoup node enables the geometric reconstruction method of the present application is determined by the value of eligible. When the total number of vertices in the node is greater than or equal to the threshold value Num and the ratio P of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to the threshold value pth1, the value of eligible is set to 1, indicating that the Trisoup node executes the geometric reconstruction method of the present application, that is, when the vertices in the geometric structure corresponding to the Trisoup node meet the first condition, the encoder needs to encode the first bitstream; otherwise, the value of eligible is set to 0, indicating that the Trisoup node does not execute the geometric reconstruction method of the present application, and the encoder does not need to encode the first bitstream.

其中,所述第二区域可以是一个阈值范围,所述第二区域可以是某个轴向的某一半轴区域,例如所述第二区域可以记为某一轴向的负半轴或者正半轴,所述第一条件例如:顶点的总数量大于或等于第二阈值,且存在于任一轴向上某个半轴区域的顶点数量与顶点总数量的比值P大于或等于第三阈值。所述任一轴向可以是x轴向、y轴向、z轴向中的任意一种或者几种。The second region may be a threshold range, and the second region may be a semi-axis region of a certain axis. For example, the second region may be the negative semi-axis or the positive semi-axis of a certain axis. The first condition may be, for example: the total number of vertices is greater than or equal to the second threshold, and the ratio P of the number of vertices in a semi-axis region of any axis to the total number of vertices is greater than or equal to a third threshold. The any axis may be any one or more of the x-axis, y-axis, and z-axis.

例如:顶点坐标的x轴向的维度值与所述顶点所在边的起点的x轴向的维度值之间的距离小于阈值th1,认为该顶点位于所述x轴向的负半轴,该情况下在x轴向的第二区域的顶点数量与顶点的总数量的比值是:在x轴向的负半轴的顶点数量与顶点总数量的比值。顶点坐标的x轴向的维度值与所述顶点所在边的终点的x轴向的维度值之间的距离小于阈值th2,认为该顶点位于所述x轴向的正半轴,该情况下在x轴向的第二区域的顶点数量与顶点的总数量的比值是:在x轴向的正半轴的顶点数量与顶点总数量的比值。For example: if the distance between the x-axis dimension value of the vertex coordinate and the x-axis dimension value of the starting point of the edge where the vertex is located is less than the threshold value th1, the vertex is considered to be located on the negative half-axis of the x-axis. In this case, the ratio of the number of vertices in the second region along the x-axis to the total number of vertices is: the ratio of the number of vertices in the negative half-axis of the x-axis to the total number of vertices. If the distance between the x-axis dimension value of the vertex coordinate and the x-axis dimension value of the end point of the edge where the vertex is located is less than the threshold value th2, the vertex is considered to be located on the positive half-axis of the x-axis. In this case, the ratio of the number of vertices in the second region along the x-axis to the total number of vertices is: the ratio of the number of vertices in the positive half-axis of the x-axis to the total number of vertices.

作为一个可选实施例,所述使用处理后的顶点重构点云,包括:As an optional embodiment, reconstructing the point cloud using the processed vertices includes:

根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex;

为所述Trisoup节点确定面顶点,对所述面顶点的存在信息进行编码获得第三码流;Determining face vertices for the Trisoup node, and encoding existence information of the face vertices to obtain a third code stream;

根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices;

对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.

该实施例中,在对顶点进行删除或者修正处理后,编码端根据处理后的顶点计算质心顶点的初始位置;根据质心顶点初始位置周围的原始点云计算质心顶点的偏移值。然后将该偏移值量化并编码写入码流。将反向量化漂移值与质心顶点的初始位置求和,得到偏移后的质心顶点位置。In this embodiment, after deleting or modifying the vertices, the encoder calculates the initial position of the centroid vertex based on the processed vertices. It then calculates an offset value for the centroid vertex based on the original point cloud surrounding the initial position. This offset value is then quantized and encoded into the bitstream. The inverse quantized drift value is summed with the initial position of the centroid vertex to obtain the offset position of the centroid vertex.

所述编码端为每个节点选择性确定面顶点。面顶点的存被编码发送给解码端;所述编码端对每个节点内的顶点坐标和面顶点坐标进行排序,使用边顶点、偏移后的质心顶点和面顶点构造三角面片;对三角面片进行光线追踪采样,得到重构点云。The encoder selectively determines face vertices for each node. The face vertices are encoded and sent to the decoder. The encoder sorts the vertex coordinates and face vertex coordinates within each node, constructs triangular facets using edge vertices, offset centroid vertices, and face vertices, and performs ray tracing sampling on the triangular facets to obtain a reconstructed point cloud.

编码端的编码过程如图9所示,包括:The encoding process at the encoding end is shown in Figure 9, including:

根据点云分布情况确定Trisoup节点对应的几何结构的顶点(vertex)总数量;Determine the total number of vertices (vertex) of the geometric structure corresponding to the Trisoup node according to the distribution of the point cloud;

判断vertex总数量是否大于或等于阈值,若vertex总数量大于或等于阈值,且在任一轴向的第二区域的顶点数量与vertex总数量的比值P大于或等于阈值th1,设置eligible=1,指示该Trisoup节点启用本申请的几何重建方法,否则设置eligible=0,指示该Trisoup节点不启用本申请的几何重建方法;Determine whether the total number of vertices is greater than or equal to a threshold. If the total number of vertices is greater than or equal to the threshold, and the ratio P of the number of vertices in the second region along any axis to the total number of vertices is greater than or equal to the threshold th1, set eligible = 1 to instruct the Trisoup node to enable the geometric reconstruction method of the present application. Otherwise, set eligible = 0 to instruct the Trisoup node not to enable the geometric reconstruction method of the present application.

在eligible=1的情况下,将Trisoup节点对应的几何结构分为八个子几何体,如图6所示,依据节点内原始点云信息给予八个子几何体是否存在原始点云的flag(8);In the case of eligible=1, the geometric structure corresponding to the Trisoup node is divided into eight sub-geometric bodies, as shown in Figure 6. The flag (8) indicating whether the original point cloud exists is given to the eight sub-geometric bodies according to the original point cloud information in the node.

确定nodeflag、各个轴向对应的axiFlag以及flag01;Determine nodeflag, axiFlag corresponding to each axis, and flag01;

编码nodeflag;判断nodeflag的取值,若nodeflag=1,即指示存在需要修正的顶点,编码axiFlag_z;若axiFlag_z=1,即指示需要修正顶点在z轴向的维度值,则编码z轴向对应的flag01_z;Encode nodeflag; determine the value of nodeflag. If nodeflag = 1, it indicates that there is a vertex that needs to be corrected, and encode axiFlag_z. If axiFlag_z = 1, it indicates that the dimension value of the vertex in the z-axis direction needs to be corrected, and encode flag01_z corresponding to the z-axis direction.

编码axiFlag_y,若axiFlag_y=1,即指示需要修正顶点在y轴向的维度值,则解码编码y轴向对应的flag01_y;Encode axiFlag_y. If axiFlag_y = 1, indicating that the dimension value of the vertex in the y-axis direction needs to be corrected, then decode and encode flag01_y corresponding to the y-axis.

若axiFlag_z=0且axiFlag_y=0,则确定axiFlag_x=1,即需要修正顶点在x轴向的维度值,则编码flag01_x,根据flag01_x的取值修正顶点(modify edge vertex);If axiFlag_z = 0 and axiFlag_y = 0, then axiFlag_x = 1, that is, the dimension value of the vertex in the x-axis direction needs to be corrected, then flag01_x is encoded, and the vertex is corrected according to the value of flag01_x (modify edge vertex);

若axiFlag_z=1和/或axiFlag_y=1,即不满足axiFlag_z=0且axiFlag_y=0,则编码axiFlag_x;判断axiFlag_x的取值,若axiFlag_x=1则指示修正顶点在x轴向的维度值;编码flag01_x,根据flag01_x的取值修正顶点(modify edge vertex);If axiFlag_z = 1 and/or axiFlag_y = 1, that is, axiFlag_z = 0 and axiFlag_y = 0 are not satisfied, then encode axiFlag_x; determine the value of axiFlag_x, if axiFlag_x = 1, it indicates to modify the dimension value of the vertex in the x-axis direction; encode flag01_x, and modify the vertex (modify edge vertex) according to the value of flag01_x;

利用修正后的顶点、质心顶点(centroid)以及面顶点(face vertex)进行光线追踪采样,获得重建点云(reconstruct point cloud)。Ray tracing sampling is performed using the corrected vertices, centroid vertices, and face vertices to obtain a reconstructed point cloud.

该实施例中,需要在trisoup技术启用的情况下解码本申请的几何重建技术是否开启。利用trisoup节点内的顶点分布情况和顶点总数量自适应的选择是否开启本申请的几何重建技术。对于开启该技术的节点再次利用trisoup节点内顶点的分布情况构建了三组上下文模型,分别用于编码表征节点内的原始点云的分布的nodeFlag、axiFlag、flag01。此外,每个Trisoup节点对应的几何结构被划分为子几何体,利用各个flag指示节点内子几何体的原始点云分布,进而用于评判节点内各顶点的合理性。对判定为不同合理性的顶点进行不同的处理后,进行后续点云重建过程。In this embodiment, it is necessary to decode whether the geometric reconstruction technology of the present application is turned on when the trisoup technology is enabled. The distribution of vertices and the total number of vertices in the trisoup node are used to adaptively select whether to turn on the geometric reconstruction technology of the present application. For the nodes that turn on this technology, three groups of context models are constructed again using the distribution of vertices in the trisoup node, which are used to encode the nodeFlag, axiFlag, and flag01 that represent the distribution of the original point cloud in the node. In addition, the geometric structure corresponding to each Trisoup node is divided into sub-geometries, and each flag is used to indicate the original point cloud distribution of the sub-geometries in the node, which is then used to judge the rationality of each vertex in the node. After different processing is performed on the vertices judged to be of different rationality, the subsequent point cloud reconstruction process is carried out.

本申请的实施例,编码端确定第一标志并对第一标志进行编码,根据第一标志可以确定几何结构中的原始点云的分布情况,进而对几何结构中的顶点进行处理,使用处理后的顶点重构点云。通过对顶点进行处理,能够去掉错误点云,减少重建点云的失真情况,提高重建点云的性能增益。In an embodiment of the present application, the encoding end determines and encodes a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

本申请实施例提供的几何重建方法,执行主体可以为几何重建装置。本申请实施例中以几何重建装置执行几何重建方法为例,说明本申请实施例提供的几何重建装置。The geometric reconstruction method provided in the embodiment of the present application can be executed by a geometric reconstruction device. In the embodiment of the present application, the geometric reconstruction device provided in the embodiment of the present application is described by taking the geometric reconstruction method performed by the geometric reconstruction device as an example.

如图10所示,本申请实施例提供一种几何重建装置1000,应用于解码端,所述装置包括:As shown in FIG10 , an embodiment of the present application provides a geometric reconstruction device 1000 , which is applied to a decoding end. The device includes:

第一解码模块1010,用于解码第一码流,获得第一标志,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;A first decoding module 1010 is configured to decode the first code stream to obtain a first flag, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node;

第一处理模块1020,用于根据所述第一标志对所述几何结构中的顶点进行处理;A first processing module 1020, configured to process vertices in the geometric structure according to the first flag;

第二处理模块1030,用于使用处理后的顶点重构点云。The second processing module 1030 is configured to reconstruct a point cloud using the processed vertices.

可选的,所述装置还包括:Optionally, the device further includes:

第一确定模块,用于根据Trisoup节点对应的几何结构中的顶点分布信息,确定上下文;A first determination module is used to determine the context according to vertex distribution information in the geometric structure corresponding to the Trisoup node;

所述第一解码模块具体用于:根据所述上下文解码所述第一码流,获得第一标志。The first decoding module is specifically configured to decode the first code stream according to the context to obtain a first flag.

可选的,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。Optionally, the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.

可选的,所述第一标志包括以下至少一项:Optionally, the first flag includes at least one of the following:

标志1:用于指示所述几何结构中是否存在需要修正的顶点;Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected;

标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;Flag 2: used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes;

标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis.

可选的,所述第一解码模块具体用于:Optionally, the first decoding module is specifically configured to:

解码所述第一码流,获得标志1;Decoding the first code stream to obtain flag 1;

在所述标志1指示所述几何结构中存在需要修正的顶点的情况下,解码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则解码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, decoding the flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, decoding the flag 3 corresponding to the first axis;

解码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值的,则解码所述第二轴向对应的标志3;Decode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, decode the flag 3 corresponding to the second axis;

和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;解码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; decode the mark 3 corresponding to the third axis.

可选的,所述第一处理模块具体用于:Optionally, the first processing module is specifically configured to:

根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag;

根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body;

根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex.

可选的,所述第一处理模块具体用于执行以下至少一项:Optionally, the first processing module is specifically configured to perform at least one of the following:

在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;

在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric body of the first vertical plane, then the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;

在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices.

可选的,所述第一处理模块具体用于执行以下至少一项:Optionally, the first processing module is specifically configured to perform at least one of the following:

删除第一类型顶点;Delete the first type of vertex;

将第二类型顶点修正为所述第二类型顶点所在边的中点。The second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located.

可选的,所述装置还包括:Optionally, the device further includes:

第二解码模块,用于解码第二码流获得第二标志,所述第二标志用于指示启用或不启用几何重建技术。The second decoding module is used to decode the second code stream to obtain a second flag, where the second flag is used to indicate whether to enable or disable the geometric reconstruction technology.

可选的,所述装置还包括:Optionally, the device further includes:

第二确定模块,用于确定Trisoup节点对应的几何结构中的顶点满足第一条件;A second determination module is used to determine whether a vertex in the geometric structure corresponding to the Trisoup node satisfies a first condition;

其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.

可选的,所述第二处理模块具体用于Optionally, the second processing module is specifically configured to

根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex;

解码第三码流,确定Trisoup节点的面顶点;Decode the third code stream and determine the face vertices of the Trisoup node;

根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices;

对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.

本申请的实施例,解码端解码获得第一标志,根据第一标志可以确定几何结构中的原始点云的分布情况,进而对几何结构中的顶点进行处理,使用处理后的顶点重构点云。通过对顶点进行处理,能够去掉错误点云,减少重建点云的失真情况,提高重建点云的性能增益。In an embodiment of the present application, a decoding end decodes and obtains a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

本申请实施例提供的几何重建装置能够实现图4至图7的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。The geometric reconstruction device provided in the embodiment of the present application can implement the various processes implemented in the method embodiments of Figures 4 to 7 and achieve the same technical effects. To avoid repetition, they will not be described here.

如图11所示,本申请实施例还提供一种几何重建装置1100,应用于编码端,所述装置包括:As shown in FIG11 , an embodiment of the present application further provides a geometric reconstruction device 1100 , which is applied to an encoding end and includes:

第一编码模块1110,用于对第一标志进行编码,获得第一码流,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;A first encoding module 1110 is configured to encode a first flag to obtain a first code stream, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node;

第三处理模块1120,用于根据所述第一标志对所述几何结构中的顶点进行处理;A third processing module 1120, configured to process vertices in the geometric structure according to the first flag;

第四处理模块1130,用于使用处理后的顶点重构点云。The fourth processing module 1130 is configured to reconstruct a point cloud using the processed vertices.

可选的,所述装置还包括:第三确定模块,具体用于:Optionally, the device further includes: a third determining module, specifically configured to:

根据所述Trisoup节点对应的几何结构内的原始点云分布信息,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息,所述子几何体由所述几何结构划分得到;Marking original point cloud distribution information of sub-geometric bodies corresponding to child nodes of the Trisoup node according to original point cloud distribution information within the geometric structure corresponding to the Trisoup node, where the sub-geometric bodies are obtained by dividing the geometric structure;

根据所述子几何体的原始点云分布信息和所述几何结构的边的顶点存在标志,确定所述第一标志。The first flag is determined according to the original point cloud distribution information of the sub-geometric body and the vertex existence flag of the edge of the geometric structure.

可选的,所述第一标志包括以下至少一项:Optionally, the first flag includes at least one of the following:

标志1:用于指示所述几何结构中是否存在需要修正的顶点;Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected;

标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;Flag 2: used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes;

标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis.

可选的,所述第一编码模块具体用于:Optionally, the first encoding module is specifically configured to:

编码标志1;Coding mark 1;

若所述标志1指示所述几何结构中存在需要修正的顶点,则编码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则编码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, the flag 2 corresponding to the first axis is encoded; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, the flag 3 corresponding to the first axis is encoded;

编码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值,则编码所述第二轴向对应的标志3;Encode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, then encode the flag 3 corresponding to the second axis;

和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;编码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; encode the mark 3 corresponding to the third axis.

可选的,所述装置还包括:Optionally, the device further includes:

第四确定模块,用于确定所述第一标志的上下文;a fourth determining module, configured to determine a context of the first sign;

所述第一编码模块具体用于:根据所述上下文对所述第一标志进行编码,获得第一码流。The first encoding module is specifically configured to encode the first flag according to the context to obtain a first code stream.

可选的,所述第四确定模块具体用于:Optionally, the fourth determining module is specifically configured to:

根据Trisoup节点对应的几何结构内的顶点分布信息,确定所述第一标志的上下文;Determining the context of the first marker based on vertex distribution information within the geometric structure corresponding to the Trisoup node;

其中,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。The context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.

可选的,所述第三处理模块具体用于:Optionally, the third processing module is specifically configured to:

根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag;

根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body;

根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex.

可选的,所述第三处理模块具体用于执行以下至少一项:Optionally, the third processing module is specifically configured to perform at least one of the following:

在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;

在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric body of the first vertical plane, then the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;

在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices.

可选的,所述第三处理模块具体用于执行以下至少一项:Optionally, the third processing module is specifically configured to perform at least one of the following:

删除第一类型顶点;Delete the first type of vertex;

将第二类型顶点修正为所述第二类型顶点所在边的中点。The second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located.

可选的,所述装置还包括:Optionally, the device further includes:

第二编码模块,用于编码第二标志为第二码流,所述第二标志用于指示启用或不启用几何重建技术。The second encoding module is used to encode a second flag into a second code stream, where the second flag is used to indicate whether to enable or disable the geometric reconstruction technology.

可选的,所述装置还包括:Optionally, the device further includes:

第五确定模块,用于确定Trisoup节点对应的几何结构中的顶点满足第一条件;A fifth determining module, configured to determine whether a vertex in the geometric structure corresponding to the Trisoup node satisfies a first condition;

其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.

可选的,所述第四处理模块具体用于:Optionally, the fourth processing module is specifically configured to:

根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex;

为所述Trisoup节点确定面顶点,对所述面顶点的存在信息进行编码获得第三码流;Determining face vertices for the Trisoup node, and encoding existence information of the face vertices to obtain a third code stream;

根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices;

对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.

本申请的实施例,编码端确定第一标志并对第一标志进行编码,根据第一标志可以确定几何结构中的原始点云的分布情况,进而对几何结构中的顶点进行处理,使用处理后的顶点重构点云。通过对顶点进行处理,能够去掉错误点云,减少重建点云的失真情况,提高重建点云的性能增益。In an embodiment of the present application, the encoding end determines and encodes a first flag. Based on the first flag, the distribution of the original point cloud in the geometric structure can be determined. The vertices in the geometric structure are then processed, and the processed vertices are used to reconstruct the point cloud. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

本申请实施例提供的几何重建装置能够实现图8至图9的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。The geometric reconstruction device provided in the embodiment of the present application can implement the various processes implemented in the method embodiments of Figures 8 to 9 and achieve the same technical effects. To avoid repetition, they will not be described here.

如图12所示,本申请实施例还提供一种电子设备1200,包括处理器1201和存储器1202,存储器1202上存储有可在所述处理器1201上运行的程序或指令,例如,该电子设备1200为编码端设备时,该程序或指令被处理器1201执行时实现上述几何重建方法实施例的各个步骤,且能达到相同的技术效果。该电子设备1200为解码端设备时,该程序或指令被处理器1201执行时实现上述几何重建方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。可选的,存储器1202可以是图1所示实施例中的存储器102或存储器113,处理器1201可以实现图1-3所示实施例中的编码器200或解码器300的功能。As shown in Figure 12, an embodiment of the present application further provides an electronic device 1200, including a processor 1201 and a memory 1202, wherein the memory 1202 stores programs or instructions that can be run on the processor 1201. For example, when the electronic device 1200 is an encoding end device, the program or instruction is executed by the processor 1201 to implement the various steps of the above-mentioned geometric reconstruction method embodiment, and can achieve the same technical effect. When the electronic device 1200 is a decoding end device, the program or instruction is executed by the processor 1201 to implement the various steps of the above-mentioned geometric reconstruction method embodiment, and can achieve the same technical effect. To avoid repetition, it is not repeated here. Optionally, the memory 1202 can be the memory 102 or the memory 113 in the embodiment shown in Figure 1, and the processor 1201 can implement the functions of the encoder 200 or the decoder 300 in the embodiment shown in Figures 1-3.

本申请实施例还提供一种电子设备,包括:存储器,被配置为存储视频数据;以及处理电路,被配置为实现如上述几何重建方法实施例的各个步骤。可选的,存储器可以是图1所示实施例中的存储器102或存储器113,处理电路可以实现图1-3所示实施例中的编码器200或解码器300的功能。The present application also provides an electronic device including: a memory configured to store video data; and a processing circuit configured to implement the steps of the geometric reconstruction method described above. Optionally, the memory may be memory 102 or memory 113 in the embodiment shown in FIG. 1 , and the processing circuit may implement the functions of encoder 200 or decoder 300 in the embodiments shown in FIG. 1-3 .

本申请实施例还提供一种电子设备,包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如图4或者图8所示方法实施例中的步骤。该设备实施例与上述方法实施例对应,上述方法实施例的各个实施过程和实现方式均可适用于该终端实施例中,且能达到相同的技术效果。The present application also provides an electronic device including a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is configured to execute a program or instruction to implement the steps in the method embodiment shown in FIG4 or FIG8. This device embodiment corresponds to the aforementioned method embodiment, and each implementation process and implementation method of the aforementioned method embodiment can be applied to this terminal embodiment and can achieve the same technical effects.

上述电子设备可以是终端,也可以为除终端之外的其他设备,例如服务器、网络附属存储器(Network Attached Storage,NAS)等。The above-mentioned electronic device can be a terminal or other devices other than a terminal, such as a server, a network attached storage (NAS), etc.

其中,终端可以是手机、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、掌上电脑、上网本、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、移动上网装置(Mobile Internet Device,MID)、增强现实(Augmented Reality,AR)、虚拟现实(Virtual Reality,VR)设备、混合现实(mixed reality,MR)设备、机器人、可穿戴式设备(Wearable Device)、飞行器(flight vehicle)、车载设备(Vehicle User Equipment,VUE)、船载设备、行人终端(Pedestrian User Equipment,PUE)、智能家居(具有无线通信功能的家居设备,如冰箱、电视、洗衣机或者家具等)、游戏机、个人计算机(Personal Computer,PC)、柜员机或者自助机等终端侧设备。可穿戴式设备包括:智能手表、智能手环、智能耳机、智能眼镜、智能首饰(智能手镯、智能手链、智能戒指、智能项链、智能脚镯、智能脚链等)、智能腕带、智能服装等。其中,车载设备也可以称为车载终端、车载控制器、车载模块、车载部件、车载芯片或车载单元等。需要说明的是,在本申请实施例并不限定终端的具体类型。Among them, the terminal can be a mobile phone, tablet computer (Tablet Personal Computer), laptop computer, notebook computer, personal digital assistant (PDA), handheld computer, netbook, ultra-mobile personal computer (UMPC), mobile Internet device (MID), augmented reality (AR), virtual reality (VR) equipment, mixed reality (MR) equipment, robot, wearable device (Wearable Device), flight vehicle, vehicle user equipment (VUE), shipborne equipment, pedestrian user equipment (PUE), smart home (home appliances with wireless communication function, such as refrigerator, TV, washing machine or furniture, etc.), game console, personal computer (PC), ATM or self-service machine and other terminal side devices. Wearable devices include: smart watches, smart bracelets, smart headphones, smart glasses, smart jewelry (smart bracelets, smart bracelets, smart rings, smart necklaces, smart anklets, smart anklets, etc.), smart wristbands, smart clothing, etc. Among them, vehicle-mounted devices can also be called vehicle-mounted terminals, vehicle-mounted controllers, vehicle-mounted modules, vehicle-mounted components, vehicle-mounted chips, or vehicle-mounted units, etc. It should be noted that the specific type of terminal is not limited in the embodiments of this application.

服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是云服务器,该云服务器可以提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、或以大数据和人工智能平台为基础的云计算服务等。The server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that can provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), or cloud computing services based on big data and artificial intelligence platforms.

示例性的,上述电子设备可以包括但不限于图1所示的源设备100或目的地设备110的类型。For example, the electronic device may include but is not limited to the source device 100 or the destination device 110 shown in FIG. 1 .

以电子设备为终端为例,图13为实现本申请实施例的一种终端的硬件结构示意图。Taking an electronic device as a terminal as an example, FIG13 is a schematic diagram of the hardware structure of a terminal implementing an embodiment of the present application.

该终端1300包括但不限于:射频单元1301、网络模块1302、音频输出单元1303、输入单元1304、传感器1305、显示单元1306、用户输入单元1307、接口单元1308、存储器1309以及处理器1310等中的至少部分部件。The terminal 1300 includes but is not limited to: a radio frequency unit 1301, a network module 1302, an audio output unit 1303, an input unit 1304, a sensor 1305, a display unit 1306, a user input unit 1307, an interface unit 1308, a memory 1309 and at least some of the components of the processor 1310.

本领域技术人员可以理解,终端1300还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1310逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗管理等功能。图13中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。Those skilled in the art will appreciate that the terminal 1300 may also include a power supply (such as a battery) to power various components. The power supply may be logically connected to the processor 1310 via a power management system, thereby enabling the power management system to manage charging, discharging, and power consumption. The terminal structure shown in FIG13 does not limit the terminal. The terminal may include more or fewer components than shown, or may combine certain components, or have different component arrangements, which will not be described in detail here.

应理解的是,本申请实施例中,输入单元1304可以包括图形处理器(Graphics Processing Unit,GPU)13041和麦克风13042,图形处理器13041对在视频采集模式或图像采集模式中由图像采集装置(如摄像头)获得的静态图片或视频的图像数据进行处理,或者可以对获得的点云数据进行处理。显示单元1306可包括显示面板13061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板13061。用户输入单元1307包括触控面板13071以及其他输入设备13072中的至少一种。触控面板13071,也称为触摸屏。触控面板13071可包括触摸检测装置和触摸控制器两个部分。其他输入设备13072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。It should be understood that in the embodiment of the present application, the input unit 1304 may include a graphics processing unit (GPU) 13041 and a microphone 13042. The graphics processor 13041 processes image data of static images or videos obtained by an image acquisition device (such as a camera) in video acquisition mode or image acquisition mode, or may process the obtained point cloud data. The display unit 1306 may include a display panel 13061, which may be configured in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 1307 includes a touch panel 13071 and at least one of other input devices 13072. The touch panel 13071 is also called a touch screen. The touch panel 13071 may include two parts: a touch detection device and a touch controller. Other input devices 13072 may include, but are not limited to, a physical keyboard, function keys (such as volume control keys, power keys, etc.), a trackball, a mouse, and a joystick, which will not be described in detail here.

本申请实施例中,射频单元1301接收来自网络侧设备的下行数据后,可以传输给处理器1310进行处理;另外,射频单元1301可以向网络侧设备发送上行数据。通常,射频单元1301包括但不限于天线、放大器、收发信机、耦合器、低噪声放大器、双工器等。In the embodiment of the present application, after receiving downlink data from a network-side device, the RF unit 1301 may transmit the data to the processor 1310 for processing. Furthermore, the RF unit 1301 may send uplink data to the network-side device. Typically, the RF unit 1301 includes, but is not limited to, an antenna, an amplifier, a transceiver, a coupler, a low-noise amplifier, a duplexer, and the like.

存储器1309可用于存储软件程序或指令以及各种数据。存储器1309可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1309可以包括易失性存储器或非易失性存储器。其中,非易失性存储器可以是只读存储器(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)。本申请实施例中的存储器1309包括但不限于这些和任意其它适合类型的存储器。Memory 1309 can be used to store software programs or instructions and various data. Memory 1309 may primarily include a first storage area for storing programs or instructions and a second storage area for storing data. The first storage area may store an operating system, applications or instructions required for at least one function (such as a sound playback function, an image playback function, etc.). Furthermore, memory 1309 may include volatile memory or non-volatile memory. 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 random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM (DRRAM). The memory 1309 in the embodiments of the present application includes, but is not limited to, these and any other suitable types of memory.

处理器1310可包括一个或多个处理单元;可选的,处理器1310集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1310中。Processor 1310 may include one or more processing units. Optionally, processor 1310 integrates an application processor and a modem processor. The application processor primarily handles operations related to the operating system, user interface, and application programs, while the modem processor primarily processes wireless communication signals, such as a baseband processor. It is understood that the modem processor may not be integrated into processor 1310.

其中,在所述终端是解码端设备时:Wherein, when the terminal is a decoding end device:

所述处理器1310用于:解码第一码流,获得第一标志,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;根据所述第一标志对所述几何结构中的顶点进行处理;使用处理后的顶点重构点云。The processor 1310 is used to: decode the first code stream to obtain a first flag, where the first flag is used to indicate the original point cloud distribution information in the geometric structure corresponding to the Trisoup node; process the vertices in the geometric structure according to the first flag; and reconstruct the point cloud using the processed vertices.

可选的,所述处理器1310还用于:Optionally, the processor 1310 is further configured to:

根据Trisoup节点对应的几何结构中的顶点分布信息,确定上下文;Determine the context based on the vertex distribution information in the geometric structure corresponding to the Trisoup node;

所述解码第一码流,获得第一标志,包括:The decoding of the first code stream to obtain the first flag includes:

根据所述上下文解码所述第一码流,获得第一标志。The first code stream is decoded according to the context to obtain a first flag.

可选的,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。Optionally, the context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.

可选的,所述第一标志包括以下至少一项:Optionally, the first flag includes at least one of the following:

标志1:用于指示所述几何结构中是否存在需要修正的顶点;Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected;

标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;Flag 2: used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes;

标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis.

可选的,所述处理器1310具体用于:Optionally, the processor 1310 is specifically configured to:

解码所述第一码流,获得标志1;Decoding the first code stream to obtain flag 1;

在所述标志1指示所述几何结构中存在需要修正的顶点的情况下,解码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则解码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, decoding the flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, decoding the flag 3 corresponding to the first axis;

解码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值的,则解码所述第二轴向对应的标志3;Decode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, decode the flag 3 corresponding to the second axis;

和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;解码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; decode the mark 3 corresponding to the third axis.

可选的,所述处理器1310具体用于:Optionally, the processor 1310 is specifically configured to:

根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag;

根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body;

根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex.

可选的,所述处理器1310具体用于执行以下至少一项:Optionally, the processor 1310 is specifically configured to perform at least one of the following:

在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;

在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric body of the first vertical plane, then the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;

在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices.

可选的,所述处理器1310具体用于执行以下至少一项:Optionally, the processor 1310 is specifically configured to perform at least one of the following:

删除第一类型顶点;Delete the first type of vertex;

将第二类型顶点修正为所述第二类型顶点所在边的中点。The second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located.

可选的,所述处理器1310还用于:Optionally, the processor 1310 is further configured to:

解码第二码流获得第二标志,所述第二标志用于指示启用或不启用几何重建技术。The second code stream is decoded to obtain a second flag, where the second flag is used to indicate whether the geometric reconstruction technology is enabled or not.

可选的,所述处理器1310还用于:Optionally, the processor 1310 is further configured to:

确定Trisoup节点对应的几何结构中的顶点满足第一条件;Determine that the vertices in the geometric structure corresponding to the Trisoup node meet the first condition;

其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.

可选的,所述处理器1310具体用于:Optionally, the processor 1310 is specifically configured to:

根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex;

解码第三码流,确定Trisoup节点的面顶点;Decode the third code stream and determine the face vertices of the Trisoup node;

根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices;

对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.

其中,在所述终端是编码端设备的情况下:Wherein, when the terminal is an encoding terminal device:

所述处理器1310用于:对第一标志进行编码,获得第一码流,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;根据所述第一标志对所述几何结构中的顶点进行处理;使用处理后的顶点重构点云。The processor 1310 is used to: encode a first flag to obtain a first code stream, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node; process vertices in the geometric structure according to the first flag; and reconstruct a point cloud using the processed vertices.

可选的,所述处理器1310具体用于:Optionally, the processor 1310 is specifically configured to:

根据所述Trisoup节点对应的几何结构内的原始点云分布信息,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息,所述子几何体由所述几何结构划分得到;Marking original point cloud distribution information of sub-geometric bodies corresponding to child nodes of the Trisoup node according to original point cloud distribution information within the geometric structure corresponding to the Trisoup node, where the sub-geometric bodies are obtained by dividing the geometric structure;

根据所述子几何体的原始点云分布信息和所述几何结构的边的顶点存在标志,确定所述第一标志。The first flag is determined according to the original point cloud distribution information of the sub-geometric body and the vertex existence flag of the edge of the geometric structure.

可选的,所述第一标志包括以下至少一项:Optionally, the first flag includes at least one of the following:

标志1:用于指示所述几何结构中是否存在需要修正的顶点;Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected;

标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;Flag 2: used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes;

标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis.

可选的,所述处理器1310具体用于:Optionally, the processor 1310 is specifically configured to:

编码标志1;Coding mark 1;

若所述标志1指示所述几何结构中存在需要修正的顶点,则编码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则编码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, the flag 2 corresponding to the first axis is encoded; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, the flag 3 corresponding to the first axis is encoded;

编码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值,则编码所述第二轴向对应的标志3;Encode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, then encode the flag 3 corresponding to the second axis;

和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;编码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; encode the mark 3 corresponding to the third axis.

可选的,所述处理器1310还用于:Optionally, the processor 1310 is further configured to:

确定所述第一标志的上下文;determining a context of the first marker;

所述对所述第一标志进行编码,获得第一码流,包括:The encoding of the first flag to obtain a first code stream includes:

根据所述上下文对所述第一标志进行编码,获得第一码流。The first flag is encoded according to the context to obtain a first code stream.

可选的,所述处理器1310具体用于:Optionally, the processor 1310 is specifically configured to:

根据Trisoup节点对应的几何结构内的顶点分布信息,确定所述第一标志的上下文;Determining the context of the first marker based on vertex distribution information within the geometric structure corresponding to the Trisoup node;

其中,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。The context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes.

可选的,所述处理器1310具体用于:Optionally, the processor 1310 is specifically configured to:

根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag;

根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body;

根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex.

可选的,所述处理器1310具体用于执行以下至少一项:Optionally, the processor 1310 is specifically configured to perform at least one of the following:

在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;

在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric body of the first vertical plane, then the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located;

在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices.

可选的,所述处理器1310具体用于执行以下至少一项:Optionally, the processor 1310 is specifically configured to perform at least one of the following:

删除第一类型顶点;Delete the first type of vertex;

将第二类型顶点修正为所述第二类型顶点所在边的中点。The second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located.

可选的,所述处理器1310还用于:Optionally, the processor 1310 is further configured to:

编码第二标志为第二码流,所述第二标志用于指示启用或不启用几何重建技术。The second flag is encoded into a second code stream, where the second flag is used to indicate whether to enable or not enable the geometric reconstruction technology.

可选的,所述处理器1310还用于:Optionally, the processor 1310 is further configured to:

确定Trisoup节点对应的几何结构中的顶点满足第一条件;Determine that the vertices in the geometric structure corresponding to the Trisoup node meet the first condition;

其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold.

可选的,所述处理器1310具体用于:Optionally, the processor 1310 is specifically configured to:

根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex;

为所述Trisoup节点确定面顶点,对所述面顶点的存在信息进行编码获得第三码流;Determining face vertices for the Trisoup node, and encoding existence information of the face vertices to obtain a third code stream;

根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices;

对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud.

本申请的实施例,终端根据第一标志可以确定几何结构中的原始点云的分布情况,进而对几何结构中的顶点进行处理,使用处理后的顶点重构点云。通过对顶点进行处理,能够去掉错误点云,减少重建点云的失真情况,提高重建点云的性能增益。In an embodiment of the present application, the terminal can determine the distribution of the original point cloud in the geometric structure based on the first flag, then process the vertices in the geometric structure and reconstruct the point cloud using the processed vertices. By processing the vertices, erroneous point clouds can be removed, distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

可以理解,本实施例中提及的各实现方式的实现过程可以参照方法实施例几何重建方法的相关描述,并达到相同或相应的技术效果,为避免重复,在此不再赘述。It can be understood that the implementation process of each implementation method mentioned in this embodiment can refer to the relevant description of the geometric reconstruction method of the method embodiment, and achieve the same or corresponding technical effects. 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. When the program or instruction is executed by a processor, the various processes of the above-mentioned geometric reconstruction method embodiment are implemented and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.

其中,所述处理器为上述实施例中所述的终端中的处理器。所述可读存储介质,包括计算机可读存储介质,如ROM、RAM、磁碟或者光盘等。在一些示例中,可读存储介质可以是非瞬态的可读存储介质。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 ROM, RAM, a magnetic disk, or an optical disk. In some examples, the readable storage medium may be a non-transitory 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 geometric reconstruction method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.

应理解,本申请实施例提到的芯片可以包括系统级芯片(也可称为系统芯片、芯片系统或片上系统芯片),也可以包括独立显示芯片等。It should be understood that the chip mentioned in the embodiments of the present application may include a system-level chip (also referred to as a system chip, a chip system or a system-on-chip chip), and may also include an independent display chip, etc.

本申请实施例另提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现上述几何重建方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。An embodiment of the present application further provides 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 geometric reconstruction 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 geometric reconstruction method of the encoding end as described above, and the decoding end device can be used to execute the steps of the geometric reconstruction method of the decoding end as described above.

本申请实施例还提供了一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现上述的几何重建方法的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。An embodiment of the present application also provides a computer program product, including computer instructions. When the computer instructions are executed by a processor, the steps of the above-mentioned geometric reconstruction method are implemented and the same technical effect can be achieved. To avoid repetition, they will not be repeated here.

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。It should be noted that, in this article, the terms "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the presence of other identical elements in the process, method, article or device comprising the element. In addition, it should be pointed out that the scope of the methods and devices in the embodiments of the present application is not limited to performing functions in the order shown or discussed, and may also include performing functions in a substantially simultaneous manner or in the opposite order according to the functions involved. For example, the described method may be performed in an order different from that described, and various steps may also be added, omitted or combined. In addition, the features described with reference to certain examples may be combined in other examples.

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助计算机软件产品加必需的通用硬件平台的方式来实现,当然也可以通过硬件。该计算机软件产品存储在存储介质(如ROM、RAM、磁碟、光盘等)中,包括若干指令,用以使得终端或者网络侧设备执行本申请各个实施例所述的方法。Through the description of the above embodiments, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of a computer software product plus a necessary general-purpose hardware platform, or of course, by hardware. The computer software product is stored in a storage medium (such as ROM, RAM, magnetic disk, optical disk, etc.) and includes a number of instructions for enabling a terminal or network-side device to execute the methods described in each embodiment of the present application.

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式的实施方式,这些实施方式均属于本申请的保护之内。The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of this application, ordinary technicians in this field can also make many forms of implementation methods without departing from the purpose of this application and the scope of protection of the claims. These implementation methods are all within the protection of this application.

Claims (50)

一种几何重建方法,包括:A geometric reconstruction method, comprising: 解码端解码第一码流,获得第一标志,所述第一标志用于指示三角形集合Trisoup节点对应的几何结构中的原始点云分布信息;The decoding end decodes the first code stream to obtain a first flag, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a node of the triangle set Trisoup; 所述解码端根据所述第一标志对所述几何结构中的顶点进行处理;The decoding end processes the vertices in the geometric structure according to the first flag; 所述解码端使用处理后的顶点重构点云。The decoding end reconstructs the point cloud using the processed vertices. 根据权利要求1所述的方法,其中,所述方法还包括:The method according to claim 1, further comprising: 根据Trisoup节点对应的几何结构中的顶点分布信息,确定上下文;Determine the context based on the vertex distribution information in the geometric structure corresponding to the Trisoup node; 所述解码第一码流,获得第一标志,包括:The decoding of the first code stream to obtain the first flag includes: 根据所述上下文解码所述第一码流,获得第一标志。The first code stream is decoded according to the context to obtain a first flag. 根据权利要求2所述的方法,其中,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。The method according to claim 2, wherein the context is used to indicate whether the ratio of the number of vertices in the first area of the target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes. 根据权利要求1或2所述的方法,其中,所述第一标志包括以下至少一项:The method according to claim 1 or 2, wherein the first flag includes at least one of the following: 标志1:用于指示所述几何结构中是否存在需要修正的顶点;Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected; 标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;Flag 2: used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes; 标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis. 根据权利要求1至4任一项所述的方法,其中,所述解码第一码流,获得第一标志,包括:The method according to any one of claims 1 to 4, wherein decoding the first code stream to obtain the first flag comprises: 解码所述第一码流,获得标志1;Decoding the first code stream to obtain flag 1; 在所述标志1指示所述几何结构中存在需要修正的顶点的情况下,解码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则解码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, decoding the flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, decoding the flag 3 corresponding to the first axis; 解码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值的,则解码所述第二轴向对应的标志3;Decode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, decode the flag 3 corresponding to the second axis; 和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;解码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; decode the mark 3 corresponding to the third axis. 根据权利要求1所述的方法,其中,根据所述第一标志对所述几何结构中的顶点进行处理,包括:The method of claim 1, wherein processing vertices in the geometric structure according to the first flag comprises: 根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag; 根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body; 根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex. 根据权利要求6所述的方法,其中,根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型,包括以下至少一项:The method according to claim 6, wherein determining the type of vertices in the geometric structure based on the original point cloud distribution information of the sub-geometric body comprises at least one of the following: 在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs; 在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric body of the first vertical plane, then the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located; 在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices. 根据权利要求6或7所述的方法,其中,根据所述顶点的类型对所述顶点进行处理,包括以下至少一项:The method according to claim 6 or 7, wherein processing the vertex according to the type of the vertex comprises at least one of the following: 删除第一类型顶点;Delete the first type of vertex; 将第二类型顶点修正为所述第二类型顶点所在边的中点。The second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located. 根据权利要求1所述的方法,其中,所述方法还包括:The method according to claim 1, further comprising: 解码第二码流获得第二标志,所述第二标志用于指示启用或不启用几何重建技术。The second code stream is decoded to obtain a second flag, where the second flag is used to indicate whether the geometric reconstruction technology is enabled or not. 根据权利要求1或9所述的方法,其中,所述方法还包括:The method according to claim 1 or 9, wherein the method further comprises: 确定Trisoup节点对应的几何结构中的顶点满足第一条件;Determine that the vertices in the geometric structure corresponding to the Trisoup node meet the first condition; 其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold. 根据权利要求1所述的方法,其中,所述使用处理后的顶点重构点云,包括:The method according to claim 1, wherein reconstructing the point cloud using the processed vertices comprises: 根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex; 解码第三码流,确定Trisoup节点的面顶点;Decode the third code stream and determine the face vertices of the Trisoup node; 根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices; 对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud. 一种几何重建方法,包括:A geometric reconstruction method, comprising: 编码端对第一标志进行编码,获得第一码流,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;The encoding end encodes the first flag to obtain a first code stream, where the first flag is used to indicate original point cloud distribution information in the geometric structure corresponding to the Trisoup node; 所述编码端根据所述第一标志对所述几何结构中的顶点进行处理;The encoding end processes the vertices in the geometric structure according to the first flag; 所述编码端使用处理后的顶点重构点云。The encoder reconstructs the point cloud using the processed vertices. 根据权利要求12所述的方法,其中,所述方法还包括:The method according to claim 12, wherein the method further comprises: 根据所述Trisoup节点对应的几何结构内的原始点云分布信息,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息,所述子几何体由所述几何结构划分得到;Marking original point cloud distribution information of sub-geometric bodies corresponding to child nodes of the Trisoup node according to original point cloud distribution information within the geometric structure corresponding to the Trisoup node, where the sub-geometric bodies are obtained by dividing the geometric structure; 根据所述子几何体的原始点云分布信息和所述几何结构的边的顶点存在标志,确定所述第一标志。The first flag is determined according to the original point cloud distribution information of the sub-geometric body and the vertex existence flag of the edge of the geometric structure. 根据权利要求12或13所述的方法,其中,所述第一标志包括以下至少一项:The method according to claim 12 or 13, wherein the first flag includes at least one of the following: 标志1:用于指示所述几何结构中是否存在需要修正的顶点;Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected; 标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;Flag 2: used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes; 标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis. 根据权利要求12至14任一项所述的方法,其中,所述对第一标志进行编码,包括:The method according to any one of claims 12 to 14, wherein encoding the first flag comprises: 编码标志1;Coding mark 1; 若所述标志1指示所述几何结构中存在需要修正的顶点,则编码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则编码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, the flag 2 corresponding to the first axis is encoded; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, the flag 3 corresponding to the first axis is encoded; 编码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值,则编码所述第二轴向对应的标志3;Encode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, then encode the flag 3 corresponding to the second axis; 和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;编码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; encode the mark 3 corresponding to the third axis. 根据权利要求12至15任一项所述的方法,其中,所述方法还包括:The method according to any one of claims 12 to 15, wherein the method further comprises: 确定所述第一标志的上下文;determining a context of the first marker; 所述对第一标志进行编码,获得第一码流,包括:The step of encoding the first flag to obtain a first code stream includes: 根据所述上下文对所述第一标志进行编码,获得第一码流。The first flag is encoded according to the context to obtain a first code stream. 根据权利要求16所述的方法,其中,确定第一标志的上下文,包括:The method of claim 16, wherein determining the context of the first marker comprises: 根据Trisoup节点对应的几何结构内的顶点分布信息,确定所述第一标志的上下文;Determining the context of the first marker based on vertex distribution information within the geometric structure corresponding to the Trisoup node; 其中,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。The context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes. 根据权利要求12所述的方法,其中,根据所述第一标志对所述几何结构中的顶点进行处理,包括:The method of claim 12, wherein processing vertices in the geometric structure according to the first flag comprises: 根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag; 根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body; 根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex. 根据权利要求18所述的方法,其中,根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型,包括以下至少一项:The method according to claim 18, wherein determining the type of vertices in the geometric structure based on the original point cloud distribution information of the sub-geometric body comprises at least one of the following: 在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs; 在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric volume within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric volume of the first vertical plane, then the vertex is determined to be a second-type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located; 在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices. 根据权利要求18或19所述的方法,其中,根据所述顶点的类型对所述顶点进行处理,包括以下至少一项:The method according to claim 18 or 19, wherein processing the vertex according to the type of the vertex comprises at least one of the following: 删除第一类型顶点;Delete the first type of vertex; 将第二类型顶点修正为所述第二类型顶点所在边的中点。The second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located. 根据权利要求12所述的方法,其中,所述方法还包括:The method according to claim 12, wherein the method further comprises: 编码第二标志为第二码流,所述第二标志用于指示启用或不启用几何重建技术。The second flag is encoded into a second code stream, where the second flag is used to indicate whether to enable or not enable the geometric reconstruction technology. 根据权利要求12或21所述的方法,其中,所述方法还包括:The method according to claim 12 or 21, wherein the method further comprises: 确定Trisoup节点对应的几何结构中的顶点满足第一条件;Determine that the vertices in the geometric structure corresponding to the Trisoup node meet the first condition; 其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold. 根据权利要求12所述的方法,其中,所述使用处理后的顶点重构点云,包括:The method according to claim 12, wherein reconstructing the point cloud using the processed vertices comprises: 根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex; 为所述Trisoup节点确定面顶点,对所述面顶点的存在信息进行编码获得第三码流;Determining face vertices for the Trisoup node, and encoding existence information of the face vertices to obtain a third code stream; 根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices; 对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud. 一种几何重建装置,包括:A geometric reconstruction device, comprising: 第一解码模块,用于解码第一码流,获得第一标志,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;A first decoding module is configured to decode the first code stream to obtain a first flag, where the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node; 第一处理模块,用于根据所述第一标志对所述几何结构中的顶点进行处理;a first processing module, configured to process vertices in the geometric structure according to the first flag; 第二处理模块,用于使用处理后的顶点重构点云。The second processing module is used to reconstruct the point cloud using the processed vertices. 根据权利要求24所述的装置,其中,所述装置还包括:The apparatus according to claim 24, wherein the apparatus further comprises: 第一确定模块,用于根据Trisoup节点对应的几何结构中的顶点分布信息,确定上下文;A first determination module is used to determine the context according to vertex distribution information in the geometric structure corresponding to the Trisoup node; 所述第一解码模块具体用于:根据所述上下文解码所述第一码流,获得第一标志。The first decoding module is specifically configured to decode the first code stream according to the context to obtain a first flag. 根据权利要求25所述的装置,其中,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。The device according to claim 25, wherein the context is used to indicate whether the ratio of the number of vertices in the first area of the target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes. 根据权利要求24或25所述的装置,其中,所述第一标志包括以下至少一项:The apparatus according to claim 24 or 25, wherein the first flag comprises at least one of the following: 标志1:用于指示所述几何结构中是否存在需要修正的顶点;Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected; 标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;Flag 2: used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes; 标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis. 根据权利要求24至27任一项所述的装置,其中,所述第一解码模块具体用于:The apparatus according to any one of claims 24 to 27, wherein the first decoding module is specifically configured to: 解码所述第一码流,获得标志1;Decoding the first code stream to obtain flag 1; 在所述标志1指示所述几何结构中存在需要修正的顶点的情况下,解码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则解码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, decoding the flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, decoding the flag 3 corresponding to the first axis; 解码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值的,则解码所述第二轴向对应的标志3;Decode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, decode the flag 3 corresponding to the second axis; 和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;解码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; decode the mark 3 corresponding to the third axis. 根据权利要求24所述的装置,其中,所述第一处理模块具体用于:The apparatus according to claim 24, wherein the first processing module is specifically configured to: 根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag; 根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body; 根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex. 根据权利要求29所述的装置,其中,所述第一处理模块具体用于执行以下至少一项:The apparatus according to claim 29, wherein the first processing module is specifically configured to perform at least one of the following: 在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs; 在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric volume within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric volume of the first vertical plane, then the vertex is determined to be a second-type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located; 在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices. 根据权利要求29或30所述的装置,其中,所述第一处理模块具体用于执行以下至少一项:The apparatus according to claim 29 or 30, wherein the first processing module is specifically configured to perform at least one of the following: 删除第一类型顶点;Delete the first type of vertex; 将第二类型顶点修正为所述第二类型顶点所在边的中点。The second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located. 根据权利要求24所述的装置,其中,所述装置还包括:The apparatus according to claim 24, wherein the apparatus further comprises: 第二解码模块,用于解码第二码流获得第二标志,所述第二标志用于指示启用或不启用几何重建技术。The second decoding module is used to decode the second code stream to obtain a second flag, where the second flag is used to indicate whether to enable or disable the geometric reconstruction technology. 根据权利要求24或32所述的装置,其中,所述装置还包括:The apparatus according to claim 24 or 32, wherein the apparatus further comprises: 第二确定模块,用于确定Trisoup节点对应的几何结构中的顶点满足第一条件;A second determination module is used to determine whether a vertex in the geometric structure corresponding to the Trisoup node satisfies a first condition; 其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold. 根据权利要求24所述的装置,其中,所述第二处理模块具体用于The device according to claim 24, wherein the second processing module is specifically configured to 根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex; 解码第三码流,确定Trisoup节点的面顶点;Decode the third code stream and determine the face vertices of the Trisoup node; 根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices; 对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud. 一种几何重建装置,包括:A geometric reconstruction device, comprising: 第一编码模块,用于对第一标志进行编码,获得第一码流,所述第一标志用于指示Trisoup节点对应的几何结构中的原始点云分布信息;A first encoding module, configured to encode a first flag to obtain a first code stream, wherein the first flag is used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node; 第三处理模块,用于根据所述第一标志对所述几何结构中的顶点进行处理;a third processing module, configured to process vertices in the geometric structure according to the first flag; 第四处理模块,用于使用处理后的顶点重构点云。The fourth processing module is used to reconstruct the point cloud using the processed vertices. 根据权利要求35所述的装置,其中,所述装置还包括第三确定模块,具体用于:The apparatus according to claim 35, further comprising a third determining module, specifically configured to: 根据所述Trisoup节点对应的几何结构内的原始点云分布信息,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息,所述子几何体由所述几何结构划分得到;Marking original point cloud distribution information of sub-geometric bodies corresponding to child nodes of the Trisoup node according to original point cloud distribution information within the geometric structure corresponding to the Trisoup node, where the sub-geometric bodies are obtained by dividing the geometric structure; 根据所述子几何体的原始点云分布信息和所述几何结构的边的顶点存在标志,确定所述第一标志。The first flag is determined according to the original point cloud distribution information of the sub-geometric body and the vertex existence flag of the edge of the geometric structure. 根据权利要求35或36所述的装置,其中,所述第一标志包括以下至少一项:The apparatus according to claim 35 or 36, wherein the first flag comprises at least one of the following: 标志1:用于指示所述几何结构中是否存在需要修正的顶点;Flag 1: used to indicate whether there are vertices in the geometric structure that need to be corrected; 标志2:用于指示是否需要修正顶点在目标轴向的维度值,所述目标轴向是三个轴向中的任一轴向;Flag 2: used to indicate whether the dimension value of the vertex in the target axis needs to be corrected, and the target axis is any one of the three axes; 标志3:用于指示在需要修正顶点在目标轴向的维度值的情况下的修正方向,所述修正方向包括所述目标轴向的正方向或者负方向。Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axis needs to be corrected, and the correction direction includes the positive direction or negative direction of the target axis. 根据权利要求35至37任一项所述的装置,其中,所述第一编码模块具体用于:The apparatus according to any one of claims 35 to 37, wherein the first encoding module is specifically configured to: 编码标志1;Coding mark 1; 若所述标志1指示所述几何结构中存在需要修正的顶点,则编码第一轴向对应的标志2;若所述第一轴向对应的标志2指示需要修正顶点在第一轴向的维度值,则编码所述第一轴向对应的标志3;If the flag 1 indicates that there is a vertex that needs to be corrected in the geometric structure, the flag 2 corresponding to the first axis is encoded; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis needs to be corrected, the flag 3 corresponding to the first axis is encoded; 编码第二轴向对应的标志2;若所述第二轴向对应的标志2指示需要修正顶点在第二轴向的维度值,则编码所述第二轴向对应的标志3;Encode the flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis needs to be corrected, then encode the flag 3 corresponding to the second axis; 和/或,若所述第一轴向对应的标志2指示不需要修正顶点在第一轴向的维度值,且所述第二轴向对应的标志2指示不需要修正顶点在第二轴向的维度值,则确定第三轴向对应的标志2指示需要修正顶点在第三轴向的维度值;编码所述第三轴向对应的标志3。And/or, if the mark 2 corresponding to the first axis indicates that the dimensional value of the vertex in the first axis does not need to be corrected, and the mark 2 corresponding to the second axis indicates that the dimensional value of the vertex in the second axis does not need to be corrected, then determine that the mark 2 corresponding to the third axis indicates that the dimensional value of the vertex in the third axis needs to be corrected; encode the mark 3 corresponding to the third axis. 根据权利要求35至38任一项所述的装置,其中,所述装置还包括:The device according to any one of claims 35 to 38, wherein the device further comprises: 第四确定模块,用于确定所述第一标志的上下文;a fourth determining module, configured to determine a context of the first sign; 所述第一编码模块具体用于:根据所述上下文对所述第一标志进行编码,获得第一码流。The first encoding module is specifically configured to encode the first flag according to the context to obtain a first code stream. 根据权利要求39所述的装置,其中,所述第四确定模块具体用于:The apparatus according to claim 39, wherein the fourth determining module is specifically configured to: 根据Trisoup节点对应的几何结构内的顶点分布信息,确定所述第一标志的上下文;Determining the context of the first marker based on vertex distribution information within the geometric structure corresponding to the Trisoup node; 其中,所述上下文用于指示:在目标轴向的第一区域的顶点数量与顶点的总数量的比值是否大于或等于第一阈值;所述目标轴向是三个轴向中的任一轴向。The context is used to indicate whether a ratio of the number of vertices in a first region of a target axis to the total number of vertices is greater than or equal to a first threshold; the target axis is any one of the three axes. 根据权利要求35所述的装置,其中,所述第三处理模块具体用于:The apparatus according to claim 35, wherein the third processing module is specifically configured to: 根据所述第一标志,标记所述Trisoup节点的子节点对应的子几何体的原始点云分布信息;Marking original point cloud distribution information of the sub-geometric body corresponding to the child node of the Trisoup node according to the first flag; 根据所述子几何体的原始点云分布信息,确定所述几何结构中的顶点的类型;Determining the types of vertices in the geometric structure according to the original point cloud distribution information of the sub-geometric body; 根据所述顶点的类型对所述顶点进行处理。The vertex is processed according to the type of the vertex. 根据权利要求41所述的装置,其中,所述第三处理模块具体用于执行以下至少一项:The apparatus according to claim 41, wherein the third processing module is specifically configured to perform at least one of the following: 在所述几何结构中,若所述顶点所在边所属的第一平面内的子几何体不存在原始点云,则确定所述顶点为第一类型顶点,所述第一平面是所述顶点所在边所属的任一平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric body within a first plane to which the edge where the vertex is located belongs, then the vertex is determined to be a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs; 在所述几何结构中,若所述顶点所在边的第一垂直平面内的子几何体不存在原始点云,且所述顶点处于所述第一垂直平面的子几何体中,则确定所述顶点为第二类型顶点,所述第一垂直平面是所述顶点所在边的任一垂直平面;In the geometric structure, if an original point cloud does not exist in a sub-geometric volume within a first vertical plane of the edge where the vertex is located, and the vertex is in the sub-geometric volume of the first vertical plane, then the vertex is determined to be a second-type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located; 在所述几何结构中,确定除第一类型顶点和第二类型顶点外的其他顶点为第三类型顶点。In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices. 根据权利要求41或42所述的装置,其中,所述第三处理模块具体用于执行以下至少一项:The apparatus according to claim 41 or 42, wherein the third processing module is specifically configured to perform at least one of the following: 删除第一类型顶点;Delete the first type of vertex; 将第二类型顶点修正为所述第二类型顶点所在边的中点。The second-type vertex is corrected to be the midpoint of the edge where the second-type vertex is located. 根据权利要求35所述的装置,其中,所述装置还包括:The apparatus according to claim 35, wherein the apparatus further comprises: 第二编码模块,用于编码第二标志为第二码流,所述第二标志用于指示启用或不启用几何重建技术。The second encoding module is used to encode a second flag into a second code stream, where the second flag is used to indicate whether to enable or disable the geometric reconstruction technology. 根据权利要求35或44所述的装置,其中,所述装置还包括:The apparatus according to claim 35 or 44, wherein the apparatus further comprises: 第五确定模块,用于确定Trisoup节点对应的几何结构中的顶点满足第一条件;A fifth determining module, configured to determine whether a vertex in the geometric structure corresponding to the Trisoup node satisfies a first condition; 其中,所述第一条件包括:顶点的总数量大于或等于第二阈值,且在任一轴向的第二区域的顶点数量与所述顶点的总数量的比值大于或等于第三阈值。The first condition includes: the total number of vertices is greater than or equal to a second threshold, and the ratio of the number of vertices in the second region in any axis to the total number of vertices is greater than or equal to a third threshold. 根据权利要求35所述的装置,其中,所述第四处理模块具体用于:The apparatus according to claim 35, wherein the fourth processing module is specifically configured to: 根据处理后的顶点确定偏移后的质心顶点位置;Determine the position of the centroid vertex after the offset based on the processed vertex; 为所述Trisoup节点确定面顶点,对所述面顶点的存在信息进行编码获得第三码流;Determining face vertices for the Trisoup node, and encoding existence information of the face vertices to obtain a third code stream; 根据所述几何结构中的顶点、所述偏移后的质心顶点位置以及所述面顶点,构建三角面片;constructing a triangular facet based on the vertices in the geometric structure, the offset centroid vertex position, and the face vertices; 对所述三角面片进行光线追踪采样,获得重构点云。Ray tracing sampling is performed on the triangular facets to obtain a reconstructed point cloud. 一种电子设备,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至11任一项所述的几何重建方法的步骤,或实现如权利要求12至23所述的几何重建方法的步骤。An electronic device comprises 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 geometric reconstruction method according to any one of claims 1 to 11 are implemented, or the steps of the geometric reconstruction method according to claims 12 to 23 are implemented. 一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至11任一项所述的几何重建方法,或者实现如权利要求12至23任一项所述的几何重建方法的步骤。A readable storage medium storing a program or instruction, wherein the program or instruction, when executed by a processor, implements the geometric reconstruction method according to any one of claims 1 to 11, or implements the steps of the geometric reconstruction method according to any one of claims 12 to 23. 一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如权利要求1至11任一项所述的方法的步骤,或实现如权利要求12至23所述的方法的步骤。A chip comprising a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is configured to run a program or instruction to implement the steps of the method according to any one of claims 1 to 11, or to implement the steps of the method according to claims 12 to 23. 一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至11中任一项所述的方法的步骤,或实现如权利要求12至23所述的方法的步骤。A computer program product comprises computer instructions, wherein when the computer instructions are executed by a processor, the steps of the method according to any one of claims 1 to 11 are implemented, or the steps of the method according to claims 12 to 23 are implemented.
PCT/CN2025/088175 2024-04-17 2025-04-10 Geometry reconstruction method and apparatus, and device Pending WO2025218557A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202410464478.3 2024-04-17
CN202410464478.3A CN120835157A (en) 2024-04-17 2024-04-17 Geometric reconstruction method, device and equipment

Publications (1)

Publication Number Publication Date
WO2025218557A1 true WO2025218557A1 (en) 2025-10-23

Family

ID=97398771

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2025/088175 Pending WO2025218557A1 (en) 2024-04-17 2025-04-10 Geometry reconstruction method and apparatus, and device

Country Status (2)

Country Link
CN (1) CN120835157A (en)
WO (1) WO2025218557A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220239946A1 (en) * 2019-06-04 2022-07-28 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN116868572A (en) * 2023-04-18 2023-10-10 北京小米移动软件有限公司 Methods, encoders and decoders for encoding and decoding 3D point clouds
CN117157671A (en) * 2022-03-31 2023-12-01 北京小米移动软件有限公司 Methods, encoder and decoder for encoding and decoding 3D point clouds
CN117581545A (en) * 2021-07-08 2024-02-20 索尼集团公司 Information processing device and method
CN117795554A (en) * 2023-10-06 2024-03-29 北京小米移动软件有限公司 Methods for decoding and encoding 3D point clouds

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220239946A1 (en) * 2019-06-04 2022-07-28 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN117581545A (en) * 2021-07-08 2024-02-20 索尼集团公司 Information processing device and method
CN117157671A (en) * 2022-03-31 2023-12-01 北京小米移动软件有限公司 Methods, encoder and decoder for encoding and decoding 3D point clouds
CN116868572A (en) * 2023-04-18 2023-10-10 北京小米移动软件有限公司 Methods, encoders and decoders for encoding and decoding 3D point clouds
CN117795554A (en) * 2023-10-06 2024-03-29 北京小米移动软件有限公司 Methods for decoding and encoding 3D point clouds

Also Published As

Publication number Publication date
CN120835157A (en) 2025-10-24

Similar Documents

Publication Publication Date Title
WO2023024840A1 (en) Point cloud encoding and decoding methods, encoder, decoder and storage medium
CN114598883A (en) Point cloud attribute prediction method, encoder, decoder and storage medium
WO2025060705A1 (en) Point cloud processing method and apparatus, storage medium, and electronic device
WO2022188582A1 (en) Method and apparatus for selecting neighbor point in point cloud, and codec
CN119013994B (en) Method and apparatus for encoding and decoding presence markers of point clouds, and a data stream including presence markers.
WO2025218557A1 (en) Geometry reconstruction method and apparatus, and device
WO2025218556A1 (en) Trisoup vertex optimization method, apparatus and device
CN119815053B (en) Point cloud attribute coding method, point cloud attribute decoding device and electronic equipment
WO2024065269A1 (en) Point cloud encoding and decoding method and apparatus, device, and storage medium
CN119815052B (en) Encoding method, decoding method and related equipment
WO2025152924A1 (en) Coding method, decoding method and related device
WO2025067194A1 (en) Point cloud coding processing method, point cloud decoding processing method, and related device
WO2025077667A1 (en) Method and apparatus for determining attribute information of point cloud, and electronic device
CN120343269A (en) Point cloud reconstruction method, device and related equipment
WO2025082237A1 (en) Encoding method and apparatus, decoding method and apparatus, and electronic device
CN120835153A (en) Decoding method, encoding method, device, decoding end and encoding end
US20250337924A1 (en) Encoding method, decoding method, bitstream, encoder, decoder and storage medium
CN120835147A (en) Point cloud information decoding, encoding method, device and related equipment
US20250029283A1 (en) Coding Point Cloud Attributes
US20240037799A1 (en) Point cloud coding/decoding method and apparatus, device and storage medium
WO2025218571A1 (en) Slice-based grid decoding method, slice-based grid coding method, and related device
CN120435867A (en) Point cloud encoding and decoding method, device, equipment and storage medium
CN120345252A (en) Point cloud encoding and decoding method, device, equipment and storage medium
CN120419182A (en) Point cloud encoding and decoding method, device, equipment and storage medium
CN120188479A (en) Point cloud encoding and decoding method, device, equipment and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25789564

Country of ref document: EP

Kind code of ref document: A1