Geometric reconstruction method, device and equipment

By decoding and encoding the first flag, indicating the original point cloud distribution information of the Trisoup node and processing the vertices, the problem of distortion of the reconstructed point cloud in the Trisoup geometric encoding algorithm is solved and the performance of the reconstructed point cloud is improved.

CN120835157APending Publication Date: 2025-10-24VIVO MOBILE COMM CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410464478.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-04-17
Publication Date
2025-10-24

AI Technical Summary

Technical Problem

The existing Trisoup geometric encoding algorithm ignores the differences in point cloud distribution within the node when the node is large, resulting in large distortion of the reconstructed point cloud.

Method used

The first flag is decoded and encoded by the decoding end and the encoding end respectively, indicating the original point cloud distribution information in the geometric structure corresponding to the Trisoup node, and the vertices are processed to reconstruct the point cloud.

Benefits of technology

The distortion of the reconstructed point cloud is reduced and the performance gain of the reconstructed point cloud is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120835157A_ABST
    Figure CN120835157A_ABST
Patent Text Reader

Abstract

The invention discloses a geometric reconstruction method, device and equipment, and belongs to the technical field of communication, and the geometric reconstruction method comprises the steps that a decoding end decodes a first code stream to obtain a first mark, and the first mark is used for indicating original point cloud distribution information in a geometric structure corresponding to a Trisound node; the decoding end processes the vertexes in the geometric structure according to the first mark; and the decoding end reconstructs the point cloud by using the processed vertexes.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application belongs to the technical field of communication, and particularly relates to a geometry reconstruction method, device and equipment. BACKGROUND

[0002] In a point cloud geometry-based point cloud compression (G-PCC) encoder framework, geometry information and attribute information of a point cloud are encoded separately. There are two encoding methods for the geometry information, i.e., a multi-tree-based geometry encoding and a prediction tree-based geometry encoding. In the multi-tree-based geometry encoding method, a Trisoup geometry encoding algorithm gradually exhibits excellent compression performance.

[0003] In an existing Trisoup geometry encoding algorithm, in order to save code streams, only one identification information and 2-bit position information of a vertex on an edge are encoded between nodes. This practice ignores the difference in point cloud distribution between nodes. Especially when the nodes are large, the point cloud inside the nodes is unevenly distributed, for example, there is no original point cloud around some vertices, and therefore not all vertices are suitable for point cloud reconstruction. If the existing point cloud reconstruction method is still used, it is likely to cause large distortion of the reconstructed point cloud. SUMMARY

[0004] Embodiments of the present application provide a geometry reconstruction method, device and equipment, which can solve the problem of large distortion of reconstructed point cloud.

[0005] In a first aspect, a geometry reconstruction method is provided, which is executed by a decoding end, and the method comprises the following steps.

[0006] The decoding end decodes a first code stream to obtain a first flag, and the first flag is used to indicate original point cloud distribution information in a geometry structure corresponding to a Triangle soup (Trisoup) node.

[0007] The decoding end processes vertices in the geometry structure according to the first flag.

[0008] The decoding end reconstructs a point cloud by using the processed vertices.

[0009] In a second aspect, a geometry reconstruction method is provided, which is executed by an encoding end, and the method comprises the following steps.

[0010] The encoding end encodes a first flag to obtain a first code stream, and the first flag is used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node.

[0011] The encoding end processes vertices in the geometry structure according to the first flag.

[0012] The encoding end reconstructs the point cloud using the processed vertex.

[0013] In a third aspect, a geometry reconstruction apparatus is provided, which is applied to a decoding end, and the apparatus comprises:

[0014] A first decoding module is configured to decode a first code stream to obtain a first flag, wherein the first flag is used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node.

[0015] A first processing module is configured to process a vertex in the geometry structure according to the first flag.

[0016] A second processing module is configured to reconstruct the point cloud using the processed vertex.

[0017] In a fourth aspect, a geometry reconstruction apparatus is provided, which is applied to an encoding end, and the apparatus comprises:

[0018] A first encoding module is 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 geometry structure corresponding to a Trisoup node.

[0019] A third processing module is configured to process a vertex in the geometry structure according to the first flag.

[0020] A fourth processing module is configured to reconstruct the point cloud using the processed vertex.

[0021] In a fifth aspect, an electronic device is provided, which comprises a processor and a memory, wherein the memory stores programs or instructions executable on the processor, and the programs or instructions are executed by the processor to implement the steps of the method according to the first aspect or the steps of the method according to the second aspect.

[0022] In a sixth aspect, an electronic device is provided, which comprises a processor and a communication interface, wherein the processor is configured to decode a first code stream to obtain a first flag, wherein the first flag is used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node, process a vertex in the geometry structure according to the first flag, and reconstruct the point cloud using the processed vertex, or the processor is 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 geometry structure corresponding to a Trisoup node, process a vertex in the geometry structure according to the first flag, and reconstruct the point cloud using the processed vertex.

[0023] In a seventh aspect, an electronic device is provided, comprising: a memory configured to store video data, and a processing circuitry configured to implement steps of the method according to the first aspect, or implement steps of the method according to the second aspect.

[0024] In an eighth aspect, a readable storage medium is provided, the readable storage medium storing a program or instructions, the program or instructions being executed by a processor to implement steps of the method according to the first aspect, or implement steps of the method according to the second aspect.

[0025] In a ninth aspect, a codec system is provided, comprising: an encoding device and a decoding device, the encoding device being configured to implement steps of the method according to the second aspect, and the decoding device being configured to implement steps of the method according to the first aspect.

[0026] In a tenth aspect, a chip is provided, the chip comprising a processor and a communication interface, the communication interface being coupled to the processor, and the processor being configured to run a program or instructions to implement steps of the method according to the first aspect, or implement steps of the method according to the second aspect.

[0027] In an eleventh aspect, a computer program / program product is provided, the computer program / program product being stored in a storage medium, the program / program product being executed by at least one processor to implement steps of the method according to the first aspect, or implement steps of the method according to the second aspect.

[0028] In a twelfth aspect, a computer program product is provided, comprising computer instructions, the computer instructions being executed by a processor to implement steps of the method according to the first aspect, or implement steps of the method according to the second aspect.

[0029] In the embodiments of the present application, the decoding end decodes to obtain a first flag, and according to the first flag, the distribution of the original point cloud in the geometric structure can be determined, and then the vertices in the geometric structure are processed, and the point cloud is reconstructed by using the processed vertices. By processing the vertices, the error point cloud can be removed, the distortion of the reconstructed point cloud is reduced, and the performance gain of the reconstructed point cloud is improved. BRIEF DESCRIPTION OF DRAWINGS

[0030] Figure 1 FIG. 1 is a schematic diagram of a codec system provided by the embodiments of the present application;

[0031] Figure 2a FIG. 2 is a coding flowchart of an encoder based on an AVS-PCC coding framework;

[0032] Figure 2b FIG. 3 is a coding flowchart of an encoder based on an MPEG G-PCC coding framework;

[0033] Figure 3a is a decoding flowchart performed by a decoder based on a decoding framework of AVS-PCC;

[0034] Figure 3b is a decoding flowchart performed by a decoder based on a decoding framework of MPEG G-PCC;

[0035] Figure 4 is one of flowcharts of a geometry reconstruction method of an embodiment of the present application;

[0036] Figure 5 is a schematic diagram of a surface reconstruction of an embodiment of the present application;

[0037] Figure 6 is a schematic diagram of a geometry structure corresponding to a Trisoup node;

[0038] Figure 7 is a flowchart of a decoding process of an embodiment of the present application;

[0039] Figure 8 is another flowchart of a geometry reconstruction method of an embodiment of the present application;

[0040] Figure 9 is a flowchart of an encoding process of an embodiment of the present application;

[0041] Figure 10 is one of structural schematic diagrams of a geometry reconstruction apparatus of an embodiment of the present application;

[0042] Figure 11 is another structural schematic diagram of a geometry reconstruction apparatus of an embodiment of the present application;

[0043] Figure 12 is a structural schematic diagram of an electronic device of an embodiment of the present application;

[0044] Figure 13 is a structural schematic diagram of a terminal of an embodiment of the present application. DETAILED DESCRIPTION

[0045] The technical solutions in the embodiments of the present application will be clearly described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are some but not all of the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art belong to the scope of protection of the present application.

[0046] The terms "first", "second", and the like in the present application are used to distinguish similar objects, and are not used to describe a particular order or sequence. It should be understood that the terms used in this way can be interchanged as appropriate, so that the embodiments of the present application can be implemented in an order other than that illustrated or described herein, and the objects distinguished by "first", "second" are generally of a kind and do not limit the number of objects, for example, the first object can be one or more. In addition, "or" in the present application means at least one of the connected objects. For example, "A or B" covers three scenarios, namely, scenario one: including A and not including B; scenario two: including B and not including A; scenario three: including A and including B. The character " / " generally represents that the objects before and after are in an "or" relationship.

[0047] Before introducing the technical solutions provided by the embodiments of the present application, the meanings of some terms therein will be introduced first.

[0048] Point cloud: The point cloud refers to a set of discrete points that are irregularly distributed in space and express the spatial structure and surface attributes of a three-dimensional object or a three-dimensional scene. The point cloud can be divided into different categories according to different classification standards. For example, according to the acquisition method, it can be divided into dense point cloud and sparse point cloud; for another example, according to the time sequence type, it can be divided into static point cloud and dynamic point cloud.

[0049] Point cloud data: The geometric coordinate information and attribute information possessed by each point in the point cloud together constitute the point cloud data. The geometric coordinate information can also be referred to as three-dimensional position information, and 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 each coordinate axis direction 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, and laser reflection intensity information (also referred to as reflectivity). Generally, each point in the point cloud has the same number of attribute information, for example, each point in the point cloud can have two attribute information of color information and laser reflection intensity, and for another example, each point in the point cloud can have three attribute information of color information, material information, and laser reflection intensity information.

[0050] Point Cloud Compression (PCC): Point Cloud Compression refers to a process of encoding geometry coordinate information and attribute information of each point in a point cloud to obtain a compressed bitstream. Point Cloud Compression can include two main processes of geometry coordinate information encoding and attribute information encoding. At present, a point cloud compression framework that can compress a point cloud can be a Geometry Point Cloud Compression (G-PCC) codec framework provided by Moving Picture Experts Group (MPEG) or a Video Point Cloud Compression (V-PCC) codec framework, or an Audio Video Standard (AVS)-PCC codec framework provided by AVS.

[0051] Point Cloud Decoding: Point Cloud Decoding refers to a process of decoding a compressed bitstream obtained by point cloud encoding to reconstruct a point cloud. In detail, it refers to a process of reconstructing geometry coordinate information and attribute information of each point in a point cloud based on geometry bitstream and attribute bitstream in the compressed bitstream. After obtaining the compressed bitstream at the decoding end, for the geometry bitstream, first, entropy decoding is performed to obtain quantized information of each point in the point cloud, and then dequantization is performed to reconstruct the geometry coordinate information of each point in the point cloud. For the attribute bitstream, first, entropy decoding is performed to obtain quantized attribute residual information or quantized transform coefficients of each point in the point cloud; then, dequantization is performed on the quantized attribute residual information to obtain reconstructed residual information, and dequantization is performed on the quantized transform coefficients to obtain reconstructed transform coefficients; the reconstructed transform coefficients are subjected to inverse transformation to obtain reconstructed residual information; and according to 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 and one-to-one corresponding to the reconstructed geometry coordinate information to reconstruct the point cloud.

[0052] Figure 1 FIG. 1 is a schematic diagram of a coding system 10 provided by an embodiment of the present application. The technical solution of the embodiment of the present application relates to coding (CODEC) of point cloud data (including encoding or decoding).

[0053] As shown in FIG. 1, the coding system 10 includes a point cloud encoder 100 and a point cloud decoder 200. Figure 1As shown, the coding system 10 includes a source device 100 that provides encoded point cloud data to be decoded and displayed by a destination device 110. In particular, 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 can comprise any one or more of a desktop computer, a notebook (i.e., laptop) computer, a tablet computer, a set-top box, a mobile telephone, a wearable device (e.g., a smart watch or a wearable camera), a television, a camera, a display device, a vehicle-mounted device, a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (MR) device, a digital media player, a video gaming console, a video conferencing device, a video streaming device, a broadcast receiver device, a broadcast transmitter device, a spacecraft, an airplane, a robot, a satellite, etc.

[0054] In Figure 1 the example, 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 can not include some of the components of Figure 1 Figure 1 In other examples, the source device 100 and the destination device 110 can include other components not depicted in FIG. 1. For example, the source device 100 can acquire point cloud data through an external capture device. Likewise, the destination device 110 can interface with an external display device, rather than include an integrated display device. Also for example, the memory 102, the memory 113 can be external memories.

[0055] Although Figure 1 the source device 100 and the destination device 110 are illustrated as separate devices, they can be integrated in one device in some examples. In such embodiments, the corresponding functionality of the source device 100 and the corresponding functionality of the destination device 110 can be implemented using the same hardware or software, or using separate hardware or software, or any combination thereof.

[0056] In some examples, the source device 100 and the destination device 110 can engage in unidirectional data transmission or bidirectional data transmission. If bidirectional data transmission, then the source device 100 and the destination device 110 can operate in a substantially symmetrical manner, i.e., each including an encoder and a decoder.

[0057] ​Data source 101 represents a source of point cloud data (i.e., raw, uncoded point cloud data) and provides the encoder 200 with point cloud data to encode. Source device 100 can include a capture device (e.g., a camera device, a sensor device, or a scanning device), an archive including previously captured point cloud data, or a feed interface to receive point cloud data from a data content provider. The camera device can include a conventional camera, a stereo camera, a light field camera, etc., the sensor device can include a laser device, a radar device, etc., and the scanning device can include a three-dimensional laser scanning device, etc. The point cloud data can be obtained by capturing a visual scene of a real world through the capture device. Alternatively, data source 101 can 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 from a virtual object (e.g., a virtual three-dimensional object and a virtual three-dimensional scene obtained by three-dimensional modeling).

[0058] Encoder 200 encodes the captured, pre-captured, or computer generated data. Encoder 200 can rearrange the point cloud data from a received order (sometimes referred to as a "display order") to an encoding order. Encoder 200 can generate a bitstream including the encoded point cloud data. Source device 100 can then output the encoded point cloud data via output interface 104 onto a communication medium 120 for reception or retrieval by, for example, input interface 111 of destination device 110.

[0059] Memory 102 of source device 100 and memory 113 of destination device 110 represent general purpose memories. In some examples, memory 102 can store raw data from data source 101, and memory 113 can store decoded point cloud data from decoder 300. Additionally or alternatively, memory 102, 113 can 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 can also include internal memories for functionally similar or equivalent purposes. If encoder 200 and decoder 300 are deployed on the same hardware device, memory 102 and memory 113 can be the same memory. Furthermore, memory 102, 113 can store, for example, encoded point cloud data output from encoder 200 and input to decoder 300. In some examples, portions of memory 102, 113 can be allocated as one or more point cloud buffers, e.g., for storing raw, decoded, or encoded point cloud data.

[0060] In some examples, source device 100 can output encoded data from output interface 104 to storage 113. Similarly, destination device 110 can access encoded data from storage 113 via input interface 111. Storage 113 or storage 102 can include any of a variety of distributed or locally accessed data storage media such as a hard drive, Blu-ray discs, Digital Versatile Discs (DVDs), Compact Disc Read-Only Memory (CD-ROMs), flash drives, volatile or non-volatile memory, or any other suitable digital storage media for storing encoded point cloud data.

[0061] Output interface 104 can include any type of medium or device capable of transmitting encoded point cloud data from source device 100 to destination device 110. For example, output interface 104 can include a transmitter or a transceiver, such as an antenna, configured to transmit encoded point cloud data from source device 100 directly to destination device 110 in real-time. The encoded point cloud data can be modulated according to a communication standard of a wireless communication protocol and transmitted to destination device 110.

[0062] Communication medium 120 can include a transitory medium, such as a wireless broadcast or wired network transmission. For example, communication medium 120 can include radio frequency (RF) spectrum or one or more physical transmission lines (e.g., cable). Communication medium 120 can form a portion of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. Communication medium 120 can also be in a form of a storage medium, such as a non-transitory storage medium, such as a hard disk, flash drive, compact disc, digital point cloud disc, Blu-ray disc, volatile or non-volatile memory, or any other suitable digital storage media for storing encoded point cloud data.

[0063] In some embodiments, communication medium 120 can include a router, switch, base station, or any other equipment that can be used to facilitate communication from source device 100 to destination device 110. For example, a server (not shown) can receive the encoded point cloud data from source device 100 and provide to destination device 110, e.g., via a network transmission to destination device 110. The server can include a web server (e.g., for a website), a server configured to provide a file transfer protocol service 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 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 the MPEG Media Transport (MMT) protocol, Dynamic Adaptive Streaming over HTTP (DASH) protocol, HTTP Live Streaming (HLS) protocol, or Real Time Streaming Protocol (RTSP), etc.

[0064] Destination device 110 can access the encoded point cloud data from the server, e.g., through 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.

[0065] Output interface 104 and input interface 111 can represent wireless transmitters / receivers, modems, wired networking components (e.g., Ethernet cards), wireless communication components operating according to the IEEE 802.11 standard or the IEEE 802.15 standard (e.g., ZigBee™), the Bluetooth standard, etc., or other physical components. In examples where output interface 104 and input interface 111 comprise wireless components, output interface 104 and input interface 111 can be configured to transfer data, such as encoded point cloud data, according to WIFI, Ethernet, cellular networks (such as 4G, LTE (Long-Term Evolution), LTE-Advanced, 5G, 6G, etc.), etc.

[0066] The technology provided by embodiments of the present application can be applied to support one or more of the following application scenarios: machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, rescue robots, etc.; human eye perception point cloud, which can be used in digital cultural heritage, free-viewpoint broadcasting, three-dimensional immersive communication, three-dimensional immersive interaction, etc.

[0067] Input interface 111 of destination device 110 receives the encoded bitstream from communication medium 120. The encoded bitstream can include high-level syntax elements and encoded data units (e.g., sequences, groups of pictures, pictures, slices, blocks, etc.) that 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 can include a cathode ray tube (CRT), a liquid-crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or other type of display device. In some examples, destination device 110 can not have display device 114, e.g., if the decoded point cloud data is used to determine the location of a physical object, display device 114 can be replaced by a processor.

[0068] The encoder 200 and the decoder 300 can be implemented as one or more of various processing circuitry, which can include one or more microprocessors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), discrete logic circuitry, hardware, or any combinations thereof. When the techniques are implemented partially in software, a device can store instructions for the software in a suitable, non- transitory computer-readable storage medium and execute the instructions in hardware using one or more processors to perform the techniques of this disclosure.

[0069] The basic principles of the encoder 200 and the decoder 300 provided by the embodiments of the present application are introduced below taking the G-PCC and AVS-PCC coding framework as an example.

[0070] The coding framework of G-PCC and AVS-PCC is roughly the same. As shown in FIG. 1, the coding framework of G-PCC and AVS-PCC includes an encoder and a decoder. Figure 2a An encoding flowchart performed by an encoder based on the coding framework of AVS-PCC is shown in FIG. 2, and the encoder can be the encoder 200 shown in FIG. 1. Figure 2b An encoding flowchart performed by an encoder based on the coding framework of MPEG G-PCC is shown in FIG. 3, and the encoder can be the encoder 200 shown in FIG. 1. Figure 1 The encoding framework shown in FIG. 1 can be roughly divided into a geometry coordinate information encoding process and an attribute information encoding process. In the geometry information encoding process, the geometry coordinate information of each point in the point cloud is encoded to obtain a geometry bitstream; in the attribute information encoding process, the attribute information of each point in the point cloud is encoded to obtain an attribute bitstream; and the geometry bitstream and the attribute bitstream jointly constitute a compressed code stream of the point cloud.

[0071] For the geometry information encoding process, the encoding flow performed by the encoder 200 is as follows:

[0072] 1. Pre-processing: can include Transform Coordinates and Voxelize. Through scaling and translation operations, pre-processing is to convert point cloud data in a three-dimensional space into an integer form and move its minimum geometry position to the coordinate origin. In some examples, the encoder 200 can not perform pre-processing.

[0073] 2、Geometry Coding: For AVS-PCC coding framework, geometry coding includes two modes, which are Octree-based geometry coding and Prediction Tree-based geometry coding. For G-PCC coding framework, geometry coding includes three modes, which are Octree-based geometry coding, Trisoup-based geometry coding and Prediction Tree-based geometry coding. Among them:

[0074] Octree-based geometry coding, such as Octree-based geometry coding: Octree is a tree data structure, which uniformly divides the pre-set bounding box in three-dimensional space, and each node has eight child nodes. By using "1" and "0" to indicate whether each child node of the Octree is occupied or not, the occupancy code information is obtained as the code stream of the point cloud geometry information.

[0075] Prediction Tree-based geometry coding: a prediction strategy is used to generate a prediction tree, and each node of the prediction tree is traversed from the root node. The residual coordinate value corresponding to each traversed node is encoded.

[0076] Trisoup-based geometry coding: the point cloud is divided into blocks of a certain size, and the intersection points (called vertices) of the edges of the block on the surface of the point cloud are located. The compression of the geometry information is realized by encoding whether there is an intersection point on each edge of the block and the position of the intersection point.

[0077] 3、Geometry Entropy Encoding: statistical compression encoding is performed on the occupancy code information of the Octree, the prediction residual information of the prediction tree and the vertex information of the Trisoup, and finally the binary (0 or 1) compressed code stream is output. Statistical encoding is a lossless encoding method, which can effectively reduce the code rate required to express the same signal. The commonly used statistical encoding method is Content Adaptive Binary Arithmetic Coding (CABAC) based on context.

[0078] 4、Geometry Reconstruction: decoding and reconstruction of the geometry information after geometry coding.

[0079] For the attribute information coding process, the encoder 200 performs the following encoding process:

[0080] 1、Color Transformation: Apply a transform to transform the color information of the attribute to a different domain, for example, the color information can be transformed from the RGB color space to the YCbCr color space.

[0081] 2. Attribute Recoloring: In lossy coding, after the geometry coordinate information is encoded, the encoder needs to decode and reconstruct the geometry information, i.e., to restore the geometry information of each point in the point cloud. The attribute information of one or more neighboring points in the original point cloud is found and used as the attribute information of the reconstructed point.

[0082] In some examples, the encoder 200 can not perform color transformation or attribute recoloring.

[0083] 3. Attribute information processing: In AVS-PCC, attribute information processing can include three modes, namely, prediction encoding, transform encoding, and prediction and transform encoding, which can be used under different conditions.

[0084] Among them, prediction encoding refers to determining the neighbor points of the to-be-encoded point in the already-encoded points as prediction points according to distance or spatial relationship information, calculating the predicted attribute information of the to-be-encoded point based on the attribute information of the prediction points according to the set criteria, calculating the difference between the real attribute information of the to-be-encoded point and the predicted attribute information as attribute residual information, and quantizing, transforming (optional), and entropy encoding the attribute residual information.

[0085] Transform encoding refers to grouping and transforming attribute information using transform methods such as discrete cosine transform (DCT) and Haar transform (Haar), quantizing transform coefficients, obtaining attribute reconstruction information through inverse quantization and inverse transform, calculating the difference between the real attribute information and the attribute reconstruction information to obtain attribute residual information and quantizing it, and entropy encoding the quantized transform coefficients and attribute residual.

[0086] Prediction and transform encoding refers to using prediction to obtain attribute residual information for transform, quantizing transform coefficients, and entropy encoding.

[0087] In MPEG G-PCC, attribute information processing can include three modes, namely, prediction and transform (Prediction Transform) encoding, lifting transform (Lifting Transform) encoding, and region adaptive hierarchical transform (RegionAdaptive Hierarchical Transform, RAHT) encoding, which can be used under different conditions.

[0088] In the prediction transform coding, the point cloud is divided into multiple different levels of detail (LoD) according to the distance selection sub-point set, and a multi-quality level point cloud representation from coarse to fine is realized. The prediction between adjacent layers can be realized from bottom to top, that is, the attribute information of the points introduced in the fine layer is predicted from the adjacent points in the coarse layer, and the corresponding attribute residual information is obtained. The points in the bottom layer are encoded as reference information.

[0089] The lifting transform coding refers to introducing a weight update strategy of the neighborhood points on the basis of the LoD adjacent layer prediction, and finally obtaining the predicted attribute information of each point and the corresponding attribute residual information.

[0090] The hierarchical region adaptive transform coding refers to that the attribute information is converted into the transform domain through the RAHT transform, and the signal is referred to as a transform coefficient.

[0091] 4. Attribute quantization: The quantization precision is usually determined by a quantization parameter. The transform coefficient or the attribute residual information obtained by processing the attribute information is quantized, and the quantized result is entropy coded. For example, in the prediction transform coding and the lifting transform coding, the attribute residual information after quantization is entropy coded; in the RAHT, the transform coefficient after quantization is entropy coded.

[0092] 5. Entropy coding: The attribute residual information and / or the transform coefficient after quantization are generally compressed by using run length coding and arithmetic coding. The corresponding coding mode, quantization parameter and other information are also encoded by using an entropy encoder.

[0093] The encoder 200 encodes the geometric coordinate information of each point in the point cloud to obtain a geometric 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 geometric bitstream and attribute bitstream to the decoder 300.

[0094] Figure 3a A decoding flowchart executed by a decoder based on the decoding framework of the AVS-PCC is shown in FIG. 2. Figure 3b A decoding flowchart executed by a decoder based on the decoding framework of the MPEG G-PCC is shown in FIG. 3. The decoder can be the decoder 300. Figure 1The decoder 300 is shown. After receiving the compressed bitstream (i.e. attribute bitstream and geometry bitstream) transmitted by the encoder 200, the decoder 300 decodes the geometry bitstream to reconstruct the geometry coordinate information of the points in the point cloud, and decodes the attribute bitstream to reconstruct the attribute information of the points in the point cloud.

[0095] The decoding process performed by the decoder 300 is as follows:

[0096] 1. Entropy Decoding: Entropy decoding the geometry bitstream and the attribute bitstream to obtain geometry syntax elements and attribute syntax elements.

[0097] 2. Geometry Decoding: For the AVS-PCC encoding framework, geometry decoding includes two modes, i.e. Octree-based geometry decoding and prediction tree-based geometry decoding. For the G-PCC encoding framework, geometry decoding includes three modes, i.e. Octree-based geometry decoding, Trisoup-based geometry decoding and prediction tree-based geometry decoding.

[0098] Octree-based geometry decoding, e.g. Octree-based geometry decoding: reconstructing an Octree based on the geometry syntax elements parsed from the geometry bitstream.

[0099] Prediction tree-based geometry decoding: reconstructing a prediction tree based on the geometry syntax elements parsed from the geometry bitstream.

[0100] Trisoup-based geometry decoding: reconstructing a Trisoup based on the geometry syntax elements parsed from the geometry bitstream.

[0101] 3. Geometry Reconstruction: performing reconstruction to obtain the geometry coordinate information of the points in the point cloud.

[0102] 4. Coordinate Inverse Transformation: performing inverse transformation on the reconstructed geometry coordinate information to convert the reconstructed coordinates (positions) of the points in the point cloud from the transformed domain back to the original domain.

[0103] 5. Dequantization: dequantizing the attribute syntax elements.

[0104] 6. Attribute Information Processing: In AVS-PCC, attribute information processing determines the color information of the points in the point cloud by predicting or prediction-transforming the prediction residual or prediction residual transform coefficients after dequantization, or determines the color information of the points in the point cloud by transforming the transform coefficients after dequantization.

[0105] In MPEG G-PCC, attribute information processing determines color information of points in a point cloud from dequantized attribute information through RAHT, or determines color information of points in a point cloud from dequantized attribute information through LOD and inverse lifting.

[0106] 7. Color inverse transform: transform color information from YCbCr color space to RGB color space. In some examples, the color inverse transform operation can not be performed.

[0107] As Figure 4 shown, the present application provides a geometry reconstruction method, which is executed by a decoding end, and the method comprises:

[0108] Step 401: The decoding end decodes a first code stream to obtain a first flag, the first flag being used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node; the original point cloud refers to a point cloud before reconstruction; and the original point cloud distribution information refers to a point cloud distribution in the geometry structure before reconstruction.

[0109] Step 402: The decoding end processes vertices in the geometry structure according to the first flag.

[0110] Step 403: The decoding end reconstructs a point cloud by using the processed vertices.

[0111] In this embodiment, the Trisoup node refers to a multi-branch tree node, and the Trisoup conceptualizes the geometry shape of a point cloud in each node as a surface that intersects with edges of each geometry body at most once. Points that intersect with the edges of the geometry body are referred to as vertices, and these vertices are shared between adjacent nodes, thereby ensuring the continuity of the reconstructed surface between the nodes. The existence of the vertices on the edges of the geometry body corresponding to each node and the quantized positions of the vertices on the edges can be respectively represented as 1 bit and 2 bits. Inside the geometry body corresponding to each node, the reconstructed surface is composed of non-planar polygons formed by these vertices, as Figure 5 shown, which is organized as a set of triangles.

[0112] Optionally, the decoding end can determine neighbor information of each edge of the geometry structure corresponding to the Trisoup node, and the neighbor information can be used as a context for subsequent entropy decoding. The neighbor information comprises point cloud occupancy information of adjacent edges.

[0113] The decoding end can decode a vertex existence flag and a quantized vertex position of each edge of the geometry structure by using the neighbor information. The quantized vertex position exists in a case where the vertex existence flag indicates that a vertex exists.

[0114] The encoding end obtains a first flag used to represent original point cloud distribution information of the Trisoup node according to the occupancy information and the vertex existence flag of the eight sub-geometries obtained by the Trisoup node, encodes the first flag to generate a first code stream, and sends the first code stream to the decoding end. The decoding end decodes the first flag to obtain the original point cloud distribution information. The decoding end performs qualification determination on the vertices in the Trisoup node according to the decoded first flag, for example, determines reasonable vertices (which can be used for point cloud reconstruction), unreasonable vertices (which are not suitable for point cloud reconstruction, for example, there is no original point cloud in a first range around the vertex), more reasonable vertices (for example, there is no original point cloud or less original point cloud in a second range around the vertex, for example, less than a threshold), and the like, so as to delete or correct the vertices according to the determination result. Optionally, the decoding end does not process the reasonable vertices when it is determined that the vertices are reasonable. The decoding end reconstructs the point cloud by using the processed vertices.

[0115] Optionally, the first flag can include one or more flags, that is, the encoding end can determine one or more flags used to indicate the original point cloud distribution, and encode the one or more flags. The decoding end can obtain the one or more flags by decoding. The one or more flags included in the first flag can be flags corresponding to different axial directions, for example, the first flag includes flag 1, flag 2, and flag 3, wherein flag 2 can include three axial direction corresponding flags 2 of x, y, and z, and flag 3 can include three axial direction corresponding flags 3 of x, y, and z.

[0116] In the embodiment of the application, the decoding end decodes the first flag, determines the distribution of the original point cloud in the geometric structure according to the first flag, and processes the vertices in the geometric structure, and reconstructs the point cloud by using the processed vertices. By processing the vertices, the error point cloud can be removed, the distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

[0117] As an optional embodiment, the method further includes:

[0118] determining a context according to the vertex distribution information in the geometric structure corresponding to the Trisoup node;

[0119] decoding the first code stream to obtain the first flag, including:

[0120] decoding the first code stream according to the context to obtain the first flag.

[0121] In the embodiment, the decoding end can further determine a context according to the vertex distribution in the Trisoup node, and decode the first code stream through the context to obtain the first flag.

[0122] Optionally, the context is used to indicate whether a ratio of a number of vertices in a first region of a target axis to a total number of vertices is greater than or equal to a first threshold value, and the target axis is any one of the three axes.

[0123] In the embodiment, the target axis can be any one of the x, y and z axes, and in a case where the first flag includes multiple flags, the context can include contexts corresponding to the multiple flags. For example, the first flag includes flag 1, flag 2 and flag 3, and the context can include a context of flag 2 and a context of flag 3.

[0124] When decoding the first flag at the decoding end, a context corresponding to an axis of a decoded flag is used, for example, when decoding flag 2 corresponding to the x axis, a context corresponding to the x axis is used, that is, whether a ratio of a number of vertices in a first region of the x axis to a total number of vertices is greater than or equal to a first threshold value; when decoding flag 2 corresponding to the y axis, a context corresponding to the y axis is used, that is, whether a ratio of a number of vertices in a first region of the y axis to a total number of vertices is greater than or equal to a first threshold value; and when decoding flag 3 corresponding to the z axis, a context corresponding to the z axis is used, that is, whether a ratio of a number of vertices in a first region of the z axis to a total number of vertices is greater than or equal to a first threshold value.

[0125] Optionally, the first region can be a preset range of a target region, and the first region can be denoted as a negative half axis or a positive half axis, for example, when a distance between a dimension value of a target axis of a vertex coordinate and a dimension value of a starting point of an edge where the vertex is located is less than a first predetermined threshold value, it is considered that the vertex is located on a negative half axis of the target axis, and in this case, the ratio of the number of vertices in the first region of the target axis to the total number of vertices is a ratio of the number of vertices on the negative half axis of the target axis to the total number of vertices. When a distance between a dimension value of a target axis of a vertex coordinate and a dimension value of an ending point of an edge where the vertex is located is less than a second predetermined threshold value, it is considered that the vertex is located on a positive half axis of the target axis, and in this case, the ratio of the number of vertices in the first region of the target axis to the total number of vertices is a ratio of the number of vertices on the positive half axis of the target axis to the total number of vertices.

[0126] In the case that the first region is the negative or positive half-axis of the target axis, the first threshold value indicated in the context can be different, for example: the context indicates whether the ratio of the number of vertices in the negative half-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 half-axis of the target axis to the total number of vertices is greater than th2, and th1 and th2 can be different.

[0127] When the decoding end decodes the first flag according to the context, the context of the target axis corresponding to the first flag to be decoded is used, for example: the decoding end decodes the flag 2 corresponding to the x-axis, and then decodes the flag 2 according to whether the ratio of the number of vertices in the first region of the x-axis to the total number of vertices is greater than or equal to the first threshold value; the decoding end decodes the flag 3 corresponding to the y-axis, and then decodes the flag 3 according to whether the ratio of the number of vertices in the first region of the y-axis to the total number of vertices is greater than or equal to the first threshold value. The decoding of the flags of other axes is similar to the above examples, which will not be listed one by one.

[0128] As an optional embodiment, the first flag includes at least one of the following:

[0129] (1) Flag 1: used to indicate whether there is a vertex in the geometric structure that needs to be corrected; the flag 1 can be denoted as nodeflag, and the nodeflag is used to indicate whether there is a vertex in the geometric structure corresponding to the Trisoup node that needs to be processed, for example: nodeflag = 1 indicates that there is a vertex in the geometric structure that needs to be processed, and nodeflag = 0 indicates that there is no vertex in the geometric structure that needs to be processed. It should be noted that in the case that the nodeflag indicates that there is no vertex in the geometric structure that needs to be processed, the first flag does not include the flag 2 and the flag 3.

[0130] (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; the flag 2 can be denoted as axiFlag, and the axiFlag is used to indicate which dimension value of the vertex based on the circumaxial needs to be corrected, for example: the axiFlag can include axiFlag_1, axiFlag_2, axiFlag_3, axiFlag_1, axiFlag_2, axiFlag_3 correspond to x, y, z axis respectively, and the correspondence between the two is not limited. For example: axiFlag_1 can be used to indicate whether the dimension value of the vertex in the x-axis (or y-axis or z-axis) needs to be corrected; axiFlag_2 can be used to indicate whether the dimension value of the vertex in the y-axis (or z-axis or x-axis) needs to be corrected; axiFlag_3 can be used to indicate whether the dimension value of the vertex in the z-axis (or x-axis or y-axis) needs to be corrected.

[0131] The value of axiFlag can be used to indicate whether the dimension value of the vertex in a certain axial direction needs to be corrected. For example, axiFlag_1=1 indicates that the dimension value of the vertex in the x axial direction needs to be corrected, and axiFlag_1=0 indicates that the dimension value of the vertex in the x axial direction does not need to be corrected; axiFlag_2=1 indicates that the dimension value of the vertex in the y axial direction needs to be corrected, and axiFlag_2=0 indicates that the dimension value of the vertex in the y axial direction does not need to be corrected; axiFlag_3=1 indicates that the dimension value of the vertex in the z axial direction needs to be corrected, and axiFlag_3=0 indicates that the dimension value of the vertex in the z axial direction does not need to be corrected.

[0132] It should be noted that when axiFlag indicates that the dimension value of the vertex in a certain axial direction does not need to be corrected, the first flag does not include the flag corresponding to the axial direction.

[0133] (3) Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axial direction needs to be corrected, and the correction direction includes the positive direction or the negative direction of the target axial direction.

[0134] The flag 3 can be denoted as flag01, which is used to indicate the direction in which the dimension value of the vertex in a certain axial direction needs to be corrected when the dimension value of the vertex in the axial direction needs to be corrected. For example, flag01 can include flag01_1, flag01_2, and flag01_3, and flag01_1, flag01_2, and flag01_3 correspond to x, y, and z axial directions, respectively. The correspondence between the two is not limited here.

[0135] For example, flag01_1 can be used to indicate the correction direction when the dimension value of the vertex in the x axial direction (or the y axial direction or the z axial direction) needs to be corrected; flag01_2 can be used to indicate the correction direction when the dimension value of the vertex in the y axial direction (or the z axial direction or the x axial direction) needs to be corrected; and flag01_3 can be used to indicate the correction direction when the dimension value of the vertex in the z axial direction (or the x axial direction or the y axial direction) needs to be corrected.

[0136] 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 axial direction needs to be corrected towards the positive direction of the x axis; flag01_1=0 indicates that the dimension value of the vertex in the x axial direction needs to be corrected towards the negative direction of the x axis; flag01_2=1 indicates that the dimension value of the vertex in the y axial direction needs to be corrected towards the positive direction of the y axis; flag01_2=0 indicates that the dimension value of the vertex in the y axial direction needs to be corrected towards the negative direction of the y axis; flag01_3=1 indicates that the dimension value of the vertex in the z axial direction needs to be corrected towards the positive direction of the z axis; and flag01_3=0 indicates that the dimension value of the vertex in the z axial direction needs to be corrected towards the negative direction of the z axis.

[0137] In this embodiment, the decoding end decodes a first flag, which can include one or more flags for indicating point cloud distribution information. According to the one or more flags, the decoding end can determine the modification of the vertex, thereby processing the vertex.

[0138] As an optional embodiment, the decoding of the first code stream obtains a first flag, which includes:

[0139] The decoding of the first code stream obtains a flag 1.

[0140] In the case where the flag 1 indicates that there is a vertex needing modification in the geometry structure, a flag 2 corresponding to a first axis is decoded. If the flag 2 corresponding to the first axis indicates that the vertex needing modification is in the dimension value of the first axis, a flag 3 corresponding to the first axis is decoded.

[0141] A flag 2 corresponding to a second axis is decoded. If the flag 2 corresponding to the second axis indicates that the vertex needing modification is in the dimension value of the second axis, a flag 3 corresponding to the second axis is decoded.

[0142] And / or, if the flag 2 corresponding to the first axis indicates that the vertex does not need modification in the dimension value of the first axis, and the flag 2 corresponding to the second axis indicates that the vertex does not need modification in the dimension value of the second axis, it is determined that a flag 2 corresponding to a third axis indicates that the vertex needs modification in the dimension value of the third axis. The flag 3 corresponding to the third axis is decoded.

[0143] In this embodiment, when the decoding end decodes the first code stream, a flag 1 (nodeflag) is first decoded, and a flag 2 (axiFlag) is decoded according to the indication of the flag 1. If the flag 1 indicates that there is a vertex needing modification, the flag 2 is decoded. If the flag 1 indicates that there is no vertex needing modification, the flag 2 does not need to be decoded. When the flag 2 is decoded, the flags 2 of two axes can be first decoded in the order of the code stream, whether the flag 2 of the third axis needs to be decoded is determined according to the flags 2 of the two axes. Whether the flag 3 (flag01) needs to be decoded is determined according to the indication of the flag 2. When the flag 2 indicates that the vertex does not need modification in the dimension value of an axis, the flag 3 of the axis does not need to be decoded. When the flags 2 of the two axes both indicate that the vertex does not need modification in the dimension value of the corresponding axis, the flag 2 of the third axis does not need to be decoded, and the flag 2 of the third axis can be directly determined to indicate that the vertex needs modification in the dimension value of the axis (because the flag 1 indicates that there is a vertex needing modification, if the flags 2 of the two axes both indicate that the vertex does not need modification, the flag 2 of the third axis must indicate that the vertex needs modification in the dimension value of the axis).

[0144] The following illustrates the process of decoding the first flag at the decoding end, and the decoding code is as follows:

[0145] If(nodeflag){

[0146] Decode(axiFlag_1)

[0147] If(axiFlag_1){

[0148] Decode(flag01_1)

[0149] }

[0150] Decode(axiFlag_2)

[0151] If(axiFlag_2){

[0152] Decode(flag01_2)

[0153] }

[0154] If(axiFlag_1!= 0 || axiFlag_2!= 0)

[0155] Decode(axiFlag_3)

[0156] Else

[0157] axiFlag_3 = 1;

[0158] If(axiFlag_3){

[0159] Decode(flag01_3)

[0160] }

[0161] }

[0162] The decoding process is described as follows: the decoding end first decodes the nodeflag, if the nodeflag indicates that there is a vertex that needs to be corrected (such as nodeflag = 1), axiFlag_1 is decoded (assuming that axiFlag_1 corresponds to the y-axis); if axiFlag_1 indicates that the dimension value of the vertex that needs to be corrected is in the y-axis direction (such as axiFlag_1 = 1), the flag01_1 corresponding to the y-axis direction is decoded; axiFlag_2 is decoded (assuming that axiFlag_2 corresponds to the z-axis); if axiFlag_2 indicates that the dimension value of the vertex that needs to be corrected is in the z-axis direction, the flag01_2 corresponding to the z-axis direction is decoded; if axiFlag_1 indicates that the dimension value of the vertex that does not need to be corrected is in the y-axis direction (such as axiFlag_1 = 0), and axiFlag_2 all indicate that the dimension value of the vertex that does not need to be corrected is in the z-axis direction (such as axiFlag_2 = 0), it can be determined that axiFlag_3 indicates that the dimension value of the vertex that needs to be corrected is in the x-axis direction (such as axiFlag_3 = 1); flag01_3 is decoded.

[0163] As an optional embodiment, processing the vertex in the geometry structure according to the first flag comprises:

[0164] According to the first flag, marking the original point cloud distribution information of the sub-geometry corresponding to the child node of the Trisoup node;

[0165] According to the original point cloud distribution information of the sub-geometry, determining the type of the vertex in the geometry structure;

[0166] According to the type of the vertex, processing the vertex.

[0167] In this embodiment, after the decoding end decodes the first flag, it can mark whether there is original point cloud for the eight sub-geometries divided by the current node according to the decoded nodeflag and the axiFlag and flag01 of the three axis directions. The eligibility of the vertex in the node is determined to determine the type of the vertex, and the vertex is processed or not processed according to the type of the vertex. The type of the vertex can include: a first type vertex, which is an unreasonable vertex, for example, there is no original point cloud around the vertex; a second type 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 vertex, which is a reasonable vertex. The reasonable vertex can not be processed.

[0168] Optionally, according to the original point cloud distribution information of the sub-geometry, determining the type of the vertex in the geometry structure comprises at least one of the following:

[0169] 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;

[0170] 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;

[0171] In the geometric structure, other vertices except the first type vertices and the second type vertices are determined to be third type vertices.

[0172] In this embodiment, when the four sub-geometric bodies in the first plane to which the edge of 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. Figure 6 As shown, assuming that the edge where the vertex is Figure 6 , the first plane to which this edge belongs can be the surface where sub-geometries 0, 1, 4, and 5 are located, or the surface where sub-geometries 0, 2, 4, and 6 are located; if there is no original point cloud for sub-geometries 0, 1, 4, and 5 or sub-geometries 0, 2, 4, and 6, the vertex is a first-type vertex, that is, an unreasonable vertex.

[0173] When the sub-geometry within the first vertical plane of the edge where the vertex is located does not have the 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 of vertex. Figure 6 As shown, assuming that the edge where the vertex is Figure 6 , the first perpendicular plane of the edge can be the surface where sub-geometries 0, 1, 2, and 3 are located, or the surface where sub-geometries 4, 5, 6, and 7 are located. If there is no original point cloud for sub-geometries 0, 1, 2, and 3 and the vertex is within any of sub-geometries 0, 1, 2, and 3, then the vertex is determined to be a second-type vertex. Alternatively, if there is no original point cloud for sub-geometries 4, 5, 6, and 7 and the vertex is within any of sub-geometries 4, 5, 6, and 7, then the vertex is determined to be a second-type vertex, that is, a more reasonable vertex.

[0174] 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.

[0175] Optionally, processing the vertex according to the type of the vertex includes at least one of the following:

[0176] 1) deleting the first type of vertex; that is, deleting the unreasonable vertex;

[0177] 2) modifying the second type of vertex to the midpoint of the edge where the second type of vertex is located; that is, modifying the more reasonable vertex to the midpoint of the edge where the more reasonable vertex is located.

[0178] Optionally, for the third type of vertex, that is, the reasonable vertex, no processing is performed.

[0179] As an optional embodiment, the method further comprises:

[0180] decoding the second code stream to obtain a second flag, the second flag being used to indicate whether the geometry reconstruction technology is enabled or not.

[0181] In the embodiments of the present application, the encoding end encodes a flag indicating whether the geometry reconstruction method of the present application is enabled, to obtain a second code stream; the decoding end decodes the second code stream to determine whether the geometry reconstruction method is enabled; and in the case where the geometry reconstruction method is enabled, the implementation process of the geometry reconstruction method of the embodiments of the present application is performed. Optionally, the second code stream and the first code stream can be the same code stream or different code streams.

[0182] Optionally, the decoding end can decode the second code stream in the case where Trisoup is enabled. The encoding end can encode a flag indicating whether Trisoup is enabled; and the decoding end can determine whether Trisoup is enabled by decoding the flag.

[0183] Optionally, before decoding the first code stream to obtain the first flag, the method further comprises:

[0184] determining that the vertex in the geometry structure corresponding to the Trisoup node satisfies a first condition;

[0185] The first condition comprises that the total number of vertices is greater than or equal to a second threshold value, and the ratio of the number of vertices in a second region in any axial direction to the total number of vertices is greater than or equal to a third threshold value.

[0186] In this embodiment, whether the Trisoup node enables the geometry 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 a threshold value Num and the ratio P of the number of vertices in the second region in any axial direction to the total number of vertices is greater than or equal to a threshold value pth1, the value of eligible is set to 1, indicating that the Trisoup node executes the geometry reconstruction method of the present application, that is, in the case that the vertices in the geometry structure corresponding to the Trisoup node satisfy the first condition, the decoding end needs to decode the first code stream; otherwise, the value of eligible is set to 0, indicating that the Trisoup node does not execute the geometry reconstruction method of the present application, and the decoding end does not need to decode the first code stream.

[0187] The second region can be a threshold range, and the second region can be a certain half-axis region in a certain axial direction, for example, the second region can be recorded as a negative half-axis or a positive half-axis in a certain axial direction. The first condition is, for example, the total number of vertices is greater than or equal to a second threshold value, and the ratio P of the number of vertices in a certain half-axis region in any axial direction to the total number of vertices is greater than or equal to a third threshold value. The any axial direction can be any one or several of the x-axis direction, the y-axis direction, and the z-axis direction.

[0188] For example, the distance between the dimension value of the x-axis of the vertex coordinate and the dimension value of the x-axis of the start point of the edge where the vertex is located is less than a threshold value th1, and it is considered that the vertex is located in the negative half-axis of the x-axis. In this case, the ratio of the number of vertices in the second region in 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 distance between the dimension value of the x-axis of the vertex coordinate and the dimension value of the x-axis of the end point of the edge where the vertex is located is less than a threshold value th2, and it is considered that the vertex is located in the positive half-axis of the x-axis. In this case, the ratio of the number of vertices in the second region in 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.

[0189] As an optional embodiment, the use of the processed vertices to reconstruct the point cloud comprises:

[0190] Determining the offset centroid vertex position according to the processed vertices;

[0191] Decoding a third code stream to determine the face vertices of the Trisoup node;

[0192] Constructing a triangular patch according to the vertices in the geometry structure, the offset centroid vertex position, and the face vertices.

[0193] Performing ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

[0194] In this embodiment, the decoding end decodes the quantized offset value of the centroid vertex in the code stream; calculates the initial position of the centroid vertex according to the remaining vertex coordinates after processing; sums the inverse quantized offset value and the initial position of the centroid vertex to obtain the position of the offset centroid vertex.

[0195] Optionally, the third code stream and the first code stream can be the same code stream or different code streams. The information of whether the face vertex exists is obtained to obtain the TriSoup face vertex corresponding to each TriSoup node; the vertex coordinates and the face vertex coordinates in each node are sorted, and then the edge vertex, the offset centroid and the face vertex are used to construct a triangular face. The encoding end selectively determines the face vertex for each node and encodes and sends to the decoding end; the decoding end decodes the information of whether the vertex exists to obtain the TriSoup face vertex corresponding to each TriSoup node; the decoding end sorts the vertex coordinates and the face vertex coordinates in each node, and then uses the edge vertex, the offset centroid vertex and the face vertex to construct a triangular face; the triangular face is ray-traced and sampled to obtain a reconstructed point cloud.

[0196] In the embodiment of the application, the decoding process includes the following three steps:

[0197] 1) Decoding the Trisoup edge vertex located on the Trisoup edge to obtain the axial distribution information of the vertex and the total number of vertices;

[0198] 2) Constructing a Trisoup triangle on the Trisoup node;

[0199] 3) Determining the decoding point by Trisoup triangle voxelization.

[0200] This scheme first needs to transmit the Flag indicating whether the geometry reconstruction method of the application is enabled under the condition that the trisoup is enabled (trisoup_enabled_flag=true), which belongs to the gbh parameter set; when the Flag indicates that the geometry reconstruction method of the application is enabled, the eligible operation is performed, and the distribution information and the number information of the vertex in the node are used to infer whether the node really enables the geometry reconstruction method of the application.

[0201] When the node enables the geometry reconstruction method, after the decoding end decodes the Trisoup edge vertex located on the Trisoup edge, the decoding end decodes a first flag for representing the original point cloud distribution in the Trisoup node. The first flag includes nodeFlag, axiFlag, flag01. Optionally, the decoding end designs a corresponding context for the flag to be decoded. The decoding end performs qualification determination on whether the vertex in the node can directly participate in the process of constructing the Trisoup triangle of the node, processes the vertex according to the determination result, constructs the Trisoup triangle according to the remaining node after processing, and determines the decoding point through Trisoup triangle voxelization.

[0202] The decoding process of the decoding end is shown in Figure 7 , and includes:

[0203] determining the total number of vertices (vertex) corresponding to the geometry structure of the Trisoup node;

[0204] determining whether the total number of vertices is greater than or equal to a threshold value, if the total number of vertices is greater than or equal to the threshold value, and the ratio P of the number of vertices in the second region in any axial direction to the total number of vertices is greater than or equal to a threshold value th1, setting eligible = 1, indicating that the Trisoup node enables the geometry reconstruction method of the present application, otherwise setting eligible = 0, indicating that the Trisoup node does not enable the geometry reconstruction method of the present application;

[0205] decoding nodeflag in the case of eligible = 1;

[0206] determining the value of nodeflag, if nodeflag = 1, indicating that there is a vertex that needs to be corrected, then decoding axiFlag_z, if axiFlag_z = 1, indicating that the dimension value of the vertex that needs to be corrected is in the z axial direction, then decoding the corresponding flag01_z in the z axial direction;

[0207] decoding axiFlag_y, if axiFlag_y = 1, indicating that the dimension value of the vertex that needs to be corrected is in the y axial direction, then decoding the corresponding flag01_y in the y axial direction;

[0208] if axiFlag_z = 0 and axiFlag_y = 0, then axiFlag_x = 1 is determined, indicating that the dimension value of the vertex that needs to be corrected is in the x axial direction, then decoding flag01_x, and modifying the vertex (modify edge vertex) according to the value of flag01_x;

[0209] 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;

[0210] Ray tracing sampling is performed using the corrected vertices, centroid vertices, and face vertices to obtain a reconstructed point cloud.

[0211] 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.

[0212] 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.

[0213] like Figure 8 As shown, the embodiment of the present application further provides a geometric reconstruction method, which is performed by the encoding end, and the method includes:

[0214] 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.

[0215] Step 802: The encoding end processes the vertices in the geometric structure according to the first flag;

[0216] Step 803: The encoder reconstructs the point cloud using the processed vertices.

[0217] Optionally, for each Trisoup node, the encoding end can determine a vertex existence flag and a quantized vertex position of each edge of the geometry structure corresponding to the Trisoup node. Wherein, the quantized vertex position exists in the case that the vertex existence flag indicates that the vertex exists.

[0218] The encoding end can reorder the non-repeated edges in dictionary order to determine the encoding order. The encoding end can use the 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 code stream using the dynamic (Dynamic) instant update optional binarization technology (OBUF) according to the determined encoding order.

[0219] In this embodiment, the encoding end can determine a first flag according to the point cloud distribution information, the first flag being used to indicate the original point cloud distribution information of the Trisoup node, the encoding end encoding the first flag to generate a first code stream and sending the first code stream to the decoding end. The encoding end performs qualification determination on the vertices in the Trisoup node according to the first flag, for example, the encoding end determines reasonable vertices, unreasonable vertices, relatively reasonable vertices, etc. according to the first flag, so as to delete or correct the vertices according to the determination result. Optionally, the encoding end does not process the reasonable vertices when determining that the vertices are reasonable. The encoding end reconstructs the point cloud by using the processed vertices.

[0220] Optionally, the first flag can include one or more flags, that is, the encoding end can determine one or more flags for indicating the original point cloud distribution, and encode the one or more flags, so that the decoding end can obtain the one or more flags by decoding.

[0221] In the embodiments of the present application, the encoding end determines and encodes the first flag, and according to the first flag, the distribution of the original point cloud in the geometry structure can be determined, and then the vertices in the geometry structure are processed, and the point cloud is reconstructed by using the processed vertices. By processing the vertices, the error point cloud can be removed, the distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

[0222] As an optional embodiment, the method further comprises:

[0223] According to the original point cloud distribution information in the geometry structure corresponding to the Trisoup node, mark the original point cloud distribution information of the sub-geometry corresponding to the child node of the Trisoup node, the sub-geometry being obtained by dividing the geometry structure.

[0224] 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.

[0225] In this embodiment, the decoding end can divide the Trisoup node into a plurality of sub-geometric bodies, for example Figure 6 As shown, a flag of whether the sub-geometric body has original point cloud is given according to the original point cloud distribution information in the node; and the decoding end determines the first flag according to the point cloud occupancy information and the vertex existence flag information of the plurality of sub-geometric bodies divided by the Trisoup node.

[0226] The first flag can include one or more flags, which can be flags corresponding to different axial directions, for example: the first flag includes flag 1, flag 2 and flag 3, wherein flag 2 can include three axial direction corresponding flags 2 of x, y and z, and flag 3 can include three axial direction corresponding flags 3 of x, y and z.

[0227] As an optional embodiment, the first flag includes at least one of the following:

[0228] (1) flag 1: used to indicate whether there is a vertex in the geometric structure that needs to be corrected; the flag 1 can be denoted as nodeflag, which is used to indicate whether there is a vertex in the geometric structure corresponding to the Trisoup node that needs to be processed, for example: nodeflag=1 indicates that there is a vertex in the geometric structure that needs to be processed, and nodeflag=0 indicates that there is no vertex in the geometric structure that needs to be processed. It should be noted that in the case of nodeflag indicating that there is no vertex in the geometric structure that needs to be processed, the first flag does not include flag 2 and flag 3.

[0229] (2) flag 2: used to indicate whether the dimension value of the vertex in the target axial direction needs to be corrected, and the target axial direction is any one of the three axial directions; the flag 2 can be denoted as axiFlag, which is used to indicate which axial direction the dimension value of the vertex needs to be corrected based on, for example: axiFlag can include axiFlag_1, axiFlag_2 and axiFlag_3, axiFlag_1, axiFlag_2 and axiFlag_3 correspond to x, y and z axial directions, respectively, and the correspondence between the two is not limited. For example: axiFlag_1 can be used to indicate whether the dimension value of the vertex in the x axial direction (or the y axial direction or the z axial direction) needs to be corrected; axiFlag_2 can be used to indicate whether the dimension value of the vertex in the y axial direction (or the z axial direction or the x axial direction) needs to be corrected; and axiFlag_3 can be used to indicate whether the dimension value of the vertex in the z axial direction (or the x axial direction or the y axial direction) needs to be corrected.

[0230] The value of axiFlag can be used to indicate whether the dimension value of the vertex in a certain axial direction needs to be corrected. For example, axiFlag_1 = 1 indicates that the dimension value of the vertex in the x axial direction needs to be corrected, and axiFlag_1 = 0 indicates that the dimension value of the vertex in the x axial direction does not need to be corrected; axiFlag_2 = 1 indicates that the dimension value of the vertex in the y axial direction needs to be corrected, and axiFlag_2 = 0 indicates that the dimension value of the vertex in the y axial direction does not need to be corrected; axiFlag_3 = 1 indicates that the dimension value of the vertex in the z axial direction needs to be corrected, and axiFlag_3 = 0 indicates that the dimension value of the vertex in the z axial direction does not need to be corrected.

[0231] It should be noted that when axiFlag indicates that the dimension value of the vertex in a certain axial direction does not need to be corrected, the first flag does not include the flag 3 corresponding to the axial direction.

[0232] (3) Flag 3: used to indicate the correction direction when the dimension value of the vertex in the target axial direction needs to be corrected, and the correction direction includes the positive direction or the negative direction of the target axial direction.

[0233] The flag 3 can be denoted as flag01, which is used to indicate the direction in which the dimension value needs to be corrected when the dimension value of the vertex in a certain axial direction needs to be corrected. For example, flag01 can include flag01_1, flag01_2, and flag01_3, and flag01_1, flag01_2, and flag01_3 correspond to x, y, and z axial directions, respectively. Here, the correspondence between the two is not limited.

[0234] For example, flag01_1 can be used to indicate the correction direction when the dimension value of the vertex in the x axial direction (or the y axial direction or the z axial direction) needs to be corrected; flag01_2 can be used to indicate the correction direction when the dimension value of the vertex in the y axial direction (or the z axial direction or the x axial direction) needs to be corrected; and flag01_3 can be used to indicate the correction direction when the dimension value of the vertex in the z axial direction (or the x axial direction or the y axial direction) needs to be corrected.

[0235] The value of flag01 can be used to indicate the correction direction, for example: flag01_1=1 indicates that the vertex value in the x-axis direction needs to be corrected towards the positive direction of the x-axis; flag01_1=0 indicates that the vertex value in the x-axis direction needs to be corrected towards the negative direction of the x-axis; flag01_2=1 indicates that the vertex value in the y-axis direction needs to be corrected towards the positive direction of the y-axis; flag01_2=0 indicates that the vertex value in the y-axis direction needs to be corrected towards the negative direction of the y-axis; flag01_3=1 indicates that the vertex value in the z-axis direction needs to be corrected towards the positive direction of the z-axis; and flag01_3=0 indicates that the vertex value in the z-axis direction needs to be corrected towards the negative direction of the z-axis.

[0236] In this embodiment, the encoding end further processes according to the x, y, and z dimensions to obtain nodeFlag, axiFlag, and flag01. The encoding end can determine the values of the three flags according to the point cloud distribution information of the plurality of sub-geometries divided by a node and the vertex existence flag information, for example: as shown in FIG. 8, when the left four sub-geometries are all identified as not existing original point clouds and vertices exist on the left four edges of the Tirsoup node, flag01_x=0 and axiFlag_x=1; or when the right four sub-geometries are all identified as not existing original point clouds and vertices exist on the right four edges of the Tirsoup node, flag01_x=1 and axiFlag_x=1; otherwise, axiFlag_x=0 and flag01_x does not exist. Similarly, axiFlag_y, flag01_y, axiFlag_z, and flag01_z of each node can be obtained in the y and z dimensions. When axiFlag_x, axiFlag_y, and axiFlag_z have any one value of 1, nodeflag=1 (indicating that a vertex needing correction exists), otherwise nodeflag=0 (indicating that a vertex needing correction does not exist). Figure 6

[0237] As an optional embodiment, the method further includes:

[0238] determining a context of the first flag;

[0239] 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.

[0240] Optionally, the determination of the context of the first flag includes:

[0241] determining the context of the first flag according to the vertex distribution information in the geometric structure corresponding to the Trisoup node;

[0242] ​The context is used to indicate whether a ratio of a number of vertices in the first region of the target axial direction to a total number of vertices is greater than or equal to a first threshold value, and the target axial direction is any one of the three axial directions.

[0243] In this embodiment, the encoding end can determine the context according to the vertex distribution information in the node, and encode the first flag by using the context.

[0244] The target axial direction can be any one of the x, y and z axial directions. In the case where the first flag includes multiple flags, the context can include contexts corresponding to the multiple flags. For example, the first flag includes flag 1, flag 2 and flag 3, and the context can include a context of flag 2 and a context of flag 3.

[0245] When the encoding end encodes the first flag, the context corresponding to the axial direction of the flag to be encoded is used. For example, when flag 2 corresponding to the x axial direction is encoded, the context corresponding to the x axial direction is used, that is, whether a ratio of a number of vertices in the first region of the x axial direction to a total number of vertices is greater than or equal to a first threshold value; when flag 2 corresponding to the y axial direction is encoded, the context corresponding to the y axial direction is used, that is, whether a ratio of a number of vertices in the first region of the y axial direction to a total number of vertices is greater than or equal to a first threshold value; and when flag 3 corresponding to the z axial direction is encoded, the context corresponding to the z axial direction is used, that is, whether a ratio of a number of vertices in the first region of the z axial direction to a total number of vertices is greater than or equal to a first threshold value. The encoding end can encode nodeFlag, axiFlag and flag01 by using the context to obtain a first code stream.

[0246] Optionally, the first region can be a preset range of a target region, and the first region can be denoted as a negative half axis or a positive half axis. For example, if a distance between a dimension value of a target axial direction of a vertex coordinate and a dimension value of a target axial direction of a starting point of an edge where the vertex is located is less than a first predetermined threshold value, it is considered that the vertex is located on a negative half axis of the target axial direction, and in this case, the ratio of the number of vertices in the first region of the target axial direction to the total number of vertices is a ratio of the number of vertices on the negative half axis of the target axial direction to the total number of vertices. If a distance between a dimension value of a target axial direction of a vertex coordinate and a dimension value of a target axial direction of an ending point of an edge where the vertex is located is less than a second predetermined threshold value, it is considered that the vertex is located on a positive half axis of the target axial direction, and in this case, the ratio of the number of vertices in the first region of the target axial direction to the total number of vertices is a ratio of the number of vertices on the positive half axis of the target axial direction to the total number of vertices.

[0247] In the case that the first region is the negative or positive half-axis of the target axis, the first threshold value indicated in the context can be different, for example: the context indicates whether the ratio of the number of vertices on the negative half-axis of the target axis to the total number of vertices is greater than thl, or the context indicates whether the ratio of the number of vertices on the positive half-axis of the target axis to the total number of vertices is greater than th2, and thl and th2 can be different.

[0248] As an optional embodiment, the encoding of the first flag comprises:

[0249] Encoding a flag 1 (nodeflag);

[0250] If the flag 1 (nodeflag) indicates that there is a vertex needing correction in the geometry, encoding a flag 2 (axiFlag) corresponding to the first axis; if the flag 2 (axiFlag) corresponding to the first axis indicates that the dimension value of the vertex needing correction in the first axis, encoding a flag 3 (flag01) corresponding to the first axis;

[0251] Encoding a flag 2 (axiFlag) corresponding to the second axis; if the flag 2 (axiFlag) corresponding to the second axis indicates that the dimension value of the vertex needing correction in the second axis, encoding a flag 3 (flag02) corresponding to the second axis;

[0252] And / or, if the flag 2 (axiFlag) corresponding to the first axis indicates that the dimension value of the vertex in the first axis does not need to be corrected, and the flag 2 (axiFlag) corresponding to the second axis indicates that the dimension value of the vertex in the second axis does not need to be corrected, determining that the flag 2 (axiFlag) corresponding to the third axis indicates that the dimension value of the vertex in the third axis needs to be corrected; encoding a flag 3 (flag03) corresponding to the third axis.

[0253] In this embodiment, when encoding the first code stream, the encoding end first encodes a flag 1 (nodeflag), and encodes a flag 2 (axiFlag) according to the indication of the flag 1; wherein if the flag 1 indicates that there is a vertex needing correction, the flag 2 is encoded, and if the flag 1 indicates that there is no vertex needing correction, the flag 2 does not need to be encoded. When encoding the flag 2, the flags 2 of two axes can be encoded in sequence first, and whether the flag 2 of the third axis needs to be encoded is determined according to the flags 2 of the two axes; whether the flag 3 (flag01) is encoded is determined according to the indication of the flag 2, and when the flag 2 indicates that the dimension value of the vertex in an axis does not need to be corrected, the flag 3 of the axis does not need to be encoded. When the flags 2 of the two axes both indicate that the dimension value of the vertex in the corresponding axis does not need to be corrected, it is determined that the flag 2 of the third axis indicates that the dimension value of the vertex in the axis needs to be corrected (because the flag 1 indicates that there is a vertex needing correction, if the flags 2 of the two axes both indicate that no correction is needed, the flag 2 of the third axis must indicate that the dimension value of the vertex in the axis needs to be corrected).

[0254] The following illustrates the process of encoding the first flag by the encoding end, and the encoding code is as follows:

[0255] If(nodeflag){

[0256] Encode(axiFlag_1)

[0257] If(axiFlag_1){

[0258] Encode(flag01_1)

[0259] }

[0260] Encode(axiFlag_2)

[0261] If(axiFlag_2){

[0262] Encode(flag01_2)

[0263] }

[0264] If(axiFlag_1!= 0 || axiFlag_2!= 0)

[0265] Encode(axiFlag_3)

[0266] If(axiFlag_3){

[0267] Encode(flag01_3)

[0268] }

[0269] }

[0270] 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 that axiFlag_1 corresponds to the y-axis); if axiFlag_1 indicates that the dimension value of the vertex that needs to be corrected in the y-axis direction (such as axiFlag_1 = 1), the corresponding flag01_1 in the y-axis direction is encoded; axiFlag_2 is encoded (assuming that axiFlag_2 corresponds to the z-axis); if axiFlag_2 indicates that the dimension value of the vertex that needs to be corrected in the z-axis direction, the corresponding flag01_2 in the z-axis direction is encoded; if axiFlag_1 indicates that the dimension value of the vertex that needs to be corrected in the y-axis direction (such as axiFlag_1 = 0), and axiFlag_2 all indicate that the dimension value of the vertex that needs to be corrected in the z-axis direction (such as axiFlag_2 = 0), it can be determined that axiFlag_3 indicates that the dimension value of the vertex that needs to be corrected in the x-axis direction (such as axiFlag_3 = 1); flag01_3 is encoded.

[0271] As an optional embodiment, processing the vertex in the geometry structure according to the first flag comprises:

[0272] According to the first flag, marking the original point cloud distribution information of the sub-geometry corresponding to the child node of the Trisoup node;

[0273] According to the original point cloud distribution information of the sub-geometry, determining the type of the vertex in the geometry structure;

[0274] Processing the vertex according to the type of the vertex.

[0275] In this embodiment, the encoding end can mark whether there is original point cloud in the eight sub-geometries divided by the current node according to nodeflag and axiFlag and flag01 of three axial directions. The eligibility of the vertex in the node is determined to determine the type of the vertex, and the vertex is processed or not processed according to the type of the vertex. The type of the vertex can include a first type vertex, a second type vertex, and a third type vertex. The first type vertex is an unreasonable vertex, the second type vertex is a relatively reasonable vertex, and the third type vertex is a reasonable vertex. The reasonable vertex can not be processed.

[0276] Optionally, determining the type of the vertex in the geometry structure according to the original point cloud distribution information of the sub-geometry comprises at least one of the following:

[0277] In the geometry structure, if the sub-geometry in the first plane to which the edge where the vertex is located belongs does not have original point cloud, 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;

[0278] In the geometry structure, if the sub-geometry in the first vertical plane to the edge where the vertex is located does not have original point cloud, and the vertex is in the sub-geometry of the first vertical plane, the vertex is determined to be a second type vertex, and the first vertical plane is any vertical plane to the edge where the vertex is located;

[0279] In the geometry structure, other vertices except the first type vertex and the second type vertex are determined to be third type vertices.

[0280] In this embodiment, when the four sub-geometries in the first plane to which the edge where the vertex is located belongs are marked as not having original point cloud, the vertex is determined to be an unreasonable vertex, i.e., the first type vertex. For example Figure 6 As shown in the figure, assuming that the edge where the vertex is located is Figure 6If the edge where the vertex is located is a bottom edge of the cube (one edge where sub-geometries 0 and 4 are located), the first plane where the edge belongs to can be a plane where sub-geometries 0, 1, 4, 5 are located, or a plane where sub-geometries 0, 2, 4, 6 are located; if the original point cloud does not exist in sub-geometries 0, 1, 4, 5 or sub-geometries 0, 2, 4, 6, the vertex is a first type vertex, i.e., an unreasonable vertex.

[0281] When the sub-geometries in the first vertical plane of the edge where the vertex is located do not exist in the original point cloud, and the vertex is in the sub-geometries of the first vertical plane, the vertex is determined to be a more reasonable vertex, i.e., a second type vertex. For example Figure 6 As shown in FIG. 6, it is assumed that the edge where the vertex is located is Figure 6 If the edge where the vertex is located is a bottom edge of the cube (one edge where sub-geometries 0 and 4 are located), the first vertical plane of the edge can be a plane where sub-geometries 0, 1, 2, 3 are located or a plane where sub-geometries 4, 5, 6, 7 are located. If the original point cloud does not exist in sub-geometries 0, 1, 2, 3 and the vertex is in any one of sub-geometries 0, 1, 2, 3, it is determined that the vertex is a second type vertex, or if the original point cloud does not exist in sub-geometries 4, 5, 6, 7 and the vertex is in any one of sub-geometries 4, 5, 6, 7, it is determined that the vertex is a second type vertex, i.e., a more reasonable vertex.

[0282] In the geometry structure, other vertices except the first type vertex and the second type vertex are considered to be reasonable vertices, i.e., third type vertices.

[0283] Optionally, the vertex is processed according to the type of the vertex, including at least one of the following:

[0284] deleting the first type vertex; i.e., deleting an unreasonable vertex;

[0285] correcting the second type vertex to a midpoint of the edge where the second type vertex is located; i.e., correcting a more reasonable vertex to a midpoint of the edge where the more reasonable vertex is located.

[0286] Optionally, the third type vertex, i.e., a reasonable vertex, is not processed.

[0287] As an optional embodiment, the method further includes:

[0288] encoding a second flag as a second code stream, the second flag being used to indicate whether to enable or not to enable a geometry reconstruction technology.

[0289] In an embodiment of the present application, an encoding end encodes a flag indicating whether the geometry reconstruction method of the present application is enabled or not, to obtain a second code stream; in the case where the geometry reconstruction method is enabled, an implementation process of the geometry reconstruction method of the embodiment of the present application is performed. Optionally, the second code stream and the first code stream can be the same code stream or different code streams.

[0290] Optionally, the encoding end can encode the second flag as the second code stream in the case of enabling Trisoup.

[0291] Optionally, the encoding end can encode a flag of whether Trisoup is enabled; and the decoding end can determine whether Trisoup is enabled by decoding the flag.

[0292] Optionally, before determining the first flag, the method further comprises:

[0293] determining that the vertices in the geometry corresponding to the Trisoup node satisfy a first condition.

[0294] The first condition comprises: the total number of the vertices is greater than or equal to a second threshold value, and the ratio of the number of the vertices in a second region in any axial direction to the total number of the vertices is greater than or equal to a third threshold value.

[0295] In this embodiment, whether the Trisoup node enables the geometry reconstruction method of the present application is determined by the value of eligible. When the total number of the vertices in the node is greater than or equal to a threshold value Num and the ratio P of the number of the vertices in a second region in any axial direction to the total number of the vertices is greater than or equal to a threshold value pth1, the value of eligible is set to 1, indicating that the Trisoup node executes the geometry reconstruction method of the present application, i.e. in the case that the vertices in the geometry corresponding to the Trisoup node satisfy the first condition, the encoding end needs to encode the first code stream; otherwise, the value of eligible is set to 0, indicating that the Trisoup node does not execute the geometry reconstruction method of the present application, and the encoding end does not need to encode the first code stream.

[0296] The second region can be a threshold range, and the second region can be a certain half-axis region in a certain axial direction, for example, the second region can be recorded as a negative half-axis or a positive half-axis in a certain axial direction. The first condition is, for example, the total number of the vertices is greater than or equal to a second threshold value, and the ratio P of the number of the vertices in a certain half-axis region in any axial direction to the total number of the vertices is greater than or equal to a third threshold value. The any axial direction can be any one or several of the x-axis direction, the y-axis direction and the z-axis direction.

[0297] For example, if the distance between the x-axis dimension value of the vertex coordinate and the x-axis dimension value of the start point of the edge where the vertex is located is less than a threshold value thl, it is considered that the vertex is located on the negative half axis of the x-axis, and in this case, the ratio of the number of vertices in the second region of the x-axis to the total number of vertices is the ratio of the number of vertices on 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 a threshold value th2, it is considered that the vertex is located on the positive half axis of the x-axis, and in this case, the ratio of the number of vertices in the second region of the x-axis to the total number of vertices is the ratio of the number of vertices on the positive half axis of the x-axis to the total number of vertices.

[0298] As an optional embodiment, the using the processed vertex to reconstruct the point cloud comprises:

[0299] Determining the offset centroid vertex position according to the processed vertex;

[0300] Determining a face vertex for the Trisoup node, and encoding the existence information of the face vertex to obtain a third code stream;

[0301] Constructing a triangular patch according to the vertex in the geometric structure, the offset centroid vertex position, and the face vertex;

[0302] Performing ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

[0303] In this embodiment, after the vertex is deleted or corrected, the encoding end calculates an initial position of the centroid vertex according to the processed vertex; and calculates an offset value of the centroid vertex according to the original point cloud around the initial position of the centroid vertex. Then, the offset value is quantized and encoded and written into the code stream. The offset value after reverse quantization is summed with the initial position of the centroid vertex to obtain the offset centroid vertex position.

[0304] The encoding end selectively determines a face vertex for each node. The existence of the face vertex is encoded and sent to the decoding end; the encoding end sorts the vertex coordinates and the face vertex coordinates in each node, uses the edge vertex, the offset centroid vertex, and the face vertex to construct a triangular patch, and performs ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

[0305] The encoding process of the encoding end is as shown in Figure 9 , and comprises:

[0306] Determining the total number of vertices (vertex) of the geometric structure corresponding to the Trisoup node according to the point cloud distribution;

[0307] determining whether the total number of vertices is greater than or equal to a threshold value, if the total number of vertices is greater than or equal to the threshold value, and the ratio P of the number of vertices in the second region in any axial direction to the total number of vertices is greater than or equal to a threshold value th1, setting eligible = 1, indicating that the Trisoup node enables the geometry reconstruction method of the present application, otherwise setting eligible = 0, indicating that the Trisoup node does not enable the geometry reconstruction method of the present application;

[0308] In the case of eligible = 1, the geometry structure corresponding to the Trisoup node is divided into eight sub-geometries, as shown in Figure 6 The flag (8) of whether the eight sub-geometries exist original point cloud is given according to the original point cloud information in the node;

[0309] Determine nodeflag, axiFlag corresponding to each axial direction, and flag01;

[0310] Encode nodeflag; determine the value of nodeflag, if nodeflag = 1, indicating that there is a vertex that needs to be corrected, encode axiFlag_z; if axiFlag_z = 1, indicating that the dimension value of the vertex that needs to be corrected in the z axial direction, then encode flag01_z corresponding to the z axial direction;

[0311] Encode axiFlag_y, if axiFlag_y = 1, indicating that the dimension value of the vertex that needs to be corrected in the y axial direction, then decode flag01_y corresponding to the y axial direction;

[0312] If axiFlag_z = 0 and axiFlag_y = 0, then determine axiFlag_x = 1, indicating that the dimension value of the vertex that needs to be corrected in the x axial direction, then encode flag01_x, and modify the vertex according to the value of flag01_x (modify edge vertex);

[0313] If axiFlag_z = 1 and / or axiFlag_y = 1, i.e. axiFlag_z = 0 and axiFlag_y = 0 are not satisfied, then encode axiFlag_x; determine the value of axiFlag_x, if axiFlag_x = 1, indicating that the dimension value of the vertex that needs to be corrected in the x axial direction; encode flag01_x, and modify the vertex according to the value of flag01_x (modify edge vertex);

[0314] Using the corrected vertex, centroid and face vertex to perform ray tracing sampling to obtain a reconstructed point cloud.

[0315] 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.

[0316] 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.

[0317] 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.

[0318] like Figure 10 As shown, an embodiment of the present application provides a geometric reconstruction device 1000, which is applied to a decoding end. The device includes:

[0319] 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;

[0320] A first processing module 1020, configured to process vertices in the geometric structure according to the first flag;

[0321] The second processing module 1030 is configured to reconstruct a point cloud using the processed vertices.

[0322] Optionally, the device further includes:

[0323] A first determination module is used to determine the context according to vertex distribution information in the geometric structure corresponding to the Trisoup node;

[0324] The first decoding module is specifically configured to decode the first code stream according to the context to obtain a first flag.

[0325] Optionally, the context is used to indicate whether a ratio of a number of vertices in a first region of a target axial direction to a total number of vertices is greater than or equal to a first threshold value, and the target axial direction is any one of the three axial directions.

[0326] Optionally, the first flag comprises at least one of the following:

[0327] Flag 1: used to indicate whether there is a vertex needing to be corrected in the geometric structure;

[0328] Flag 2: used to indicate whether a dimension value of the vertex in a target axial direction needs to be corrected, the target axial direction being any one of the three axial directions;

[0329] Flag 3: used to indicate a correction direction in the case that the dimension value of the vertex in the target axial direction needs to be corrected, the correction direction comprising a positive direction or a negative direction of the target axial direction.

[0330] Optionally, the first decoding module is specifically configured to:

[0331] decode the first code stream to obtain flag 1;

[0332] in the case that the flag 1 indicates that there is a vertex needing to be corrected in the geometric structure, decode a flag 2 corresponding to a first axial direction; and if the flag 2 corresponding to the first axial direction indicates that the dimension value of the vertex in the first axial direction needs to be corrected, decode a flag 3 corresponding to the first axial direction;

[0333] decode a flag 2 corresponding to a second axial direction; and if the flag 2 corresponding to the second axial direction indicates that the dimension value of the vertex in the second axial direction needs to be corrected, decode a flag 3 corresponding to the second axial direction;

[0334] and / or, if the flag 2 corresponding to the first axial direction indicates that the dimension value of the vertex in the first axial direction does not need to be corrected, and the flag 2 corresponding to the second axial direction indicates that the dimension value of the vertex in the second axial direction does not need to be corrected, determine that a flag 2 corresponding to a third axial direction indicates that the dimension value of the vertex in the third axial direction needs to be corrected; and decode a flag 3 corresponding to the third axial direction.

[0335] Optionally, the first processing module is specifically configured to:

[0336] mark original point cloud distribution information of a sub-geometry corresponding to a child node of the Trisoup node according to the first flag;

[0337] determine a type of a vertex in the geometric structure according to the original point cloud distribution information of the sub-geometry;

[0338] processing the vertex according to a type of the vertex.

[0339] Optionally, the first processing module is specifically configured to perform at least one of the following:

[0340] In the geometric structure, if there is no original point cloud in a sub-geometric body in a first plane to which an edge where the vertex is located belongs, the vertex is determined as a first-type vertex, the first plane being any plane to which the edge where the vertex is located belongs.

[0341] In the geometric structure, if there is no original point cloud in a sub-geometric body in a first vertical plane to which an edge where the vertex is located belongs, and the vertex is in the sub-geometric body in the first vertical plane, the vertex is determined as a second-type vertex, the first vertical plane being any vertical plane to which the edge where the vertex is located belongs.

[0342] In the geometric structure, other vertices than the first-type vertex and the second-type vertex are determined as third-type vertices.

[0343] Optionally, the first processing module is specifically configured to perform at least one of the following:

[0344] deleting the first-type vertex;

[0345] correcting the second-type vertex to a midpoint of an edge where the second-type vertex is located.

[0346] Optionally, the apparatus further includes:

[0347] a second decoding module configured to decode a second code stream to obtain a second flag, the second flag being used to indicate whether a geometry reconstruction technique is enabled or not.

[0348] Optionally, the apparatus further includes:

[0349] a second determining module configured to determine that a vertex in a geometric structure corresponding to a Trisoup node satisfies a first condition.

[0350] The first condition includes that a total number of the vertex is greater than or equal to a second threshold value, and a ratio of a number of the vertex in a second region in any axial direction to the total number of the vertex is greater than or equal to a third threshold value.

[0351] Optionally, the second processing module is specifically configured to

[0352] determine a position of an offset centroid vertex according to the processed vertex;

[0353] decode a third code stream to determine a face vertex of the Trisoup node;

[0354] construct a triangular patch according to the vertex in the geometry structure, the offset centroid vertex position and the face vertex;

[0355] perform ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

[0356] Embodiments of the present application, the decoding end decodes to obtain a first flag, according to the first flag, the distribution of the original point cloud in the geometry structure can be determined, and then the vertex in the geometry structure is processed, and the point cloud is reconstructed using the processed vertex. By processing the vertex, the error point cloud can be removed, the distortion of the reconstructed point cloud is reduced, and the performance gain of the reconstructed point cloud is improved.

[0357] The geometry reconstruction device provided in the embodiments of the present application can realize each process of the method embodiment and achieve the same technical effect. To avoid repetition, details are not repeated here. Figures 4 to 7

[0358] As shown in Figure 11 , the embodiments of the present application also provide a geometry reconstruction device 1100 applied to the encoding end, the device comprises:

[0359] A first encoding module 1110 is configured to encode a first flag to obtain a first code stream, the first flag is used to indicate the original point cloud distribution information in the geometry structure corresponding to the Trisoup node;

[0360] A third processing module 1120 is configured to process the vertex in the geometry structure according to the first flag;

[0361] A fourth processing module 1130 is configured to reconstruct a point cloud using the processed vertex.

[0362] Optionally, the device further comprises a third determining module, which is specifically configured to:

[0363] According to the original point cloud distribution information in the geometry structure corresponding to the Trisoup node, the original point cloud distribution information of the child geometry corresponding to the child node of the Trisoup node is marked, and the child geometry is obtained by dividing the geometry structure;

[0364] According to the original point cloud distribution information of the child geometry and the vertex existence flag of the edge of the geometry structure, the first flag is determined.

[0365] Optionally, the first flag comprises at least one of the following:

[0366] Flag 1: used to indicate whether there is a vertex that needs to be corrected in the geometry structure;

[0367] ​Flag 2 is used to indicate whether the dimension value of the vertex on the target axis needs to be corrected, the target axis being any one of the three axes;

[0368] Flag 3 is used to indicate the correction direction in the case that the dimension value of the vertex on the target axis needs to be corrected, the correction direction including the positive direction or the negative direction of the target axis.

[0369] Optionally, the first encoding module is specifically used for:

[0370] encoding flag 1;

[0371] if the flag 1 indicates that there is a vertex needing to be corrected in the geometric structure, encoding flag 2 corresponding to the first axis; if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex on the first axis needs to be corrected, encoding flag 3 corresponding to the first axis;

[0372] encoding flag 2 corresponding to the second axis; if the flag 2 corresponding to the second axis indicates that the dimension value of the vertex on the second axis needs to be corrected, encoding flag 3 corresponding to the second axis;

[0373] and / or, if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex on the first axis does not need to be corrected, and the flag 2 corresponding to the second axis indicates that the dimension value of the vertex on the second axis does not need to be corrected, determining that the flag 2 corresponding to the third axis indicates that the dimension value of the vertex on the third axis needs to be corrected; encoding flag 3 corresponding to the third axis.

[0374] Optionally, the apparatus further comprises:

[0375] a fourth determining module configured to determine a context of the first flag;

[0376] the first encoding module is specifically used for: encoding the first flag according to the context, to obtain a first code stream.

[0377] Optionally, the fourth determining module is specifically used for:

[0378] determining the context of the first flag according to vertex distribution information in the geometric structure corresponding to the Trisoup node;

[0379] wherein, the context is used to indicate whether the 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 value; the target axis being any one of the three axes.

[0380] Optionally, the third processing module is specifically used for:

[0381] According to the first flag, mark original point cloud distribution information of a child geometry corresponding to a child node of the Trisoup node;

[0382] According to the original point cloud distribution information of the child geometry, determine a type of a vertex in the geometry structure;

[0383] According to the type of the vertex, process the vertex.

[0384] Optionally, the third processing module is specifically configured to perform at least one of the following:

[0385] In the geometry structure, if there is no original point cloud in a child geometry in a first plane to which an edge where the vertex is located belongs, the vertex is determined as a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;

[0386] In the geometry structure, if there is no original point cloud in a child geometry in a first vertical plane to which an edge where the vertex is located belongs, and the vertex is in the child geometry in the first vertical plane, the vertex is determined as a second type vertex, and the first vertical plane is any vertical plane to which the edge where the vertex is located belongs;

[0387] In the geometry structure, other vertices except the first type vertex and the second type vertex are determined as third type vertices.

[0388] Optionally, the third processing module is specifically configured to perform at least one of the following:

[0389] Delete the first type vertex;

[0390] Correct the second type vertex to a midpoint of an edge where the second type vertex is located.

[0391] Optionally, the apparatus further comprises:

[0392] A second encoding module configured to encode a second flag as a second code stream, the second flag being used to indicate whether to enable or not to enable a geometry reconstruction technology.

[0393] Optionally, the apparatus further comprises:

[0394] A fifth determining module configured to determine that a vertex in a geometry structure corresponding to a Trisoup node satisfies a first condition;

[0395] The first condition comprises that a total number of vertices is greater than or equal to a second threshold value, and a ratio of a number of vertices in a second region in any axial direction to the total number of vertices is greater than or equal to a third threshold value.

[0396] Optionally, the fourth processing module is specifically configured to:

[0397] determine a shifted centroid vertex position according to the processed vertex;

[0398] determine a face vertex for the Trisoup node, encode presence information of the face vertex to obtain a third code stream;

[0399] construct a triangular patch according to the vertex in the geometry structure, the shifted centroid vertex position, and the face vertex;

[0400] perform ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

[0401] The embodiment of the present application encodes a first flag at the encoding end, and determines the distribution of the original point cloud in the geometry structure according to the first flag, and then processes the vertex in the geometry structure, and reconstructs the point cloud by using the processed vertex. By processing the vertex, the error point cloud can be removed, the distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

[0402] The geometry reconstruction device provided in the embodiment of the present application can implement each process of the method embodiment and achieve the same technical effects. To avoid repetition, details are not described herein. Figures 8 to 9 The geometry reconstruction device provided in the embodiment of the present application can implement each process of the method embodiment and achieve the same technical effects. To avoid repetition, details are not described herein.

[0403] As shown in Figure 12 , the embodiment of the present application further provides an electronic device 1200, which includes a processor 1201 and a memory 1202, and the memory 1202 stores programs or instructions executable on the processor 1201. For example, when the electronic device 1200 is an encoding end device, the programs or instructions are executed by the processor 1201 to implement each step of the above-mentioned geometry reconstruction method embodiment, and achieve the same technical effects. When the electronic device 1200 is a decoding end device, the programs or instructions are executed by the processor 1201 to implement each step of the above-mentioned geometry reconstruction method embodiment, and achieve the same technical effects. To avoid repetition, details are not described herein. 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 Figure 1 -3.

[0404] The embodiment of the present application further provides an electronic device, which includes a memory configured to store video data, and a processing circuit configured to implement each step of the above-mentioned geometry reconstruction method embodiment. Optionally, the memory can be the memory 102 or the memory 113 in the embodiment shown in Figure 1 , and the processing circuit can implement the functions of the encoder 200 or the decoder 300 in the embodiment shown in Figure 1 -3.

[0405] The embodiment of the present application further provides an electronic device, comprising a processor and a communication interface, the communication interface and the processor are coupled, the processor is used to run programs or instructions, and the steps in the method embodiment are realized. Figure 4 Or Figure 8 The device embodiment corresponds to the method embodiment, and each implementation process and implementation manner of the method embodiment can be applied to the terminal embodiment and can achieve the same technical effects.

[0406] The electronic device can be a terminal or other devices except the terminal, such as a server, a network attached storage (NAS) and the like.

[0407] The terminal can be a mobile phone, a tablet personal computer (Tablet Personal Computer), a laptop computer (Laptop Computer), a notebook computer, a personal digital assistant (Personal Digital Assistant, PDA), a palm computer, a netbook, an ultra-mobile personal computer (Ultra-mobile Personal Computer, UMPC), a mobile internet device (Mobile Internet Device, MID), an augmented reality (Augmented Reality, AR) device, a virtual reality (Virtual Reality, VR) device, a mixed reality (mixed reality, MR) device, a robot, a wearable device, a flight vehicle, a vehicle user equipment (Vehicle User Equipment, VUE), a shipboard device, a pedestrian terminal (Pedestrian User Equipment, PUE), a smart home (a home device with wireless communication function, such as a refrigerator, a television, a washing machine or furniture, etc.), a game console, a personal computer (Personal Computer, PC), a teller machine or a self-service machine and the like terminal side device. The wearable device includes a smart watch, a smart bracelet, a smart earphone, smart glasses, smart jewelry (smart bracelet, smart necklace, smart ring, smart necklace, smart anklet, smart necklace, etc.), a smart wristband, smart clothing and the like. The vehicle-mounted device can also be referred to as a vehicle-mounted terminal, a vehicle-mounted controller, a vehicle-mounted module, a vehicle-mounted component, a vehicle-mounted chip or a vehicle-mounted unit and the like. It should be noted that the specific type of the terminal is not limited in the embodiment of the present application.

[0408] The server can be a standalone physical server, a server cluster or a distributed system composed of multiple physical servers, or a cloud server. The cloud server can provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDN), or cloud computing services based on big data and artificial intelligence platforms.

[0409] For example, the electronic device described above can include, but is not limited to Figure 1 The type of the source device 100 or the destination device 110 shown.

[0410] For example, the electronic device is a terminal, Figure 13 A hardware structure diagram of a terminal for implementing an embodiment of the present application.

[0411] The terminal 1300 includes, but is not limited to, at least part of the components such as 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 a processor 1310.

[0412] Those skilled in the art can understand that the terminal 1300 can also include a power supply (such as a battery) for supplying power to each component. The power supply can be logically connected to the processor 1310 through a power management system, so as to realize the functions of power management, such as charging, discharging, and power consumption management, through the power management system. Figure 13 The terminal structure shown in the figure does not constitute a limitation on the terminal. The terminal can include more or fewer components than shown, or combine certain components, or different component arrangements, which are not described here.

[0413] It should be understood that in the embodiments of the present application, the input unit 1304 can include a graphics processing unit (GPU) 13041 and a microphone 13042. The graphics processor 13041 processes image data of a still picture or a video obtained by an image acquisition device (such as a camera) in a video acquisition mode or an image acquisition mode, or can process obtained point cloud data. The display unit 1306 can include a display panel 13061, which can be configured in the form of a liquid crystal display, an organic light-emitting diode, etc. The user input unit 1307 includes at least one of a touch panel 13071 and other input devices 13072. The touch panel 13071 is also called a touch screen. The touch panel 13071 can include two parts of a touch detection device and a touch controller. The other input devices 13072 can include, but are not limited to, a physical keyboard, function keys (such as volume control keys, on-off keys, etc.), a trackball, a mouse, a joystick, etc., which will not be described here.

[0414] In the embodiments of the present application, after the radio frequency unit 1301 receives the downlink data from the network side device, it can be transmitted to the processor 1310 for processing. In addition, the radio frequency unit 1301 can send uplink data to the network side device. Generally, the radio frequency unit 1301 includes, but is not limited to, an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.

[0415] The memory 1309 can be used to store software programs or instructions and various data. The memory 1309 can mainly include a first storage area storing programs or instructions and a second storage area storing data, wherein the first storage area can store an operating system, application programs or instructions required by at least one function (such as a sound playing function, an image playing function, etc.), and the like. In addition, the memory 1309 can include a volatile memory or a non-volatile memory. The non-volatile memory can be a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a Random Access Memory (RAM), a Static RAM (SRAM), a Dynamic RAM (DRAM), a Synchronous DRAM (SDRAM), a Double Data Rate SDRAM (DDR SDRAM), an Enhanced SDRAM (ESDRAM), a Synch link DRAM (SLDRAM), and a Direct Rambus 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.

[0416] The processor 1310 can include one or more processing units; optionally, the processor 1310 integrates an application processor and a modem processor, wherein the application processor mainly processes operations related to an operating system, a user interface, and an application program, and the modem processor mainly processes wireless communication signals, such as a baseband processor. It can be understood that the above-mentioned modem processor can also not be integrated into the processor 1310.

[0417] When the terminal is a decoding end device, the processor 1310 is configured to:

[0418] The processor 1310 is configured to: decode the first code stream to obtain a first flag, the first flag being used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node; process vertices in the geometry structure according to the first flag; and reconstruct a point cloud using the processed vertices.

[0419] Optionally, the processor 1310 is further configured to:

[0420] determine a context according to vertex distribution information in a geometry structure corresponding to the Trisoup node;

[0421] decode the first bitstream to obtain a first flag, including:

[0422] decode the first bitstream according to the context to obtain the first flag.

[0423] Optionally, the context is used to indicate whether a ratio of a number of vertices in a first region of a target axial direction to a total number of vertices is greater than or equal to a first threshold value; the target axial direction is any one of three axial directions.

[0424] Optionally, the first flag includes at least one of:

[0425] Flag 1: used to indicate whether there is a vertex needing correction in the geometry structure;

[0426] Flag 2: used to indicate whether a dimension value of the vertex in a target axial direction needs to be corrected, the target axial direction being any one of the three axial directions;

[0427] Flag 3: used to indicate a correction direction in a case where the dimension value of the vertex in the target axial direction needs to be corrected, the correction direction including a positive direction or a negative direction of the target axial direction.

[0428] Optionally, the processor 1310 is specifically configured to:

[0429] decode the first bitstream to obtain the flag 1;

[0430] in a case where the flag 1 indicates that there is a vertex needing correction in the geometry structure, decode a flag 2 corresponding to a first axial direction; and if the flag 2 corresponding to the first axial direction indicates that a dimension value of the vertex in the first axial direction needs to be corrected, decode a flag 3 corresponding to the first axial direction;

[0431] decode a flag 2 corresponding to a second axial direction; and if the flag 2 corresponding to the second axial direction indicates that a dimension value of the vertex in the second axial direction needs to be corrected, decode a flag 3 corresponding to the second axial direction;

[0432] and / or, if the flag 2 corresponding to the first axial direction indicates that the dimension value of the vertex in the first axial direction does not need to be corrected, and the flag 2 corresponding to the second axial direction indicates that the dimension value of the vertex in the second axial direction does not need to be corrected, determine that a flag 2 corresponding to a third axial direction indicates that a dimension value of the vertex in the third axial direction needs to be corrected; and decode a flag 3 corresponding to the third axial direction.

[0433] Optionally, the processor 1310 is specifically configured to:

[0434] According to the first flag, mark the original point cloud distribution information of the sub-geometry corresponding to the child node of the Trisoup node;

[0435] According to the original point cloud distribution information of the sub-geometry, determine the type of the vertex in the geometry structure;

[0436] According to the type of the vertex, process the vertex.

[0437] Optionally, the processor 1310 is specifically configured to perform at least one of the following:

[0438] In the geometry structure, if there is no original point cloud in the sub-geometry in the first plane to which the edge where the vertex is located belongs, the vertex is determined as a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs;

[0439] In the geometry structure, if there is no original point cloud in the sub-geometry in the first vertical plane to which the edge where the vertex is located belongs, and the vertex is in the sub-geometry of the first vertical plane, the vertex is determined as a second type vertex, and the first vertical plane is any vertical plane to which the edge where the vertex is located belongs;

[0440] In the geometry structure, other vertices except the first type vertex and the second type vertex are determined as third type vertices.

[0441] Optionally, the processor 1310 is specifically configured to perform at least one of the following:

[0442] Delete the first type vertex;

[0443] Correct the second type vertex to the midpoint of the edge where the second type vertex is located.

[0444] Optionally, the processor 1310 is further configured to:

[0445] Decode a second code stream to obtain a second flag, and the second flag is used to indicate whether to enable or not to enable a geometry reconstruction technology.

[0446] Optionally, the processor 1310 is further configured to:

[0447] Determine that the vertices in the geometry structure corresponding to the Trisoup node satisfy a first condition;

[0448] The first condition includes that the total number of vertices is greater than or equal to a second threshold value, and the ratio of the number of vertices in a second region in any axial direction to the total number of vertices is greater than or equal to a third threshold value.

[0449] Optionally, the processor 1310 is specifically configured to:

[0450] determine an offset centroid vertex position according to the processed vertex;

[0451] decode a third code stream to determine a face vertex of the Trisoup node;

[0452] construct a triangular patch according to the vertex in the geometric structure, the offset centroid vertex position and the face vertex;

[0453] perform ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

[0454] In a case where the terminal is an encoding end device:

[0455] The processor 1310 is configured to: encode a first flag to obtain a first code stream, the first flag being used to indicate original point cloud distribution information in a geometric structure corresponding to a Trisoup node; process a vertex in the geometric structure according to the first flag; and reconstruct a point cloud using the processed vertex.

[0456] Optionally, the processor 1310 is specifically configured to:

[0457] According to the original point cloud distribution information in the geometric structure corresponding to the Trisoup node, mark original point cloud distribution information of a child geometric body corresponding to a child node of the Trisoup node, the child geometric body being obtained by dividing the geometric structure;

[0458] According to the original point cloud distribution information of the child geometric body and a vertex existing flag of an edge of the geometric structure, determine the first flag.

[0459] Optionally, the first flag comprises at least one of the following:

[0460] Flag 1: used to indicate whether there is a vertex that needs to be corrected in the geometric structure;

[0461] Flag 2: used to indicate whether a dimension value of the vertex in a target axial direction needs to be corrected, the target axial direction being any one of three axial directions;

[0462] Flag 3: used to indicate a correction direction in a case where the dimension value of the vertex in the target axial direction needs to be corrected, the correction direction comprising a positive direction or a negative direction of the target axial direction.

[0463] Optionally, the processor 1310 is specifically configured to:

[0464] encode the flag 1;

[0465] if the flag 1 indicates that there is a vertex needing to be corrected in the geometry structure, encode a first axial correspondence flag 2; if the first axial correspondence flag 2 indicates that the dimension value of the vertex needing to be corrected is in a first axial direction, encode a first axial correspondence flag 3;

[0466] encode a second axial correspondence flag 2; if the second axial correspondence flag 2 indicates that the dimension value of the vertex needing to be corrected is in a second axial direction, encode a second axial correspondence flag 3;

[0467] and / or, if the first axial correspondence flag 2 indicates that the dimension value of the vertex needing to be corrected is not in the first axial direction, and the second axial correspondence flag 2 indicates that the dimension value of the vertex needing to be corrected is not in the second axial direction, determine that a third axial correspondence flag 2 indicates that the dimension value of the vertex needing to be corrected is in a third axial direction; encode a third axial correspondence flag 3.

[0468] Optionally, the processor 1310 is further configured to:

[0469] determine a context of the first flag;

[0470] the encoding of the first flag to obtain a first bitstream, comprising:

[0471] encoding the first flag according to the context to obtain a first bitstream.

[0472] Optionally, the processor 1310 is specifically configured to:

[0473] determine the context of the first flag according to vertex distribution information in a geometry structure corresponding to a Trisoup node;

[0474] wherein the context is used to indicate whether a ratio of a number of vertices in a first region of a target axial direction to a total number of vertices is greater than or equal to a first threshold value; the target axial direction is any one of three axial directions.

[0475] Optionally, the processor 1310 is specifically configured to:

[0476] label original point cloud distribution information of a child geometry corresponding to a child node of the Trisoup node according to the first flag;

[0477] determine a type of a vertex in the geometry structure according to the original point cloud distribution information of the child geometry;

[0478] process the vertex according to the type of the vertex.

[0479] Optionally, the processor 1310 is specifically configured to perform at least one of the following:

[0480] In the geometry structure, if the sub-geometry in the first plane of the edge where the vertex is located does not have the original point cloud, the vertex is determined as a first type vertex, and the first plane is any plane of the edge where the vertex is located.

[0481] In the geometry structure, if the sub-geometry in the first vertical plane of the edge where the vertex is located does not have the original point cloud, and the vertex is in the sub-geometry of the first vertical plane, the vertex is determined as a second type vertex, and the first vertical plane is any vertical plane of the edge where the vertex is located.

[0482] In the geometry structure, other vertices except the first type vertex and the second type vertex are determined as third type vertices.

[0483] Optionally, the processor 1310 is specifically configured to perform at least one of the following:

[0484] deleting the first type vertex;

[0485] correcting the second type vertex to a midpoint of the edge where the second type vertex is located.

[0486] Optionally, the processor 1310 is further configured to:

[0487] encode a second flag into a second code stream, and the second flag is used to indicate whether to enable or not to enable the geometry reconstruction technology.

[0488] Optionally, the processor 1310 is further configured to:

[0489] determine that the vertices in the geometry structure corresponding to the Trisoup node satisfy a first condition;

[0490] The first condition includes that the total number of vertices is greater than or equal to a second threshold value, and the ratio of the number of vertices in a second region in any axial direction to the total number of vertices is greater than or equal to a third threshold value.

[0491] Optionally, the processor 1310 is specifically configured to:

[0492] determine a shifted centroid vertex position according to the processed vertices;

[0493] determine a face vertex for the Trisoup node, encode existence information of the face vertex to obtain a third code stream;

[0494] construct a triangular facet according to the vertices in the geometry structure, the shifted centroid vertex position, and the face vertex;

[0495] perform ray tracing sampling on the triangular facet to obtain a reconstructed point cloud.

[0496] The terminal can determine the distribution of the original point cloud in the geometric structure according to the first flag, and then process the vertex in the geometric structure, and reconstruct the point cloud by using the processed vertex. By processing the vertex, the error point cloud can be removed, the distortion of the reconstructed point cloud can be reduced, and the performance gain of the reconstructed point cloud can be improved.

[0497] It can be understood that the implementation process of each implementation mode mentioned in the embodiment can refer to the related description of the geometric reconstruction method in the method embodiment, and achieve the same or corresponding technical effects. To avoid repetition, it will not be repeated here.

[0498] The embodiment of the application further provides a readable storage medium, the readable storage medium stores a program or instructions, the program or instructions are executed by a processor to realize each process of the above-mentioned geometric reconstruction method embodiment, and the same technical effects can be achieved. To avoid repetition, it will not be repeated here.

[0499] The processor is the processor in the terminal in the above-mentioned embodiment. The readable storage medium includes a computer readable storage medium, such as ROM, RAM, magnetic disk or optical disk, etc. In some examples, the readable storage medium can be a non-transient readable storage medium.

[0500] The embodiment of the application further provides a chip, the chip includes a processor and a communication interface, the communication interface and the processor are coupled, the processor is used to run a program or instructions, realize each process of the above-mentioned geometric reconstruction method embodiment, and the same technical effects can be achieved. To avoid repetition, it will not be repeated here.

[0501] It should be understood that the chip mentioned in the embodiment of the application can include a system-level chip (also known as a system chip, a chip system or a system-on-chip chip), and can also include a separate display chip, etc.

[0502] The embodiment of the application further provides a computer program / program product, the computer program / program product is stored in a storage medium, and the computer program / program product is executed by at least one processor to realize each process of the above-mentioned geometric reconstruction method embodiment, and the same technical effects can be achieved. To avoid repetition, it will not be repeated here.

[0503] The embodiment of the application further provides a coding system, including: an encoding end device and a decoding end device, 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.

[0504] The embodiment of the present application further provides a computer program product comprising computer instructions, which, when executed by a processor, implement the steps of the geometric reconstruction method described above and achieve the same technical effects. To avoid repetition, details are not described herein.

[0505] It should be noted that, in this document, the terms "comprise", "comprising", or any other variant thereof are intended to cover non-exclusive inclusions, so that processes, methods, articles, or devices that comprise a list of elements not only include those elements, but also include other elements that are not expressly listed, or other elements inherent in such processes, methods, articles, or devices. Without more limitations, the element defined by the phrase "comprising a" does not exclude the presence of additional identical elements in the process, method, article, or device that includes 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, but can also include performing functions in a substantially simultaneous manner or in reverse order, for example, the described method can be performed in an order different from that described, and various steps can also be added, omitted, or combined. In addition, features described with reference to certain examples can be combined in other examples.

[0506] From the above description of the embodiments, those skilled in the art can clearly understand that the above-mentioned embodiment method can be realized by means of computer software product and general hardware platform, of course, it can also be realized by hardware. The computer software product is stored in a storage medium (such as ROM, RAM, magnetic disc, optical disc, etc.), and includes a plurality of instructions for making the terminal or network side device execute the method described in each embodiment of the present application.

[0507] The embodiments of the present application are described above in combination with the drawings, but the present application is not limited to the above-mentioned specific embodiments, the above-mentioned specific embodiments are only illustrative, not restrictive, and those skilled in the art can make many forms of embodiments under the inspiration of the present application without departing from the scope of the present application and the scope protected by the claims.

Claims

1. A method of geometric reconstruction, characterized by, The method comprises: decoding a first code stream to obtain a first flag, the first flag being used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node; processing vertices in the geometry structure according to the first flag; reconstructing a point cloud using the processed vertices.

2. The method of claim 1, wherein, The method further comprises: determining a context according to the vertex distribution information in the geometry structure corresponding to the Trisoup node; decoding the first code stream to obtain the first flag comprises: decoding the first code stream according to the context to obtain the first flag.

3. The method of claim 2, wherein, The context is used to indicate whether a ratio of a number of vertices in a first region of a target axis to a total number of vertices is greater than or equal to a first threshold value, the target axis being any one of three axes.

4. The method according to claim 1 or 2, characterized in that, The first flag comprises at least one of the following: flag 1, used to indicate whether there is a vertex that needs to be corrected in the geometry structure; flag 2, used to indicate whether a dimension value of the vertex in the target axis needs to be corrected, the target axis being any one of the three axes; flag 3, used to indicate a correction direction in the case that the dimension value of the vertex in the target axis needs to be corrected, the correction direction comprising a positive direction or a negative direction of the target axis.

5. The method according to any one of claims 1 to 4, characterized in that, The decoding of the first code stream to obtain the first flag comprises: decoding the first code stream to obtain the flag 1; in the case that the flag 1 indicates that there is a vertex that needs to be corrected in the geometry structure, decoding a flag 2 corresponding to a 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 a flag 3 corresponding to the first axis; decoding a flag 2 corresponding to a 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, decoding a flag 3 corresponding to the second axis; and / or, if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis does not need to be corrected, and the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis does not need to be corrected, determining that a flag 2 corresponding to a third axis indicates that the dimension value of the vertex in the third axis needs to be corrected; decoding a flag 3 corresponding to the third axis.

6. The method of claim 1, wherein, The processing of the vertices in the geometry structure according to the first flag comprises: according to the first flag, marking original point cloud distribution information of a sub-geometry corresponding to a child node of the Trisoup node; determining a type of the vertex in the geometry structure according to the original point cloud distribution information of the sub-geometry; processing the vertex according to the type of the vertex.

7. The method of claim 6, wherein, The determining of the type of the vertex in the geometry structure according to the original point cloud distribution information of the sub-geometry comprises at least one of the following: in the geometry structure, if there is no original point cloud in a sub-geometry in a first plane to which an edge where the vertex is located belongs, determining that the vertex is a first type vertex, the first plane being any plane to which the edge where the vertex is located belongs; In the geometry structure, if a sub-geometry in a first vertical plane of an 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 as a second type vertex, the first vertical plane being any vertical plane of the edge where the vertex is located; In the geometry structure, other vertices except the first type vertex and the second type vertex are determined as third type vertices.

8. The method according to claim 6 or 7, characterized in that, The vertices are processed according to the types of the vertices, including at least one of the following: deleting the first type vertex; correcting the second type vertex to a midpoint of the edge where the second type vertex is located.

9. The method of claim 1, wherein, The method further includes: decoding a second code stream to obtain a second flag, the second flag being used to indicate whether to enable or not to enable a geometry reconstruction technology.

10. The method according to claim 1 or 9, characterized in that, The method further includes: determining that the vertices in the geometry structure corresponding to the Trisoup node satisfy a first condition; wherein the first condition includes that a total number of the vertices is greater than or equal to a second threshold, and a ratio of a number of the vertices in a second region in any axial direction to the total number of the vertices is greater than or equal to a third threshold.

11. The method of claim 1, wherein, The method further includes: determining a position of an offset centroid vertex according to the processed vertices; decoding a third code stream to determine a face vertex of the Trisoup node; constructing a triangular patch according to the vertices in the geometry structure, the position of the offset centroid vertex, and the face vertex; performing ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

12. A method of geometric reconstruction, characterized by, The method further includes: encoding a first flag to obtain a first code stream, the first flag being used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node; processing the vertices in the geometry structure according to the first flag; reconstructing a point cloud using the processed vertices.

13. The method of claim 12, wherein, The method further includes: labeling original point cloud distribution information of a sub-geometry corresponding to a sub-node of the Trisoup node according to the original point cloud distribution information in the geometry structure corresponding to the Trisoup node, the sub-geometry being obtained by dividing the geometry structure; determining the first flag according to the original point cloud distribution information of the sub-geometry and a vertex existence flag of an edge of the geometry structure.

14. The method according to claim 12 or 13, characterized in that, The first flag includes at least one of the following: flag 1: used to indicate whether there is a vertex that needs to be corrected in the geometry structure; flag 2: used to indicate whether a dimension value of the vertex in a target axial direction needs to be corrected, the target axial direction being any axial direction of three axial directions; flag 3: used to indicate a correction direction in the case that the dimension value of the vertex in the target axial direction needs to be corrected, the correction direction including a positive direction or a negative direction of the target axial direction.

15. The method according to any one of claims 12 to 14, characterized in that, The encoding of the first flag includes: encoding the flag 1; if the flag 1 indicates that there is a vertex that needs to be corrected in the geometry structure, encoding a flag 2 corresponding to a first axial direction; if the flag 2 corresponding to the first axial direction indicates that the dimension value of the vertex in the first axial direction needs to be corrected, encoding a flag 3 corresponding to the first axial direction. encoding a second axial correspondence flag 2; if the second axial correspondence flag 2 indicates that the dimension value of the vertex in the second axis needs to be corrected, encoding a third axial correspondence flag 3 of the second axial correspondence flag 2; and / or, if the first axial correspondence flag 2 indicates that the dimension value of the vertex in the first axis does not need to be corrected, and the second axial correspondence flag 2 indicates that the dimension value of the vertex in the second axis does not need to be corrected, determining that the third axial correspondence flag 2 indicates that the dimension value of the vertex in the third axis needs to be corrected; encoding the third axial correspondence flag 3.

16. The method according to any one of claims 12 to 15, characterized in that, The method further comprises: determining a context of the first flag; The encoding of the first flag to obtain the first code stream comprises: encoding the first flag according to the context to obtain the first code stream.

17. The method of claim 16, wherein, The determination of the context of the first flag comprises: determining the context of the first flag according to the vertex distribution information in the geometry structure corresponding to the Trisoup node; The context is used to indicate whether the 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 value; the target axis is any one of the three axes.

18. The method of claim 12, wherein, The processing of the vertex in the geometry structure according to the first flag comprises: According to the first flag, marking the original point cloud distribution information of the sub-geometry corresponding to the child node of the Trisoup node; determining the type of the vertex in the geometry structure according to the original point cloud distribution information of the sub-geometry; processing the vertex according to the type of the vertex.

19. The method of claim 18, wherein, The determination of the type of the vertex in the geometry structure according to the original point cloud distribution information of the sub-geometry comprises at least one of the following: In the geometry structure, if the sub-geometry in the first plane to which the edge where the vertex is located belongs does not have original point cloud, it is determined that the vertex is a first type vertex, and the first plane is any plane to which the edge where the vertex is located belongs; In the geometry structure, if the sub-geometry in the first vertical plane to which the edge where the vertex is located belongs does not have original point cloud, and the vertex is in the sub-geometry of the first vertical plane, it is determined that the vertex is a second type vertex, and the first vertical plane is any vertical plane to which the edge where the vertex is located belongs; In the geometry structure, it is determined that the vertex other than the first type vertex and the second type vertex is a third type vertex.

20. The method of claim 18 or 19, wherein, The processing of the vertex according to the type of the vertex comprises at least one of the following: deleting the first type vertex; correcting the second type vertex to the midpoint of the edge where the second type vertex is located.

21. The method of claim 12, wherein, The method further comprises: encoding a second flag into a second code stream, the second flag being used to indicate whether to enable or not to enable a geometry reconstruction technology.

22. The method of claim 12 or 21, wherein, The method further comprises: determining that the vertex in the geometry structure corresponding to the Trisoup node satisfies a first condition; The first condition comprises that the total number of vertices is greater than or equal to a second threshold value, and the ratio of the number of vertices in a second region of any axis to the total number of vertices is greater than or equal to a third threshold value.

23. The method of claim 12, wherein, The reconstruction of the point cloud using the processed vertex comprises: determining the position of the offset centroid vertex according to the processed vertex; determine a face vertex for the Trisoup node, encode presence information of the face vertex to obtain a third code stream; construct a triangular patch according to the vertex in the geometry structure, the offset centroid vertex position and the face vertex; perform ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

24. A geometry reconstruction apparatus, characterized by Comprise: a first decoding module, configured to decode a first code stream to obtain a first flag, the first flag being used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node; a first processing module, configured to process the vertex in the geometry structure according to the first flag; a second processing module, configured to reconstruct a point cloud by using the processed vertex.

25. The apparatus of claim 24, wherein, The device further comprises: a first determining module, configured to determine a context according to the vertex distribution information in the geometry 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 the first flag.

26. The apparatus of claim 25, wherein, The context is used to indicate whether a ratio of a number of vertices in a first region of a target axis to a total number of vertices is greater than or equal to a first threshold value; the target axis is any one of three axes.

27. The apparatus of claim 24 or 25, wherein, The first flag comprises at least one of the following: Flag 1: used to indicate whether there is a vertex that needs to be corrected in the geometry structure; Flag 2: used to indicate whether a dimension value of the vertex in the target axis needs to be corrected, the target axis being any one of the three axes; Flag 3: used to indicate a correction direction in the case that the dimension value of the vertex in the target axis needs to be corrected, the correction direction comprising a positive direction or a negative direction of the target axis.

28. The apparatus of any one of claims 24 to 27, wherein, The first decoding module is specifically configured to: decode the first code stream to obtain flag 1; in the case that the flag 1 indicates that there is a vertex that needs to be corrected in the geometry structure, decode a flag 2 corresponding to a 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, decode a flag 3 corresponding to the first axis; decode a flag 2 corresponding to a 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 a flag 3 corresponding to the second axis; and / or, if the flag 2 corresponding to the first axis indicates that the dimension value of the vertex in the first axis does not need to be corrected, and the flag 2 corresponding to the second axis indicates that the dimension value of the vertex in the second axis does not need to be corrected, determine that a flag 2 corresponding to a third axis indicates that the dimension value of the vertex in the third axis needs to be corrected; decode a flag 3 corresponding to the third axis.

29. The apparatus of claim 24, wherein, The first processing module is specifically configured to: according to the first flag, mark original point cloud distribution information of a child geometry corresponding to a child node of the Trisoup node; determine a type of the vertex in the geometry structure according to the original point cloud distribution information of the child geometry; process the vertex according to the type of the vertex.

30. The apparatus of claim 29, wherein, The first processing module is specifically configured to perform at least one of the following: In the geometry structure, if a sub-geometry in a first plane of an edge where the vertex is located does not have the original point cloud, the vertex is determined as a first type vertex, the first plane being any plane of the edge where the vertex is located; In the geometry structure, if a sub-geometry in a first vertical plane of an edge where the vertex is located does not have the original point cloud, and the vertex is in the sub-geometry of the first vertical plane, the vertex is determined as a second type vertex, the first vertical plane being any vertical plane of the edge where the vertex is located; In the geometry structure, other vertices except the first type vertex and the second type vertex are determined as third type vertices.

31. The apparatus of claim 29 or 30, wherein, The first processing module is specifically configured to perform at least one of the following: deleting the first type vertex; correcting the second type vertex to a midpoint of the edge where the second type vertex is located.

32. The apparatus of claim 24, wherein, The apparatus further includes: a second decoding module configured to decode a second code stream to obtain a second flag, the second flag being used to indicate whether to enable or not to enable the geometry reconstruction technology.

33. The apparatus of claim 24 or 32, wherein, The apparatus further includes: a second determining module configured to determine that the vertices in the geometry structure corresponding to the Trisoup node satisfy a first condition. The first condition includes that a total number of the vertices is greater than or equal to a second threshold value, and a ratio of a number of the vertices in a second region in any axial direction to the total number of the vertices is greater than or equal to a third threshold value.

34. The apparatus of claim 24, wherein, The second processing module is specifically configured to determine a position of the offset centroid vertex according to the processed vertices; decode a third code stream to determine a face vertex of the Trisoup node; construct a triangular patch according to the vertices in the geometry structure, the position of the offset centroid vertex, and the face vertex; perform ray tracing sampling on the triangular patch to obtain a reconstructed point cloud.

35. A geometry reconstruction apparatus, characterized by The apparatus includes: a first encoding module configured to encode a first flag to obtain a first code stream, the first flag being used to indicate original point cloud distribution information in a geometry structure corresponding to a Trisoup node; a third processing module configured to process the vertices in the geometry structure according to the first flag; a fourth processing module configured to reconstruct a point cloud using the processed vertices.

36. The device according to claim 35, characterized in that The apparatus further includes a third determining module, which is specifically configured to: label original point cloud distribution information of a sub-geometry corresponding to a sub-node of the Trisoup node according to the original point cloud distribution information in the geometry structure corresponding to the Trisoup node, the sub-geometry being obtained by dividing the geometry structure; determine the first flag according to the original point cloud distribution information of the sub-geometry and a vertex existence flag of an edge of the geometry structure.

37. The apparatus of claim 35 or 36, wherein, The first flag includes at least one of the following: Flag 1: used to indicate whether there is a vertex that needs to be corrected in the geometry structure; Flag 2: used to indicate whether a dimension value of the vertex in a target axial direction needs to be corrected, the target axial direction being any of the three axial directions; Flag 3: used to indicate a correction direction in the case that the dimension value of the vertex in the target axial direction needs to be corrected, the correction direction including a positive direction or a negative direction of the target axial direction.

38. The apparatus of any one of claims 35 to 37, wherein, The first encoding module is specifically configured to: encode the flag 1; if the flag 1 indicates that there is a vertex needing to be corrected in the geometry structure, encode a first axial corresponding flag 2; if the first axial corresponding flag 2 indicates that the dimension value of the vertex needing to be corrected is in the first axial, encode a first axial corresponding flag 3; encode a second axial corresponding flag 2; if the second axial corresponding flag 2 indicates that the dimension value of the vertex needing to be corrected is in the second axial, encode a second axial corresponding flag 3; and / or, if the first axial corresponding flag 2 indicates that the dimension value of the vertex needing to be corrected is not in the first axial, and the second axial corresponding flag 2 indicates that the dimension value of the vertex needing to be corrected is not in the second axial, determine that a third axial corresponding flag 2 indicates that the dimension value of the vertex needing to be corrected is in the third axial; encode a third axial corresponding flag 3.

39. The apparatus of any one of claims 35 to 38, wherein, The apparatus further includes: a fourth determining module configured to determine a context of the first flag; The first encoding module is specifically configured to: encode the first flag according to the context, to obtain a first code stream.

40. The device of claim 39, wherein, The fourth determining module is specifically configured to: determine the context of the first flag according to vertex distribution information in a geometry structure corresponding to a Trisoup node; The context is used to indicate whether a ratio of a number of vertices in a first region of a target axial to a total number of vertices is greater than or equal to a first threshold value; the target axial is any one of three axials.

41. The apparatus of claim 35, wherein, The third processing module is specifically configured to: mark original point cloud distribution information of a child geometry corresponding to a child node of the Trisoup node according to the first flag; determine a type of a vertex in the geometry structure according to the original point cloud distribution information of the child geometry; process the vertex according to the type of the vertex.

42. The device of claim 41, wherein, The third processing module is specifically configured to perform at least one of the following: in the geometry structure, if a child geometry in a first plane to which an edge where the vertex is located belongs does not have original point cloud, determine that the vertex is a first type vertex, the first plane being any plane to which the edge where the vertex is located belongs; in the geometry structure, if a child geometry in a first vertical plane to which the edge where the vertex is located belongs does not have original point cloud, and the vertex is in the child geometry of the first vertical plane, determine that the vertex is a second type vertex, the first vertical plane being any vertical plane to which the edge where the vertex is located belongs; in the geometry structure, determine that a vertex other than the first type vertex and the second type vertex is a third type vertex.

43. The device of claim 41 or 42, wherein, The third processing module is specifically configured to perform at least one of the following: delete the first type vertex; correct the second type vertex to a midpoint of the edge where the second type vertex is located.

44. The device of claim 35, wherein, The apparatus further includes: a second encoding module configured to encode a second flag as a second code stream, the second flag being used to indicate whether to enable or not to enable a geometry reconstruction technology.

45. The device of claim 35 or 44, wherein, The apparatus further includes: a fifth determining module configured to determine that a vertex in a geometry structure corresponding to a Trisoup node satisfies a first condition; The first condition comprises: the total number of vertices is greater than or equal to a second threshold value, and the ratio of the number of vertices in the second region in any axial direction to the total number of vertices is greater than or equal to a third threshold value.

46. The device of claim 35, wherein, The fourth processing module is specifically configured to: determine the offset centroid vertex position according to the processed vertices; determine a face vertex for the Trisoup node, encode the existence information of the face vertex to obtain a third code stream; construct a triangular facet according to the vertices in the geometric structure, the offset centroid vertex position, and the face vertex; perform ray tracing sampling on the triangular facet to obtain a reconstructed point cloud.

47. An electronic device, comprising: The processor and the memory, the memory stores programs or instructions that can be run on the processor, the programs or instructions are executed by the processor to realize the steps of the geometric reconstruction method according to any one of claims 1 to 11, or realize the steps of the geometric reconstruction method according to claims 12 to 23.

48. A readable storage medium characterized by, The readable storage medium stores programs or instructions, the programs or instructions are executed by the processor to realize the geometric reconstruction method according to any one of claims 1 to 11, or realize the steps of the geometric reconstruction method according to any one of claims 12 to 23.

49. A chip, comprising: The chip includes a processor and a communication interface, the communication interface and the processor are coupled, the processor is used for running programs or instructions, realizing the steps of the method according to any one of claims 1 to 11, or realizing the steps of the method according to claims 12 to 23.

50. A computer program product, characterized in that The computer instructions are executed by the processor to realize the steps of the method according to any one of claims 1 to 11, or realize the steps of the method according to claims 12 to 23.