Trisound vertex optimization method, device and equipment

By identifying and processing unsuitable vertices in Trisoup nodes, the problem of erroneous surface reconstruction caused by the lack of vertices in the Trisoup geometric coding algorithm is solved, thus improving the quality of point cloud reconstruction.

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

Patent Information

Application Number
CN202410464501.9
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

In the Trisoup geometric encoding algorithm, the lack of original point clouds around vertices during point cloud reconstruction leads to erroneous surface reconstruction, which affects the quality of the reconstructed point cloud.

Method used

The axial distribution information and the total number of vertices of the Trisoup nodes are determined by the decoding end and the encoding end respectively, and the first type of vertices that are not suitable for reconstruction are identified and deleted or corrected.

Benefits of technology

It reduces performance loss in reconstructed point cloud quality and improves the accuracy and quality of point cloud reconstruction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120835158A_ABST
    Figure CN120835158A_ABST
Patent Text Reader

Abstract

The invention discloses a Trisup vertex optimization method, device and equipment, and belongs to the technical field of communication, and the Trisup vertex optimization method comprises the steps that a decoding end determines axial distribution information of vertexes in a geometric structure corresponding to Trisup nodes and the total number of the vertexes contained in the geometric structure; the decoding end determines a first type of vertexes according to the axial distribution information and the total number of the vertexes; and the decoding end deletes or corrects the first type of vertexes.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The application belongs to the technical field of communication, and particularly relates to a Trisoup vertex optimization 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 triangle soup (Trisoup) geometry encoding algorithm gradually exhibits excellent compression performance.

[0003] In the Trisoup geometry encoding algorithm, a position of a vertex on an edge in each node is not only determined by original point clouds in the current node, but also affected by original point clouds in other nodes sharing the edge. Therefore, when reconstructing the point cloud in each node, not all vertices are applicable, for example, there may be no original point cloud around a vertex used for reconstruction, which leads to reconstruction of some error surfaces and causes performance loss in quality of the reconstructed point cloud. SUMMARY

[0004] Embodiments of the application provide a Trisoup vertex optimization method, device and equipment, which can solve the problem of performance loss in quality of the reconstructed point cloud.

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

[0006] The decoding end determines axial distribution information of vertices in a geometry structure corresponding to a Trisoup node and a total number of vertices contained in the geometry structure.

[0007] The decoding end determines a first type of vertex according to the axial distribution information and the total number of vertices.

[0008] The decoding end deletes or corrects the first type of vertex.

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

[0010] The encoding end determines axial distribution information of vertices in a geometry structure corresponding to a Trisoup node and a total number of vertices contained in the geometry structure.

[0011] The encoding end determines first type vertices according to the axial distribution information and the total number of vertices.

[0012] The encoding end deletes or corrects the first type vertices.

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

[0014] A first determining module is configured to determine axial distribution information of vertices in a geometric structure corresponding to a Trisoup node and a total number of vertices contained in the geometric structure.

[0015] A second determining module is configured to determine first type vertices according to the axial distribution information and the total number of vertices.

[0016] A first processing module is configured to delete or correct the first type vertices.

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

[0018] A third determining module is configured to determine axial distribution information of vertices in a geometric structure corresponding to a Trisoup node and a total number of vertices contained in the geometric structure.

[0019] A fourth determining module is configured to determine first type vertices according to the axial distribution information and the total number of vertices.

[0020] A second processing module is configured to delete or correct the first type vertices.

[0021] In a fifth aspect, an electronic device is provided, which comprises a processor and a memory, 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, including a processor and a communication interface, wherein the processor is configured to determine axial distribution information of vertices in a geometry structure corresponding to a Trisoup node and a total number of vertices contained in the geometry structure; determine a first type of vertex according to the axial distribution information and the total number of vertices; and delete or correct the first type of vertex. Alternatively, the processor is configured to determine axial distribution information of vertices in a geometry structure corresponding to a Trisoup node and a total number of vertices contained in the geometry structure; determine a first type of vertex according to the axial distribution information and the total number of vertices; and delete or correct the first type of vertex.

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

[0024] In an eighth aspect, a readable storage medium is provided, on which a program or instruction is stored, and the program or instruction is executed by a processor to implement steps of the method according to the first aspect or steps of the method according to the second aspect.

[0025] In a ninth aspect, a coding system is provided, including an encoding end device and a decoding end device, the encoding end device is configured to execute steps of the method according to the first aspect, and the decoding end device is configured to execute steps of the method according to the second aspect.

[0026] In a tenth aspect, a chip is provided, including a processor and a communication interface, the communication interface and the processor are coupled, and the processor is configured to run a program or instruction to implement steps of the method according to the first aspect or 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 is stored in a storage medium, and the program / program product is executed by at least one processor to implement steps of the method according to the first aspect or steps of the method according to the second aspect.

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

[0029] In the embodiment of the present application, the decoding end determines the first type vertex according to the axial distribution information of the vertex of the Trisoup node and the total number of the vertex, and deletes or corrects the first type vertex. By deleting or correcting the first type vertex, a large number of error point clouds can be removed, and the performance loss in the quality of the reconstructed point cloud can be reduced. BRIEF DESCRIPTION OF DRAWINGS

[0030] Figure 1 is a schematic diagram of a coding system provided by the embodiment of the present application;

[0031] Figure 2a is an encoding flowchart executed by an encoder based on an encoding framework of AVS-PCC;

[0032] Figure 2b is an encoding flowchart executed by an encoder based on an encoding framework of MPEG G-PCC;

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

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

[0035] Figure 4 is one of the flowcharts of the Trisoup vertex optimization method of the embodiment of the present application;

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

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

[0038] Figure 7 is another flowchart of the Trisoup vertex optimization method of the embodiment of the present application;

[0039] Figure 8 is one of the structural schematic diagrams of the Trisoup vertex optimization device of the embodiment of the present application;

[0040] Figure 9 is another structural schematic diagram of the Trisoup vertex optimization device of the embodiment of the present application;

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

[0042] Figure 11 is a structural schematic diagram of a terminal of the embodiment of the present application. DETAILED DESCRIPTION

[0043] The following will be combined with the accompanying drawings in the embodiments of this application to clearly describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field are within the scope of protection of this application.

[0044] The terms "first", "second", etc. in this application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the terms used in this way are interchangeable where appropriate, so that the embodiments of the present application can be implemented in an order other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of the same type, and do not limit the number of objects, for example, the first object can be one or more. In addition, "or" in this application represents at least one of the connected objects. For example, "A or B" covers three options, namely, Option 1: including A but not including B; Option 2: including B but not including A; Option 3: including both A and B. The character " / " generally indicates that the objects associated before and after are in an "or" relationship.

[0045] Before introducing the technical solutions provided by the embodiments of the present application, the meanings of some of the terms are first introduced.

[0046] Point Cloud: A point cloud is a set of irregularly distributed discrete points in space that represent the spatial structure and surface properties of a 3D object or scene. Point clouds can be categorized into different types based on different classification criteria. For example, based on how the point cloud is acquired, they can be divided into dense point clouds and sparse point clouds. Similarly, based on the temporal nature of the point cloud, they can be divided into static point clouds and dynamic point clouds.

[0047] Point Cloud Data: The geometric coordinate information and attribute information of each point in the point cloud together constitute point cloud data. Among them, geometric coordinate information can also be called three-dimensional position information. The geometric coordinate information of a point in the point cloud refers to the spatial coordinates (x, y, z) of the point, which can include the coordinate values ​​of the point in 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 may include at least one of the following: color information, material information, laser reflection intensity information (also called reflectivity). Usually, each point in the point cloud has the same amount of attribute information. For example, each point in the point cloud can have two kinds of attribute information: color information and laser reflection intensity. For another example, each point in the point cloud can have three kinds of attribute information: color information, material information, and laser reflection intensity information.

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

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

[0050] 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).

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

[0052] 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 Figure 1 all of the components shown in FIG. 1, or can include other components that are not explicitly shown in FIG. 1. For example, the source device 100 can acquire point cloud data through an external capture device. Similarly, the destination device 110 can interface with an external display device, rather than including an integrated display device. Also for example, the memory 102, the memory 113 can be external memories. Figure 1 Although

[0053] 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. Figure 1 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. That is, each of the source device 100 and the destination device 110 can include an encoder and a decoder.

[0054]

[0055] ​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).

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

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

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

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

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

[0061] 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 a 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 an MPEG Media Transport (MMT) protocol, a Dynamic Adaptive Streaming over HTTP (DASH) protocol, an HTTP Live Streaming (HLS) protocol, or a Real Time Streaming Protocol (RTSP), etc.

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

[0063] The output interface 104 and the input interface 111 may 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, or other physical components. In examples where the output interface 104 and the input interface 111 include wireless components, the output interface 104 and the input interface 111 may be configured to communicate data, such as encoded point cloud data, according to WIFI, Ethernet, a cellular network (such as 4G, LTE (Long Term Evolution), LTE-Advanced, 5G, 6G, etc.).

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

[0065] The input interface 111 of the destination device 110 receives an encoded bitstream from the communication medium 120. The encoded bitstream may include high-level syntax elements and encoded data units (such as sequences, groups of pictures, pictures, slices, blocks, etc.), wherein the high-level syntax elements are used to decode the encoded data units to obtain decoded point cloud data. The display device 114 displays the decoded point cloud data to the user. The display device 114 may include a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or other types of display devices. In some examples, the destination device 110 may not have a display device 114. For example, if the decoded point cloud data is used to determine the position of a physical object, the display device 114 may be replaced by a processor.

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

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

[0068] 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. 3 can be roughly divided into a geometry 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.

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

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

[0071] 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:

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

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

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

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

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

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

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

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

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

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

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

[0083] Transform encoding refers to grouping and transforming attribute information using transform methods such as discrete cosine transform (DCT) and Haar transform (Haar), quantizing the 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.

[0084] Prediction and transform encoding refers to using the attribute residual information obtained by prediction to perform transform, quantizing the transform coefficients, and entropy encoding.

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

[0086] Among them, the prediction transform coding refers to dividing the point cloud into multiple different levels (Level of Detail, LoD) according to the distance selection sub-point set, realizing the multi-quality level point cloud representation from rough to fine. The adjacent layers can realize the top-down prediction, that is, the attribute information of the points introduced in the fine layer is predicted from the adjacent points in the rough layer, and the corresponding attribute residual information is obtained. Among them, the points at the bottom layer are encoded as reference information.

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

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

[0089] 4, attribute quantization (Attribute Quantization): The degree of quantization accuracy is usually determined by a quantization parameter. The transform coefficient or 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 quantized attribute residual information is entropy coded; in the RAHT, the quantized transform coefficient is entropy coded.

[0090] 5, entropy coding (Entropy Coding): The quantized attribute residual information and / or transform coefficient is generally compressed using run length coding (Run Length Coding) and arithmetic coding (Arithmetic Coding). The corresponding coding mode, quantization parameter and other information are also encoded by an entropy encoder.

[0091] The encoder 200 encodes the geometric coordinate information of each point in the point cloud to obtain a geometric bit stream, and encodes the attribute information of each point in the point cloud to obtain an attribute bit stream. The encoder 200 can transmit the encoded geometric bit stream and attribute bit stream to the decoder 300.

[0092] Figure 3a The decoder performs a decoding process according to the decoding framework of the AVS-PCC, as shown in the decoding flowchart of the decoder based on the AVS-PCC decoding framework. Figure 3b The decoder performs a decoding process according to the decoding framework of the MPEG G-PCC, and the decoder can be Figure 1The decoder 300 is shown. After the decoder 300 receives 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.

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

[0094] 1. Entropy Decoding: The geometry bitstream and the attribute bitstream are respectively entropy decoded to obtain geometry syntax elements and attribute syntax elements.

[0095] 2. Geometry Decoding: For the AVS-PCC encoding framework, geometry decoding includes two modes, which are octree-based geometry decoding and prediction tree-based geometry decoding. For the G-PCC encoding framework, geometry decoding includes three modes, which are octree-based geometry decoding, trisoup-based geometry decoding, and prediction tree-based geometry decoding.

[0096] Octree-based geometry decoding, such as octree-based geometry decoding: reconstructing an octree based on the geometry syntax elements parsed from the geometry bitstream.

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

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

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

[0100] 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 initial domain.

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

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

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

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

[0105] As Figure 4 shown, the embodiment of the present application provides a Trisoup vertex optimization method, which is executed by a decoding end and includes the following steps:

[0106] Step 401: The decoding end determines axial distribution information of vertices in a geometry structure corresponding to a Trisoup node and a total number of vertices contained in the geometry structure.

[0107] Step 402: The decoding end determines a first type of vertex according to the axial distribution information and the total number of vertices.

[0108] Step 403: The decoding end deletes or corrects the first type of vertex.

[0109] In the embodiment, the Trisoup node refers to a multi-ary tree node. The Trisoup conceptualizes the geometry of a point cloud in each node as a surface that intersects the edges of each geometry at most once. The points that intersect the edges of the geometry are called vertices, and these vertices are shared between adjacent nodes, ensuring the continuity of the reconstructed surface between nodes. The existence of vertices on the edges of the geometry corresponding to each node and the quantized positions of the vertices on the edges can be represented as 1 bit and 2 bits, respectively. Inside the geometry 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. The geometry structure corresponding to the Trisoup node is shown in, for example, Figure 6 .

[0110] 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 includes point cloud occupancy information of adjacent edges.

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

[0112] The decoding end can determine axial distribution information of the vertices in the geometry structure corresponding to the Trisoup node, the axial direction including x, y, and z axial directions, and the decoding end can respectively count the distribution of the vertices in the x, y, and z axial directions, and count the total number of the vertices contained in the geometry structure. The decoding end determines the first type of vertices contained in the Trisoup node according to the distribution of the vertices in the x, y, and z axial directions and the total number of the vertices, and the first type of vertices can be unreasonable vertices, that is, the vertices are not suitable for point cloud reconstruction (for example, there is no original point cloud or the number of original point clouds is small around the vertices, such as the number of original point clouds is less than a predetermined threshold), and in order to avoid the reconstruction of an error surface, the first type of vertices needs to be deleted or corrected.

[0113] The original point cloud in the embodiments of the present application refers to a point cloud before reconstruction, and the original point cloud distribution information refers to the distribution of the point cloud in the geometry structure before reconstruction.

[0114] Optionally, the decoding end can determine the first type of vertices for the x, y, and z axial directions respectively, for example, determining the first type of vertices according to the distribution of the vertices in the x axial direction and the total number of the vertices (which can be denoted as vertex_total), determining the first type of vertices according to the distribution of the vertices in the y axial direction and the total number of the vertices, and determining the first type of vertices according to the distribution of the vertices in the z axial direction and the total number of the vertices.

[0115] In the embodiments of the present application, the decoding end determines the first type of vertices according to the axial distribution information of the vertices of the Trisoup node and the total number of the vertices, and deletes or corrects the first type of vertices. By deleting or correcting the first type of vertices, a large number of error point clouds can be removed, and the performance loss in the quality of the reconstructed point cloud can be reduced.

[0116] As an optional embodiment, the determination of the axial distribution information of the vertices in the geometry structure corresponding to the Trisoup node includes:

[0117] determining the distribution information of the vertices in the geometry structure corresponding to the Trisoup node in each of the three axial directions.

[0118] The distribution information is used to indicate that the vertices are distributed in the positive or negative half axis of each axial direction, and / or the number of the vertices distributed in the positive or negative half axis of each axial direction.

[0119] In this embodiment, the decoding end respectively determines the distribution of the vertices in the x, y, and z axial directions. The specific range of the positive or negative half axis of the axial direction can be determined according to a threshold. For example Figure 6It is shown that, for an axis, when the distance between the dimension value of the vertex on the axis and the dimension value of the starting point of the edge where the vertex is located on the axis is less than or equal to a threshold th1, it is considered that the vertex is distributed on the negative half axis of the axis; and when the distance between the dimension value of the vertex on the axis and the dimension value of the ending point of the edge where the vertex is located on the axis is less than or equal to a threshold th2, it is considered that the vertex is distributed on the positive half axis of the axis.

[0120] When determining the axis distribution information of the vertex, the decoding end determines the distribution of the vertex on an axis and the number of all vertices corresponding to the distribution.

[0121] Optionally, the determining of the axis distribution information of the vertex in the geometric structure corresponding to the Trisoup node comprises at least one of the following:

[0122] For a target axis of the three axes, in a case where the vertex coordinate satisfies a first condition, it is determined that the vertex is distributed on the negative half axis of the target axis, and a first number of vertices located on the negative half axis of the target axis is determined; the first condition comprises that the distance between the dimension value of the vertex coordinate on the target axis and the dimension value of the starting point of the edge where the vertex is located on the target axis is less than or equal to a first threshold.

[0123] For a target axis of the three axes, in a case where the vertex coordinate satisfies a second condition, it is determined that the vertex is distributed on the positive half axis of the target axis, and a second number of vertices located on the positive half axis of the target axis is determined; the second condition comprises that the distance between the dimension value of the vertex coordinate on the target axis and the dimension value of the ending point of the edge where the vertex is located on the target axis is less than or equal to a second threshold.

[0124] In this embodiment, the vertex satisfying the first condition is considered to be distributed on the negative half axis of an axis, and the vertex satisfying the second condition is considered to be distributed on the positive half axis of an axis. Taking the x-axis as an example, when the x-dimension value of the vertex coordinate is less than or equal to the threshold th1 from the x-dimension value of the starting point of the edge where the vertex is located, it is considered that the vertex is distributed on the negative half of the x-axis, and the total number of vertices satisfying the condition is the first number (for example, vertex_x[0]); when the x-dimension value of the vertex coordinate is less than or equal to the threshold th2 from the ending point of the edge, it is considered that the vertex is distributed on the positive half of the x-axis, and the total number of vertices satisfying the condition is the second number (which can be vertex_x[1]). The starting point and the ending point of the edge in the geometric structure are determined according to the direction of the edge.

[0125] As an optional embodiment, the determining of the first type vertex according to the axis distribution information and the total number of vertices comprises at least one of the following:

[0126] For a target axis among the three axes, if a ratio of the first number to the total number of the vertices is greater than or equal to a third threshold value, it is determined that a vertex satisfying a third condition is a first type vertex; the third condition comprises: a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of an end point of an edge where the vertex is located; the first number is a number of vertices located on a negative half axis of the target axis;

[0127] For a target axis among the three axes, if a ratio of the second number to the total number of the vertices is greater than or equal to a fourth threshold value, it is determined that a vertex satisfying a fourth condition is a first type vertex; the fourth condition comprises: a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of a start point of an edge where the vertex is located; the second number is a number of vertices located on a positive half axis of the target axis.

[0128] In this embodiment, the decoding end determines the first type vertex for each axis respectively. Optionally, the decoding end determines the first type vertex when the total number of the vertices is greater than or equal to a threshold value. For a certain axis, if a ratio of a number of vertices located on a negative half axis of the axis (i.e., the first number) to the total number of the vertices is greater than or equal to a third threshold value P1, it is determined that all the vertices with a dimension value of the axis equal to a dimension value of the axis of an end point of an edge where the vertex is located are first type vertices. The first type vertices can be unreasonable vertices, i.e., vertices that need to be deleted or corrected.

[0129] For a certain axis, if a ratio of a number of vertices located on a positive half axis of the axis (i.e., the second number) to the total number of the vertices is greater than or equal to a fourth threshold value P4, it is determined that all the vertices with a dimension value of the axis equal to a dimension value of the axis of a start point of an edge where the vertex is located are first type vertices. The first type vertices can be unreasonable vertices, i.e., vertices that need to be deleted or corrected.

[0130] It should be noted that the "ratio" in the embodiments of the present application can be an absolute value ratio or a percentage, which is not limited herein.

[0131] As an optional embodiment, the method further comprises: if there are first type vertices in at least two of the three axial directions, screening the first type vertices;

[0132] The deleting or correcting the first type vertices comprises: deleting or correcting the screened first type vertices.

[0133] In this embodiment, the determined first type vertices can be considered as unreasonable vertices, if there are more than one axial direction determining unreasonable vertices, the unreasonable vertices can be further screened. When the unreasonable vertices are deleted or corrected, the remaining unreasonable vertices after screening are deleted or corrected.

[0134] Optionally, the screening the first type vertices comprises at least one of the following:

[0135] Determining the intersection between the first type vertices of the at least two axial directions, and the first type vertices in the intersection are the screened first type vertices;

[0136] If there is no intersection between the first type vertices of the at least two axial directions, determining the first type vertices of the axial direction with the most first type vertices as the screened first type vertices.

[0137] In this embodiment, if the first type vertices of the at least two axial directions corresponding to the first type vertices have an intersection, the vertices in the intersection are determined as the final unreasonable vertices. If the first type vertices of the at least two axial directions corresponding to the first type vertices have no intersection, the axial directions are sorted according to the number of first type vertices contained, and the first type vertices corresponding to the axial direction containing more first type vertices are selected as the final unreasonable vertices.

[0138] Taking the first type vertices as unreasonable vertices as an example: if the unreasonable vertices obtained from the three axial directions have an intersection, the vertices in the intersection are determined as the final unreasonable vertices, and the final unreasonable vertices are deleted or corrected; if there is no intersection, the axial directions are sorted according to the number of unreasonable vertices obtained, and the unreasonable vertices obtained from the axial direction with more unreasonable vertices are selected as the final unreasonable vertices, and the final unreasonable vertices are deleted or corrected, at most all the unreasonable vertices obtained from the three axial directions can be processed.

[0139] As an optional embodiment, the deleting or correcting the first type vertices comprises:

[0140] The first type of vertices are deleted or modified according to the Euclidean distance between the first type of vertices and the second type of vertices; wherein the second type of vertices are vertices other than the first type of vertices in the geometric structure.

[0141] In this embodiment, the first type of vertex may be an unreasonable vertex, and the second type of vertex may be a reasonable vertex. For unreasonable vertices, different treatments may be performed based on their degree of unreasonableness. The Euclidean distance between the first type of vertex and the second type of vertex may represent the degree of unreasonableness of the vertex.

[0142] Optionally, the deleting or modifying the first-type vertex includes at least one of the following:

[0143] If the Euclidean distance between the first type vertex and the second type vertex meets the fifth condition, deleting the first type vertex;

[0144] When the Euclidean distance between the first-type vertex and the second-type vertex does not satisfy the fifth condition, the first-type vertex is corrected to the target position.

[0145] Optionally, the fifth condition includes: the minimum Euclidean distance between the first type of vertex and the second type of vertex is greater than a predetermined threshold. For example, if the first type of vertex is an unreasonable vertex and the second type of vertex is a reasonable vertex, for an unreasonable vertex, the Euclidean distance between it and each reasonable vertex is calculated, and the minimum value of each Euclidean distance is determined. If the minimum value is greater than the predetermined threshold, the unreasonable vertex is deleted; if the minimum value is less than or equal to the predetermined threshold, the position of the unreasonable vertex needs to be corrected.

[0146] Optionally, the target position is the midpoint between the first-type vertex and the target second-type vertex, and the target second-type vertex is a second-type vertex whose Euclidean distance to the first-type vertex satisfies a sixth condition. Optionally, the sixth condition includes: the Euclidean distance is less than a predetermined threshold, that is, the target second-type vertex is a second-type vertex whose Euclidean distance to the first-type vertex is less than a predetermined threshold. Preferably, the target second-type vertex is a second-type vertex with the smallest Euclidean distance to the first-type vertex.

[0147] In this embodiment, different treatments can be performed on unreasonable vertices according to their unreasonableness. When the minimum Euclidean distance between an unreasonable vertex and a reasonable vertex is greater than a certain threshold, the unreasonable vertex is determined to be deleted; otherwise, the unreasonable vertex is corrected to the midpoint of the nearest reasonable vertex.

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

[0149] decode the first bitstream to obtain the offset value of the centroid vertex of the Trisoup node;

[0150] determine the initial position of the centroid vertex of the Trisoup node according to the second type vertex and the corrected first type vertex;

[0151] determine the offset centroid vertex position according to the initial position of the centroid vertex and the offset value.

[0152] In this embodiment, after the unreasonable vertex is deleted or corrected, the decoding end decodes the centroid quantization offset value in the bitstream, the centroid quantization offset value is the quantized offset value of the centroid vertex; the initial position of the centroid vertex is calculated according to the processed vertex; the inverse quantization offset value is summed with the initial position of the centroid vertex to obtain the offset centroid vertex position.

[0153] Optionally, the decoding end decodes the bitstream of whether the face vertex exists to obtain the information of whether the face vertex exists, and obtains the Trisoup face vertex corresponding to each Trisoup node. Wherein, the decoding end determines the face vertex for each node, and encodes and sends to the decoding end.

[0154] Optionally, the decoding end sorts the vertex coordinates and face vertex coordinates in each node, and then uses the edge vertex, the offset centroid and the face vertex to construct a triangular facet; the triangular facet is ray-traced and sampled to obtain a reconstructed point cloud.

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

[0156] decode the second bitstream to obtain a first flag, the first flag being used to indicate whether to enable or not to enable the Trisoup vertex optimization technology.

[0157] In the embodiments of the present application, the encoding end encodes the flag of whether the Trisoup vertex optimization method of the present application is enabled, and obtains a second bitstream; the decoding end decodes the second bitstream to determine whether to enable the Trisoup vertex optimization method; in the case that the Trisoup vertex optimization method is enabled, the implementation process of the Trisoup vertex optimization method of the embodiments of the present application is executed. Optionally, the second bitstream and the first bitstream can be the same bitstream or different bitstreams.

[0158] Optionally, the decoding end can decode the second bitstream in the case that the Trisoup is enabled. The encoding end can encode the flag of whether the Trisoup is enabled; the decoding end can determine whether the Trisoup is enabled by decoding the flag.

[0159] In the embodiments of the present application, the decoding process includes the following three steps:

[0160] 1) Decoding the Trisoup edge vertex located on the edge of the Trisoup, obtaining the axial distribution information of the vertex and the total number of vertices;

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

[0162] 3) Determining the decoding point through Trisoup triangle voxelization.

[0163] The method first needs to transmit the flag of whether the Trisoup vertex optimization of the present application is enabled under the condition that the Trisoup is enabled (Trisoup_enabled_flag=true), which belongs to the gbh parameter set. The vertex corresponding to each Trisoup edge is obtained by the decoding of step 1).

[0164] In the embodiments of the present application, the decoding end determines the first type vertex according to the axial distribution information of the vertex of the Trisoup node and the total number of vertices, and deletes or corrects the first type vertex. By deleting or correcting the first type vertex, a large number of error point clouds can be removed, and the performance loss in the quality of the reconstructed point cloud can be reduced.

[0165] The present application improves the method of sharing the vertex on the shared edge of the adjacent nodes in order to ensure the continuity of the reconstructed surface between blocks and reduce the code stream. When the Trisoup is enabled, it is allowed to select whether to enable the Trisoup vertex optimization technology of the present application. When the technology is enabled, the distribution rule of the vertex in the node is used to infer the unreasonable vertex in the node, and then the unreasonable vertex is corrected or deleted. Finally, the processed vertex is used for subsequent point cloud reconstruction according to the existing technology, which improves the distortion of the reconstructed point cloud in quality; since some error reconstructed point clouds are deleted, the code stream of attribute coding is reduced.

[0166] As shown in Figure 7 The embodiments of the present application also provide a Trisoup vertex optimization method, which is executed by an encoding end, and the method includes the following steps:

[0167] Step 701: The encoding end determines the axial distribution information of the vertex in the geometric structure corresponding to the Trisoup node and the total number of vertices contained in the geometric structure;

[0168] Step 702: The encoding end determines the first type vertex according to the axial distribution information and the total number of vertices;

[0169] Step 703: The encoding end deletes or corrects the first type vertex.

[0170] In this embodiment, the encoding end can determine the axial distribution information of the vertices in the geometric structure corresponding to the Trisoup node, the axial direction including x, y, and z axial directions, and the encoding end can respectively count the distribution of the vertices in the x, y, and z axial directions, and count the total number of the vertices contained in the geometric structure. The encoding end determines the first type of vertices contained in the Trisoup node according to the distribution of the vertices in the x, y, and z axial directions and the total number of the vertices, and the first type of vertices can be unreasonable vertices that need to be deleted or corrected.

[0171] Optionally, for each Trisoup node, the encoding end can determine the vertex existence flag and the quantized vertex position of each edge of the geometric structure corresponding to the Trisoup node. The quantized vertex position exists when the vertex existence flag indicates that the vertex exists.

[0172] The encoding end can reorder the non-repeated edges in lexicographical 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.

[0173] Optionally, when determining the first type of vertices, the encoding end can determine the first type of vertices for the x, y, and z axial directions respectively, for example: determining the first type of vertices according to the distribution of the vertices in the x axial direction and the total number of the vertices (which can be denoted as vertex_total); determining the first type of vertices according to the distribution of the vertices in the y axial direction and the total number of the vertices; and determining the first type of vertices according to the distribution of the vertices in the z axial direction and the total number of the vertices.

[0174] In the embodiments of the present application, the encoding end determines the first type of vertices according to the axial distribution information of the vertices of the Trisoup node and the total number of the vertices, and deletes or corrects the first type of vertices. By deleting or correcting the first type of vertices, a large number of incorrect point clouds can be removed, and the performance loss in the quality of the reconstructed point cloud can be reduced.

[0175] As an optional embodiment, the determination of the axial distribution information of the vertices in the geometric structure corresponding to the Trisoup node includes:

[0176] determining the distribution information of the vertices in the geometric structure corresponding to the Trisoup node in each of the three axial directions;

[0177] The distribution information is used to indicate that the vertex is distributed on the positive or negative half-axis of each axial direction, and / or the number of vertices distributed on the positive or negative half-axis of each axial direction.

[0178] In this embodiment, the encoding end determines the distribution of the vertex on the x, y and z axial directions respectively. The specific range of the positive or negative half-axis of the axial direction can be determined according to the threshold value. For example, for a certain axial direction, if the distance between the dimension value of the vertex on the axial direction and the dimension value of the starting point of the edge on the axial direction is less than or equal to a threshold value th1, it is considered that the vertex is distributed on the negative half-axis of the axial direction; if the distance between the dimension value of the vertex on the axial direction and the dimension value of the terminal point of the edge on the axial direction is less than or equal to a threshold value th2, it is considered that the vertex is distributed on the positive half-axis of the axial direction.

[0179] When the encoding end determines the axial distribution information of the vertex, the distribution of the vertex on a certain axial direction and the number of all vertices corresponding to the distribution are determined.

[0180] Optionally, the determination of the axial distribution information of the vertex in the geometric structure corresponding to the Trisoup node comprises at least one of the following:

[0181] For a target axial direction in the three axial directions, in a case where the vertex coordinate satisfies a first condition, it is determined that the vertex is distributed on the negative half-axis of the target axial direction, and a first number of vertices located on the negative half-axis of the target axial direction is determined; the first condition comprises that the distance between the dimension value of the target axial direction of the vertex coordinate and the dimension value of the starting point of the edge on which the vertex is located on the target axial direction is less than or equal to a first threshold value.

[0182] For a target axial direction in the three axial directions, in a case where the vertex coordinate satisfies a second condition, it is determined that the vertex is distributed on the positive half-axis of the target axial direction, and a second number of vertices located on the positive half-axis of the target axial direction is determined; the second condition comprises that the distance between the dimension value of the target axial direction of the vertex coordinate and the dimension value of the terminal point of the edge on which the vertex is located on the target axial direction is less than or equal to a second threshold value.

[0183] In this embodiment, the vertex satisfying the first condition is considered to be distributed on a negative half-axis of a certain axial direction, and the vertex satisfying the second condition is considered to be distributed on a positive half-axis of a certain axial direction. Taking the x axial direction as an example, when the x dimension value of the vertex coordinate is less than or equal to the threshold value th1 from the x dimension value of the start point of the edge where the vertex is located, the vertex is considered to be distributed on the negative half of the x axial direction, and the total number of vertices satisfying this condition is the first number (for example, vertex_x[0]). When the x dimension value of the vertex coordinate is less than or equal to the threshold value th2 from the end point of the edge where the vertex is located, the vertex is considered to be distributed on the positive half of the x axial direction, and the total number of vertices satisfying this condition is the second number (which can be denoted as vertex_x[1]). The start point and the end point of the edge in the geometric structure are determined according to the direction of the edge.

[0184] As an optional embodiment, the determining the first type vertex according to the axial distribution information and the total number of vertices includes at least one of the following:

[0185] For a target axial direction of the three axial directions, in a case where a ratio of the first number to the total number of vertices is greater than or equal to a third threshold value, the vertex satisfying a third condition is determined to be the first type vertex. The third condition includes that the target axial dimension value of the vertex coordinate is equal to the target axial dimension value of the end point of the edge where the vertex is located. The first number is the number of vertices located on the negative half-axis of the target axial direction.

[0186] For a target axial direction of the three axial directions, in a case where a ratio of the second number to the total number of vertices is greater than or equal to a fourth threshold value, the vertex satisfying a fourth condition is determined to be the first type vertex. The fourth condition includes that the target axial dimension value of the vertex coordinate is equal to the target axial dimension value of the start point of the edge where the vertex is located. The second number is the number of vertices located on the positive half-axis of the target axial direction.

[0187] In this embodiment, the encoding end determines the first type vertex for each axial direction respectively. Optionally, the encoding end determines the first type vertex when the total number of vertices is greater than or equal to a threshold value. For a certain axial direction, if the ratio of the number of vertices located on the negative half-axis of the axial direction (i.e., the first number) to the total number of vertices is greater than or equal to a third threshold value P1, then all the vertices whose axial dimension value is equal to the axial dimension value of the end point of the edge where the vertex is located are determined to be the first type vertex. The first type vertex can be an unreasonable vertex, i.e., a vertex that needs to be deleted or corrected. For example, taking the x axial direction as an example, if the number of vertices vertex_x[0] located on the negative half of the x axial direction accounts for more than or equal to P1 in the total number of vertices vertex_total in the node, then all the vertices whose x dimension value is equal to the x dimension value of the end point of the edge where the vertex is located are determined to be unreasonable vertices (i.e., the first type vertex).

[0188] For a certain axial, the ratio of the number of vertices (i.e., the second number) located at the positive half of the axial to the total number of vertices is greater than or equal to a fourth threshold P4, it is determined that all the vertices with the dimension value of the axial equal to the dimension value of the axial of the starting point of the edge of the vertex are first type vertices. The first type vertices can be unreasonable vertices, i.e., vertices that need to be deleted or corrected. For example, taking the x-axial as an example, if the number of vertices vertex_x[1] located at the positive half of the x-axial accounts for more than or equal to P4 in the total number of vertices vertex_total in the node, it is determined that all the vertices with the x-dimension value equal to the x-dimension value of the starting point of the edge of the vertex are unreasonable vertices (i.e., the first type vertices).

[0189] It should be noted that the "ratio" in the embodiments of the present application can be the absolute value ratio or a percentage, which is not limited herein.

[0190] As an optional embodiment, if there are first type vertices in at least two of the three axials, the first type vertices are screened.

[0191] The deleting or correcting the first type vertices includes deleting or correcting the screened first type vertices.

[0192] In this embodiment, the determined first type vertices can be considered as unreasonable vertices. If there are more than one axial determining that there are unreasonable vertices, the unreasonable vertices can be further screened. When the unreasonable vertices are deleted or corrected, the remaining unreasonable vertices after screening are deleted or corrected.

[0193] Optionally, the screening of the first type vertices includes at least one of the following:

[0194] Determining the intersection between the first type vertices of the at least two axials, and the first type vertices in the intersection are the screened first type vertices;

[0195] If there is no intersection between the first type vertices of the at least two axials, it is determined that the first type vertices of the axial with the largest number of first type vertices are the screened first type vertices.

[0196] In this embodiment, if the first type vertices of the at least two axials corresponding to the at least two axials with first type vertices have an intersection, it is determined that the vertices in the intersection are the final unreasonable vertices. If the first type vertices of the at least two axials corresponding to the at least two axials with first type vertices do not have an intersection, the axials are sorted according to the number of first type vertices contained by the axials, and the first type vertices corresponding to the axial with more first type vertices are preferentially selected as the final unreasonable vertices.

[0197] For example, if the first type of vertex is an unreasonable vertex, if the unreasonable vertices obtained from three axes have an intersection, the vertex in the intersection is determined as a final unreasonable vertex, and the final unreasonable vertex is deleted or modified; if there is no intersection, the axes are prioritized according to the number of unreasonable vertices obtained from the axes, and the unreasonable vertex obtained from the axis with a larger number of unreasonable vertices is selected as a final unreasonable vertex, and the final unreasonable vertex is deleted or modified. At most, all unreasonable vertices obtained from three axes can be processed.

[0198] Optionally, the deleting or modifying the first type of vertex comprises:

[0199] The first type of vertex is deleted or modified according to the Euclidean distance between the first type of vertex and a second type of vertex; the second type of vertex is a vertex other than the first type of vertex in the geometric structure.

[0200] In this embodiment, the first type of vertex can be an unreasonable vertex, and the second type of vertex can be a reasonable vertex. For an unreasonable vertex, different processing can be performed according to the unreasonable degree of the vertex. The Euclidean distance between the first type of vertex and the second type of vertex can represent the unreasonable degree of the vertex.

[0201] Optionally, the deleting or modifying the first type of vertex comprises at least one of the following:

[0202] In a case where the Euclidean distance between the first type of vertex and the second type of vertex satisfies a fifth condition, the first type of vertex is deleted.

[0203] In a case where the Euclidean distance between the first type of vertex and the second type of vertex does not satisfy the fifth condition, the first type of vertex is modified to a target position.

[0204] Optionally, the fifth condition comprises that the minimum value of the Euclidean distance between the first type of vertex and the second type of vertex is greater than a predetermined threshold. For example, the first type of vertex is an unreasonable vertex, and the second type of vertex is a reasonable vertex. For a certain unreasonable vertex, the Euclidean distance between the unreasonable vertex and each reasonable vertex is calculated, the minimum value of each Euclidean distance is determined, and if the minimum value is greater than a predetermined threshold, the unreasonable vertex is deleted; if the minimum value is less than or equal to the predetermined threshold, the position of the unreasonable vertex needs to be modified.

[0205] Optionally, the target position is the midpoint between the first-type vertex and the target second-type vertex, and the target second-type vertex is a second-type vertex whose Euclidean distance to the first-type vertex satisfies a sixth condition. Optionally, the sixth condition includes: the Euclidean distance is less than a predetermined threshold, that is, the target second-type vertex is a second-type vertex whose Euclidean distance to the first-type vertex is less than a predetermined threshold. Preferably, the target second-type vertex is a second-type vertex with the smallest Euclidean distance to the first-type vertex.

[0206] In this embodiment, different treatments can be performed on unreasonable vertices according to their unreasonableness. When the minimum Euclidean distance between an unreasonable vertex and a reasonable vertex is greater than a certain threshold, the unreasonable vertex is determined to be deleted; otherwise, the unreasonable vertex is corrected to the midpoint of the nearest reasonable vertex.

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

[0208] Determining an initial position of a centroid vertex of the Trisoup node according to the second type vertex and the corrected first type vertex;

[0209] Determining an offset value of the centroid vertex according to the initial position of the centroid vertex and the original point cloud;

[0210] The offset value is encoded into a first code stream, and the position of the centroid vertex after the offset is determined according to the initial position of the centroid vertex and the offset value.

[0211] In this embodiment, after deleting or correcting the unreasonable vertices, the encoder calculates the initial position of the centroid vertex based on the processed vertices. An offset value for the centroid vertex is calculated based on the original point clouds surrounding the initial centroid vertex position. This offset value is then quantized and encoded into the bitstream. The inverse quantized drift value is summed with the initial centroid vertex position to obtain the offset position of the centroid vertex.

[0212] Optionally, the encoder selectively determines face vertices for each node. The face vertices are encoded and sent to the decoder. The encoder sorts the vertex coordinates and face vertex coordinates within each node, constructs triangular facets using edge vertices, offset centroid vertices, and face vertices, and performs ray tracing sampling on the triangular facets to obtain a reconstructed point cloud.

[0213] As an optional embodiment, the method further includes: encoding a first flag into a second code stream, wherein the first flag is used to indicate whether to enable or not enable the Trisoup vertex optimization technology.

[0214] In the embodiments of the present application, an encoding end encodes a flag indicating whether a Trisoup vertex optimization method of the present application is enabled, to obtain a second code stream; a decoding end decodes the second code stream to determine whether the Trisoup vertex optimization method is enabled; and in the case that the Trisoup vertex optimization method is enabled, an implementation process of the Trisoup vertex optimization 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.

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

[0216] In the embodiments of the present application, an encoding end determines a first type vertex according to axial distribution information of vertices of a Trisoup node and a total number of the vertices, and deletes or corrects the first type vertex. By deleting or correcting the first type vertex, a large number of incorrect point clouds can be removed, and performance loss in quality of reconstructed point clouds can be reduced.

[0217] The Trisoup vertex optimization method provided by the embodiments of the present application can be executed by a Trisoup vertex optimization device. The embodiments of the present application take the Trisoup vertex optimization device as an example to illustrate the Trisoup vertex optimization device provided by the embodiments of the present application.

[0218] As shown in FIG. 8, Figure 8 The embodiments of the present application provide a Trisoup vertex optimization device 800 applied to a decoding end, and the device comprises:

[0219] A first determining module 810 is configured to determine axial distribution information of vertices in a geometric structure corresponding to a Trisoup node and a total number of the vertices contained in the geometric structure;

[0220] A second determining module 820 is configured to determine a first type vertex according to the axial distribution information and the total number of the vertices.

[0221] A first processing module 830 is configured to delete or correct the first type vertex.

[0222] Optionally, the first determining module is specifically configured to:

[0223] determine distribution information of the vertices in the geometric structure corresponding to the Trisoup node in each of three axial directions;

[0224] The distribution information is used for indicating that the vertex is distributed on a positive half-axis or a negative half-axis of each axial direction, and / or a number of vertices distributed on the positive half-axis or the negative half-axis of each axial direction.

[0225] Optionally, the first determining module is specifically used for performing at least one of the following:

[0226] For a target axial direction of the three axial directions, in a case where the vertex coordinate satisfies a first condition, it is determined that the vertex is distributed on a negative half-axis of the target axial direction, and a first number of vertices located on the negative half-axis of the target axial direction is determined; the first condition includes that a distance between a dimension value of the target axial direction of the vertex coordinate and a dimension value of the target axial direction of a start point of an edge where the vertex is located is less than or equal to a first threshold value.

[0227] For a target axial direction of the three axial directions, in a case where the vertex coordinate satisfies a second condition, it is determined that the vertex is distributed on a positive half-axis of the target axial direction, and a second number of vertices located on the positive half-axis of the target axial direction is determined; the second condition includes that a distance between a dimension value of the target axial direction of the vertex coordinate and a dimension value of the target axial direction of an end point of the edge where the vertex is located is less than or equal to a second threshold value.

[0228] Optionally, the second determining module is specifically used for performing at least one of the following:

[0229] For a target axial direction of the three axial directions, in a case where a ratio of the first number to a total number of the vertices is greater than or equal to a third threshold value, it is determined that a vertex satisfying a third condition is a first type vertex; the third condition includes that the dimension value of the target axial direction of the vertex coordinate is equal to the dimension value of the target axial direction of the end point of the edge where the vertex is located; the first number is a number of vertices located on the negative half-axis of the target axial direction.

[0230] For a target axial direction of the three axial directions, in a case where a ratio of the second number to the total number of the vertices is greater than or equal to a fourth threshold value, it is determined that a vertex satisfying a fourth condition is a first type vertex; the fourth condition includes that the dimension value of the target axial direction of the vertex coordinate is equal to the dimension value of the target axial direction of the start point of the edge where the vertex is located; the second number is a number of vertices located on the positive half-axis of the target axial direction.

[0231] Optionally, the device further includes:

[0232] The second processing module is used for screening the first type vertices if the first type vertices exist in at least two axial directions of the three axial directions.

[0233] The first processing module is specifically used for deleting or correcting the screened first type vertices.

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

[0235] Determine an intersection between the first-type vertices of the at least two axial directions, where the first-type vertices in the intersection are the filtered first-type vertices;

[0236] If there is no intersection between the first-type vertices in the at least two axial directions, the first-type vertices in the axial direction with the largest number of first-type vertices are determined as the filtered first-type vertices.

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

[0238] Deleting or modifying the first type of vertices according to the Euclidean distance between the first type of vertices and the second type of vertices;

[0239] The second-type vertices are vertices other than the first-type vertices in the geometric structure.

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

[0241] If the Euclidean distance between the first type vertex and the second type vertex meets the fifth condition, deleting the first type vertex;

[0242] When the Euclidean distance between the first-type vertex and the second-type vertex does not satisfy the fifth condition, the first-type vertex is corrected to the target position.

[0243] Optionally, the target position is: the midpoint between the first type vertex and the target second type vertex, and the target second type vertex is a second type vertex whose Euclidean distance to the first type vertex meets the sixth condition.

[0244] Optionally, the device further includes:

[0245] A first decoding module, configured to decode the first code stream to obtain an offset value of a centroid vertex of the Trisoup node;

[0246] a third determining module, configured to determine an initial position of a centroid vertex of the Trisoup node according to the second type of vertices and the corrected first type of vertices;

[0247] The fourth determining module is configured to determine the offset position of the centroid vertex according to the initial position of the centroid vertex and the offset value.

[0248] Optionally, the device further includes:

[0249] The second decoding module is configured to decode the second code stream to obtain a first flag, where the first flag is used to indicate whether a Trisoup vertex optimization technique is enabled or not.

[0250] The embodiment of the present application determines the first type of vertex according to the axial distribution information of the vertex of the Trisoup node and the total number of the vertex, and deletes or corrects the first type of vertex. By deleting or correcting the first type of vertex, a large number of incorrect point clouds can be removed, and the performance loss in the quality of the reconstructed point cloud can be reduced.

[0251] The Trisoup vertex optimization device provided by the embodiment of the present application can implement the method embodiment Figures 4 to 6 The method embodiment implements various processes and achieves the same technical effects. To avoid repetition, details are not described herein.

[0252] As shown in Figure 9 , the embodiment of the present application provides a Trisoup vertex optimization device 900 applied to an encoding end, and the device comprises:

[0253] The fifth determining module 910 is configured to determine the axial distribution information of the vertex in the geometric structure corresponding to the Trisoup node and the total number of the vertex contained in the geometric structure.

[0254] The sixth determining module 920 is configured to determine the first type of vertex according to the axial distribution information and the total number of the vertex.

[0255] The third processing module 930 is configured to delete or correct the first type of vertex.

[0256] Optionally, the fifth determining module is specifically configured to:

[0257] determine the distribution information of the vertex in the geometric structure corresponding to the Trisoup node in each of the three axial directions;

[0258] The distribution information is used to indicate that the vertex is distributed in the positive or negative half axis of each axial direction, and / or the number of the vertex distributed in the positive or negative half axis of each axial direction.

[0259] Optionally, the fifth determining module is specifically configured to perform at least one of the following:

[0260] For a target axial direction in the three axial directions, in a case where the vertex coordinate satisfies a first condition, it is determined that the vertex is distributed in the negative half axis of the target axial direction, and a first number of the vertex located in the negative half axis of the target axial direction is determined; the first condition comprises that the distance between the dimension value of the target axial direction of the vertex coordinate and the dimension value of the target axial direction of the starting point of the edge where the vertex is located is less than or equal to a first threshold value.

[0261] For a target axis among the three axes, in a case where the vertex coordinate satisfies a second condition, it is determined that the vertex is distributed on a positive half axis of the target axis, and a second number of vertices located on the positive half axis of the target axis is determined; the second condition comprises: a distance between a dimension value of the target axis of the vertex coordinate and a dimension value of the target axis of an end point of an edge where the vertex is located is less than or equal to a second threshold value.

[0262] Optionally, the sixth determining module is specifically used for performing at least one of the following:

[0263] For a target axis among the three axes, in a case where a ratio of the first number to the total number of vertices is greater than or equal to a third threshold value, it is determined that the vertex satisfying a third condition is a first type vertex; the third condition comprises: a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of an end point of an edge where the vertex is located; the first number is a number of vertices located on a negative half axis of the target axis.

[0264] For a target axis among the three axes, in a case where a ratio of the second number to the total number of vertices is greater than or equal to a fourth threshold value, it is determined that the vertex satisfying a fourth condition is a first type vertex; the fourth condition comprises: a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of a start point of an edge where the vertex is located; the second number is a number of vertices located on a positive half axis of the target axis.

[0265] Optionally, the device further comprises:

[0266] A fourth processing module is configured to, if there is a first type vertex in at least two axes among the three axes, screen the first type vertex.

[0267] The third processing module is specifically configured to: delete or correct the screened first type vertex.

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

[0269] Determine an intersection between the first type vertices of the at least two axes, and the first type vertex in the intersection is the screened first type vertex.

[0270] If there is no intersection between the first type vertices of the at least two axes, it is determined that the first type vertex of an axis with the largest number of first type vertices is the screened first type vertex.

[0271] Optionally, the third processing module is specifically configured to:

[0272] delete or correct the first type of vertex according to the Euclidean distance between the first type of vertex and the second type of vertex;

[0273] The second type of vertex is a vertex in the geometric structure other than the first type of vertex.

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

[0275] In a case where the Euclidean distance between the first type of vertex and the second type of vertex satisfies a fifth condition, the first type of vertex is deleted;

[0276] In a case where the Euclidean distance between the first type of vertex and the second type of vertex does not satisfy the fifth condition, the first type of vertex is corrected to a target position.

[0277] Optionally, the target position is a midpoint of the first type of vertex and a target second type of vertex, and the target second type of vertex is a second type of vertex whose Euclidean distance from the first type of vertex satisfies a sixth condition.

[0278] Optionally, the apparatus further comprises:

[0279] A seventh determination module configured to determine an initial position of a centroid vertex of the Trisoup node according to the second type of vertex and the corrected first type of vertex;

[0280] An eighth determination module configured to determine an offset value of the centroid vertex according to the initial position of the centroid vertex and the original point cloud;

[0281] A first encoding module configured to encode the offset value into a first code stream, and determine an offset centroid vertex position according to the initial position of the centroid vertex and the offset value.

[0282] Optionally, the apparatus further comprises:

[0283] A second encoding module configured to encode a first flag into a second code stream, the first flag being used to indicate whether to enable or not to enable a Trisoup vertex optimization technology.

[0284] Embodiments of the present application, the encoding end determines the first type of vertex according to the axial distribution information of the vertex of the Trisoup node and the total number of vertices, and deletes or corrects the first type of vertex. By deleting or correcting the first type of vertex, a large number of incorrect point clouds can be removed, and the performance loss in the quality of the reconstructed point cloud can be reduced.

[0285] The Trisoup vertex optimization apparatus provided by the embodiments of the present application can realize Figure 7The method embodiments of the Trisoup vertex optimization method achieve the respective processes and achieve the same technical effects. To avoid repetition, details are not described herein.

[0286] As shown in Figure 10 , the embodiments of the present application also provide an electronic device 1000, which includes a processor 1001 and a memory 1002, and the memory 1002 stores programs or instructions that can run on the processor 1001. For example, when the electronic device 1000 is an encoding end device, the programs or instructions are executed by the processor 1001 to implement the respective steps of the above-mentioned Trisoup vertex optimization method embodiments and achieve the same technical effects. When the electronic device 1000 is a decoding end device, the programs or instructions are executed by the processor 1001 to implement the respective steps of the above-mentioned Trisoup vertex optimization method embodiments and achieve the same technical effects. To avoid repetition, details are not described herein. Optionally, the memory 1002 can be the memory 102 or the memory 113 in the embodiments shown in Figure 1 , and the processor 1001 can implement the functions of the encoder 200 or the decoder 300 in the embodiments shown in Figure 1 -3.

[0287] The embodiments of the present application also provide an electronic device, which includes a memory configured to store video data, and a processing circuit configured to implement the respective steps of the above-mentioned Trisoup vertex optimization method embodiments. Optionally, the memory can be the memory 102 or the memory 113 in the embodiments shown in Figure 1 , and the processing circuit can implement the functions of the encoder 200 or the decoder 300 in the embodiments shown in Figure 1 -3.

[0288] The embodiments of the present application also provide an electronic device, which includes a processor and a communication interface, wherein the communication interface and the processor are coupled, and the processor is configured to run programs or instructions to implement the steps in the above-mentioned method embodiments. The device embodiments correspond to the above-mentioned method embodiments, and the respective implementation processes and implementation manners of the above-mentioned method embodiments can be applied to the terminal embodiments and achieve the same technical effects. Figure 4 or Figure 7 The device embodiments correspond to the above-mentioned method embodiments, and the respective implementation processes and implementation manners of the above-mentioned method embodiments can be applied to the terminal embodiments and achieve the same technical effects.

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

[0290] The terminal can be a mobile phone, a tablet personal computer, a laptop computer, a notebook computer, a personal digital assistant (PDA), a palm computer, a netbook, an ultra-mobile personal computer (UMPC), a mobile Internet device (MID), an augmented reality (AR) device, a virtual reality (VR) device, a mixed reality (MR) device, a robot, a wearable device, a flight vehicle, a vehicle user equipment (VUE), a shipboard device, a pedestrian user equipment (PUE), a smart home (a home device with a wireless communication function, such as a refrigerator, a television, a washing machine, or furniture), a game console, a personal computer (PC), a teller machine, or a self-service machine, and the like. The wearable device includes a smart watch, a smart bracelet, a smart earphone, smart glasses, smart jewelry (a smart bracelet, a smart necklace, a smart ring, a smart necklace, a smart anklet, a smart necklace, and the like), 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 embodiments of the present application.

[0291] The server can be a stand-alone 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 communications, middleware services, domain name services, security services, content delivery networks (CDNs), or cloud computing services based on big data and artificial intelligence platforms.

[0292] 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 is shown.

[0293] Taking the electronic device as an example, Figure 11 A hardware structure schematic diagram of a terminal for implementing the embodiments of the present application.

[0294] The terminal 1100 includes, but is not limited to, at least part of components such as a radio frequency unit 1101, a network module 1102, an audio output unit 1103, an input unit 1104, a sensor 1105, a display unit 1106, a user input unit 1107, an interface unit 1108, a memory 1109, and a processor 1110.

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

[0296] It should be understood that in the embodiments of the present application, the input unit 1104 can include a graphics processing unit (GPU) 11041 and a microphone 11042. The graphics processor 11041 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 1106 can include a display panel 11061, which can be configured in the form of a liquid crystal display, an organic light-emitting diode, etc. The user input unit 1107 includes at least one of a touch panel 11071 and other input devices 11072. The touch panel 11071 is also called a touch screen. The touch panel 11071 can include a touch detection device and a touch controller. The other input devices 11072 can include, but are not limited to, a physical keyboard, function keys (such as volume control keys, on-off keys, etc.), trackballs, mice, joysticks, etc., which are not described here.

[0297] In the embodiments of the present application, the radio frequency unit 1101 can transmit the downlink data received from the network side device to the processor 1110 for processing. In addition, the radio frequency unit 1101 can send uplink data to the network side device. Generally, the radio frequency unit 901 includes, but is not limited to, an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.

[0298] The memory 1109 can be used to store software programs or instructions and various data. The memory 1109 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 1109 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 1109 in the embodiments of the present application includes but is not limited to these and any other suitable types of memory.

[0299] The processor 1110 can include one or more processing units; optionally, the processor 1110 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 1110.

[0300] In the case where the terminal is a decoding end device:

[0301] The processor 1110 is configured to determine axial distribution information of vertices in a geometric structure corresponding to a Trisoup node and a total number of vertices contained in the geometric structure.

[0302] According to the axial distribution information and the total number of vertices, a first type of vertex is determined.

[0303] deleting or correcting the first type of vertex.

[0304] Optionally, the processor 1110 is specifically configured to:

[0305] determine distribution information of a vertex in a geometric structure corresponding to the Trisoup node in each of three axial directions;

[0306] The distribution information is used to indicate that the vertex is distributed on a positive half axis or a negative half axis of each axial direction, and / or a number of vertices distributed on the positive half axis or the negative half axis of each axial direction.

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

[0308] For a target axial direction of the three axial directions, in a case where the vertex coordinate satisfies a first condition, it is determined that the vertex is distributed on a negative half axis of the target axial direction, and a first number of vertices located on the negative half axis of the target axial direction is determined; the first condition includes that a distance between a dimension value of the target axial direction of the vertex coordinate and a dimension value of the target axial direction of a start point of an edge where the vertex is located is less than or equal to a first threshold value.

[0309] For a target axial direction of the three axial directions, in a case where the vertex coordinate satisfies a second condition, it is determined that the vertex is distributed on a positive half axis of the target axial direction, and a second number of vertices located on the positive half axis of the target axial direction is determined; the second condition includes that a distance between a dimension value of the target axial direction of the vertex coordinate and a dimension value of the target axial direction of an end point of the edge where the vertex is located is less than or equal to a second threshold value.

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

[0311] For a target axial direction of the three axial directions, in a case where a ratio of the first number to a total number of the vertices is greater than or equal to a third threshold value, it is determined that a vertex satisfying a third condition is a first type of vertex; the third condition includes that the dimension value of the target axial direction of the vertex coordinate is equal to the dimension value of the target axial direction of the end point of the edge where the vertex is located; the first number is a number of vertices located on the negative half axis of the target axial direction.

[0312] For a target axial direction of the three axial directions, in a case where a ratio of the second number to the total number of the vertices is greater than or equal to a fourth threshold value, it is determined that a vertex satisfying a fourth condition is a first type of vertex; the fourth condition includes that the dimension value of the target axial direction of the vertex coordinate is equal to the dimension value of the target axial direction of the start point of the edge where the vertex is located; the second number is a number of vertices located on the positive half axis of the target axial direction.

[0313] Optionally, the processor 1110 is further configured to:

[0314] If there is a first type vertex in at least two of the three axial directions, the first type vertex is filtered;

[0315] The deleting or correcting the first type vertex includes:

[0316] The first type vertex after filtering is deleted or corrected.

[0317] Optionally, the processor 1110 is configured to perform at least one of the following:

[0318] Determine the intersection between the first type vertices of the at least two axial directions, and the first type vertices in the intersection are the filtered first type vertices;

[0319] If there is no intersection between the first type vertices of the at least two axial directions, determine the first type vertex of the axial direction with the most first type vertices as the filtered first type vertex.

[0320] Optionally, the processor 1110 is specifically configured to:

[0321] According to the Euclidean distance between the first type vertex and a second type vertex, the first type vertex is deleted or corrected;

[0322] The second type vertex is a vertex other than the first type vertex in the geometric structure.

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

[0324] In a case where the Euclidean distance between the first type vertex and the second type vertex satisfies a fifth condition, the first type vertex is deleted;

[0325] In a case where the Euclidean distance between the first type vertex and the second type vertex does not satisfy the fifth condition, the first type vertex is corrected to a target position.

[0326] Optionally, the target position is a midpoint of the first type vertex and a target second type vertex, and the target second type vertex is a second type vertex with a Euclidean distance from the first type vertex satisfying a sixth condition.

[0327] Optionally, the processor is further configured to:

[0328] Decode a first code stream to obtain an offset value of a centroid vertex of the Trisoup node;

[0329] determine an initial position of a centroid vertex of the Trisoup node according to the second type of vertices and the modified first type of vertices;

[0330] determine an offset centroid vertex position according to the initial position of the centroid vertex and the offset value.

[0331] Optionally, the processor is further configured to:

[0332] decode the second code stream to obtain a first flag, the first flag being used to indicate whether a Trisoup vertex optimization technique is enabled or not.

[0333] wherein, in a case where the terminal is an encoding end device:

[0334] The processor 1110 is configured to: determine axial distribution information of vertices in a geometric structure corresponding to a Trisoup node and a total number of vertices contained in the geometric structure; determine a first type of vertices according to the axial distribution information and the total number of vertices; and delete or modify the first type of vertices.

[0335] Optionally, the processor 1110 is specifically configured to:

[0336] determine distribution information of vertices in a geometric structure corresponding to a Trisoup node in each of three axes;

[0337] wherein, the distribution information is used to indicate that the vertices are distributed on a positive half axis or a negative half axis of each axis, and / or a number of vertices distributed on the positive half axis or the negative half axis of each axis.

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

[0339] for a target axis of the three axes, in a case where a vertex coordinate satisfies a first condition, determine that the vertex is distributed on a negative half axis of the target axis, and determine a first number of vertices located on the negative half axis of the target axis; the first condition includes that a distance between a dimension value of a target axis of a vertex coordinate and a dimension value of a target axis of a start point of an edge on which the vertex is located is less than or equal to a first threshold value;

[0340] for a target axis of the three axes, in a case where a vertex coordinate satisfies a second condition, determine that the vertex is distributed on a positive half axis of the target axis, and determine a second number of vertices located on the positive half axis of the target axis; the second condition includes that a distance between a dimension value of a target axis of a vertex coordinate and a dimension value of a target axis of an end point of an edge on which the vertex is located is less than or equal to a second threshold value.

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

[0342] For a target axis among the three axes, if a ratio of the first number to the total number of the vertices is greater than or equal to a third threshold value, it is determined that a vertex satisfying a third condition is a first type vertex; the third condition comprises: a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of an end point of an edge where the vertex is located; the first number is a number of vertices located on a negative half axis of the target axis;

[0343] For a target axis among the three axes, if a ratio of the second number to the total number of the vertices is greater than or equal to a fourth threshold value, it is determined that a vertex satisfying a fourth condition is a first type vertex; the fourth condition comprises: a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of a start point of an edge where the vertex is located; the second number is a number of vertices located on a positive half axis of the target axis.

[0344] Optionally, the processor 1110 is further configured to:

[0345] If there is a first type vertex in at least two axes among the three axes, the first type vertex is screened;

[0346] The deleting or correcting the first type vertex comprises:

[0347] The first type vertex after screening is deleted or corrected.

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

[0349] Determining an intersection between the first type vertices of the at least two axes, and the first type vertices in the intersection are the first type vertices after screening;

[0350] If there is no intersection between the first type vertices of the at least two axes, it is determined that the first type vertices of an axis with the largest number of first type vertices are the first type vertices after screening.

[0351] Optionally, the processor 1110 is specifically configured to:

[0352] According to a Euclidean distance between the first type vertex and a second type vertex, the first type vertex is deleted or corrected;

[0353] The second type vertex is a vertex other than the first type vertex in the geometric structure.

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

[0355] In a case where the Euclidean distance between the first type of vertex and the second type of vertex satisfies a fifth condition, the first type of vertex is deleted;

[0356] In a case where the Euclidean distance between the first type of vertex and the second type of vertex does not satisfy the fifth condition, the first type of vertex is modified to a target position.

[0357] Optionally, the target position is a midpoint of the first type of vertex and a target second type of vertex, and the target second type of vertex is a second type of vertex whose Euclidean distance from the first type of vertex satisfies a sixth condition.

[0358] Optionally, the processor 1110 is further configured to:

[0359] determine an initial position of a centroid vertex of the Trisoup node according to the second type of vertex and the modified first type of vertex;

[0360] determine an offset value of the centroid vertex according to the initial position of the centroid vertex and the original point cloud;

[0361] encode the offset value into a first code stream, and determine an offset centroid vertex position according to the initial position of the centroid vertex and the offset value.

[0362] Optionally, the processor 1110 is further configured to:

[0363] encode a first flag into a second code stream, and the first flag is used to indicate whether to enable or not to enable the Trisoup vertex optimization technology.

[0364] In the embodiments of the present application, the encoding end or the decoding end determines the first type of vertex according to the axial distribution information of the vertices of the Trisoup node and the total number of the vertices, and deletes or modifies the first type of vertex. By deleting or modifying the first type of vertex, a large number of incorrect point clouds can be removed, and the performance loss in the quality of the reconstructed point cloud can be reduced.

[0365] It can be understood that the implementation processes of the implementation manners mentioned in the embodiments can refer to the related descriptions of the method embodiments of the Trisoup vertex optimization method, and achieve the same or corresponding technical effects. To avoid repetition, details are not described herein.

[0366] The embodiments of the present application also provide a readable storage medium, and the readable storage medium stores a program or instructions, which are executed by a processor to implement each process of the above-mentioned Trisoup vertex optimization method embodiments, and achieve the same technical effects. To avoid repetition, details are not described herein.

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

[0368] The embodiment of the present application further provides a chip, which comprises a processor and a communication interface, wherein the communication interface is coupled with the processor, the processor is used to run programs or instructions, realizes the processes of the above Trisoup vertex optimization method embodiments, and can achieve the same technical effects. To avoid repetition, details are not described herein.

[0369] It should be understood that the chip mentioned in the embodiment of the present application can include a system on chip (SOC, also known as system chip, chip system or system on chip), and can also include a standalone display chip, etc.

[0370] The embodiment of the present application further provides a computer program / program product, which is stored in a storage medium, and is executed by at least one processor to realize the processes of the above Trisoup vertex optimization method embodiments, and can achieve the same technical effects. To avoid repetition, details are not described herein.

[0371] The embodiment of the present application further provides a codec system, which comprises an encoding end device and a decoding end device. The encoding end device can be used to execute the steps of the Trisoup vertex optimization method applied to the encoding end as described above. The decoding end device can be used to execute the steps of the Trisoup vertex optimization method applied to the decoding end as described above.

[0372] The embodiment of the present application further provides a computer program product, which is executed by a processor to realize the steps of the Trisoup vertex optimization method as described above, and can achieve the same technical effects. To avoid repetition, details are not described herein.

[0373] It should be noted that, in the present document, the terms "comprises", "comprising", or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can also include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises a", "comprising", or the like does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element. Furthermore, it is to be understood that the methods and apparatuses of the present application can be carried out by specific hardware, by software, or by a combination of hardware and software. It is therefore, contemplated to this patent to cover any and all modifications, variations, or equivalents that fall within the scope of the present application. Accordingly, where a concept can have been illustrated in only one of the exemplary embodiments, various aspects of the concept can be modified and / or combined to produce a variety of other embodiments that are not specifically illustrated. Thus, for purposes of describing particular embodiments, reference has been made to orientations. However, it should be understood that the described embodiments can be carried out in other orientations than those explicitly described without departing from the scope of the present application.

[0374] From the above description of the embodiments, it is apparent that the above-mentioned method can be realized by means of a computer software product and a 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.

[0375] 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, but 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 Trisoup vertex optimization method, characterized by, The method comprises the following steps: The decoding end determines the axial distribution information of the vertices in the geometry structure corresponding to the Trisoup node and the total number of the vertices contained in the geometry structure; The decoding end determines the first type of vertices according to the axial distribution information and the total number of the vertices; The decoding end deletes or corrects the first type of vertices.

2. The method of claim 1, wherein, The method for determining the axial distribution information of the vertices in the geometry structure corresponding to the Trisoup node comprises the following steps: Determine the distribution information of the vertices in the geometry structure corresponding to the Trisoup node in each of the three axial directions; The distribution information is used to indicate that the vertices are distributed in the positive or negative half axis of each axial direction, and / or the number of vertices distributed in the positive or negative half axis of each axial direction.

3. The method according to claim 1 or 2, characterized in that, The method for determining the axial distribution information of the vertices in the geometry structure corresponding to the Trisoup node comprises at least one of the following steps: For a target axial direction in the three axial directions, in the case that the vertex coordinate satisfies a first condition, it is determined that the vertex is distributed in the negative half axis of the target axial direction, and a first number of vertices located in the negative half axis of the target axial direction is determined; the first condition comprises that the distance between the dimension value of the target axial direction of the vertex coordinate and the dimension value of the target axial direction of the starting point of the edge where the vertex is located is less than or equal to a first threshold value; For a target axial direction in the three axial directions, in the case that the vertex coordinate satisfies a second condition, it is determined that the vertex is distributed in the positive half axis of the target axial direction, and a second number of vertices located in the positive half axis of the target axial direction is determined; the second condition comprises that the distance between the dimension value of the target axial direction of the vertex coordinate and the dimension value of the target axial direction of the ending point of the edge where the vertex is located is less than or equal to a second threshold value.

4. The method according to any one of claims 1 to 3, characterized in that, The method for determining the first type of vertices according to the axial distribution information and the total number of the vertices comprises at least one of the following steps: For a target axial direction in the three axial directions, in the case that the ratio of the first number to the total number of the vertices is greater than or equal to a third threshold value, it is determined that the vertex satisfying a third condition is the first type of vertex; the third condition comprises that the dimension value of the target axial direction of the vertex coordinate is equal to the dimension value of the target axial direction of the ending point of the edge where the vertex is located; the first number is the number of vertices located in the negative half axis of the target axial direction; For a target axial direction in the three axial directions, in the case that the ratio of the second number to the total number of the vertices is greater than or equal to a fourth threshold value, it is determined that the vertex satisfying a fourth condition is the first type of vertex; the fourth condition comprises that the dimension value of the target axial direction of the vertex coordinate is equal to the dimension value of the target axial direction of the starting point of the edge where the vertex is located; the second number is the number of vertices located in the positive half axis of the target axial direction.

5. The method according to any one of claims 1 to 4, characterized in that, The method further comprises the following steps: If there is a first type of vertex in at least two of the three axial directions, the first type of vertex is screened; The method for deleting or correcting the first type of vertices comprises the following steps: The first type of vertices after screening is deleted or corrected.

6. The method of claim 5, wherein, The method for screening the first type of vertices comprises at least one of the following steps: determine intersections between the first type of vertices of the at least two axial directions, and the first type of vertices in the intersections are the screened first type of vertices; if there is no intersection between the first type of vertices of the at least two axial directions, determine the first type of vertices of the axial direction with the largest number of first type of vertices as the screened first type of vertices.

7. The method according to claim 1 or 5, characterized in that, the deleting or correcting the first type of vertices comprises: deleting or correcting the first type of vertices according to the Euclidean distance between the first type of vertices and the second type of vertices; wherein the second type of vertices are other vertices in the geometric structure except the first type of vertices.

8. The method according to claim 1 or 6 or 7, characterized in that, the deleting or correcting the first type of vertices comprises at least one of: deleting the first type of vertices in the case that the Euclidean distance between the first type of vertices and the second type of vertices satisfies a fifth condition; correcting the first type of vertices to a target position in the case that the Euclidean distance between the first type of vertices and the second type of vertices does not satisfy the fifth condition.

9. The method of claim 8, wherein, the target position is a midpoint of the first type of vertices and a target second type of vertex, and the target second type of vertex is a second type of vertex whose Euclidean distance with the first type of vertices satisfies a sixth condition.

10. The method of claim 1, wherein, the method further comprises: decoding a first code stream to obtain an offset value of a centroid vertex of the Trisoup node; determining an initial position of the centroid vertex of the Trisoup node according to the second type of vertices and the corrected first type of vertices; determining an offset centroid vertex position according to the initial position of the centroid vertex and the offset value.

11. The method of claim 1, wherein, the method further comprises: decoding a second code stream to obtain a first flag, and the first flag is used to indicate whether to enable or not to enable the Trisoup vertex optimization technology.

12. A method of Trisoup vertex optimization, characterized by, comprises: determining, by an encoding end, axial distribution information of vertices in a geometric structure corresponding to a Trisoup node and a total number of vertices contained in the geometric structure; determining, by the encoding end, first type of vertices according to the axial distribution information and the total number of vertices; deleting or correcting, by the encoding end, the first type of vertices.

13. The method of claim 12, wherein, the determining the axial distribution information of the vertices in the geometric structure corresponding to the Trisoup node comprises: determining distribution information of the vertices in the geometric structure corresponding to the Trisoup node in each of the three axial directions; wherein the distribution information is used to indicate that the vertices are distributed in the positive or negative half axis of each axial direction, and / or the number of vertices distributed in the positive or negative half axis of each axial direction.

14. The method according to claim 12 or 13, characterized in that, the determining the axial distribution information of the vertices in the geometric structure corresponding to the Trisoup node comprises at least one of: for a target axial direction of the three axial directions, in the case that a vertex coordinate satisfies a first condition, determining that the vertex is distributed in the negative half axis of the target axial direction, and determining a first number of vertices located in the negative half axis of the target axial direction; the first condition comprises that the distance between the dimension value of the target axial direction of the vertex coordinate and the dimension value of the target axial direction of the start point of the edge where the vertex is located is less than or equal to a first threshold value; For a target axis among the three axes, in a case where the vertex coordinate satisfies a second condition, it is determined that the vertex is distributed on a positive half axis of the target axis, and a second number of vertices located on the positive half axis of the target axis is determined; the second condition comprises that a distance between a dimension value of the target axis of the vertex coordinate and a dimension value of the target axis of an end point of an edge where the vertex is located is less than or equal to a second threshold value.

15. The method according to any one of claims 12 to 14, characterized in that, The determining the first type of vertex according to the axis distribution information and the total number of vertices comprises at least one of the following: For a target axis among the three axes, in a case where a ratio of the first number to the total number of vertices is greater than or equal to a third threshold value, it is determined that a vertex satisfying a third condition is a first type of vertex; the third condition comprises that a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of an end point of an edge where the vertex is located; the first number is a number of vertices located on a negative half axis of the target axis; For a target axis among the three axes, in a case where a ratio of the second number to the total number of vertices is greater than or equal to a fourth threshold value, it is determined that a vertex satisfying a fourth condition is a first type of vertex; the fourth condition comprises that a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of a start point of an edge where the vertex is located; the second number is a number of vertices located on a positive half axis of the target axis.

16. The method according to any one of claims 12 to 15, characterized in that, The method further comprises: If there is a first type of vertex in at least two axes among the three axes, the first type of vertex is screened; The deleting or correcting the first type of vertex comprises: The deleting or correcting the first type of vertex.

17. The method of claim 16, wherein, The screening the first type of vertex comprises at least one of the following: An intersection between the first type of vertices of the at least two axes is determined, and the first type of vertices in the intersection are screened first type of vertices; If there is no intersection between the first type of vertices of the at least two axes, it is determined that the first type of vertices of an axis with the largest number of first type of vertices are screened first type of vertices.

18. The method of claim 12 or 16, wherein, The deleting or correcting the first type of vertex comprises: According to the Euclidean distance between the first type of vertex and a second type of vertex, the first type of vertex is deleted or corrected; The second type of vertex is a vertex other than the first type of vertex in the geometric structure.

19. The method of claim 12 or 17 or 18, wherein, The deleting or correcting the first type of vertex comprises at least one of the following: In a case where the Euclidean distance between the first type of vertex and a second type of vertex satisfies a fifth condition, the first type of vertex is deleted; In a case where the Euclidean distance between the first type of vertex and a second type of vertex does not satisfy the fifth condition, the first type of vertex is corrected to a target position.

20. The method of claim 19, wherein, The target position is a midpoint of the first type of vertex and a target second type of vertex, and the target second type of vertex is a second type of vertex with a Euclidean distance satisfying a sixth condition from the first type of vertex.

21. The method of claim 12, wherein, The method further comprises: determine an initial position of a centroid vertex of the Trisoup node according to the second type of vertices and the modified first type of vertices; determine an offset value of the centroid vertex according to the initial position of the centroid vertex and the original point cloud; encode the offset value into a first bitstream, and determine an offset centroid vertex position according to the initial position of the centroid vertex and the offset value.

22. The method of claim 12, wherein, The method further includes: encoding a first flag into a second bitstream, the first flag being used to indicate whether the Trisoup vertex optimization technique is enabled or not.

23. A Trisoup vertex optimization apparatus, characterized by, comprise: a first determining module, configured to determine axial distribution information of vertices in a geometry structure corresponding to a Trisoup node and a total number of vertices contained in the geometry structure; a second determining module, configured to determine a first type of vertices according to the axial distribution information and the total number of vertices; a first processing module, configured to delete or modify the first type of vertices.

24. The apparatus of claim 23, wherein, The first determining module is specifically configured to: determine distribution information of vertices in a geometry structure corresponding to a Trisoup node in each of three axial directions; wherein the distribution information is used to indicate that the vertices are distributed in a positive or negative half axis of each axial direction, and / or the number of vertices distributed in a positive or negative half axis of each axial direction.

25. The apparatus of claim 23 or 24, wherein, The first determining module is specifically configured to perform at least one of the following: for a target axial direction of the three axial directions, in a case where a vertex coordinate satisfies a first condition, it is determined that the vertex is distributed in a negative half axis of the target axial direction, and a first number of vertices located in the negative half axis of the target axial direction is determined; the first condition includes that a distance between a dimension value of a target axial direction of the vertex coordinate and a dimension value of a target axial direction of a start point of an edge where the vertex is located is less than or equal to a first threshold value; for a target axial direction of the three axial directions, in a case where a vertex coordinate satisfies a second condition, it is determined that the vertex is distributed in a positive half axis of the target axial direction, and a second number of vertices located in the positive half axis of the target axial direction is determined; the second condition includes that a distance between a dimension value of a target axial direction of the vertex coordinate and a dimension value of a target axial direction of an end point of an edge where the vertex is located is less than or equal to a second threshold value.

26. The apparatus of claim 23 or 25, wherein, The second determining module is specifically configured to perform at least one of the following: for a target axial direction of the three axial directions, in a case where a ratio of the first number to the total number of vertices is greater than or equal to a third threshold value, it is determined that a vertex satisfying a third condition is a first type of vertex; the third condition includes that a dimension value of a target axial direction of the vertex coordinate is equal to a dimension value of a target axial direction of an end point of an edge where the vertex is located; the first number is the number of vertices located in the negative half axis of the target axial direction; for a target axial direction of the three axial directions, in a case where a ratio of the second number to the total number of vertices is greater than or equal to a fourth threshold value, it is determined that a vertex satisfying a fourth condition is a first type of vertex; the fourth condition includes that a dimension value of a target axial direction of the vertex coordinate is equal to a dimension value of a target axial direction of a start point of an edge where the vertex is located; the second number is the number of vertices located in the positive half axis of the target axial direction.

27. The apparatus of any one of claims 23 to 26, wherein, The apparatus further comprises The second processing module is configured to screen the first type of vertex if there is the first type of vertex in at least two of the three axial directions. The first processing module is specifically configured to delete or correct the screened first type of vertex.

28. The apparatus of claim 27, wherein, The second processing module is specifically configured to perform at least one of the following: Determine the intersection between the first type of vertices in the at least two axial directions, and the first type of vertices in the intersection are the screened first type of vertices. If there is no intersection between the first type of vertices in the at least two axial directions, determine the first type of vertices in the axial direction with the largest number of first type of vertices as the screened first type of vertices.

29. The apparatus of claim 23 or 27, wherein, The first processing module is specifically configured to: Delete or correct the first type of vertex according to the Euclidean distance between the first type of vertex and the second type of vertex. The second type of vertex is a vertex in the geometric structure other than the first type of vertex.

30. The apparatus of claim 23 or 28 or 29, wherein, The first processing module is specifically configured to perform at least one of the following: In the case that the Euclidean distance between the first type of vertex and the second type of vertex satisfies the fifth condition, delete the first type of vertex; In the case that the Euclidean distance between the first type of vertex and the second type of vertex does not satisfy the fifth condition, correct the first type of vertex to a target position.

31. The apparatus of claim 30, wherein, The target position is the midpoint of the first type of vertex and a target second type of vertex, and the target second type of vertex is a second type of vertex whose Euclidean distance from the first type of vertex satisfies a sixth condition.

32. The apparatus of claim 23, wherein, The device further comprises: A first decoding module configured to decode a first code stream to obtain an offset value of a centroid vertex of the Trisoup node; A third determining module configured to determine an initial position of the centroid vertex of the Trisoup node according to a second type of vertex and a corrected first type of vertex; A fourth determining module configured to determine an offset centroid vertex position according to the initial position of the centroid vertex and the offset value.

33. The apparatus of claim 23, wherein, The device further comprises: A second decoding module configured to decode a second code stream to obtain a first flag, the first flag being used to indicate whether to enable or not to enable a Trisoup vertex optimization technology.

34. A Trisoup vertex optimization apparatus, characterized by, Comprise: A fifth determining module configured to determine axial distribution information of vertices in a geometric structure corresponding to a Trisoup node and a total number of vertices contained in the geometric structure; A sixth determining module configured to determine a first type of vertex according to the axial distribution information and the total number of vertices; A third processing module configured to delete or correct the first type of vertex.

35. The apparatus of claim 34, wherein, The fifth determining module is specifically configured to: Determine the distribution information of vertices in a geometric structure corresponding to a Trisoup node in each of the three axial directions. The distribution information is used to indicate that the vertices are distributed in the positive or negative half axis of each axial direction, and / or the number of vertices distributed in the positive or negative half axis of each axial direction.

36. The apparatus of claim 34 or 35, wherein The fifth determining module is specifically configured to perform at least one of the following: For a target axis among the three axes, in a case where the vertex coordinate satisfies a first condition, it is determined that the vertex is distributed on a negative half axis of the target axis, and a first number of vertices located on the negative half axis of the target axis is determined; the first condition comprises: a distance between a dimension value of the target axis of the vertex coordinate and a dimension value of the target axis of a start point of an edge where the vertex is located is less than or equal to a first threshold value; For a target axis among the three axes, in a case where the vertex coordinate satisfies a second condition, it is determined that the vertex is distributed on a positive half axis of the target axis, and a second number of vertices located on the positive half axis of the target axis is determined; the second condition comprises: a distance between a dimension value of the target axis of the vertex coordinate and a dimension value of the target axis of an end point of the edge where the vertex is located is less than or equal to a second threshold value.

37. The apparatus of claim 34 or 36, wherein, The sixth determining module is specifically configured to perform at least one of the following: For a target axis among the three axes, in a case where a ratio of the first number to a total number of the vertices is greater than or equal to a third threshold value, it is determined that a vertex satisfying a third condition is a first type vertex; the third condition comprises: a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of the end point of the edge where the vertex is located; the first number is a number of vertices located on the negative half axis of the target axis; For a target axis among the three axes, in a case where a ratio of the second number to the total number of the vertices is greater than or equal to a fourth threshold value, it is determined that a vertex satisfying a fourth condition is a first type vertex; the fourth condition comprises: a dimension value of the target axis of the vertex coordinate is equal to a dimension value of the target axis of the start point of the edge where the vertex is located; the second number is a number of vertices located on the positive half axis of the target axis.

38. The apparatus of any one of claims 34 to 37, wherein, The device further comprises: A fourth processing module configured to, if there is at least one first type vertex in at least two axes among the three axes, screen the first type vertex; The third processing module is specifically configured to: delete or correct the screened first type vertex.

39. The device of claim 38, wherein, The fourth processing module is specifically configured to perform at least one of the following: determine an intersection between the first type vertices of the at least two axes, and the first type vertices in the intersection are the screened first type vertices; if there is no intersection between the first type vertices of the at least two axes, determine that the first type vertices of an axis with the largest number of first type vertices are the screened first type vertices.

40. The apparatus of claim 34 or 38, wherein, The third processing module is specifically configured to: delete or correct the first type vertex according to a Euclidean distance between the first type vertex and a second type vertex; wherein the second type vertex is a vertex other than the first type vertex in the geometric structure.

41. The apparatus of claim 33 or 39 or 40, wherein, The third processing module is specifically configured to perform at least one of the following: in a case where the Euclidean distance between the first type vertex and the second type vertex satisfies a fifth condition, delete the first type vertex; in a case where the Euclidean distance between the first type vertex and the second type vertex does not satisfy the fifth condition, correct the first type vertex to a target position.

42. The device of claim 41, wherein, The target position is a midpoint of the first type vertex and a target second type vertex, and the target second type vertex is a second type vertex whose Euclidean distance from the first type vertex satisfies a sixth condition.

43. The apparatus of claim 34, wherein, The device further comprises: A seventh determining module configured to determine an initial position of a centroid vertex of the Trisoup node according to the second type vertex and the corrected first type vertex; An eighth determining module configured to determine an offset value of the centroid vertex according to the initial position of the centroid vertex and the original point cloud; A first encoding module configured to encode the offset value into a first bitstream, and determine an offset centroid vertex position according to the initial position of the centroid vertex and the offset value.

44. The device of claim 34, wherein, The device further comprises: A second encoding module configured to encode a first flag into a second bitstream, and the first flag is used to indicate whether to enable or not to enable the Trisoup vertex optimization technology.

45. An electronic device, comprising: A processor and a memory, 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 Trisoup vertex optimization method according to any one of claims 1 to 11, or implement the steps of the Trisoup vertex optimization method according to any one of claims 12 to 22.

46. A readable storage medium characterized by, The readable storage medium stores programs or instructions, and the programs or instructions are executed by the processor to implement the Trisoup vertex optimization method according to any one of claims 1 to 11, or implement the steps of the Trisoup vertex optimization method according to any one of claims 12 to 22.

47. A chip, comprising: The chip comprises a processor and a communication interface, the communication interface and the processor are coupled, and the processor is used to run programs or instructions to implement the steps of the method according to any one of claims 1 to 11, or implement the steps of the method according to any one of claims 12 to 22.

48. A computer program product, characterised in that, The computer instructions are executed by the processor to implement the steps of the method according to any one of claims 1 to 11, or implement the steps of the method according to any one of claims 12 to 22.