Method and apparatus for coding presence flags for a cloud of points and data streams containing presence flags - Patents.com

By using improved context information to select entropy codecs dynamically, the method addresses inefficiencies in compressing vertex flags for TriSoup vertices, achieving better compression of point cloud data.

JP2025511691AActive Publication Date: 2025-04-16BEIJING XIAOMI MOBILE SOFTWARE CO LTD

Patent Information

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

AI Technical Summary

Technical Problem

Existing methods for compressing point cloud data are inefficient, particularly in handling vertex flags or presence flags for TriSoup vertices at the edges of occupied leaf nodes, leading to poor compression performance.

Method used

The method employs improved context information to select a context or entropy codec, such as an optimal binary codec with dynamic update, to better estimate the probability of vertex flags being true or false, enhancing compression efficiency by obtaining relevant context information regarding vertex flags and positions.

Benefits of technology

This approach achieves improved compression of TriSoup data by accurately estimating the probability of vertex flags, resulting in enhanced compression performance of vertex flags using entropy codecs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025511691000001_ABST
    Figure 2025511691000001_ABST
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 a method and apparatus for coding geometric information of the geometry of a point cloud. Embodiments of the present disclosure relate to a method 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 a data or bitstream 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. Thus, 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 a small number of cultural heritage items, 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 number 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 signaling the presence of a vertex, the method comprising the steps of: building 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 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; 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 number of cubes, where the 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 signaling the presence of a vertex, the method comprising the steps of: building 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, the adjacent edges being edges having 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 below a predetermined threshold; and - 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 encoded / decoded presence flags are true and the number of adjacent edges whose encoded / decoded presence flags are false, or - only the number of adjacent edges whose encoded / decoded presence flags are false.

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

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

[0011] Optionally, the TriSoup coding solution is used to model the point cloud.

[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 methods 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, where the point cloud is represented by a plurality of cubes, where the occupied cubes are 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 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 an encoded adjacent edge of the current edge, the adjacent edge being an edge that has 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 presence flag of the current edge by the entropy codec using the selected coding probability.

[0014] The present disclosure provides an apparatus 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 the occupied cubes are 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 signaling the presence 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, the adjacent edges being edges having 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 presence 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 the following: - 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 presence in 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 obtainment sub-module is configured to obtain the values ​​of the encoded / decoded existence flags associated with adjacent edges of the current edge.

[0017] Optionally, the vertex position acquisition submodule is configured to acquire one or more or all of: - the positions of vertices in the encoded / decoded adjacent edges of the current edge; - the total number of vertices in the encoded / decoded adjacent edges of the current edge, whose distances between the vertices and the current edge are lower than a predefined threshold; and - the total number of vertices in the encoded / decoded adjacent edges of the current edge, whose distances between the vertices and the current edge are within a predefined 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 number of cubes, the occupied cube 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 signaling the presence of a vertex, the data stream including a presence flag of a current edge encoded into the data stream by an entropy codec with 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 encoded adjacent edges of the current edge, the adjacent edges having a common point with the current edge. Effect of the Invention

[0019] The technical solutions provided by the embodiments of the present disclosure have the following beneficial effects: In the prior art, compression of TriSoup data is inefficient, but embodiments of the present disclosure provide improved compression for vertex flags or presence flags, which indicate the presence of TriSoup vertices at the 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 using better context information to select a context or entropy codec (e.g., by using an optimal binary codec with dynamic update on the fly (so-called OBUF) mechanism), 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 regarding the values ​​of vertex flags.

[0021] It should be noted that the contents described in this section do not specify the essential or important features of the embodiments of the present disclosure, and do not limit the scope of the present disclosure. The following description will make it easier to understand other features of the present disclosure. [Brief description 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. [Diagram 2] A volume where each vertex contains two TriSoup triangles on the edge of the volume. [Diagram 3] A volume that contains 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. [Diagram 5] The volume in Figure 2 has two TriSoup triangles, which are constructed with the assumption that the horizontal axis is the principal 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] 4 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] 4 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 an 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] There is only one edge k' (indicated by a dashed arrow) that is parallel to the current edge k (indicated by an 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 an arrow) and point to or begin at its starting point. [Figure 16] Nperp(k) is the number of encoded / decoded vertical 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 encoded / decoded perpendicular edge k' are "near" vs. "middle" vs. "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. 2 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 PREFERRED EMBODIMENTS

[0023] Hereinafter, in combination with the drawings, an illustrative embodiment of the present disclosure will be described, in which various details of the embodiment of the present disclosure are included for ease of understanding, and these should be understood as explanatory. Therefore, as will be understood by 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 the description of well-known functions and configurations.

[0024] In this disclosure, the terms "node", "volume" and "sub-volume" may be used interchangeably. Note that a node is associated with a volume or sub-volume. A node is a particular 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" may be used to refer to the largest bounded space defined to contain the point cloud. A volume may be recursively divided into sub-volumes to build a tree structure of interconnected nodes of the 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 be inclusive of 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 of 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 usually intended to represent the exterior surface 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 be a triplet value such as R, G, B or Y, Cb, Cr, etc. Other associated attributes may include transparency, reflectance, normal vectors, etc., and are determined depending on the 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, since 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, e.g., scanning of 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 may be significantly different from static point cloud data used for conservation purposes. For example, automotive vision typically concerns low-resolution, colorless, highly dynamic point clouds acquired at high capture frequencies via LiDAR or similar sensors. This point cloud is not intended for human consumption or display to humans, but rather for machine object detection / classification in decision-making processes. For example, a typical LiDAR frame contains about tens of thousands of points, while high-quality virtual reality applications require millions of points. It is expected that higher resolution data will be required over time as computing speeds increase and new applications and use cases are discovered.

[0031] In other words, a point cloud is a collection of points arranged in 3D space, each of which may optionally have value added attached to it. These value added are usually called point attributes. Thus, a point cloud may be considered as a combination of geometry (the 3D position of each point) and attributes. The attributes may be, for example, a three-component color, a material attribute (e.g. reflectance) and / or a two-component normal vector of a surface associated with the point. Point clouds can be captured by different types of devices such as camera arrays, depth sensors, the mentioned LiDAR, scanners, or they can be computationally generated (such as 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. Thus, 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, point cloud data is useful, but the lack of effective and efficient compression (i.e., the process of encoding and decoding) can hinder its adoption and deployment. A special challenge in coding for point clouds is coding the geometry of the point cloud, which does not occur in the case of other data compressions (e.g., audio or video), and because point clouds tend to be sparsely distributed, it becomes more difficult to effectively code the location of the points.

[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 coding method compresses the point cloud 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. It then compresses the images or videos using existing image / video codecs, allowing the use of image and video solutions that are already in place. In essence, V-PCC is only effective for dense, continuous point clouds, since image / video codecs cannot compress non-smooth patches, for example, when non-smooth patches are obtained from projections of sparse geometric data collected by LiDAR.

[0036] The G-PCC coding method has two solutions for compressing geometric shapes. · A first solution is based on an occupancy tree representation of the point cloud geometry, e.g. an octree, quadtree or binary tree representation. In a tree based structure, the 2D volume of the boundary of the point cloud is recursively divided into subvolumes. The nodes of the tree correspond to the subvolumes. The decision to further divide the subvolumes can be based on the resolution of the tree and / or on whether the subvolume contains any points. Leaf nodes can have an occupancy flag indicating whether the associated subvolume contains points or not. A split flag can inform whether the node has child nodes, i.e. whether the current volume is further divided into subvolumes. A commonly used tree structure is the octree. In this structure, the volumes / subvolumes are all cubes and every time a subvolume is split, 8 other subvolumes / subcubes are created. Another commonly used tree structure is the KD-tree, in which a volume (e.g. a cube) is recursively bisected by a vertex perpendicular to one 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 they reach a certain size, and the points provided by the occupied leaf nodes are usually located at the centers of these nodes. Dense point clouds can be compressed to a high level by using neighborhood-based prediction techniques. Sparse point clouds are processed by stopping the tree construction when a node only has isolated points by directly encoding the points' positions in nodes that are not of minimum size. This stopping technique is also called direct coding mode (DCM).

[0038] The second solution is based on a prediction tree, where each node represents the 3D location of one point and the relationship between nodes is spatial prediction from parent to child. This method has the advantage that it can only handle sparse point clouds and has a lower latency and easier decoding than when using occupancy trees. However, compared to the first solution, it offers a slightly better compression performance and the coding becomes more complex due to the need to intensively find the best predictor among 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 a double coding process. Lower latency can be achieved by using slices, which decompose the 3D space into independently coded subvolumes, thus 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. Also, AR / VR point clouds are usually local D, since they mostly represent the surface of an object. Therefore, AR / VR points are rarely isolated, but are highly connected (also called dense) because there are many neighboring points. A dense or solid point cloud therefore shows a continuous surface, and due to its resolution, the volumes associated with the points (also called small cubes or voxels) are in contact with each other without showing visible holes in the surface. Such point clouds are usually used for AR / VR environments, where the terminal user checks them through a device such as a TV, a smartphone, or headphones, including AR / VR glasses. The point cloud can be transferred to the device or stored locally. Many AR / VR applications do not use static point clouds, but moving point clouds that change over time, which can lead to large amounts of data that 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), however this may be insufficient for real-time transmissions that 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] Lossy compression solutions can therefore be used, and usually need to provide enough compression so that the compressed data fits within the available bandwidth of the transmission channel while maintaining real-time transmission of the frames, thus 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 allows the compression of point clouds to be ten times higher 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 codec compression, which compresses 2D frames obtained from the projection of point clouds on a plane. The geometric figures are represented by a series of projected patches assembled into a frame, each patch being a small local depth map. However, VPCC is not general purpose and is limited to a narrow type of point cloud that does not exhibit local complex geometric figures (such as trees or hair) because the obtained projected depth maps are not smooth enough to be effectively compressed in video.

[0043] On the other hand, pure 3D compression techniques can handle any type of point cloud. For example, G-PCC will in future provide a lossy compression that can compress dense point clouds similar to V-PCC intra coding, while still maintaining the versatility of G-PCC to handle any kind of point cloud, be it dense point clouds, point clouds acquired by LiDAR or point clouds representing 3D maps. To realize such a G-PCC mechanism, the so-called TriSoup coding solution can be applied in the first layer, based on an octree. Currently, the TriSoup coding solution is being discussed in the ISO / IEC standardization working group JTC1 / SC29 / WG7. When considering the possibility of obtaining a lossy solution from G-PCC, there are basically three 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 more than 2x in each direction), such as super-resolution, artificial intelligence AI, and learning-based 3D post-processing. However, even if the metrics show a good PSNR, the visual quality is still debatable and not well controlled.

[0045] The second method requires a lower bitrate for coding the octree, since 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 coding of the modified octree at a lower bitrate. Unfortunately, this method only resulted in a slight decrease in the bitrate.

[0046] A third method is to code the geometry up to a certain resolution (e.g., NxNxN blocks) using a tree (e.g., an octree), where N can be, for example, 4, 8, or 16. Then, a lossless solution such as the G-PCC solution is used to code the tree. The tree itself does not go to full depth, so it does not require 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 the TriSoup coding solution mentioned above, which is described in more detail below.

[0047] The TriSoup coding solution models the point cloud locally with a set of triangles, without the need to provide connectivity information explicitly, which is why its name comes from the term "soup of triangles." As mentioned above, each NxNxN block defines a volume associated with a leaf node, and in each NxNxN block or volume, the point cloud is locally modeled with a set of triangles, where the vertices of the triangles are coded along the edges of the volume associated with the leaf nodes of the tree. FIG. 1 shows a volume 100 associated with a leaf node, which has 12 edges 100. 1 ~100 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 sides 100. 1 ~100 12 In the example of FIG. 1, five vertices 1 to 5 are shown, where vertices 1 to 4 each have an edge 100. 2 , 100 1 , 100 8 and 100 7 Vertex 5 is not 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, and other triangles may have one or two of their vertices (e.g., vertex 5) that are not on an edge but are within volume 100, or are at the boundary of volume 100.

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

[0050] Thus, 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 particular context and has a length of N=2. s The vertex positions on 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, which includes two TriSoup triangles 102, 104, whose vertices 1-4 are aligned along an edge 100 (see FIG. 1) of the volume 100. 2 , 100 1 , 100 8 and 100 42. Triangle 102 includes vertices 1, 2, and 3, and triangle 104 includes vertices 1, 3, and 4. Thus, if there are at least three vertices on an edge of volume 100, a triangle can be constructed. 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 vertices on an edge of volume 100. Instead, one or two vertices of a triangle may be located anywhere within volume 100. FIG. 3 shows volume 100, which includes vertices 1-4 (FIG. 2) on corresponding edges of volume 100, and vertex 5 on another edge within volume 100. Within 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 within the volume 100 is based on the following three steps: 1. Determine the leading direction along one of the three axes. 2. Sort the TriSoup vertices based on the leading direction. 3. Construct triangles based on the ordered list of vertices.

[0053] Figure 4 illustrates the process of selecting triangles 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 FIG. 4(c), a first test is performed along the vertical axis by projecting the volume or cube 100 and TriSoup vertices vertically onto a 2D plane, i.e., starting from the top. The vertex centers for the projection node 114 are then reordered clockwise, and in the illustrated example, the projection node 114 is a square. As shown in FIG. 4(c), triangles are constructed based on the ordered vertices and according to certain rules, and in the example of FIG. 4, four vertices are included, and triangles 102, 104 are systematically constructed to include vertices 1, 2 and 3 of the first triangle and vertices 1, 3 and 4 of the second triangle. If there are only three vertices, the only possible triangle is the triangle that includes vertices 1, 2 and 3, and if there are five vertices, a certain rule can be used to construct triangles that include vertices (1, 2, 3), (1, 3, 5) and (4, 5, 1), etc. This can be repeated up to a maximum of 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 to produce the projection 116 shown in Figure 4(b). When the vertex centers for 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 Fig. 4, the vertical projection (Fig. 4(c)) shows the maximum 2D full surface of the triangles, so the main axis is selected as the vertical axis or z-axis, and based on the sequence of vertical projections shown in Fig. 4(c), we obtain the TriSoup triangles that are constructed, which also generate the triangles inside the volume depicted in Fig. 2. Note that if we consider the horizontal axis as the main axis, the structure of the triangles inside the volume 100 depicted in Fig. 5 is different, Fig. 5 shows the volume 100, where the triangles 102, 104 are constructed according to the vertex sequence shown in Fig. 4(b) when the main axis is taken as 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] The rendering of 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 contains 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 voxelized coordinates of precision corresponding to the sampling position required for rendering. Then, the intersection point 120 of the ray 118 and the triangle 102 is voxelized, i.e., rounded to the nearest point at the desired sampling position, and added to the rendering point list. After applying the TriSoup coding solution to all leaf nodes, i.e., after constructing the triangles and obtaining the intersection points by ray tracing, we discard copies of the same point in all rendering point lists (i.e., keep only one voxel out of all voxels sharing the same 3D position), thereby obtaining a unique set of decoded points.

[0059] When applying the TriSoup coding solution with a set of triangles used for each leaf node or volume in the above-mentioned manner to locally model the point cloud, so-called TriSoup data is also provided. For example, the TriSoup data includes information of the vertices of the triangles corresponding to the volume. However, in the prior art, the compression of the TriSoup data is not efficient. For example, in the prior art, a dedicated fixed-context entropy codec (e.g., a binary entropy codec) is used to compress the vertex flags indicating the presence of TriSoup vertices on the edges of the occupied volume associated with the leaf node. The present disclosure is based on the discovery that the compression of the TriSoup data can be improved by improving the estimation of the probability that the vertex flag or the presence flag is true or false. In particular, according to the teachings of the present disclosure, rather than compressing the vertex flags with an entropy codec (e.g., a 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 a better compression of the vertex flags by the entropy codec. Thus, the method of the present invention allows for improved compression of TriSoup data by obtaining contextual information related to the values ​​of vertex flags, thereby allowing for better estimation of the probability that a flag is true or false, resulting in improved flag compression by the entropy codec.

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

[0061] FIG. 7 shows a flow chart 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 number of cubes, and the occupied cube is modeled by one or more triangles, as shown in FIG. 2 and FIG. 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 to signal the existence of a vertex. According to an embodiment, as depicted in FIG. 7, the method includes the following steps: For a current edge of the cube, S100; · The occupancy information of the neighboring cubes adjacent to the current edge; · The vertex positions of the encoded adjacent edges of the current edge that have a common point with the current edge; and Context information is constructed based on one or more or all of the above. S102, select a coding probability for an 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] FIG. 8 is a flow chart of a method for decoding geometric information of a geometric figure of a point cloud 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 a presence flag for signaling the presence of a vertex. According to an embodiment, as depicted in FIG. 8, the method includes the following steps: For a current edge of a cube, S200; · The occupancy information of the neighboring 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 Context information is constructed based on one or more or all of the above. S202, select a coding probability for an entropy codec using the context information, and S204, decode the existence flag of the current edge by an entropy decoder using the selected coding probability.

[0063] FIG. 9 shows 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 number of cubes, and the part 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 a presence flag 202 signaling the presence of a vertex. 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 flag 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 a radio link), which decodes the presence flag 202 from the data stream 200. Thus, according to an embodiment, as depicted in Fig. 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 neighboring cubes adjacent to the current edge; · The vertex positions of the encoded adjacent edges of the current edge that have a common point with the current edge; and Context information is constructed based on one or more or all of the above.

[0064] We will now describe in more detail an embodiment of the invention. For the following description, an edge that belongs to at least one occupied volume is indexed with index k. An occupied volume is a volume associated with an occupied leaf node of a tree that represents the underlying geometry of a 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 a context used by the entropy codec to code · The occupancy of adjacent volumes associated with adjacent nodes in the tree; and one or more vertex flags k' of adjacent coded edges k'; One or more vertices V on the adjacent coded edge k' k’ Position of p k’ and,

[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 by dividing the volume e that intersects with the current edge k. l , a m and b n In step S108, the existence of a vertex (e.g., a vertex flag s k’ ), and in step S110, the vertex positions p of the vertices along the adjacent encoded edge k′ are obtained. k’ Based on the information acquired in steps S106 to S110, in step S112, the context information CIk The following is the context information CI. k An embodiment for constructing the above will now be described in more detail.

[0066] In step S102, the context information CI k Context or entropy codec is selected using the context information CI k It is easy to obtain coding probabilities based on the above to encode the vertex flags.

[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 by an entropy codec.

[0068] According to the embodiment, in step S102, the vertex flag s k using the coding probability of an entropy codec to code

[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, with the difference that the codec k into the bitstream, the vertex flags s are extracted from the bitstream 200. k FIG. 11 shows steps S200-S204 as 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, in steps S206-S210, the context information CI is obtained in step S212 by determining the occupancy with respect to the adjacent volume, the presence of vertices in the adjacent decoded edges, and the information of the vertex positions along the adjacent decoded edges. kIn step S202, a context or entropy codec is selected as described with reference to FIG. 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 a current edge k, i.e., the above encoding / decoding process is repeated for all edges of the occupied volume to obtain corresponding information 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 it exists, its position p k is provided along the edge relative to the start position of the edge, so that position p k becomes scalar information.

[0070] The 12 adjacent volumes intersect with the current edge k, i.e. The four adjacent volumes e that share the current edge k 1 ~e 4 As shown in Figure 12, the four leaf nodes / volumes e of the current edge k are indicated by the arrows. 1 ~e 4 Shows. The four adjacent volumes a with one corner as the start point of the current edge k 1 ~a 4 . The four adjacent volumes b with one corner as the end point of the current edge k 1 ~b 4 .

[0071] Figure 13 shows eight leaf nodes / volumes a 1 ~a 4 and b 1 ~b 4 One of the corners 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 .beta.-DNA complex. An example of such a 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 described 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 k For example, when the three axes of 3D space are marked as x, y, and z, the TriSoup edge ordering is the lexicographic ordering (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 ordering, edge k' that is parallel to the current edge k and points to its start point is always encoded / decoded, as shown in Figure 14, which shows only edge k' with a dashed arrow, and only edge k' is parallel to the current edge k shown with an arrow and points to the start point of the current edge. k’ Therefore, 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 of p k’ and, as mentioned above, the position pk’ may be a scalar information tested only from the start point of edge k'.

[0073] Also, as shown in FIG. 15, there are four edges k' that are perpendicular to the current edge and point to or start from the start point of the current edge k. FIG. 15 shows the four perpendicular edges k' with dashed arrows, which are perpendicular to the current edge k and point to or start from the start point of the current edge. Given the TriSoup edge order, some or all of the four vertical edges k' in FIG. 15 have already been encoded / decoded. As shown in FIG. 16, the number N of encoded / 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 FIG. 16(a). If the current edge k is parallel to the y-axis, then N perp (k)=3, as shown in FIG. 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 each of the (k) encoded / decoded vertical edges k', the vertex flag s k’ and the current vertex V k’ The vertex position p k’ 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 , b n )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 above will now be described.

[0078] Context information 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,.,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 there are four volumes m is the number of occupied volumes out of N b But there are 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 occupancy e , 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 k This portion can be further compressed into 3 bits of information: 4*(N a == 4 then 1, otherwise 0)+2*(N b == 4 then 1, else 0)+(N e ==4 then 1, otherwise 0).

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

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

[0084] As described above, according to the embodiment, the context information CI is generated 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 CIs k It is possible to construct a vertex 1 in which up to five adjacent edges have already been coded / decoded, i.e., N perp (k) vertical edges, and the parallel edge k′ or unique edge k′ described above with reference to FIG. 14. TV(k) is the number of coded / decoded edges k′ of a TriSoup vertex, i.e., the true vertex flag s k’ and let NTV(k) be the number of nonexistent 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 of p k It has been found that sufficient compression results can be obtained using the value of NTV(k) alone because the correlation between the k and the context information CI is low. Therefore, in such an embodiment, the context information CI is calculated 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 obtain context information CI k When considering the unique edge k′ that is parallel to the current edge k and points to its start point, the TriSoup vertices that belong 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 parIn addition, 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 s k It has already been shown that the vertex position is a good indicator of the value of p par,Q As shown in FIG. 17, the quantization can be performed by 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) k For example, as shown in FIG. 18, one or more positions p 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' (the start point of the current edge k) and the vertex V k Position of 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’ Position p whose distance from the start of the current edge k to the k’ is said to be "far" from the current position of edge k. k’ Number of 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 par Position of 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≦Nnear ≦5.

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

[0091] According to the embodiment, the context information CI k When constructing, the encoded / decoded vertices V k’ Position of p k’ According to an embodiment, 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 is added to 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 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’ The ternary system includes three sections, far, middle and near, which indicate the position of edge k'. The far section starts at the start of edge k' and extends along part of the length of edge k'. The near section ends at the end of edge k', which is the start 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 system values ​​shown in FIG. 19, the following equations apply: N near +N mid +N far =T V ( 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 the embodiment, the context information CI k When constructing the encoded / decoded vertices 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-mentioned 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 added to the vertex flags s kIt has already been shown to be a very strong predictor of the value of W=32*W 1 +W 2 Where: W 1 =32*N far '+8*N mid '+2*N near '+p par,Q W 2 =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 k 3 is a block diagram of an apparatus for encoding a · The occupancy information of the neighboring cubes adjacent to the current edge; · The vertex positions of the encoded adjacent edges of the current edge that have a common point with the current edge; and a context information construction module 302 configured to construct context information for a 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 neighboring 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 context information construction module 402 for constructing context information for a current edge based on one or more of the following: 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 may be implemented by: l , a m , b n The vertex position acquisition submodule 504 may include one or more of the following modules: an occupancy information acquisition submodule 500 for acquiring occupancy information of the adjacent edge k'; a vertex presence acquisition submodule 502 for acquiring vertex presence in the encoded / decoded adjacent edge k'; and a vertex position acquisition submodule 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 serve as descriptions of 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 serve as descriptions of 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, smart phones, wearable devices, and other similar computing devices. The components illustrated herein, their connections and relationships, and their functions are merely examples and are not intended to limit the description herein and / or the practice of the present application as claimed.

[0106] 23, the 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 the device 900. The computing unit 901, the ROM 902 and the 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 various 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-executed learning model algorithm computing units, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 901 executes each of the methods and processes described above, such as the pre-trained model determination method. For example, in some embodiments, the pre-trained model determination method can 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 is loaded and / or installed in 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, one or more steps of the image processing method described above can be performed. Alternatively, in other embodiments, the computing unit 901 may be configured to perform image processing methods 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 chips (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 may 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 may 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] The program codes 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 / operations specified in the flowcharts and / or block diagrams are performed. The program codes 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 can contain or store a program used by or in combination 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 any suitable combination 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 any suitable combination of the above.

[0112] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to a user, as well as a keyboard and a 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 interaction with a user, for example, feedback provided to the user can be any form of sensing feedback (e.g., visual feedback, auditory feedback, or haptic feedback) and can receive input from the user in any form (including acoustic, speech, or tactile input).

[0113] The systems and techniques described herein may 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 the 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 may 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] The computer system may include a client and a server. The client and the server are generally remote from each other and usually interact with each other through a communication network. The relationship between the client and the server is generated by a computer program that runs on a corresponding computer and has a client-server relationship with each other. The server may be a cloud server, also called a cloud computing server or cloud host, which is a host product in a cloud computing service system and solves the defects of the traditional physical host and virtual private server (abbreviated as "VPS") services, such as difficult management and weak business scalability. The server may be a server of a distributed system or a server combined with a blockchain.

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

[0116] The above specific embodiments do not limit the scope of protection of the present disclosure. It should be understood that those skilled in the art can make various modifications, combinations, partial combinations and substitutions 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 to 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), said point cloud being represented by a plurality of cubes (100), said occupied cubes (100) being modeled by one or more triangles (102-112), at least one triangle being connected to an edge of said occupied cube (100) with at least one corresponding vertex (V k ), and the geometric information is a signal including vertices (V k An existence flag (s k ), the method including, for a current edge (k), - the adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information; - vertex position information of an encoded adjacent edge (k') of the current edge (k), the adjacent edge having a common point with the current edge (k); Based on one or more or all of the following, context information (CI) k ) (S100); The context information (CI k ) to select a coding probability for an entropy codec (S102); The entropy codec calculates the existence flag (s 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 bit stream (200), said point cloud being represented by a plurality of cubes (100), said occupied cubes (100) being modeled by one or more triangles (102-112), at least one triangle being connected to at least one corresponding vertex (V) of an edge of said occupied cube (100). k ), and the geometric information is a signal including vertices (V k An existence flag (s k ), the method including, for a current edge (k), - the adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information; - vertex position information of a decoded adjacent edge (k') of the current edge (k), the adjacent edge having a common point with the current edge (k); Based on one or more or all of the following, context information (CI) k ) (S200); The context information (CI k ) to select a coding probability 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 adjacent cubes that belong to a subset of adjacent 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 is - the adjacent cube (e 1 ~e 4 )and, - the adjacent cube (a) having a corner as the start 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 The method according to claim 1 or 2.

4. - the encoded / decoded existence flag (s 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) have a distance 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) are within a predetermined interval; based on one or more or all of the context information (CI k ) to build A method according to any preceding claim.

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

6. The context information (CI k ) is constructed by constructing the vertex (V k’ ) at the position (p k’ ) to the vertex (V k’ ) at the position (p k’ quantizing the image data to a precision less than that for encoding the image data into the bitstream (200); 6. The method according to claim 4 or 5.

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; A method according to any preceding claim.

8. modeling the point cloud using the TriSoup coding solution; A method according to any preceding claim.

9. A non-transitory computer-readable storage medium containing instructions, The instructions, when executed by a computer, cause the computer to perform a method according to any one of claims 1 to 8. 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), the point cloud being represented by a plurality of cubes (100), the occupied cubes (100) being modeled by one or more triangles (102-112), at least one triangle being connected to at least one corresponding vertex (V) of an edge of the occupied cube (100). k ), and the geometric information is a signal including vertices (V k An existence flag (s k ), said apparatus comprising: - the adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information; - vertex position information of an encoded adjacent edge (k') of the current edge (k), the adjacent edge having a common point with the current edge (k); Context information (CI) is then applied to the current edge (k) based on one or more or all of the following: k ) is constructed as the context information (CI) k ) a construction module (302); The context information (CI k ) Context information provided by the construction module (CI k a selection module (304) configured to select coding probabilities for an entropy codec using The entropy codec calculates the existence flag (s k and an encoding module (306) configured to encode the A device that encodes the geometric information of a point cloud geometry into a bitstream.

11. An apparatus (400) for decoding geometric information of a geometric figure of a point cloud from a bit stream (200), the point cloud being represented by a plurality of cubes (100), the occupied cubes (100) being modeled by one or more triangles (102-112), at least one triangle being connected to at least one corresponding vertex (V) of an edge of the occupied cube (100). k ), and the geometric information is a signal including vertices (V k An existence flag (s k ), said apparatus comprising: - the adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information; - vertex position information of a decoded adjacent edge (k') of the current edge (k), the adjacent edge having a common point with the current edge (k); Context information (CI) is then applied to the current edge (k) based on one or more or all of the following: k ) is constructed as 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 and 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 submodule (500) configured to acquire occupancy information of - a vertex presence acquisition sub-module (502) adapted to acquire the vertex presence in the encoded / decoded adjacent edge (k'); a vertex position acquisition sub-module (504) configured to acquire 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) have a distance 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) are within a predetermined interval; configured to obtain one or more or all of 14. Apparatus according to claim 12 or 13.

15. A data stream (200) in which geometric information of a geometric figure of a point cloud is encoded, said point cloud being represented by a plurality of cubes (100), said occupied cubes (100) being modeled by one or more triangles (102-112), at least one triangle being connected to at least one corresponding vertex (V k ), and the geometric information is a signal including vertices (V k An existence flag (s k ), the data stream (200) including, for a current edge (k), Context Information (CI k ) the existence flag (s) of the current edge (k) encoded into the data stream (200) by an entropy encoder using a coding probability selected using k ), The context information (CI k )teeth, - the adjacent cube (e 1 ~e 4 , a 1 ~a 4 , b 1 ~b 4 ) occupancy information; - vertex position information of an encoded adjacent edge (k') of the current edge (k), the adjacent edge having a common point with the current edge (k); Based on one or more or all of the following: Data stream.

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

Cited By

  • Point group decoding device, point group decoding method, and program

    JP2024093896A

  • Point cloud decoding device, point cloud decoding method, and program

    JP7842682B2