Method and apparatus for coding presence flags for point clouds and data streams containing presence flags - Patents.com

By constructing context information from occupancy and vertex position data for adjacent cubes, the method enhances the compression efficiency of TriSoup data using entropy codecs, addressing the inefficiencies in existing point cloud data compression techniques.

JP7813908B2Active Publication Date: 2026-02-13BEIJING XIAOMI MOBILE SOFTWARE CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024559091
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-04-07
Filing Date
2023-02-22
Publication Date
2026-02-13
Estimated Expiration
2043-02-22

AI Technical Summary

Technical Problem

Existing methods for compressing point cloud data, particularly TriSoup data, are inefficient and do not effectively utilize context information for entropy codecs, leading to poor compression of vertex flags or presence flags.

Method used

The method involves constructing context information based on occupancy and vertex position information of adjacent cubes to select a coding probability for an entropy codec, such as CABAC or OBUF, to improve the estimation of vertex flag probabilities, thereby enhancing compression efficiency.

Benefits of technology

This approach improves the compression of vertex flags by entropy codecs, achieving better estimation of flag probabilities and resulting in more efficient compression of TriSoup data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007813908000001
    Figure 0007813908000001
  • Figure 0007813908000002
    Figure 0007813908000002
  • Figure 0007813908000003
    Figure 0007813908000003
Patent Text Reader

Abstract

A method is described for encoding geometric information of a geometric figure of a point cloud into a bitstream. The point cloud is represented by a number of cubes, and the occupied cubes are modeled by one or more triangles. At least one triangle has at least one corresponding vertex on an edge of the occupied cube. The geometric information includes a presence flag for signaling the presence of a vertex. The method includes the steps of: constructing (S100) context information for a current edge based on one or more or all of the following: occupation information of adjacent cubes adjacent to the current edge; and vertex position information of the encoded adjacent edges of the current edge, the adjacent edges having a common point with the current edge; selecting a coding probability for an entropy codec using the context information (S102); and encoding (S104) the presence flag of the current edge by the entropy codec using the selected coding probability.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to data compression, and more particularly to methods and apparatus for coding geometric information of the geometry of a point cloud. Embodiments of the present disclosure relate to methods and apparatus for coding presence flags in a signal signaling the presence of triangle vertices on the edges of a cube representing a portion of a point cloud, and to data or bitstreams in which the presence flags are encoded. [Background technology]

[0002] Data compression is used in communications and computer networks to efficiently store, transmit, and reproduce information. For example, point clouds have recently gained attention as a format for representing three-dimensional (3D) data due to their versatility in representing any type of 3D object or scene. Therefore, point clouds can be used to solve many use cases, such as: Film post-production, Real-time 3D immersive presence or VR / AR (virtual reality / augmented reality) applications, Free viewpoint video for watching sports, etc. Geographic information systems, also known as cartography, Preserving in digital form scans of small pieces of cultural heritage, e.g. Autonomous driving, including 3D mapping of the environment and real-time LiDAR data collection (LiDAR: Light Detection and Ranging, a method of measuring distance by shining a laser at an object and measuring the reflected light with a sensor).

[0003] Therefore, there is a need to provide a method and apparatus for more efficiently and / or effectively compressing point cloud data. Summary of the Invention [Means for solving the problem]

[0004] The present disclosure provides a method for encoding geometric information of a geometric figure of a point cloud into a bitstream, where the point cloud is represented by a plurality of cubes, the occupied cubes are modeled by one or more triangles, at least one triangle has at least one corresponding vertex on an edge of the occupied cube, and the geometric information includes a presence flag that signals the presence of a vertex, the method comprising the steps of: constructing context information for a current edge based on one or more or all of: - occupancy information of adjacent cubes adjacent to the current edge; and - vertex position information of encoded adjacent edges of the current edge, the adjacent edges being edges that have a common point with the current edge; selecting a coding probability for an entropy codec using the context information; and encoding the presence flag of the current edge by the entropy codec using the selected coding probability.

[0005] The present disclosure provides a method for decoding geometric information of a geometric figure of a point cloud from a bitstream, where the point cloud is represented by a plurality of cubes, where an occupied cube is modeled by one or more triangles, where at least one triangle has at least one corresponding vertex on an edge of the occupied cube, and where the geometric information includes a presence flag that signals the presence of a vertex, the method comprising the steps of: for a current edge, constructing context information based on one or more or all of: - occupancy information of adjacent cubes adjacent to the current edge; and - vertex position information of decoded adjacent edges of the current edge, the adjacent edges being edges that have a common point with the current edge; selecting a coding probability for an entropy codec using the context information; and decoding the presence flag of the current edge by the entropy codec using the selected coding probability.

[0006] Optionally, the context information is constructed based on one or more or all of: - a total number of all occupied adjacent cubes belonging to a subset of adjacent cubes; and - whether all adjacent cubes belonging to the subset of adjacent cubes are occupied, where the subset of adjacent cubes includes one or more or all of: - adjacent cubes that share the current edge; - adjacent cubes that have a corner as the start point of the current edge; and - adjacent cubes that have a corner as the end point of the current edge.

[0007] Optionally, the context information is constructed based on one or more or all of: - the values ​​of the encoded / decoded existence flags associated with the adjacent edges of the current edge; - the positions of vertices on the encoded / decoded adjacent edges of the current edge; - the total number of vertices on the encoded / decoded adjacent edges of the current edge whose distance to the current edge is less than a predetermined threshold; - the total number of vertices on the encoded / decoded adjacent edges of the current edge whose distance to the current edge is within a predetermined interval.

[0008] Optionally, the context information is constructed based on: - the number of adjacent edges whose coded / decoded existence flags are true and the number of adjacent edges whose coded / decoded existence flags are false; or - only the number of adjacent edges whose coded / decoded existence flags are false.

[0009] Optionally, constructing the context information includes quantizing the positions of vertices in the coded / decoded adjacent edges more coarsely than encoding the positions of vertices in the coded / decoded adjacent edges into the bitstream.

[0010] To select the coding probabilities of the entropy codec, the method uses either an optimal binary codec OBUF mechanism with dynamic update, or a context self-adaptive binary arithmetic coding CABAC mechanism.

[0011] Optionally, model the point cloud using the TriSoup coding solution.

[0012] The present disclosure provides a non-transitory computer-readable storage medium containing instructions that, when executed by a computer, cause the computer to perform the method of the present invention.

[0013] The present disclosure provides an apparatus for encoding geometric information of a geometric figure of a point cloud into a bitstream, the point cloud being represented by a plurality of cubes, the occupied cubes being modeled by one or more triangles, at least one triangle having at least one corresponding vertex on an edge of the occupied cube, and the geometric information including an existence flag that signals the existence of a vertex, the apparatus including: a context information construction module configured to construct context information for a current edge based on one or more or all of: occupation information of adjacent cubes adjacent to the current edge; and vertex position information of encoded adjacent edges of the current edge that are edges that have a common point with the current edge; a selection module configured to select a coding probability of an entropy codec using the context information provided by the context information construction module; and an encoding module configured to encode the existence flag of the current edge using the selected coding probability by the entropy codec.

[0014] The present disclosure provides an apparatus for decoding geometric information of a geometric figure of a point cloud from a bitstream, the point cloud being represented by a plurality of cubes, the occupied cubes being modeled by one or more triangles, at least one triangle having at least one corresponding vertex on an edge of the occupied cube, and the geometric information including an existence flag that signals the existence of a vertex, the apparatus including: a context information construction module configured to construct context information for a current edge based on one or more or all of: - occupancy information of adjacent cubes adjacent to the current edge; and - vertex position information of decoded adjacent edges of the current edge that are edges that have a common point with the current edge; a selection module configured to select a coding probability of an entropy codec using the context information provided by the context information construction module; and a decoding module configured to decode the existence flag of the current edge using the selected coding probability by the entropy codec.

[0015] Optionally, the context information construction module includes one or more or all of: an occupancy information acquisition sub-module configured to acquire occupancy information of adjacent cubes adjacent to the current edge; a vertex presence acquisition sub-module configured to acquire vertex presences on the encoded / decoded adjacent edge; and a vertex position acquisition sub-module configured to acquire vertex positions along the encoded / decoded adjacent edge.

[0016] Optionally, the vertex existence obtaining sub-module is configured to obtain the values ​​of the encoded / decoded existence flags associated with the neighboring edges of the current edge.

[0017] Optionally, the vertex position acquisition sub-module is configured to acquire one or more or all of: - the positions of vertices in the coded / decoded adjacent edges of the current edge; - the total number of vertices in the coded / decoded adjacent edges of the current edge, the distance between the vertices and the current edge being lower than a predetermined threshold; - the total number of vertices in the coded / decoded adjacent edges of the current edge, the distance between the vertices and the current edge being within a predetermined interval.

[0018] The present disclosure provides a data stream in which geometric information of a geometric figure of a point cloud is encoded, the point cloud being represented by a plurality of cubes, the occupied cubes being modeled by one or more triangles, at least one triangle having at least one corresponding vertex on an edge of the occupied cube, the geometric information including a presence flag that signals the presence of a vertex, the data stream including a presence flag of a current edge that is coded into the data stream by an entropy codec using a coding probability selected using context information for the current edge, the context information being constructed based on one or more or all of: - occupancy information of adjacent cubes adjacent to the current edge; and - vertex position information of the coded adjacent edges of the current edge that are edges that have a common point with the current edge. [Effects of the Invention]

[0019] The technical solutions provided by the embodiments of the present disclosure have the following beneficial effects: While the prior art does not efficiently compress TriSoup data, embodiments of the present disclosure provide improved compression for vertex flags or presence flags, which indicate the presence of a TriSoup vertex at an edge of an occupied leaf node / volume. In the prior art, compressing vertex flags using a binary entropy codec with one dedicated fixed context results in poor compression. The present disclosure introduces a method for selecting a context or entropy codec (e.g., by using an optimal binary codec with dynamic update (OBUF) mechanism) using better context information, which can better estimate the probability that a vertex or presence flag is false (0) or true (1), and thus the entropy codec can better compress the flags.

[0020] An embodiment of the present disclosure obtains relevant context information about the values ​​of vertex flags.

[0021] It should be noted that the contents described in this section do not identify key or important features of the embodiments of the present disclosure, nor do they limit the scope of the present disclosure. The following description will make other features of the present disclosure easier to understand. [Brief explanation of the drawings]

[0022] The drawings are illustrative for the purpose of explaining the disclosure and should not be construed as limiting the disclosure to the embodiments shown. [Figure 1] The TriSoup vertices along the edges of the volume associated with the leaf nodes represented by the octree of the point cloud geometry. [Figure 2] A volume where each vertex contains two TriSoup triangles on the edge of the volume. [Figure 3] A volume containing a TriSoup triangle, two of whose vertices are on the edges of the volume and one of whose vertices is in the interior of the volume. [Figure 4] A procedure for selecting triangles constructed inside a leaf node, where Fig. 4(a) is the volume of Fig. 2 without triangles, Fig. 4(b) is the 2D surface of triangles using vertical projections of the volume, and Fig. 4(c) is the 2D surface of triangles using vertical-horizontal projections of the volume. [Figure 5] The volume in Figure 2 has two TriSoup triangles, which are constructed under the assumption that the horizontal axis is the major axis. [Figure 6] TriSoup is a ray tracing method that renders triangles into a decoded point cloud. [Figure 7] 1 is a flowchart of a method for encoding geometric information of a point cloud geometry into a bitstream according to an embodiment of the present disclosure. [Figure 8] 1 is a flowchart of a method for decoding geometric information of geometric figures of point clouds from a bitstream according to an embodiment of the present disclosure. [Figure 9] 1 is a data stream according to an embodiment of the present disclosure. [Figure 10] 1 is a flowchart of an encoding method according to an embodiment of the present disclosure. [Figure 11] 1 is a flowchart of a decoding method according to an embodiment of the present disclosure. [Figure 12] There are four leaf nodes / volumes that share the current edge k (indicated by the arrow). [Figure 13] There are eight leaf nodes / volumes, and one corner of the eight leaf nodes / volumes is the start or end point of the current edge k (indicated by an arrow). [Figure 14] The only edge k' (shown by the dashed arrow) is parallel to the current edge k (shown by the arrow) and points to its starting point. [Figure 15] Four perpendicular edges k' (indicated by dashed arrows) that are perpendicular to the current edge k (indicated by arrows) and point to or start from its starting point. [Figure 16] Nperp(k) is the number of coded / decoded perpendicular edges k' according to the direction of the current edge k. [Figure 17] The encoded / decoded TriSoup vertex Vpar and the encoded / decoded unique quantized position ppar,Q on edge k'. [Figure 18] The "near" vs. "far" positions of the vertices belonging to the encoded / decoded perpendicular edge k'. [Figure 19] The positions of the vertices belonging to the coded / decoded vertical edge k' are "near", "middle", and "far". [Figure 20] FIG. 2 is a block diagram of an apparatus / encoder for encoding vertex flags sk according to an embodiment. [Figure 21] FIG. 2 is a block diagram of an apparatus / decoder for decoding vertex flags sk according to an embodiment. [Figure 22] FIG. 22 is a block diagram for implementing an embodiment of a context information construction module in the encoder usable in FIG. 20 or the decoder in FIG. 21. [Figure 23] FIG. 1 is a block diagram of an electronic device configured to implement an image processing method according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0023] Hereinafter, illustrative embodiments of the present disclosure will be described in conjunction with the drawings, where various details of the embodiments of the present disclosure are included for ease of understanding and should be understood as explanatory. Therefore, as will be apparent to those skilled in the art, various changes and modifications can be made to the embodiments described herein without departing from the scope of the present disclosure. At the same time, for the sake of clarity and conciseness, the following description will omit descriptions of well-known functions and configurations.

[0024] In this disclosure, the terms "node," "volume," and "sub-volume" can be used interchangeably. Note that a node is associated with a volume or sub-volume. A node is a specific point on a tree and may be an internal node or a leaf node. A volume or sub-volume is a bounded physical space represented by a node. In some cases, the term "volume" is used to refer to the largest bounded space defined to contain the point cloud. A volume can be recursively divided into sub-volumes to build a tree structure of interconnected nodes of coded cloud data.

[0025] In this disclosure, the term "and / or" is intended to cover all possible combinations and subcombinations of the listed elements, including any one element, any subcombination, or all of the individually listed elements, but not necessarily including additional elements.

[0026] In this disclosure, the term "at least one of ... or ..." is intended to cover any one or more of the listed elements, including any one element, any subcombination, or all of the listed elements individually, but not necessarily including additional elements.

[0027] In this disclosure, the term "coding" refers to "encoding" or "decoding," as is clear in the context of the described embodiments for encoding / decoding geometric information into / from a bitstream. Similarly, "coder" refers to "encoder" or "decoder."

[0028] A point cloud is a collection of points in a three-dimensional coordinate system. These points are typically intended to represent the exterior surfaces of one or more objects. Every point has a position or orientation in the three-dimensional coordinate system. The position can be represented by three coordinates (X, Y, Z), which may be Cartesian or other coordinate systems. The points may have other associated attributes, such as color, which may in some cases be a triplet value such as R, G, B or Y, Cb, Cr. Other associated attributes may include transparency, reflectance, normal vectors, etc., and are determined depending on the intended use of the point cloud data.

[0029] A point cloud may be static or dynamic. For example, a detailed scan or drawing of an object or terrain may be static point cloud data. LiDAR-based environmental scanning for machine vision purposes may be dynamic because the point cloud changes at least over time, e.g., with each successive scan of a volume. A dynamic point cloud is thus a time-ordered sequence of point clouds.

[0030] As mentioned above, point cloud data can be used for a variety of applications and use cases, including conservation, such as scanning historical or cultural objects, surveying and mapping, machine vision (e.g., autonomous or semi-autonomous vehicles), and virtual or augmented reality systems. Dynamic point cloud data used for applications such as machine vision can differ significantly from static point cloud data used for conservation purposes. For example, automotive vision typically involves low-resolution, colorless, highly dynamic point clouds acquired at high capture frequencies via LiDAR or similar sensors. These point clouds are not intended for human consumption or display, but rather for the detection and classification of mechanical objects in decision-making processes. For example, a typical LiDAR frame contains approximately tens of thousands of points, while high-quality virtual reality applications require millions of points. Over time, as computing speeds increase and new applications and use cases are discovered, it is expected that higher-resolution data will be required.

[0031] In other words, a point cloud is a collection of points arranged in 3D space, each of which may optionally have additional values ​​attached to it. These additional values ​​are typically called point attributes. Thus, a point cloud may be thought of as a combination of geometry (the 3D position of each point) and attributes. Attributes may be, for example, a three-component color, a material attribute (e.g., reflectance), and / or a two-component surface normal vector associated with the point. Point clouds can be captured by various types of devices, such as camera arrays, depth sensors, the aforementioned LiDAR, scanners, or they can be computer-generated (e.g., in a film post-production use case). Depending on the use case, point clouds may contain thousands to billions of points for mapping applications.

[0032] The original representation of point clouds requires a very high number of bits per point—at least a dozen bits per spatial component X, Y, or Z—and optionally provides more bits for one or more attributes, e.g., three times the 10 bits for color. Therefore, to practically deploy point cloud-based applications and use cases, compression techniques are needed that can store and distribute point clouds using reasonable storage and transmission infrastructure. In other words, while point cloud data is useful, the lack of effective and efficient compression (i.e., encoding and decoding processes) can hinder its adoption and deployment. A particular challenge in coding point clouds is coding the geometry of the point cloud, which does not occur in the case of other data compression (e.g., audio or video), and point clouds tend to be sparsely distributed, making effective coding of point locations more difficult.

[0033] Until recently, point cloud compression (also known as PCC) has not been addressed in the mass market, and there are no standardized point cloud codecs available. In 2017, the standardization working group ISO / JCT1 / SC29 / WG11, known as the Moving Image Experts Group or MPEG, started a work project on point cloud compression, which resulted in two standards: MPEG-I Part 5 (ISO / IEC 23090-5), also known as Video-Based Point Cloud Compression (V-PCC). MPEG-I Part 9 (ISO / IEC 23090-9), also known as Geometry-Based Point Cloud Compression (G-PCC).

[0034] The first version of the V-PCC standard and the first version of the G-PCC standard were completed in 2020 and 2022, respectively.

[0035] The V-PCC encoding method compresses point clouds by performing multiple projections of 3D objects to obtain two-dimensional (2D) patches that are packed into images, or, when processing moving point clouds, into videos. The images or videos are then compressed using existing image / video codecs, allowing the use of already deployed image and video solutions. Essentially, V-PCC is only effective for dense, continuous point clouds, since image / video codecs cannot compress non-smooth patches obtained from projections of sparse geometric data collected by LiDAR, for example.

[0036] The G-PCC coding method has two solutions for compressing geometric shapes. The first solution is based on an occupancy tree representation of the point cloud geometry, such as an octree, quadtree, or binary tree representation. In a tree-based structure, the 2D volume of the point cloud boundary is recursively divided into subvolumes. The nodes of the tree correspond to the subvolumes. The decision to further divide a subvolume can be based on the resolution of the tree and / or whether the subvolume contains any points. Leaf nodes can have an occupancy flag indicating whether the associated subvolume contains any points. A split flag can signal whether the node has child nodes, i.e., whether the current volume has been further divided into subvolumes. A commonly used tree structure is the octree. In this structure, all volumes / subvolumes are cubes, and each division of a subvolume creates eight other subvolumes / subcubes. Another commonly used tree structure is the KD-tree, in which a volume (e.g., a cube) is recursively bisected by an orthogonal axis. An octree is a special case of a KD-tree, whose volume is divided by three planes, each orthogonal to one of the three axes.

[0037] In other words, occupied nodes are split until a certain size is reached, and the point locations provided by occupied leaf nodes are usually at the centers of these nodes. Using neighborhood-based prediction techniques, dense point clouds can be compressed to a high degree. Sparse point clouds can be processed by directly encoding the point locations within nodes that are not of minimum size, stopping tree construction when only isolated points exist at a node. This stopping technique is also known as direct coding mode (DCM).

[0038] The second solution is based on a prediction tree, where each node represents the 3D position of one point and the relationship between nodes is a spatial prediction from parent to child. This method can only handle sparse point clouds and has the advantage of lower latency and easier decoding than using occupancy trees. However, compared to the first solution, it offers slightly better compression performance and more complex coding due to the need to intensively find the best predictor from a long list of potential predictors when building the prediction tree.

[0039] In both solutions, attribute coding (i.e., attribute encoding and attribute decoding) is performed after the coding of the entire geometry, resulting in the coding process being performed twice. Lower latency can be achieved by using slices, which decompose the 3D space into independently coded subvolumes, thereby eliminating the need for prediction between subvolumes. However, using a large number of slices can have a significant impact on compression performance.

[0040] A particularly interesting use case is the transmission of dynamic AR / VR point clouds, where dynamic means that the point cloud evolves over time. Furthermore, AR / VR point clouds are usually local D because they almost always represent the surface of an object. Therefore, AR / VR points are rarely isolated; they have many neighbors, making them highly connected (also known as dense). A dense or solid point cloud therefore exhibits a continuous surface, and its resolution allows the volumes (also known as small cubes or voxels) associated with the points to touch each other without any visible holes in the surface. Such point clouds are typically used in AR / VR environments, where users view them through devices like TVs, smartphones, or headphones, including AR / VR glasses. Point clouds can be transferred to the device or stored locally. Many AR / VR applications use moving point clouds that change over time, rather than static point clouds, which can result in large amounts of data that may need to be compressed. For example, when using an octree representation of the point cloud geometry, lossless compression can achieve slightly less than 1 bit per point (or 1 bpp), which may be insufficient for real-time transmissions, which may include millions of points per frame at frame rates as high as 50 frames per second (fps), resulting in hundreds of megabytes of data per second.

[0041] Therefore, lossy compression solutions can be used, and typically must provide enough compression so that the compressed data fits within the available bandwidth of the transmission channel while maintaining real-time transmission of frames, thereby maintaining acceptable visual quality. In many applications, bit rates as low as 0.1 bpp already allow real-time transmission, which means that lossy compression can compress the point cloud ten times more than with lossless coding solutions.

[0042] Codecs based on MPEG-I Part 5 (ISO / IEC 23090-5) or V-PCC can achieve such low bit rates by using lossy video compression, which compresses 2D frames obtained from the projection of point clouds onto a plane. Geometric shapes are represented by a series of projected patches assembled into a frame, each patch being a small local depth map. However, V-PCC is not general-purpose and is limited to narrow types of point clouds that do not represent local complex geometric shapes (e.g., trees or hair) because the resulting projected depth maps are not smooth enough to be effectively compressed in video.

[0043] On the other hand, pure 3D compression techniques can process any type of point cloud. For example, G-PCC will be able to compress dense point clouds in the future, similar to V-PCC intra-coding, while providing lossy compression that maintains the versatility of G-PCC, allowing it to process any type of point cloud, including dense point clouds, point clouds acquired by LiDAR, or point clouds representing 3D maps. To realize such a G-PCC mechanism, a so-called TriSoup coding solution based on an octree can be applied to the first layer. The TriSoup coding solution is currently under discussion in the ISO / IEC standardization working group JTC1 / SC29 / WG7. When considering the possibility of obtaining a lossy solution from G-PCC, there are three basic ways to obtain a lossy solution through the octree representation used in the 3-PCC codec: Downsampling + (lossless) encoding + re-upsampling Modify voxels locally on the encoder side · Local modeling on point clouds

[0044] The first method essentially involves downsampling the entire point cloud to a lower resolution, losslessly coding the downsampled point cloud, and then upsampling after decoding. There are many upsampling schemes that can provide good peak signal-to-noise ratio (PSNR) results when the downsampling is not too aggressive (e.g., not exceeding 2x in each direction), such as super-resolution, artificial intelligence, and learning-based 3D post-processing. However, even if the metrics show good PSNR, the visual quality is still debatable and not well-controlled.

[0045] The second method requires a lower bitrate for coding the octree, as the encoder can adjust the point cloud locally. To this end, points can be moved slightly to obtain occupancy information that can be better predicted by neighboring nodes, resulting in lossless encoding of the modified octree at a lower bitrate. Unfortunately, this method only results in a slight decrease in bitrate.

[0046] A third approach is to use a tree (e.g., an octree) to code the geometry up to a certain resolution (e.g., an NxNxN block), where N can be, for example, 4, 8, or 16. The tree is then coded using a lossless solution such as the G-PCC solution. The tree itself does not go to full depth, so it does not require a high bitrate. Also, the number of leaf nodes is small compared to the number of points in the point cloud. Then, for each NxNxN block, the point cloud is modeled via a local model. Such a model can be a mean plane or a set of triangles from one of the TriSoup coding solutions mentioned above, which are described in more detail below.

[0047] The TriSoup coding solution locally models a point cloud using a set of triangles, without the need to explicitly provide connectivity information. This is why its name comes from the phrase "soup of triangles." As previously mentioned, each NxNxN block defines a volume associated with a leaf node, and within each NxNxN block or volume, a set of triangles is used to locally model the point cloud, where the vertices of the triangles are coded along the edges of the volume associated with the leaf node of the tree. Figure 1 shows a volume 100 associated with a leaf node, which has 12 edges 1001-1000. 12 It is a cube designed by

[0048] The portion of the point cloud enclosed by the volume 100 is modeled by at least one triangle, the triangle having edges 1001-100. 12 1, five vertices 1-5 are shown, where vertices 1-4 are located on edges 1002, 1001, 1008, and 1007, respectively. Vertex 5 is not located on an edge but is within volume 100. In other words, one or more triangles are used to spatially model the point cloud, and a triangle may have at least one vertex that is on an edge of the volume, such as vertices 1-4, while other triangles may have one or two of their vertices (e.g., vertex 5) that are not on an edge but are located within volume 100, or are at the boundary of volume 100.

[0049] Vertices located on edges are shared between leaf nodes that share a common edge, which means that each edge belonging to at least one leaf node codes at most one vertex; in this way, the leaf nodes guarantee the continuity of the model. The coding of a TriSoup vertex requires two pieces of information for each edge: A vertex flag indicating whether a TriSoup vertex exists on the edge, also referred to as an existence flag in this specification · Vertex position along the edge, if any.

[0050] Therefore, the coding data includes octree data and TriSoup data. For example, the vertex flags can be freely adapted for coding by a binary arithmetic codec, which codes the vertex flags using one specific context and has a length of N=2. s The vertex positions on the edges where are coded to unit precision by pushing s bits into the bitstream, ie, bypassing the non-entropy coding by s bits.

[0051] FIG. 2 illustrates a volume 100 associated with a leaf node, including two TriSoup triangles 102 and 104, whose vertices 1 through 4 are on the edges of volume 100 (see FIG. 1) 1002, 1001, 1008, and 1004, respectively. Triangle 102 includes vertices 1, 2, and 3, and triangle 104 includes vertices 1, 3, and 4. Thus, a triangle can be constructed if there are at least three vertices on an edge of volume 100. Of course, any combination of triangles other than those shown in FIG. 2 is possible within volume 100 associated with a leaf node. Also, one or more triangles within volume 100 do not necessarily have all their vertices on the edges of volume 100. Instead, one or two vertices of a triangle may be located anywhere within volume 100. 3 shows a volume 100 that includes vertices 1-4 (FIG. 2) on corresponding sides of the volume 100, and vertex 5 located on another side within the volume 100. Within the volume 100, TriSoup vertices 1-5 construct four triangles 106-112, where the first triangle 106 includes vertices 1, 2, and 5, the second triangle 108 includes vertices 2, 3, and 5, the third triangle 110 includes vertices 3, 5, and 5, and the fourth triangle 112 includes vertices 1, 4, and 5.

[0052] The construction of triangles inside the volume 100 is based on the following three steps: 1. Determine the leading direction along one of the three axes. 2. Sort TriSoup vertices based on leading direction. 3. Construct triangles based on an ordered list of vertices.

[0053] Figure 4 illustrates the process of selecting triangles to be constructed within the volume 100 associated with the leaf node of Figure 2, with Figure 4(a) again showing the volume 100 of Figure 2, but without the triangles. Figures 4(b) and 4(c) illustrate the process in two axes: the vertical or z-axis (Figure 4(b)) and the horizontal or x-axis (Figure 4(c)).

[0054] As shown in Figure 4(c), a first test is performed along the vertical axis by vertically projecting the volume or cube 100 and TriSoup vertices onto a 2D plane, i.e., starting from the top. The vertex centers for the projection nodes 114 are then reordered clockwise; in the illustrated example, the projection nodes 114 are squares. As shown in Figure 4(c), triangles are constructed based on the ordered vertices according to certain rules. In the example of Figure 4, four vertices are included, and triangles 102 and 104 are systematically constructed to include vertices 1, 2, and 3 in the first triangle and vertices 1, 3, and 4 in the second triangle. If there are only three vertices, the only possible triangle is one that includes vertices 1, 2, and 3. If there are five vertices, certain rules can be used to construct triangles including vertices (1, 2, 3), (1, 3, 5), and (4, 5, 1), etc. This can be repeated for up to 12 vertices.

[0055] When viewed from the left side of Figure 4(a), a second test along the horizontal axis is performed by projecting the cube 100 and TriSoup vertices horizontally onto a 2D plane, producing the projection 116 shown in Figure 4(b). When the vertex centers relative to the projection node 100 are reordered clockwise, triangles 102, 104 include vertices 1, 2, and 3 of the first triangle and vertices 1, 3, and 4 of the second triangle, as shown in Figure 4(b).

[0056] As can be seen from Figure 4, the vertical projection (Figure 4(c)) shows the maximum 2D total surface of the triangle, so the main axis is selected as the vertical axis or z-axis, and based on the order of vertical projections shown in Figure 4(c), we obtain the TriSoup triangles constructed, which also generate the triangles inside the volume written in Figure 2. Note that when the horizontal axis is considered as the main axis, the structure of the triangles inside the volume 100 written in Figure 5 is different; Figure 5 shows the volume 100, and triangles 102 and 104 are constructed according to the vertex order shown in Figure 4(b) when the main axis is the horizontal axis.

[0057] The principal axes can be appropriately selected by maximizing the projection surface, thereby realizing continuous reconstruction of the point cloud without holes.

[0058] Rendering a TriSoup triangle is performed by ray tracing, and the set of all points rendered by ray tracing generates a decoded point cloud. Figure 6 shows ray tracing for rendering the TriSoup triangle 102 of Figure 2, which includes vertices 1, 2, and 3. A ray (e.g., ray 118 in Figure 6) is emitted in a direction parallel to an axis (e.g., the z-axis in Figure 6). The origin of the ray is a point with integer-precision voxelized coordinates corresponding to the sampling location required for rendering. The intersection 120 between ray 118 and triangle 102 is then voxelized, i.e., rounded to the nearest point at the desired sampling location, and added to the rendering point list. After applying the TriSoup coding solution to all leaf nodes, i.e., after constructing triangles and obtaining intersection points by ray tracing, copies of the same point in all rendering point lists are discarded (i.e., only one voxel is retained among all voxels sharing the same 3D location), thereby obtaining a unique set of decoded points.

[0059] When a point cloud is comprehensively modeled by applying a TriSoup coding solution using a set of triangles associated with each leaf node or volume in the manner described above, so-called TriSoup data is also provided. For example, TriSoup data includes information about the vertices of the triangles corresponding to the volume. However, prior art techniques have not efficiently compressed TriSoup data. For example, prior art techniques have utilized dedicated, fixed-context entropy codecs (e.g., binary entropy codecs) to compress vertex flags that indicate the presence of TriSoup vertices on the edges of the occupied volume associated with a leaf node. This disclosure is based on the discovery that compression of TriSoup data can be improved by improving the estimation of the probability that a vertex flag or presence flag is true or false. In particular, according to the teachings of this disclosure, rather than compressing vertex flags using an entropy codec (e.g., binary entropy codec) with a dedicated, fixed context, as in the prior art, a context or entropy codec is selected by introducing improved context information. This improves the estimation of the probability and results in better compression of the vertex flags by the entropy codec. Therefore, the method of the present invention can improve the compression efficiency of TriSoup data by obtaining context information related to the values ​​of vertex flags, which allows for better estimation of the probability that the flag is true or false, resulting in improved flag compression by entropy codecs.

[0060] According to an embodiment, the context information CI may be based on occupancy information of neighboring volumes adjacent to the current edge and / or vertex position information of the encoded / decoded neighboring edges, which may include vertex flags and / or vertex positions in the encoded / decoded edges.

[0061] FIG. 7 shows a flowchart of a method for encoding geometric information of a geometric figure of a point cloud into a bitstream according to an embodiment of the present disclosure. For example, the point cloud is represented by a plurality of cubes, and an occupied cube is modeled by one or more triangles, as shown in FIGS. 2 and 3. At least one triangle has at least one corresponding vertex on an edge of the occupied cube. The geometric information includes an existence flag for signaling the existence of a vertex. According to an embodiment, as depicted in FIG. 7, the method includes the following steps: S100 for a current edge of the cube; · The occupancy information of the adjacent cubes adjacent to the current edge; The vertex position information of the encoded adjacent edges of the current edge, which are edges that have a common point with the current edge; and and constructing context information based on one or more or all of: S102: Select a coding probability for the entropy codec using the context information. S104: Encode the existence flag of the current edge by the entropy codec using the selected coding probability.

[0062] 8 is a flowchart of a method for decoding geometric information of a point cloud geometry from a bitstream according to an embodiment of the present disclosure. The point cloud is represented by a plurality of cubes, and an occupied cube is modeled by one or more triangles. At least one triangle has at least one corresponding vertex on an edge of the occupied cube. The geometric information includes an existence flag for signaling the existence of a vertex. According to an embodiment, as depicted in FIG. 8, the method includes the following steps: for a current edge of the cube, S200; · The occupancy information of the adjacent cubes adjacent to the current edge; The decoded vertex position information of the adjacent edges of the current edge, which are edges that have a common point with the current edge; and and constructing context information based on one or more or all of: S202: Select a coding probability for the entropy codec using the context information. S204: Decode the existence flag of the current edge using the selected coding probability by the entropy decoder.

[0063] FIG. 9 illustrates a data stream 200 according to an embodiment of the present disclosure, in which geometric information of a point cloud geometry is encoded. The point cloud is represented by a plurality of cubes, and the portion of the point cloud enclosed by the occupied cubes is modeled by one or more triangles. At least one triangle has at least one corresponding vertex on an edge of the occupied cube. The geometric information includes presence flags 202 that signal the presence of vertices. For example, the data stream or bit stream 200 may be provided by an encoder 300, which performs the method of the present invention to encode the presence flags 202 into the data stream 200. The data stream 200 is transmitted to a decoder 400 via a wired or wireless transmission medium 204 (e.g., a cable or radio link), and the decoder 400 decodes the presence flags 202 from the data stream 200. Thus, according to an embodiment, as depicted in Figure 9, for the current edge, the data stream 200 includes a presence flag 202 for the current edge that is encoded into the data stream 200 by an entropy codec and using a coding probability, using context information to select the coding probability, and · The occupancy information of the adjacent cubes adjacent to the current edge; The vertex position information of the encoded adjacent edges of the current edge, which are edges that have a common point with the current edge; and and constructing context information based on one or more or all of:

[0064] We will now describe in more detail an embodiment of the present invention. For the following description, an edge belonging to at least one occupied volume is indexed with index k. An occupied volume is a volume associated with an occupied leaf node of the tree representing the underlying geometry of the point cloud. The presence of a TriSoup vertex at edge k is determined by a vertex flag or presence flag s k The vertex flag or existence flag s k can be true (1) or false (0). According to an embodiment of the present disclosure, the vertex flag s associated with the current edge k is k The entropy codec or the context used by the entropy codec for coding · The occupancy of adjacent volumes associated with adjacent nodes in the tree; one or more vertex flags k' of adjacent coded edges k'; One or more vertices V on the adjacent coded edge k' k’ Position p k’ and are constructed based on one or more or all of:

[0065] 10 shows a flowchart of the encoding method according to an embodiment of the present disclosure. For a current edge k, in step S100, the adjacent nodes / volumes e l , a m and b n The occupancy of the adjacent nodes / volumes is obtained as shown in step S106. The adjacent nodes / volumes are the volume e that intersects with the current edge k. l , a m and b n In step S108, the existence of a vertex (for example, a vertex flag s k’ ), and in step S110, the vertex position p of the vertex along the adjacent coded edge k′ is obtained. k’ Based on the information acquired in steps S106 to S110, in step S112, the context information CIk Below, we will construct the context information CI. k An example for constructing the above will now be described in more detail.

[0066] In step S102, the context information CI k to select a context or entropy codec, thereby k This facilitates obtaining coding probabilities based on the vertex flags and encoding them.

[0067] In step S104, the vertex flag s of the current edge k is k and encodes it into a bitstream 200 using the selected coding probabilities with an entropy codec.

[0068] According to the embodiment, in step S102, the vertex flag s k using the coding probabilities of an entropy codec to encode , for example using a context self-adaptive binary arithmetic coding CABAC mechanism, or using an optimal binary codec OBUF mechanism with dynamic update, for example as described in EP 3633857A1, the contents of which are incorporated herein by reference.

[0069] FIG. 11 illustrates a decoding method according to an embodiment of the present disclosure, which is basically the same as the method described above with reference to FIG. 10, except that the codec k into the bitstream, but extracting the vertex flags s from the bitstream 200. k 11 shows steps S200 to S204 described above with reference to FIG. 8, and for the current edge k, in the same manner as described above with reference to FIG. 10, steps S206 to S210 determine the occupancy for the adjacent volume, the presence of vertices on the adjacent decoded edges, and the vertex position information along the adjacent decoded edges, thereby obtaining context information CI in step S212. kIn step S202, a context or entropy codec is selected as described with reference to Figure 10. In step S204, the vertex presence flag or vertex flag of the current edge k is decoded from the bitstream 200, and the vertex flag s k Output. The above embodiment of encoding / decoding for vertex flags is described with reference to processing for the current edge k, i.e., the above encoding / decoding process is repeated for all edges of the occupied volume to obtain the corresponding information of whether a vertex exists on a particular edge. Edge k is oriented from the start point to the end point, and in the following figures, the currently processed edge k is represented as an arrow from the start point to the end point, i.e., the arrow is the end point of edge k. For example, if edge k has a TriSoup vertex V, k If exists, its position p k is provided along the edge relative to the edge's starting position, so that the position p k becomes scalar information.

[0070] The 12 adjacent volumes intersect with the current edge k, i.e., Four adjacent volumes e1-e4 that share the current edge k, as shown in FIG. 12, which shows the four leaf nodes / volumes e1-e4 of the current edge k indicated by arrows. · Four adjacent volumes a1~a4 with one corner as the starting point of the current side k. · Four adjacent volumes b1~b4 with one corner as the end point of the current side k.

[0071] Figure 13 shows eight leaf nodes / volumes a1-a4 and b1-b4, each of which has a corner that is the start or end point of the current edge k. l , a m and b n The 12 occupied bits associated with the context information CI k (e l , a m , b n) is used to construct the following. An example of such construction is provided below.

[0072] Vertex flag s associated with edge k k are encoded in a predetermined order, which is also called the TriSoup edge order. According to an embodiment, as explained above, some information (e.g., existence flags s k’ and the vertex position p from edge k' encoded / decoded for the TriSoup edge order. k’ ) to the context information CI k The current vertex flags s are used in the construction of k where k' < k. For example, when the three axes of 3D space are marked as x, y, and z, the TriSoup edge ordering is the lexicographic order (x start , y start , z start , x end , y end , z end ), where (x start , y start , z start ) is the coordinate of the start point of the edge, and (x end , y end , z end ) are the coordinates of the end point. Using this order, edge k' that is parallel to the current edge k and points to its start point is always coded / decoded, as shown in Figure 14, which shows edge k' with a dashed arrow, and edge k' is parallel to the current edge k shown with an arrow and points to the start point of the current edge. The vertex V on edge k' is k’ In the example of FIG. 14, the vertex flag s k’ is true. Also, there is only one vertex V on edge k'. k’ Position p k’ and, as mentioned above, the position p k’ may be a scalar information tested only from the start point of edge k'.

[0073] Also, as shown in Figure 15, there are four edges k' that are perpendicular to the current edge and point to or start from the starting point of the current edge k. Figure 15 shows the four perpendicular edges k' with dashed arrows, and the four vertical edges k' are perpendicular to the current edge k and point to or start from the starting point of the current edge. When specifying the TriSoup edge order, some or all of the four vertical edges k' in Figure 15 have already been coded / decoded. As shown in Figure 16, the number N of coded / decoded vertical edges k' is perp (k) is determined by the direction of the current edge k. Using the TriSoup edge ordering of the dictionary mentioned above, the number of encoded / decoded vertical edges is: If the current edge k is parallel to the x-axis, then N perp (k)=4, as shown in Figure 16(a). If the current edge k is parallel to the y-axis, then N perp (k)=3, as shown in Figure 16(b). If the current edge k is parallel to the z-axis, then N perp (k)=2, as shown in FIG. 16(c).

[0074] According to an embodiment of the present disclosure, N perp For (k) encoded / decoded vertical edges k', the vertex flag s k’ and the current vertex V k’ Vertex position p k’ is the context information CI k can be used to construct

[0075] Note that any edge k' that is perpendicular to the current edge k and points to or starts from the end point of the current edge has not been coded / decoded, so these edges are naturally not coded / decoded using the context information CI k Cannot be used to build

[0076] Thus, according to the embodiment described above: Occupancy status of adjacent volumes, e.g., CI k (e l , a m , bn )and, The presence of one or more vertices in the encoded / decoded edge, e.g., CI k ({s k’ |k' <k})と、 Vertex position, e.g. CI k ({p k’ |k' <k})と、 One or more or all of the above may be used to construct the context information CI.

[0077] From here, context information CI is derived based on the occupancy of adjacent values. k An example of constructing the following will be described.

[0078] Context information CI based on the occupancy of adjacent volumes k Construction 12 adjacent volumes without significantly affecting compression efficiency l , a m , b n By compressing the occupancy information associated with the context information CI k It has already been shown that it is possible to construct N e There are four volumes l is the number of occupied volumes out of , then not all of them are occupied (otherwise the current edge would not be a TriSoup edge), so the following inequality holds: 1≦N e ≦4

[0079] N a But four volumes a m is the number of occupied volumes out of b But four volumes b n Assuming that σ is the number of occupied volumes out of σ (see, for example, FIG. 13), the following inequality holds: 0≦N a ≦4 and 0≦N b ≦4

[0080] N bits instead of 12 bits to represent occupatione , N a , N b Based on context information CI k It has already been found that constructing the context information CI provides good compression performance. k Some of the numbers may be: 5*4*N a +4*N b +(N e -1).

[0081] According to a further embodiment, the maximum occupancy is determined by the vertex flag s k is a good predictor of the value of , which allows us to k This part of can be further compressed into 3 bits of information: 4*(N a == 4 then 1, otherwise 0)+2*(N b == 4 then 1, otherwise 0)+(N e ==4 then it is 1, otherwise it is 0).

[0082] According to further embodiments, the above methods may be combined, so that e.g. context information CI k Some of the numbers may be: 8*max(0,N a -1)+2*max(0,N b -1)+(N e ==4 then it is 1, otherwise it is 0).

[0083] Based on the encoded adjacent edge k', context information CI k Build Adjacent vertex V k’ Number of

[0084] As described above, according to the embodiment, the context information CI is calculated based on the encoded / decoded adjacent edge k′. k For example, we can construct the adjacent vertices V k’ Context information based on the number of CIsk It is possible to construct a vertex with up to five adjacent edges already coded / decoded, i.e., N as described above with reference to FIG. perp (k) vertical edges, and the parallel edge k' or unique edge k' described above with reference to Figure 14. TV(k) is the number of coded / decoded edges k' of the TriSoup vertex, i.e., the true vertex flag s k’ and let NTV(k) be the number of non-existent edges k' of a TriSoup vertex, then the following equality holds: N perp (k)+1=TV(k)+NTV(k).

[0085] Therefore, according to an embodiment, the context information CI is calculated based on TV(k) and NTV(k). k can be constructed.

[0086] According to a further embodiment, TV(k) and vertex V k Position p k It has been found that sufficient compression results can be obtained using the value of NTV(k) alone, since it has little correlation with the context information CI. Therefore, in such an embodiment, it is possible to calculate the context information CI based only on NTV(k). k can be constructed.

[0087] Relative positions of adjacent vertices According to a further embodiment, the relative positions of adjacent vertices are used to calculate the context information CI k When considering the only edge k' that is parallel to the current edge k and points to its start point, the TriSoup vertices belonging to that edge are V par As shown in Figure 17, the only TriSoup vertex V that has already been encoded / decoded on edge k' is par Besides, Figure 17 shows the quantization position p par,Q The vertex V par Position p along the encoded / decoded edge k' of par,Q The existence of a vertex on the current edge k (vertex flag sk It has already been shown that the vertex position is a good indicator of the value of p par,Q As shown in Figure 17, the quantization is performed using the context information CI k is a 2-bit value that can be used to construct

[0088] According to a further embodiment, the encoded TriSoup V k’ Position p on the vertical side of k’ (See Figure 15) also has vertex flags s k For example, as shown in FIG. 18, one or more positions p on the vertical side k′ are found to be good indicators of the value of k’ can be simplified to a binary value that indicates whether the vertex is "close" or "far" from the start point of the current edge k. As shown in FIG. k If the distance between the end point of edge k' and the start point of the current edge k' is less than a certain threshold or a predetermined threshold, then the vertex V k Position p k’ is designated as the first position. In FIG. 18, the first position is said to be "close" to the position of the current edge k. k’ and the position p whose distance from the start of the current edge k is greater than a threshold k’ is said to be "far" from the current position of edge k. k’ The number N near Get the context information CI k When used to construct , the following inequality holds: 0≦N near ≦4.

[0089] According to the embodiment, the only vertex V on edge k′ par Position p par (see FIG. 17) may be used for the total number of near vertices, and in such an embodiment, the following inequality holds: 0≦N near ≦5.

[0090] By limiting the number of near vertices, N near', and the following inequality applies: 0≦N near '=min(3, N near )≦3.

[0091] According to an embodiment, the context information CI k When constructing the encoded / decoded vertex V k’ Position p k’ According to an embodiment, all information about the context information CI k A portion of may be as follows: 4*p par,Q +N near '.

[0092] According to an embodiment, the relative position information of adjacent vertices can be combined with the occupancy information of the adjacent volume, and for example, the following 6-bit context word can be used to indicate the vertex flags s k It has already been shown to be a very strong predictor of the value of W=16*(N e -1)+4*p par,Q +N near '

[0093] According to a further embodiment, any of the context information described above can be used to enrich the word W, for example (N a ==4), (N b ==4) and NTV(k).

[0094] Context information CI based on the relative positions of vertices on adjacent edges k A further example of constructing k’ Instead of reducing to a binary value, it may be reduced to a ternary value, which is the position p k’ lies in one of several intervals defined by vertical sides k'. For example, as shown in FIG. 19, the intervals are k’19 includes three sections: far, middle, and near, which indicate the position of the edge k'. The far section begins at the start point of edge k' and extends along part of the length of edge k'. The near section ends at the end point of edge k', which is the start point of the current edge k, and extends along part of the length of edge k'. The middle section is the length of edge k' between the near and far sections. When considering the ternary values ​​shown in Figure 19, the following equations apply: N near +N mid +N far =TV(k)≦5.

[0095] By limiting the number of near / middle / far vertices, 2-bit information N near ', N mid ' and N far ' can be obtained. 0≦N near '=min(3,N near )≦3 0≦Nmid'=min(3,N mid )≦3 0≦N far '=min(3,N far )≦3.

[0096] According to an embodiment, the context information CI k When constructing the encoded / decoded vertex V k’ Position p k’ According to an embodiment, the context information CI k A portion of may be as follows: 32*N far '+8*N mid '+2*N near '+p par,Q .

[0097] According to an embodiment, when combining the above-described occupancy information about the adjacent volume with the ternary information about the relative positions of the vertices on the adjacent edges, the following context words are used to define the vertex flags s k It has already been shown to be a very strong predictor of the value of W=32*W1+W2 where: W1=32*N far '+8*N mid '+2*N near '+p par,Q W2=8*max(0,N a -1)+2*max(0,N b -1)+(N e ==4).

[0098] Up to now, the inventive concept has been described with reference to an embodiment of a method for bitstream encoding / decoding geometric information (i.e., vertex flags) from a bitstream. According to a further embodiment, the present disclosure further provides an apparatus for encoding / decoding geometric information of a point cloud geometry into / from a bitstream.

[0099] FIG. 20 shows the vertex flag s according to the embodiment. k 3 is a block diagram of an apparatus for encoding a · The occupancy information of the adjacent cubes adjacent to the current edge; The vertex position information of the encoded adjacent edges of the current edge, which are edges that have a common point with the current edge; and a context information construction module 302 configured to construct context information for the current edge based on one or more or all of the following: k and an encoding module 306 for encoding the

[0100] FIG. 21 illustrates a vertex flag s according to an embodiment of the present disclosure. k 4 is a block diagram of an apparatus for decoding a · The occupancy information of the adjacent cubes adjacent to the current edge; The decoded vertex position information of the adjacent edges of the current edge, which are edges that have a common point with the current edge; and a selection module 404 for selecting a coding probability for an entropy codec using the context information provided by the context information construction module 402; and a selection module 404 for selecting an existence flag or a vertex flag s for the current edge k using the selected coding probability by the entropy codec. k and a decoding module 406 for decoding the

[0101] According to an embodiment, the context information construction module 302 / 402 described above with reference to Figures 20 and 21 may include one or more sub-modules. Figure 22 shows a block diagram of an embodiment for implementing the context information construction module 302 / 402, which can be used in the encoder of Figure 20 or the decoder of Figure 21. The context information construction module 302 / 402 constructs a context information k-based block of a neighboring cube e adjacent to the current edge k. l , a m , b n The vertex position acquisition sub-module 504 may include one or more of the following modules: an occupancy information acquisition sub-module 500 for acquiring occupancy information of the adjacent edge k'; a vertex presence acquisition sub-module 502 for acquiring vertex presences on the encoded / decoded adjacent edge k'; and a vertex position acquisition sub-module 504 for acquiring vertex positions along the encoded / decoded adjacent edge k'.

[0102] The present disclosure further provides an electronic device, a computer-readable storage medium, and a computer program product in embodiments.

[0103] Although some aspects of the disclosed concepts have been described in the context of an apparatus, it will be apparent that these aspects also describe corresponding methods, where a block or device corresponds to a method step or feature of a method step, and similarly, aspects described in the context of a method step also describe a corresponding block or item or feature of a corresponding apparatus.

[0104] FIG. 23 is a block diagram of an electronic device 900 according to an embodiment of the present disclosure.

[0105] Electronic devices are intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. Electronic devices may also represent various forms of mobile devices, such as personal digital processors, mobile phones, smartphones, wearable devices, and other similar computing devices. The components, their connections and relationships, and their functions illustrated herein are merely examples and are not intended to limit the description herein and / or the practice of the present application as claimed.

[0106] 23, device 900 includes a computing unit 901 that can perform various suitable operations and processes based on a computer program stored in a read-only memory (ROM) 902 or loaded from a storage unit 908 into a random access memory (RAM) 903. The RAM 903 can include various programs and data necessary for the operation of device 900. The computing unit 901, ROM 902, and RAM 903 are connected to each other via a bus 904. An input / output (I / O) interface 905 is also connected to the bus 904.

[0107] Several components in the device 900 are connected to the I / O interface 905, including an input unit 906 such as a keyboard, a mouse, etc., an output unit 907 such as various types of monitors, speakers, etc., a storage unit 908 such as a magnetic disk, an optical disk, etc., and a communication unit 909 such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 909 allows the device 900 to exchange information / data with other devices via a computer network such as the Internet and / or various telecom networks.

[0108] The computing unit 901 may be any of a variety of general-purpose and / or special-purpose processing components having processing and computing capabilities. Some examples of the computing unit 901 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various machine-implemented learning model algorithm computing units, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 901 performs each of the methods and processes described above, such as the pre-training model determination method. For example, in some embodiments, the pre-training model determination method may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 908. In some embodiments, some or all of the computer program may be loaded and / or installed into the device 900 via the ROM 902 and / or the communication unit 909. When the computer program is loaded into the RAM 903 and executed by the computing unit 901, it may perform one or more steps of the image processing method described above. Alternatively, in other embodiments, the computing unit 901 may be configured to perform the image processing method in any other suitable manner (eg, via firmware).

[0109] Various embodiments of the systems and techniques described herein may be implemented in digital electronic circuitry systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may be embodied in one or more computer programs that can be executed and / or interpreted by a programmable system that includes at least one programmable processor, which may be an application specific or general purpose programmable processor, and that can receive data and instructions from, and transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[0110] Program code for carrying out the methods of the present application can be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus such that, when executed by the processor or controller, the functions / acts specified in the flowcharts and / or block diagrams are performed. The program code may be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.

[0111] In the context of this application, a machine-readable medium may be a tangible medium that contains or can store a program used by or in connection with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or a suitable combination of any of the above. More specific examples of machine-readable storage media include one or more line-based electrical connections, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or a suitable combination of any of the above.

[0112] To provide for user interaction, the systems and techniques described herein can be implemented on a computer having a display device (e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor) for displaying information to a user, as well as a keyboard and pointing device (e.g., a mouse or trackball) through which a user can provide input to the computer. Other types of devices can also provide for user interaction; for example, the feedback provided to the user can be any form of sensing feedback (e.g., visual feedback, auditory feedback, or tactile feedback) and can receive input from the user in any form (including acoustic, speech, or tactile input).

[0113] The systems and techniques described herein can be implemented in a computing system that includes a back-end component (e.g., as a data server), or a computing system that includes a middleware component (e.g., an application server), or a computing system that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user interacts with embodiments of the systems and techniques described herein), or any combination of such back-end, middleware, and front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), the Internet, and a blockchain network.

[0114] A computer system may include a client and a server. The client and server are generally remote from each other and typically interact via a communication network. The client-server relationship is created by computer programs running on corresponding computers and having a client-server relationship with each other. The server may be a cloud server, also known as a cloud computing server or cloud host. This is a host product in a cloud computing service system that solves the problems of traditional physical hosts and virtual private server (VPS) services, such as difficulty in management and poor business scalability. The server may be a server in a distributed system or a server combined with a blockchain.

[0115] It should be noted that steps may be rearranged, added, or deleted using the various forms of flow shown above. For example, the steps described in this disclosure may be performed in parallel, sequentially, or in a different order, but this specification is not limited thereto as long as the desired results of the technical solution disclosed in this application can be achieved.

[0116] The above specific embodiments do not limit the scope of protection of the present disclosure. Those skilled in the art should understand that various modifications, combinations, partial combinations and substitutions can be made according to design requirements and other factors. Any modifications, equivalent replacements and improvements made within the spirit and principle of the present disclosure should be included in the scope of protection of the present disclosure.

[0117] This application claims priority from European Patent Application No. 22167194.4, filed April 7, 2022, the entire contents of which are incorporated herein by reference.

Claims

1. A method for encoding geometric information of a geometric figure of a point cloud into a bitstream (200), wherein the point cloud is represented by a plurality of cubes (100), and the occupied cubes (100) are modeled by one or more triangles (102-112), and at least one triangle has at least one corresponding vertex (V) attached to an edge of the occupied cube (100). k ), and the geometric information is a signal with vertices (V k ) existence flag (s k ), and for a current edge (k), the method includes: - the adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information, - Vertex position information of the encoded adjacent edge (k') of the current edge (k), which is an edge having a common point with the current edge (k); Context information (CI) based on one or more or all of k ) (S100); The context information (CI k ) to select coding probabilities for an entropy codec (S102); The entropy codec calculates the existence flag (s) of the current edge (k) using the selected coding probability. k and encoding (S104) the A method for encoding geometric information of point cloud geometry into a bitstream.

2. A method for decoding geometric information of a geometric figure of a point cloud from a bitstream (200), wherein the point cloud is represented by a plurality of cubes (100), and an occupied cube (100) is modeled by one or more triangles (102-112), and at least one triangle has at least one corresponding vertex (V) attached to an edge of the occupied cube (100). k ), and the geometric information is a signal with vertices (V k ) existence flag (s k ), and for a current edge (k), the method includes: - the adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information, - vertex position information of the decoded adjacent edge (k') of the current edge (k), which is an edge having a common point with the current edge (k); Context information (CI) based on one or more or all of k ) (S200); The context information (CI k ) to select coding probabilities for an entropy codec (S202); The entropy codec calculates the existence flag (s) of the current edge (k) using the selected coding probability. k and decoding (S204) the A method for decoding geometric information of a point cloud geometry from a bitstream.

3. - all occupied neighbors (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) and - all neighboring cubes (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) was occupied or not, based on one or more or all of the context information (CI k ) and Adjacent cubes (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) wherein said subset of - the adjacent cube (e 1 ~e 4 )and, - the adjacent cube (a) having the corner as the starting point of the current edge (k) 1 ~a 4 )and, - the adjacent cube (b) having a corner as the end point of the current edge (k) 1 ~b 4 )and, including one or more or all of 3. The method according to claim 1 or 2.

4. - the encoded / decoded existence flag (s) associated with the adjacent edge (k') of the current edge (k) k’ ) and - the vertex (V k’ ) position (p k’ )and, - the vertex (V k’ ) total number (N near ) and the vertex (V k’ ) and the current edge (k) is less than a predetermined threshold; - the vertex (V k’ ) total number (N near , N mid , N far ) and the vertex (V k’ ) and the current edge (k) is within a predetermined interval; based on one or more or all of the context information (CI k ) to build 3. The method according to claim 1 or 2.

5. - the coded / decoded presence flag (s k’ ) is true (TV(k)), and the coded / decoded existence flag (s k’ ) is false (NTV(k)), or - the coded / decoded presence flag (s k’ ) is false, the number of adjacent edges (k') (NTV(k)) Based on the context information (CI k ) to build The method of claim 4.

6. The context information (CI k ) is constructed by the vertex (V k’ ) at the position (p k’ ) to the vertex (V k’ ) at the position (p k’ ) to a precision coarser than the precision with which it is encoded into the bitstream (200). The method of claim 4.

7. To select the coding probabilities of the entropy codec, the method comprises: - Optimal Binary Codec with Dynamic Update (OBUF) mechanism, or - using a context self-adaptive binary arithmetic coding (CABAC) mechanism; 3. The method according to claim 1 or 2.

8. modeling the point cloud using the TriSoup coding solution; 3. The method according to claim 1 or 2.

9. A non-transitory computer-readable storage medium containing instructions, The instructions, when executed by a computer, cause the computer to perform the method of claim 1 or 2. A non-transitory computer-readable storage medium.

10. An apparatus (300) for encoding geometric information of a geometric figure of a point cloud into a bitstream (200), wherein the point cloud is represented by a plurality of cubes (100), and the occupied cubes (100) are modeled by one or more triangles (102-112), and at least one triangle has at least one corresponding vertex (V) attached to an edge of the occupied cube (100). k ), and the geometric information is a signal with vertices (V k ) existence flag (s k ), wherein the apparatus comprises: - The adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information, - Vertex position information of the encoded adjacent edge (k') of the current edge (k), which is an edge having a common point with the current edge (k); Context information (CI) for the current edge (k) based on one or more or all of: k ) configured to construct the context information (CI) k ) a construction module (302); The context information (CI k ) Context information (CI) provided by the construction module k a selection module (304) configured to select coding probabilities for an entropy codec using The entropy codec calculates the existence flag (s) of the current edge (k) using the selected coding probability. k and an encoding module (306) configured to encode the A device that encodes the geometric information of the geometry of a point cloud into a bitstream.

11. An apparatus (400) for decoding geometric information of a geometric figure of a point cloud from a bitstream (200), wherein the point cloud is represented by a plurality of cubes (100), and the occupied cubes (100) are modeled by one or more triangles (102-112), and at least one triangle has at least one corresponding vertex (V) attached to an edge of the occupied cube (100). k ), and the geometric information is a signal with vertices (V k ) existence flag (s k ), wherein the apparatus comprises: - The adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information, - vertex position information of the decoded adjacent edge (k') of the current edge (k), which is an edge having a common point with the current edge (k); Context information (CI) for the current edge (k) based on one or more or all of: k ) configured to construct the context information (CI) k ) a construction module (402); The context information (CI k ) the context information (CI) provided by the construction module k a selection module (404) configured to select coding probabilities for an entropy codec using The entropy codec calculates the existence flag (s) of the current edge (k) using the selected coding probability. k a decoding module (406) configured to decode the An apparatus for decoding geometric information of a point cloud geometry from a bitstream.

12. The context information (CI k ) The construction module (302, 402) - the adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 an occupancy information acquisition sub-module (500) configured to acquire occupancy information of a vertex presence obtaining sub-module (502) adapted to obtain the vertex presence in the encoded / decoded adjacent edge (k'); a vertex position obtaining sub-module (504) configured to obtain the vertex positions along the encoded / decoded adjacent edge (k′); 12. Apparatus according to claim 10 or 11.

13. The vertex existence acquisition sub-module (502) acquires the encoded / decoded existence flag (s) associated with the adjacent edge (k') of the current edge (k). k’ ) value, 13. The apparatus of claim 12.

14. The vertex position acquisition sub-module (504) - the vertex (V k’ ) position (p k’ )and, - the vertex (V k’ ) total number (N near ) and the vertex (V k’ ) and the current edge (k) is less than a predetermined threshold; - the vertex (V k’ ) total number (N near , N mid , N far ) and the vertex (V k’ ) and the current edge (k) is within a predetermined interval; configured to obtain one or more or all of:

13. The apparatus of claim 12.

Citation Information

Patent Citations

  • Method and device for binary entropy coding of point clouds

    JP2021521679A

  • Multiresolution surface representation and compression

    US10192353B1

  • Trisoup syntax signaling for geometry-based point cloud compression

    WO2021207510A1