Methods and apparatuses with entropy continuation for entropy coding in l3c2 lidar point cloud coding
The entropy continuation method in point cloud codecs addresses the inefficiencies of re-initializing context tables by reusing context tables across frames, enhancing compression performance and reducing latency in point cloud encoding and decoding.
Patent Information
- Application Number
- PCT/CN2024/088131
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-16
- Publication Date
- 2025-10-23
AI Technical Summary
Existing point cloud codecs, particularly the L3C2 coding scheme, face challenges in achieving optimal entropy coding performance and low latency due to the re-initialization of context tables at the beginning of each frame, which affects compression performance and does not utilize well-predicted probability models across frames.
Implement an entropy continuation method that reuses and updates context tables across frames, using flags to indicate whether a context table has been used for previous frames, enabling efficient entropy encoding and decoding by reusing generated and updated context tables for subsequent frames.
This approach enhances compression performance and reduces processing time by maintaining context tables across frames, improving latency and efficiency in point cloud encoding and decoding processes.
Smart Images

Figure CN2024088131_23102025_PF_FP_ABST
Abstract
Description
METHODS AND APPARATUSES WITH ENTROPY CONTINUATION FOR ENTROPY CODING IN L3C2 LIDAR POINT CLOUD CODINGFIELD
[0001] The present application generally relates to point cloud compression and, in particular, to methods and to apparatuses supporting entropy continuation for entropy coding, particularly in L3C2 (Low-Latency Low-Complexity Codec) Lidar point cloud coding.BACKGROUND
[0002] As a format for the representation of 3D data, point clouds and point cloud codecs have recently gained traction as they are versatile in their capability in representing all types of 3D objects or scenes. Therefore, many use cases can be addressed by point clouds, among which are movie post-production, real-time 3D immersive telepresence or VR / AR applications, free viewpoint video (for instance for sports viewing) , Geographical Information Systems (aka cartography) , culture heritage (storage of scans of rare objects into a digital form) , and autonomous driving, including 3D mapping of the environment and real-time Lidar data acquisition
[0003] Until recently, point cloud compression (aka PCC) was not addressed by the mass market and no standardized point cloud codec was available. In 2017, the standardization working group ISO / JCT1 / SC29 / WG11, also known as Moving Picture Experts Group or MPEG, has initiated work items on point cloud compression. This has led to two standards, namely
[0004] [1] MPEG-I part 5 (ISO / IEC 23090-5) or Video-based Point Cloud Compression (V-PCC)
[0005] [2] MPEG-I part 9 (ISO / IEC 23090-9) or Geometry-based Point Cloud Compression (G-PCC) .
[0006] Both V-PCC and G-PCC standards have finalized their first version in late 2020 and will soon be available to the market.
[0007] It would be appreciated to provide improved concepts for the compression performance and running time of (e.g., L3C2) point cloud coding scheme by improving the entropy coding in a (e.g., L3C2) point cloud coding method.SUMMARY
[0008] A method for entropy decoding according to an embodiment is provided. The method comprises obtaining an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table; determining the context table from the bitstream; decoding point cloud data from the bitstream based on the context table.
[0009] Moreover, a method for entropy encoding according to an embodiment is provided. The method comprises entropy encoding point cloud data of at least one frame into a bitstream using a context table; generating the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.
[0010] Furthermore, an apparatus for entropy decoding according to an embodiment is provided. The apparatus comprises at least one processor configured for obtaining an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table; determining the context table from the bitstream; decoding point cloud data from the bitstream based on the context table.
[0011] Moreover, an apparatus for entropy encoding according to an embodiment is provided. The apparatus comprises at least one processor configured for entropy encoding point cloud data of at least one frame into a bitstream using a context table; generating the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.
[0012] Furthermore, a computer program product including instructions which, when the instructions are executed by one or more processors, carry out a method for entropy decoding according to an embodiment is provided. The method comprises obtaining an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table; determining the context table from the bitstream; decoding point cloud data from the bitstream based on the context table.
[0013] Moreover, a non-transitory digital storage medium carrying instructions of program code for executing a method for entropy decoding according to an embodiment is provided. The method comprises obtaining an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table; determining the context table from the bitstream; decoding point cloud data from the bitstream based on the context table.
[0014] Furthermore, a computer program product including instructions which, when the instructions are executed by one or more processors, carry out a method for entropy encoding according to an embodiment is provided. The method comprises entropy encoding point cloud data of at least one frame into a bitstream using a context table; generating the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.
[0015] Moreover, a non-transitory digital storage medium carrying instructions of program code for executing a method for entropy encoding according to an embodiment is provided. The method comprises entropy encoding point cloud data of at least one frame into a bitstream using a context table; generating the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.
[0016] In this disclosure, an entropy continuation method between frames, and a better evolved prediction model (than an initialization prediction model) is provided, which can be reused in entropy coding information for later frames. By doing so, a better compression performance and less running time can be obtained.BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 shows a spinning Lidar head that includes several spinning lasers that probes the environment.
[0018] Figure 2 shows the elevation angle θ of a spinning laser.
[0019] Figure 3 shows a 2D angular ( θ) representation of the points acquired by a spinning Lidar.
[0020] Figure 4 shows acquired points on the discrete ( θ) representation.
[0021] Figure 5 shows 3D xyz coordinates and angle-based coordinates (r2D, θ) or (r3D, θ) .
[0022] Figure 6 shows an acquisition order in azimuthal angle and laser index λ.
[0023] Figure 7 shows points in azimuthal angle and laser index λ by a real acquisition.
[0024] Figure 8 shows ordering of points in coarse azimuthal angle and laser index λ.
[0025] Figure 9 shows a representation of the point cloud by differences Δnext for a first lexicographic order ( λ) .
[0026] Figure 10 shows an overview of an encoding method implementing a preceding disclosure provided in [3] .
[0027] Figure 11 shows an overview of a decoding method implementing the preceding disclosure provided in [3] .
[0028] Figure 12 shows a method for entropy encoding according to an embodiment.
[0029] Figure 13 shows a method for entropy decoding according to an embodiment.
[0030] Figure 14 shows a bitstream structure of a frame with one slice in accordance with at least one exemplary embodiment.
[0031] Figure 15 shows a bitstream structure of a frame with multiple slices in accordance with at least one exemplary embodiment.
[0032] Figure 16 shows a context adaptive entropy decoder in accordance with at least one exemplary embodiment.
[0033] DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0034] At first, principles on which embodiments are based are described:
[0035] A point cloud is a set of points located in a 3D space, optionally with additional values attached to each of the points. These additional values are usually called point attributes. Consequently, a point cloud is combination of a geometry (the 3D position of each point) and attributes.
[0036] Attributes may be, for example, three-component colors, material properties like reflectance and / or two-component normal vectors to a surface associated with the point.
[0037] Point clouds may be captured by various types of devices like an array of cameras, depth sensors, Lidars, scanners, or may be computer-generated (in movie post-production for example) . Depending on the use cases, points clouds may have from thousands to up to billions of points for cartography applications.
[0038] Raw representations of point clouds require a very high number of bits per point, with at least a dozen of bits per spatial component X, Y or Z, and optionally more bits for the attribute (s) , for instance three times 10 bits for the colors. Practical deployment of point-cloud-based applications requires compression technologies that enable the storage and distribution of point clouds with reasonable storage and transmission infrastructures.
[0039] Compression may be lossy (like in video compression) for the distribution to and visualization by an end-user, for example on AR / VR glasses or any other 3D-capable device. Other use cases do require lossless compression, like medical applications or autonomous driving, to avoid altering the results of a decision obtained from the analysis of the compressed and transmitted point cloud.
[0040] The V-PCC coding method compresses a point cloud by performing multiple projections of a 3D object to obtain 2D patches that are packed into an image (or a video when dealing with moving point clouds) . Obtained images or videos are then compressed using already existing image / video codecs, allowing for the leverage of already deployed image and video solutions. By its very nature, V-PCC is efficient only on dense and continuous point clouds because image / video codecs are unable to compress non-smooth patches as would be obtained from the projection of, for example, Lidar-acquired sparse geometry data.
[0041] The G-PCC coding method has two schemes for the compression of the geometry.
[0042] The first scheme is based on an occupancy tree (octree / quadtree / binary tree) representation of the point cloud geometry. Occupied nodes are split down until a certain size is reached, and occupied leaf nodes provide the location of points, typically at the center of these nodes. By using neighbor-based prediction techniques, high level of compression can be obtained for
[0043] dense point clouds. Sparse point clouds are also addressed by directly coding the position of point within a node with non-minimal size, by stopping the tree construction when only isolated points are present in a node; this technique is known as Direct Coding Mode (DCM) .
[0044] The second scheme is based on a predictive tree, each node representing the 3D location of one point and the relation between nodes is spatial prediction from parent to children. This method can only address sparse point clouds and offers the advantage of lower latency and simpler decoding than the occupancy tree. However, compression performance is only marginally better, and the encoding is complex, relatively to the first occupancy-based method, intensively looking for the best predictor (among a long list of potential predictors) when constructing the predictive tree.
[0045] In both schemes, attribute (de) coding is performed after complete geometry (de) coding, leading to a two-pass coding. Thus, low latency is obtained by using slices that decompose the 3D space into sub-volumes that are coded independently, without prediction between the sub-volumes. This may heavily impact the compression performance when many slices are used.
[0046] An important use case is the transmission of Lidar data acquired by a moving vehicle. This usually requires a simple low-latency embarked encoder. Simplicity is required because the encoder is likely to be deployed on computing units which perform other processing in parallel, such as (semi-) autonomous driving, thus limiting the processing power available to the point cloud encoder. Low latency is also required to allow for fast transmission from the car to a cloud in order to have a real-time view of the local traffic, based on multiple-vehicle acquisition, and take adequate fast decision based on the traffic information. While transmission latency can be low enough by using 5G, the encoder itself shall not introduce too much latency due to coding. Also, compression performance is extremely important since the flow of data from millions of cars to the cloud is expected to be extremely heavy.
[0047] Combining encoder and decoder simplicity, low latency and compression performance is still a problem that has not been satisfactory solved by existing point cloud codecs.
[0048] In the following, compression of point clouds acquired by a rotating sensor is considered.
[0049] Specific priors related to the acquisition of Lidar data have been already exploited in G-PCC and have led to very significant gains of compression. A first technique concerns the vertical angle (relative to the horizontal ground) of acquisition from a spinning Lidar (depicted in Figure 1) : this angle θ is fixed, as shown on Figure 2. In particular, Figure 1 shows a spinning Lidar head that includes several spinning lasers that probes the environment. Figure 2 shows the elevation angle θ of a spinning laser.
[0050] Practically, the representation of the Lidar-acquired point cloud is not 3D but quasi 2D in the spherical coordinates (r3D, θ) , where r3D is 3D the distance of a point from the Lidar’s center, is the azimuthal angle and θ the elevation angle.
[0051] G-PCC has gone even further by exploiting a second technique that makes benefit of the regularity of laser sensing while the Lidar is spinning, as depicted on Figure 3. In particular, Figure 3 shows a 2D angular ( θ) representation of the points acquired by a spinning Lidar. A regular distribution along the azimuthal angle has been observed on Lidar acquired data. This regularity is used to obtain a quasi 1 D representation of the point cloud where, up to noise, only the radius r3D belongs to a continuous range of value while the angles and θ take only a discrete number of values.
[0052] Figure 4 shows acquired points on the discrete ( θ) representation. Basically, one may represent the point cloud geometry on a 2D discrete angular plane, see Figure 4, together with a radius value for each point. This quasi 1 D property has been exploited in G-PCC in both the occupancy tree and the predictive tree by predicting, in the spherical coordinate, the location of a current point relative to an already coded point by using the discrete nature of angles.
[0053] Practically, the occupancy tree uses DCM intensively and entropy codes the direct location of points within a node by using a context-adaptive entropy coder. Contexts are obtained from the local conversion of the point location into angular ( θ) coordinates.
[0054] Figure 5 shows 3D xyz coordinates and angle-based coordinates (r2D, θ) or (r3D, θ) . The predictive tree directly codes the angular coordinates (r2D, θ) , where r2D is the projected radius on the horizontal xy plane (see Figure 5) , before converting into (x, y, z) and then coding a xyz residual to tackle the errors of coordinate conversion, the approximation of laser angle and noise.
[0055] As explained above there are mainly two types of coding structure in the prior art, namely the occupancy tree and the predictive tree.
[0056] In the framework of rotating Lidar systems, a coarse one-chain representation of the Lidar-acquired point cloud has been proposed in a preceding disclosure [3] .
[0057] In this preceding disclosure [3] , all lasers are coded at once by using the order of acquisition, as shown on Figure 6 in the ( λ) plane. In particular, Figure 6 shows an acquisition order in azimuthal angle and laser index λ. Due to the regular rotation of the Lidar’s head and the continuous acquisition with fixed time interval by each laser, the azimuthal distance between two points probed by the same laser is a multiple of an elementary azimuthal shift
[0058] Instead of coding the point location directly, a coarse representation may be coded first, based on the acquisition priors.
[0059] For example, one may use a coarse representation ( λ) of the point cloud geometry to order the point using a lexicographic order (aka dictionary order) first in the coarse azimuthal angle and second in the laser index (or the sensing elevation angle index) λ.
[0060] Figure 7 shows points in azimuthal angle and laser index λ by a real acquisition. Schematically, the points are acquired in the order already shown in Figure 7 in the ( λ) plane. Due to the regular rotation of the Lidar’s head and the continuous acquisition with fixed time interval by each laser, the azimuthal distance between two points probed by the same laser is a multiple of an elementary azimuthal shift Practically, not all points are acquired, i.e. the laser beam may not be reflected, there is acquisition noise and laser may not be all perfectly aligned. Real data look as shown on Figure 7.
[0061] The coarse angle is simply obtained by the quantization of as follows
[0062] and the order index o (P) of a point P is obtained by
[0063] where Nlaser is the number of lasers and λ is the index of the laser index, in [0, Nlaser -1] that has acquired point P. The codec encodes the points P following their order o (P) monotonously, say using an ascending order. Thus, points are coded in the order depicted in Figure 8. In particular, Figure 8 shows ordering of points in coarse azimuthal angle and laser index λ.
[0064] The coarse representation in the plane ( λ) may be coded by
[0065] - the number of points Npoints
[0066] - the value of ( λ) for the first acquired point
[0067] - the Npoints-1 successive differences Δnext between a current point and a next point as sorted by the lexicographic order, as depicted in Figure 9.
[0068] In particular, Figure 9 shows a representation of the point cloud by differences Δnext for a first lexicographic order ( λ) . The coarse representation consists in successive differences Δnext and the compression of the coarse representation is essentially based on the compression of the successive positive values Δnext.
[0069] Sketch of a complete point cloud codec based on the preceding disclosure of
[0070] An overview of an encoding method based on the disclosure in [3] , in particular, a sketch of a complete point cloud codec, is shown on Figure 10. In particular, Figure 10 shows an overview of an encoding method implementing the preceding disclosure provided in [3] .
[0071] Firstly, the encoder converts the xyz point location into a laser index λ, a coarse angle and a radius r2D thanks to the knowledge of the Lidar sensor setup. Differences Δnext are determined and the disclosure is applied to the coding of the Δnext’s into the bitstream, as well as useful information on the sensor setup (like and laser elevation angles for example) .
[0072] Secondly, a reconstructed azimuthal angle is computed. It can be obtained directly from the dequantization of the coarse angle. Optionally, a residual may be computed as the difference and encoded into the bitstream. The residual may be quantized into before encoding. In this case, the reconstructed azimuthal angle is obtained by
[0073] where IQ stands for the inverse quantization process.
[0074] The radius r (here r2D) is also coded, optionally after quantization into Q (r) . It is inverse quantized to obtain a reconstructed radius rrec = IQ (Q (r) ) .
[0075] Thirdly, the reconstructed azimuthal angle and the reconstructed radius rrec are converted back to xy to obtain an estimation of the x and y location of the point.
[0076] Residuals xres and yres relative to the original point location xy are computed xres = x -xestim, yres = y -yestim,
[0077] and encoded into the bitstream.
[0078] Fourthly and finally, a vertical estimate zestim is obtained from the laser angle θ (λ) by zestim = rrec tan (θ (λ) )
[0079] and a residual zres relative to the original point location z is computed zres = z -zestim
[0080] and encoded into the bitstream.
[0081] An overview of the associated decoding method based on the disclosure of [3] is shown in Figure 11. In particular, Figure 11 shows an overview of a decoding method implementing the preceding disclosure provided in [3] . It is straightforward once the encoding process is understood.
[0082] Firstly, the decoder decodes useful information on the sensor setup (like and laser elevation angles for example) and differences Δnext, by using the disclosure, from the bitstream. Then, the values of the laser index λ and the coarse angle are obtained from Δnext as explained in next section.
[0083] Secondly, the reconstructed azimuthal angle is computed. It may be obtained directly from the dequantization of the coarse angle. Optionally, an azimuthal residual may be decoded from the bitstream. The decoded residual may be a quantized version of the residual and the reconstructed azimuthal angle is obtained by
[0084] where IQ stands for the inverse quantization process.
[0085] The radius r (here r2D) is also decoded. The coded radius may be a quantized version Q (r) of the radius. It is inverse quantized to obtain a reconstructed radius rrec = IQ (Q (r) ) .
[0086] Optionally, the radius may be predicted (by a precedingly coded radius for example) and a radius residual may be coded instead of the radius.
[0087] Thirdly, the reconstructed azimuthal angle and the reconstructed radius rrec are converted back to xy to obtain an estimation of the x and y location of the point.
[0088] Residuals xres and yres are decoded from the bitstream and decoded horizontal location xdec and ydec of the point are computed xdec = xestim + xres, ydec = yestim + yres.
[0089] Fourthly and finally, a vertical estimate zestim is obtained from the laser angle θ (λ) by zestim = rrec tan (θ (λ) ) ,
[0090] a residual zres is decoded from the bitstream and the decoded vertical location zdec of the point is computed zdec = zestim + zres .
[0091] The entropy coding method (including entropy encoding, labelled as 101, 102 and 103 in Figure 10, and entropy decoding, labelled as 111, 112 and 113 in Figure 11) is not optimal in current L3C2 coding scheme because it re-initializes entropy context tables at the beginning of coding each frame, and that will cause big time consuming to re-initializes entropy context tables for coding order difference Δnext, quantized residuals, like and Q (r) , and reconstructed residuals in (x, y, z) domain, which is not good for low latency requirements in Lidar point cloud coding. Also, re-initializing entropy context tables for each frame in a sequence didn’t make use of the well predicted probability model generated and updated in coding previous frames, which will make the compression performance drop.
[0092] In the following, particular embodiments are described.
[0093] Figure 12 shows a method for entropy encoding according to an embodiment.
[0094] The method comprises:
[0095] Entropy encoding (121) point cloud data of at least one frame into a bitstream using a context table.
[0096] Generating (122) the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.
[0097] According to an embodiment, the indication may, e.g., indicate whether or not the context table that has been used for encoding the point cloud data of the at least one frame is a context table that has been used for encoding point cloud data of a previous frame of the at least one frame.
[0098] In an embodiment, entropy encoding (121) the point cloud data may, e.g., comprise entropy encoding a geometry position and / or attribute information of points of the point cloud data using the context table.
[0099] In other words, the method can be also used only for geometry information context, or only for attribute information context, or for both geometry and attribute information context.
[0100] According to an embodiment, the method may, e.g., comprise generating (122) the bitstream such that the bitstream comprises a first flag (e.g., inter_entropy_continuation_enabled_flag) , indicating that the context table that has been used for encoding the point cloud data of the at least one frame is:
[0101] a context table that has been used for encoding point cloud data of a previous frame of the at least one frame, or
[0102] a context table that has not been used for encoding point cloud data of any previous frame of the at least one frame.
[0103] In an embodiment, the method may, e.g., comprise generating (122) the bitstream such that a sequence parameter set part of the bitstream comprises the first flag (e.g., inter_entropy_continuation_enabled_flag) .
[0104] Figure 13 shows a method for entropy decoding according to an embodiment.
[0105] The method comprises:
[0106] Obtaining (131) an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table.
[0107] Determining (132) the context table from the bitstream.
[0108] Decoding (133) point cloud data from the bitstream based on the context table.
[0109] According to an embodiment, the indication indicates whether or not the context table that has been used for encoding the point cloud data of the at least one frame is a context table that has been used for encoding point cloud data of a previous frame of the at least one frame.
[0110] In an embodiment, entropy decoding (133) the point cloud data may, e.g., comprise entropy decoding a geometry position and / or attribute information of points of the point cloud data using the context table.
[0111] According to an embodiment, the indication may, e.g., be a first flag (e.g., inter_entropy_continuation_enabled_flag) , indicating that the context table that has been used for encoding the point cloud data of the at least one frame is:
[0112] a context table that has been used for encoding point cloud data of a previous frame of the at least one frame, or
[0113] a context table that has not been used for encoding point cloud data of any previous frame of the at least one frame.
[0114] In an embodiment, the method may, e.g., comprise obtaining the first flag (e.g., inter_entropy_continuation_enabled_flag) from a sequence parameter set part of the bitstream.
[0115] According to an embodiment, when the first flag indicates that entropy continuation is enabled, one or more entropy context tables for decoding geometry information may, e.g., be initialized for a first frame and the generated and updated one or more entropy context tables for coding geometry information are reused for one or more subsequent frames.
[0116] In an embodiment, when the first flag indicates that the entropy continuation is disabled, then for each frame of a plurality of frames an individual context table may, e.g., be determined.
[0117] According to an embodiment, when the first flag indicates that the entropy continuation is enabled, a second flag (e.g., interPredictionEnabledFlag) may, e.g., be obtained from the bitstream, which indicates whether or not a current frame is a first frame of a plurality of frames or not in a group of pictures (GOP) .
[0118] In an embodiment, when the first flag indicates that the entropy continuation is enabled, and when the second flag indicates that the current frame is not the first frame in a group of pictures, then a context table that has been used for entropy decoding a previous frame of the current frame may, e.g., be reused.
[0119] According to an embodiment, the method may, e.g., comprise determining one or more context tables for entropy attribute decoding.
[0120] In an embodiment, the method may, e.g., comprise obtaining, from the bitstream, a third flag (e.g., an interPredictionEnabledAttrFlag) which indicates whether or not the context table has been used for entropy attribute encoding.
[0121] According to an embodiment, the third flag may, e.g., have been obtained from a header of an attribute data unit of the bitstream.
[0122] In an embodiment, the method may, e.g., comprise employing the plurality of context tables for entropy decoding at least one of:
[0123] geometry information generated in an L3C2 coding scheme,
[0124] a coding order difference,
[0125] a plurality quantized residuals.
[0126] In the following, particular embodiments are provided.
[0127] It is proposed to introduce an entropy continuation method between point cloud frames of a sequence, e.g., in a current L3C2 point cloud coding scheme.
[0128] In the proposed method, a flag (for example, inter_entropy_continuation_enabled_flag) indicating if the entropy continuation method between frames of a sequence is enabled or not is introduced.
[0129] If the flag (for example, inter_entropy_continuation_enabled_flag) is true, then the entropy continuation method between frames of a sequence is enabled, and it only initializes the entropy context tables used for coding geometry information of the first frame of a sequence and reuses the generated and updated entropy context tables for coding geometry information of later (e.g., subsequent) frames of a sequence in L3C2 coding scheme.
[0130] Otherwise, if the flag (for example, inter_entropy_continuation_enabled_flag) is false, then the entropy continuation method between frames is disabled, and it initializes the entropy context tables used for coding geometry information of all frames, which is the same as that in current L3C2 coding scheme.
[0131] For example, the proposed method may, e.g., be used in inter prediction framework of L3C2 point cloud coding. A suitable framework is, for example, described in a preceding disclosure [4] , wherein a flag (for example, inter_prediction_enabled_flag) indicating, if inter prediction method of Lidar data sequences is enabled or not is introduced.
[0132] In a preferred embodiment of the proposed method, only (if) the flag inter_prediction_enabled_flag is true, the proposed entropy continuation method for L3C2 may, e.g., be enabled.
[0133] At an encoder side, to encode each frame, the following may, e.g., be conducted:
[0134] Firstly, the values of flags (including inter_entropy_continuation_enabled_flag, and etc. ) are set to be true or false, and then the flags (including inter_entropy_continuation_enabled_flag, and etc. ) are encoded into a bitstream.
[0135] Then, before encoding geometry information in L3C2 point cloud coding, it determines the context tables for geometry information that need to be entropy encoded.
[0136] For example, the geometry information includes order difference Δnext, quantized residuals, like and Q (r) , reconstructed residuals in (x, y, z) domain, and etc.
[0137] The determining of context tables for geometry information may, e.g., be based on the flag inter_entropy_continuation_enabled_flag described before.
[0138] If the flag inter_entropy_continuation_enabled_flag is true, it further considers a flag interPredictionEnabledFlag indicating if the current coded frame is the first frame or not in a GOP (e.g., group of pictures) , wherein a GOP is a unit of sequence of point cloud frames wherein the inter prediction is implied. And if the current coded frame is not the first frame in a GOP (the flag interPredictionEnabledFlag is true) , then it reuses the generated and updated context tables to entropy code geometry information of current frame. Otherwise, if flag interPredictionEnabledFlag is false (it means that the current coded frame is the first frame in a GOP) , then it initializes all the context tables used for entropy coding geometry information of current frame. Otherwise, if the flag inter_entropy_continuation_enabled_flag is false, then it initializes all the context tables used for entropy coding geometry information of current frame.
[0139] Then, it entropy encodes the geometry information based on the determined context tables determined above, and it also entropy encodes attribute information based on initialized context tables same as that in current L3C2 coding scheme.
[0140] And at a decoder side, to decode each frame, the following may, e.g., be conducted: Firstly, the values of flags (including inter_entropy_continuation_enabled_flag, and etc. ) are decoded from bitstream.
[0141] Then, before decoding geometry information in L3C2 point cloud coding, it determines the context tables for geometry information that need to be entropy decoded.
[0142] For example, the geometry information includes order difference Δnext, quantized residuals, like and Q (r) , reconstructed residuals in (x, y, z) domain, and etc.
[0143] And the determining of context tables for geometry information is based on the flag inter_entropy_continuation_enabled_flag described before.
[0144] If the flag inter_entropy_continuation_enabled_flag is true, and it further considers a flag interPredictionEnabledFlag indicating if the current coded frame is the first frame or not in a GOP, wherein a GOP is a unit of sequence of point cloud frames wherein the inter prediction is implied. And if the current coded frame is not the first frame in a GOP (the flag interPredictionEnabledFlag is also true) , then it reuses the generated and updated context tables to entropy decode geometry information of current frame; otherwise if flag interPredictionEnabledFlag is false (it means that the current coded frame is the first frame in a GOP) , then it initializes all the context tables used for entropy decoding geometry information of current frame. Otherwise, if the flag inter_entropy_continuation_enabled_flag is false, then it initializes all the context tables used for entropy decoding geometry information of current frame.
[0145] Then, it entropy decodes the geometry information based on the determined context tables determined above, and it also entropy decodes attribute information based on initialized context tables same as that in current L3C2 coding scheme.
[0146] In a preferred embodiment, the flag inter_prediction_enabled_flag is put in GPS part of a bitstream.
[0147] In a preferred embodiment, the flag inter_entropy_continuation_enabled_flag is put in SPS (sequence parameter set) part in a bitstream.
[0148] In a preferred embodiment, the flag interPredictionEnabledFlag is put in the header of Geometry data unit.
[0149] In the following, further particular, exemplary embodiments are provided.
[0150] In a first exemplary further aspect of particular embodiments, flag positions in a bitstream according to the proposed method is described.
[0151] The bitstream structure of a frame with multiple slices is shown in Figure 15, wherein SPS (sequence parameter set) contains parameters that are used to signal information (like flags) for whole sequence coding, and GPS (geometry parameter set) contains parameters that are used to signal information (like flags) for coding geometry information, and APS (attribute parameter set) contains parameters that are used to signal information (like flags) for coding attribue information, and Geometry data unit and attribute data unit are coded bitstream for geometry information and Attribute information of a slice, separately.
[0152] In a preferred embodiment, the flag inter_entropy_continuation_enabled_flag is put in SPS (sequence parameter set) part in a bitstream described above. And in the preferred embodiment, the flag interPredictionEnabledFlag is put in the header of Geometry data unit.
[0153] In another variant, determining the flag interPredictionEnabledFlag is based on if the current coded slice in a frame is the first slice or not in a GOP. It is because that in many cases, 1 frame of Lidar point cloud only contains 1 slice, and the bitstream structure of such point cloud frame is shown in Figure 14, also the flag inter_entropy_continuation_enabled_flag is put in SPS (sequence parameter set) part and the flag interPredictionEnabledFlag is put in the header of Geometry data unit.
[0154] In a second exemplary further aspect of particular embodiments, determining entropy continuation for attribute coding according to the proposed method is described.
[0155] In one embodiment, the proposed entropy continuation method is also used in attribute coding. To be detail, before encoding / decoding attribute information in L3C2 point cloud coding, it determines the context tables for attribute information of frames that need to be entropy coded also based on the flag inter_entropy_continuation_enabled_flag and the flag interPredictionEnabledFlag that used in geometry coding. Only if the flags are both true, then it reuses the generated and updated context tables to entropy attribue geometry information of current slice / frame; otherwise, it initializes all the context tables used for entropy coding attribute information of current slice / frame.
[0156] In another variant, the determining context tables for attribute information of frames is based on a flag inter_entropy_continuation_enabled_flag and a flag interPredictionEnabledAttrFlag, wherein the inter_entropy_continuation_enabled_flag is used for controlling entropy continuation for both geometry coding and attribute coding, and the flag interPredictionEnabledAttrFlag is only used to for attribute coding, and the flag interPredictionEnabledAttrFlag can give attribute coding more flexibility to implement entropy continuation method or not. And The flag is put in the header of Attribute data unit.
[0157] In the following, context entropy coding according to particular, examplary embodiments is described.
[0158] This section explains details on so-called “context entropy coding” . And the context entropy coding process is implemented based on entropy encoder / decoder. Figure 16 provides a block diagram of a context adaptive entropy decoder. The associated encoder is simply obtained by reverting the arrow from the bitstream to the bitstream.
[0159] Firstly, a context is selected by some selection process based on already decoded information to provide a context index ctxIdx. A context table with Nctx entries stores the probabilities associated with the contexts and the probability pctxIdx is obtained as the ctxIdx-th entry of the context table. A binary symbol s is decoded by an entropy decoder from the bitstream using the probability pctxIdx.
[0160] Once the symbol s is decoded, the probability pctxIdx is updated by using an update process taking s and pctxIdx as entries; the update process is usually performed by using update tables. The updated probability replaces the ctxIdx-th entry of the context table. Then, another symbol can be decoded, and so on.
[0161] The update loop back to the context table is a bottleneck in the decoding workflow as another symbol can be decoded only after the update has been performed.
[0162] Summarizing particular, exemplary embodiments, a method of decoding, from a bitstream, the information of points of a point cloud sequence is provided, wherein the method comprises: determining context tables used for entropy decoding information of a point cloud frame based on entropy continuation method; entropy decoding from bitstream geometry position and attribute information of points; and reconstructing points in point cloud based on the decoded geometry information and attribute information.
[0163] The method may, e.g., comprise further additional characteristics:
[0164] According to an embodiment, entropy context tables that are determined based on entropy continuation method may, e.g., be used for coding geometry information generated in L3C2 coding scheme, like coding order difference Δnext, quantized residuals, like and Q (r) , and reconstructed residuals in (x, y, z) domain and etc.
[0165] In an embodiment, the entropy continuation method may, e.g., introduce a flag (for example, an inter_entropy_continuation_enabled_flag) indicating if the entropy continuation method between frames of a sequence is enabled or not. And if the flag (for example, inter_entropy_continuation_enabled_flag) is true, then the entropy continuation method between frames of a sequence is enabled, and it only initializes the entropy context tables used for coding geometry information of the first frame / slice of a sequence and reuses the generated and updated entropy context tables for coding geometry information of later frames of a sequence in L3C2 coding scheme.
[0166] According to a particular embodiment, the flag inter_entropy_continuation_enabled_flag is put in SPS (sequence parameter set) part in a bitstream.
[0167] In a particular embodiment, if the flag (for example, inter_entropy_continuation_enabled_flag) is false, then the entropy continuation method between frames may, e.g., be disabled, and it initializes the entropy context tables used for coding geometry information of all frames.
[0168] According to a particular embodiment, when the flag (for example, inter_entropy_continuation_enabled_flag) is true, to judge if current frame is the first frame / slice of a sequence or not, according to a particular embodiment embodiment, a flag interPredictionEnabledFlag indicating if the current coded frame / slice is the first frame / slice or not in a GOP is introduced.
[0169] In an embodiment, the proposed entropy continuation method may, e.g., also be used in attribute coding. It determines the context tables for attribute information of frames that need to be entropy coded also based on the flag inter_entropy_continuation_enabled_flag and the flag interPredictionEnabledFlag that used in geometry coding. Only if the flags are both true, then it reuses the generated and updated context tables to entropy attribute information of current slice / frame.
[0170] In a particular embodiment, the determining context tables for attribute information of frames may, for example, be based on a flag inter_entropy_continuation_enabled_flag and a flag interPredictionEnabledAttrFlag, the flag interPredictionEnabledAttrFlag is only used for attribute coding, and it can give attribute coding more flexibility to implement entropy continuation method or not.
[0171] More particularly, the flag interPredictionEnabledAttrFlag may, for example, be put in the header of an attribute data unit.
[0172] ABBREVIATIONS
[0173] PCC: Point Cloud Compression
[0174] V-PCC: Video-based PCC
[0175] G-PCC: Geometry-based PCC
[0176] Lidar: Light Detection And Ranging = method for measuring distances (ranging) by illuminating the target with laser light and measuring the reflection with a sensor
[0177] REFERENCES
[0178] [1] MPEG-I part 5 (ISO / IEC 23090-5) or Video-based Point Cloud Compression (V-PCC) .
[0179] [2] MPEG-I part 9 (ISO / IEC 23090-9) or Geometry-based Point Cloud Compression (G-PCC) .
[0180] [3] European Patent Application, Application No. 20306672.5, European Patent Application Publication No. EP 4020816 A1.
[0181] [4] PCT / CN2024 / 075584.
Claims
1.A method for entropy decoding, wherein the method comprises:obtaining (131) an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table;determining (132) the context table from the bitstream;decoding (133) point cloud data from the bitstream based on the context table.2.A method according to claim 1,wherein the indication indicates whether or not the context table that has been used for encoding the point cloud data of the at least one frame is a context table that has been used for encoding point cloud data of a previous frame of the at least one frame.3.A method according to claim 1 or 2,wherein entropy decoding (133) the point cloud data comprises entropy decoding a geometry position and / or attribute information of points of the point cloud data using the context table.4.A method according to one of claims 1 to 3,wherein the indication is a first flag (e.g., inter_entropy_continuation_enabled_flag) , indicating that the context table that has been used for encoding the point cloud data of the at least one frame is:a context table that has been used for encoding point cloud data of a previous frame of the at least one frame, ora context table that has not been used for encoding point cloud data of any previous frame of the at least one frame.5.A method according to claim 4,wherein the method comprises obtaining the first flag (e.g., inter_entropy_continuation_enabled_flag) from a sequence parameter set part of the bitstream.6.A method according to claim 5,wherein, when the first flag indicates that entropy continuation is enabled, one or more entropy context tables for decoding geometry information are initialized for a first frame and the generated and updated one or more entropy context tables for coding geometry information are reused for one or more subsequent frames.7.A method according to one of claims 4 to 6,wherein, when the first flag indicates that the entropy continuation is disabled, then for each frame of a plurality of frames an individual context table is determined.8.A method according to one of claims 4 to 7,wherein, when the first flag indicates that the entropy continuation is enabled, a second flag (e.g., interPredictionEnabledFlag) is obtained from the bitstream, which indicates whether or not a current frame is a first frame of a plurality of frames or not in a group of pictures (GOP) .9.A method according to claim 8,wherein, when the first flag indicates that the entropy continuation is enabled, and when the second flag indicates that the current frame is not the first frame in a group of pictures, then a context table that has been used for entropy decoding a previous frame of the current frame is reused.10.A method according to one of claims 4 to 9,wherein the method comprises determining one or more context tables for entropy attribute decoding.11.A method according to claim 10,wherein the method comprises obtaining, from the bitstream, a third flag (e.g., an interPredictionEnabledAttrFlag) which indicates whether or not the context table has been used for entropy attribute encoding.12.A method according to claim 11,wherein the third flag has been obtained from a header of an attribute data unit of the bitstream.13.A method according to one of claims 1 to 12,wherein the method comprises employing the context table for entropy decoding at least one of:geometry information generated in an L3C2 coding scheme,a coding order difference,a plurality quantized residuals.14.A method for entropy encoding, wherein the method comprises:entropy encoding (121) point cloud data of at least one frame into a bitstream using a context table;generating (122) the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.15.A method according to claim 14,wherein the indication indicates whether or not the context table that has been used for encoding the point cloud data of the at least one frame is a context table that has been used for encoding point cloud data of a previous frame of the at least one frame.16.A method according to claim 14 or 15,wherein entropy encoding (121) the point cloud data comprises entropy encoding a geometry position and / or attribute information of points of the point cloud data using the context table.17.A method according to one of claims 14 to 16,wherein the method comprises generating (122) the bitstream such that the bitstream comprises a first flag (e.g., inter_entropy_continuation_enabled_flag) , indicating that the context table that has been used for encoding the point cloud data of the at least one frame is:a context table that has been used for encoding point cloud data of a previous frame of the at least one frame, ora context table that has not been used for encoding point cloud data of any previous frame of the at least one frame.18.A method according to claim 17,wherein the method comprises generating (122) the bitstream such that a sequence parameter set part of the bitstream comprises the first flag (e.g., inter_entropy_continuation_enabled_flag) .19.An apparatus for entropy decoding, wherein the apparatus comprises at least one processor configured for:obtaining (131) an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table;determining (132) the context table from the bitstream;decoding (133) point cloud data from the bitstream based on the context table.20.An apparatus for entropy encoding, wherein the apparatus comprises at least one processor configured for:entropy encoding (121) point cloud data of at least one frame into a bitstream using a context table;generating (122) the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.21.A computer program product including instructions which, when the instructions are executed by one or more processors, carry out a method for entropy decoding, wherein the method comprises:obtaining (131) an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table;determining (132) the context table from the bitstream;decoding (133) point cloud data from the bitstream based on the context table.22.A non-transitory digital storage medium carrying instructions of program code for executing a method for entropy decoding, wherein the method comprises:obtaining (131) an indication from a bitstream, wherein the indication indicates that at least one frame has been encoded using a context table;determining (132) the context table from the bitstream;decoding (133) point cloud data from the bitstream based on the context table.23.A computer program product including instructions which, when the instructions are executed by one or more processors, carry out a method for entropy encoding, wherein the method comprises:entropy encoding (121) point cloud data of at least one frame into a bitstream using a context table;generating (122) the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.24.A non-transitory digital storage medium carrying instructions of program code for executing a method for entropy encoding, wherein the method comprises:entropy encoding (121) point cloud data of at least one frame into a bitstream using a context table;generating (122) the bitstream, such that the bitstream further comprises an indication that indicates that the at least one frame has been encoded using the context table; and such that the bitstream further comprises information on the context table.
Citation Information
Patent Citations
Improved entropy coding in image and video compression using machine learning
CN113287306A
Method and apparatus for encoding / decoding point cloud geometry data
CN116982083A
Methods and devices for predictive coding of point clouds
US20210144403A1
Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220337872A1
Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2023003144A1