Method, apparatus and medium for point cloud coding

CN118414828BActive Publication Date: 2026-10-27DOUYIN CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202280084895.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-12-21
Filing Date
2022-12-20
Publication Date
2026-10-27
Estimated Expiration
2042-12-20

Smart Images

  • Figure CN118414828B_ABST
    Figure CN118414828B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a scheme for point cloud coding. A method for point cloud coding is proposed. The method comprises: performing conversion between a point cloud frame of a point cloud sequence and a bitstream of the point cloud sequence, a patch in the point cloud frame comprising a set of slices, a bounding box of the patch comprising at least a portion of points in the set of slices, the at least a portion of points being obtainable from the set of slices.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference of related applications

[0002] This application claims the benefit of U.S. Provisional Application No. 63 / 292,304, filed December 21, 2021, the contents of which are incorporated herein by reference in their entirety. Technical Field

[0003] The embodiments of this disclosure generally relate to point cloud encoding and decoding techniques, and more specifically to chunking and slicing in geometry-based point cloud compression. Background Technology

[0004] A point cloud is a collection of individual data points in a three-dimensional (3D) plane, where each point has defined coordinates on the X, Y, and Z axes. Therefore, point clouds can be used to represent the physical content of three-dimensional space. Point clouds have shown promise as a way to represent 3D visual data, which is used in a wide range of immersive applications, from augmented reality to autonomous vehicles.

[0005] Point cloud encoding / decoding standards have primarily evolved through the development of the well-known MPEG organization. MPEG, short for Moving Picture Experts Group, is one of the main standardization groups for multimedia processing. In 2017, the MPEG 3D Graphics Coding Group (3DG) released a Call for Proposals (CFP) document to begin development of a point cloud encoding / decoding standard. The final standard will include two types of solutions: Video-based point cloud compression (V-PCC or VPCC) is suitable for point sets with a relatively uniform point distribution. Geometry-based point cloud compression (G-PCC or GPCC) is suitable for sparser distributions. However, further improvements in the encoding / decoding efficiency of conventional point cloud encoding / decoding techniques are generally desired. Summary of the Invention

[0006] The embodiments of this disclosure provide a scheme for point cloud encoding and decoding.

[0007] In a first aspect, a method for point cloud encoding and decoding is proposed. The method includes: performing a conversion between point cloud frames of a point cloud sequence and a bitstream of a point cloud sequence, wherein blocks in the point cloud frames comprise a set of slices, and the bounding boxes of the blocks comprise at least a portion of points in the set of slices, wherein at least a portion of points can be obtained from the set of slices.

[0008] Based on the method according to the first aspect of this disclosure, the bounding box of the block includes at least points that can be obtained from a set of slices within the block. Compared to conventional schemes lacking such constraints, the proposed method can advantageously better support the application of block partitioning, thereby improving point cloud processing efficiency.

[0009] In a second aspect, an apparatus for processing point cloud data is proposed. The apparatus includes a processor and a non-transitory memory having instructions thereon. When executed by the processor, the instructions cause the processor to perform the method according to the first aspect of this disclosure.

[0010] In a third aspect, a non-transitory computer-readable storage medium is proposed. This non-transitory computer-readable storage medium stores instructions that cause a processor to perform the method according to the first aspect of this disclosure.

[0011] In a fourth aspect, another non-transitory computer-readable recording medium is proposed. The non-transitory computer-readable recording medium stores a bitstream of a point cloud sequence generated by a method performed by a point cloud processing apparatus. The method includes performing a conversion between point cloud frames of the point cloud sequence and a bitstream, wherein blocks in the point cloud frames comprise a set of slices, and the bounding boxes of the blocks comprise at least a portion of points from the set of slices, wherein at least a portion of the points can be obtained from the set of slices.

[0012] Fifthly, a method for storing a bitstream of a point cloud sequence is proposed. The method includes: performing a conversion between point cloud frames and a bitstream of the point cloud sequence, wherein blocks in the point cloud frames comprise a set of slices, the bounding boxes of the blocks comprise at least a portion of points from the set of slices, and the at least a portion of points can be obtained from the set of slices; and storing the bitstream in a non-transitory computer-readable recording medium.

[0013] The present invention is provided to present in a simplified form the selection of concepts further described below in the detailed description. The present invention is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Attached Figure Description

[0014] The above and other objects, features, and advantages of exemplary embodiments of the present disclosure will become more apparent from the following detailed description with reference to the accompanying drawings. In exemplary embodiments of the present disclosure, the same reference numerals generally denote the same parts.

[0015] Figure 1 This is a block diagram illustrating an example point cloud encoding / decoding system from which the technology of the present invention can be utilized;

[0016] Figure 2 A block diagram of an example point cloud encoder according to some embodiments of the present disclosure is shown;

[0017] Figure 3 A block diagram of an example point cloud decoder according to some embodiments of the present disclosure is shown;

[0018] Figure 4 An example arrangement of blocks and slices is shown;

[0019] Figure 5 A flowchart of a method for point cloud encoding / decoding according to some embodiments of the present disclosure is shown; and

[0020] Figure 6 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.

[0021] Throughout the accompanying drawings, the same or similar reference numerals usually refer to the same or similar elements. Detailed Implementation

[0022] The principles of this disclosure will now be described with reference to some embodiments. It should be understood that these embodiments are described merely for illustration and to help those skilled in the art understand and implement this disclosure, and do not imply any limitation on the scope of this disclosure. In addition to the methods described below, the disclosure described herein can be implemented in various other ways.

[0023] In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.

[0024] The terms "an embodiment," "embodiment," "example embodiment," etc., used in this disclosure refer to embodiments that may include specific features, structures, or characteristics, but it is considered that not every embodiment must include that specific feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Additionally, when a specific feature, structure, or characteristic is described in conjunction with an example embodiment, whether explicitly described or not, it is believed that such a feature, structure, or characteristic affecting its relation to other embodiments is within the knowledge of those skilled in the art.

[0025] It should be understood that although the terms “first” and “second”, etc., can be used to describe various elements, these elements should not be limited to these terms. These terms are used only to distinguish one element from another. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element, without departing from the scope of the exemplary embodiments. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.

[0026] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the exemplary embodiments. As used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the terms “comprising,” “including,” “having,” “containing,” and / or “including” as used herein indicate the presence of the said features, elements, and / or components, but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.

[0027] Example Environment

[0028] Figure 1 This is a block diagram illustrating an example point cloud encoding / decoding system 100 that can utilize the techniques of this disclosure. As shown, the point cloud encoding / decoding system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a point cloud encoding device, and the destination device 120 may also be referred to as a point cloud decoding device. In operation, the source device 110 may be configured to generate encoded point cloud data, and the destination device 120 may be configured to decode the encoded point cloud data generated by the source device 110. The techniques of this disclosure are generally directed to encoding and / or decoding point cloud data, i.e., supporting point cloud compression. Encoding and decoding can be effective in both compressing and / or decompressing point cloud data.

[0029] Source device 100 and target device 120 can include any of a wide range of devices, including desktop computers, laptops, tablets, set-top boxes, handsets (e.g., smartphones and mobile phones), televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, vehicles (e.g., land or marine vehicles, spacecraft, aircraft, etc.), robots, lidar devices, satellites, extended reality devices, etc. In some cases, source device 100 and target device 120 may be equipped with wireless communication capabilities.

[0030] Source device 100 may include a data source 112, a memory 114, a GPCC encoder 116, and an input / output (I / O) interface 118. Destination device 120 may include an input / output (I / O) interface 128, a GPCC decoder 126, a memory 124, and a data consumer 122. According to this disclosure, the GPCC encoder 116 of source device 100 and the GPCC decoder 126 of destination device 120 may be configured to apply the point cloud encoding / decoding techniques of this disclosure. Therefore, source device 100 represents an example of an encoding device, and destination device 120 represents an example of a decoding device. In other examples, source device 100 and destination device 120 may include other components or arrangements. For example, source device 100 may receive data (e.g., point cloud data) from an internal or external source. Similarly, destination device 120 may interface with an external data consumer, rather than including the data consumer in the same device.

[0031] Generally, data source 112 represents the source of point cloud data (i.e., raw, unencoded point cloud data) and can provide a continuous series of "frames" of point cloud data to GPCC encoder 116, which encodes the point cloud data for each frame. In some examples, data source 112 generates point cloud data. Data source 112 of source device 100 may include a point cloud capture device, such as any of a variety of cameras or sensors, for example, one or more cameras, an archive covering previously captured point cloud data, a 3D scanner or LiDAR device, and / or a data feed interface that receives point cloud data from a data content provider. Thus, in some examples, data source 112 may generate point cloud data based on signals from a LiDAR device. Alternatively or additionally, point cloud data may be generated by a scanner, camera, sensor, or other data via a computer. For example, data source 112 may generate point cloud data, or a combination of real-time point cloud data, archived point cloud data, and computer-generated point cloud data. In each case, the GPCC encoder 116 encodes captured, pre-captured, or computer-generated point cloud data. For encoding / decoding, the GPCC encoder 116 can rearrange the frames of point cloud data from the received order (sometimes referred to as the "display order") to the encoding / decoding order. The GPCC encoder 116 can generate one or more bitstreams containing the encoded point cloud data. The source device 100 can then output the encoded point cloud data via I / O interface 118 for reception and / or retrieval by, for example, the I / O interface 128 of the destination device 120. The encoded point cloud data can be transmitted directly to the destination device 120 via I / O interface 118 through network 130A. The encoded point cloud data can also be stored on storage medium / server 130B for access by the destination device 120.

[0032] The memory 114 of the source device 100 and the memory 124 of the destination device 120 may represent general-purpose memory. In some examples, memory 114 and memory 124 may store raw point cloud data, such as raw point cloud data from data source 112 and raw, decoded point cloud data from GPCC decoder 126. Additionally or alternatively, memory 114 and memory 124 may store software instructions executable by, for example, GPCC encoder 116 and GPCC decoder 126, respectively. Although memory 114 and memory 124 are shown separately from GPCC encoder 116 and GPCC decoder 126 in this example, it should be understood that GPCC encoder 116 and GPCC decoder 126 may also include internal memory for functionally similar or equivalent purposes. Furthermore, memory 114 and memory 124 may store encoded point cloud data, such as output from GPCC encoder 116 and input to GPCC decoder 126. In some examples, portions of memory 114 and memory 124 may be allocated as one or more buffers, for example, for storing raw, decoded, and / or encoded point cloud data. For example, memory 114 and memory 124 may store point cloud data.

[0033] I / O interfaces 118 and 128 may represent a wireless transmitter / receiver, a modem, a wired network component (e.g., an Ethernet card), a wireless communication component operating according to any of the various IEEE 802.11 standards, or other physical components. In examples where I / O interfaces 118 and 128 include wireless components, they may be configured to transmit data, such as encoded point cloud data, according to cellular communication standards (e.g., 4G, 4G-LTE (Long Term Evolution), LTE Advanced, 5G, etc.). In some examples where I / O interface 118 includes a wireless transmitter, they may be configured to transmit data, such as encoded point cloud data, according to other wireless standards (e.g., the IEEE 802.11 specification). In some examples, source device 100 and / or destination device 120 may include corresponding system-on-chip (SoC) devices. For example, source device 100 may include a SoC device to perform functions belonging to GPCC encoder 116 and / or I / O interface 118, and destination device 120 may include a SoC device to perform functions belonging to GPCC decoder 126 and / or I / O interface 128.

[0034] The techniques disclosed herein can be applied to encoding and decoding to support any of a variety of applications, such as communication between autonomous vehicles, communication between scanners, cameras, sensors and processing devices (e.g., local or remote servers), geographic mapping, or other applications.

[0035] The I / O interface 128 of the destination device 120 receives an encoded bitstream from the source device 110. This encoded bitstream may contain signaling information defined by the GPCC encoder 116, which is also used by the GPCC decoder 126, such as syntax elements representing point cloud values. The data consumer 122 uses this decoded data. For example, the data consumer 122 can use the decoded point cloud data to determine the location of object points. In some examples, the data consumer 122 may include a display to present an image based on the point cloud data.

[0036] Each of the GPCC encoder 116 and GPCC decoder 126 can be implemented as any of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the technology is partially implemented in software, the device may store instructions for the software in a suitable, non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the technology of this disclosure. Each of the GPCC encoder 116 and GPCC decoder 126 can be included in one or more encoders or decoders, and either one can be integrated as part of a combined encoder / decoder (CODEC) in the respective device. A device including the GPCC encoder 116 and / or the GPCC decoder 126 may include one or more integrated circuits, microprocessors, and / or other types of devices.

[0037] The GPCC encoder 116 and GPCC decoder 126 can operate according to encoding / decoding standards, such as the Video Point Cloud Compression (VPCC) standard or the Geometric Point Cloud Compression (GPCC) standard. This disclosure can generally refer to the encoding / decoding (e.g., encoding and decoding) of frames to contain encoded or decoded data. Encoded bitstreams typically contain a series of values ​​for syntax elements representing encoding / decoding decisions (e.g., encoding / decoding modes).

[0038] A point cloud can encompass a set of points in 3D space and can have attributes associated with those points. These attributes can be color information, such as R, G, B, or Y; Cb, Cr; or reflectivity information, or other attributes. Point clouds can be captured by various cameras or sensors such as LiDAR sensors and 3D scanners, or they can be generated by computers. Point cloud data is used in a variety of applications, including but not limited to architecture (modeling), cartography (3D models for visualization and animation), and the automotive industry (LiDAR sensors for navigation aids).

[0039] Figure 2This is a block diagram illustrating an example of a GPCC encoder 200 according to some embodiments of the present disclosure, which may be... Figure 1 An example of a GPCC encoder 116 in system 100 is shown. Figure 3 This is a block diagram illustrating an example of a GPCC decoder 300 according to some embodiments of the present disclosure, which may be... Figure 1 An example of the GPCC decoder 126 in the system 100 shown.

[0040] In the GPCC encoder 200 and GPCC decoder 300, point cloud locations are encoded and decoded first. Attribute encoding and decoding depend on the decoded geometry. Figure 2 and Figure 3 In this configuration, Region Adaptive Hierarchical Transformation (RAHT) unit 218, Surface Approximation Analysis unit 212, RAHT unit 314, and Surface Approximation Synthesis unit 310 are options typically used for Category 1 data. Level of Detail (LOD) Generation unit 220, Lifting unit 222, LOD Generation unit 316, and Inverse Lifting unit 318 are options typically used for Category 3 data. All other units are common to both Category 1 and Category 3.

[0041] For Category 3 data, the compressed geometry is typically represented as an octree from the root down to the leaf level of each voxel. For Category 1 data, the compressed geometry is typically represented by a pruned octree (i.e., an octree from the root down to the leaf level of blocks larger than voxels) plus a model of the surface within each leaf of the approximate pruned octree. In this way, Category 1 and Category 3 data share the octree encoding / decoding mechanism, while Category 1 data can additionally approximate each voxel within a leaf using a surface model. The surface model used is a triangulation of each block comprising 1 to 10 triangles, producing a triangle soup. Therefore, the Category 1 geometry codec is called a Trisoup geometry codec, while the Category 3 geometry codec is called an octree geometry codec.

[0042] exist Figure 2 In the example, the GPCC encoder 200 may include a coordinate transformation unit 202, a color transformation unit 204, a voxelization unit 206, an attribute transfer unit 208, an octree analysis unit 210, a surface approximation analysis unit 212, an arithmetic coding unit 214, a geometric reconstruction unit 216, a RAHT unit 218, a LOD generation unit 220, a lifting unit 222, a coefficient quantization unit 224, and an arithmetic coding unit 226.

[0043] like Figure 2As shown in the example, the GPCC encoder 200 can receive a set of positions and a set of attributes. Positions can contain the coordinates of points in the point cloud. Attributes can contain information about the points in the point cloud, such as the color associated with a point in the point cloud.

[0044] The coordinate transformation unit 202 can apply transformations to the coordinates of a point to transform the coordinates from the initial domain to the transformation domain. The transformed coordinates can be referred to as transformed coordinates. The color transformation unit 204 can apply transformations to convert the color information of an attribute to different domains. For example, the color transformation unit 204 can convert color information from the RGB color space to the YCbCr color space.

[0045] In addition, Figure 2 In the example, voxelization unit 206 can voxelize the transformed coordinates. Voxelization of the transformed coordinates can involve quantization to remove some points from the point cloud. In other words, multiple points in the point cloud can be subsumed into a single "voxel," which can then be considered a point in some respects. Furthermore, octree analysis unit 210 can generate an octree based on the voxelized transformed coordinates. Additionally, in Figure 2 In the example, surface approximation analysis unit 212 can analyze these points to potentially determine a surface representation of the set of points. Arithmetic coding unit 214 can perform arithmetic coding on syntax elements representing information about the octree and / or the surface determined by surface approximation analysis unit 212. GPCC encoder 200 can output these syntax elements in a geometric bitstream.

[0046] The geometric reconstruction unit 216 can reconstruct the transformed coordinates of points in the point cloud based on an octree, data indicating the surface determined by the surface approximation analysis unit 212, and / or other information. Due to voxelization and surface approximation, the number of transformed coordinates reconstructed by the geometric reconstruction unit 216 may differ from the original number of points in the point cloud. The resulting points can be referred to as reconstructed points. The attribute transfer unit 208 can transfer attributes of the original points in the point cloud to the reconstructed points in the point cloud data.

[0047] Furthermore, RAHT unit 218 can apply RAHT encoding / decoding to the attributes of the reconstructed points. Alternatively or additionally, LOD generation unit 220 and lifting unit 222 can apply LOD processing and lifting to the attributes of the reconstructed points, respectively. RAHT unit 218 and lifting unit 222 can generate coefficients based on the attributes. Coefficient quantization unit 224 can quantize the coefficients generated by RAHT unit 218 or lifting unit 222. Arithmetic encoding unit 226 can apply arithmetic encoding / decoding to the syntax elements representing the quantized coefficients. GPCC encoder 200 can output these syntax elements in the attribute bitstream.

[0048] exist Figure 3In the example, the GPCC decoder 300 may include a geometric arithmetic decoding unit 302, an attribute arithmetic decoding unit 304, an octree synthesis unit 306, an inverse quantization unit 308, a surface approximation synthesis unit 310, a geometric reconstruction unit 312, a RAHT unit 314, an LOD generation unit 316, an inverse lifting unit 318, an inverse coordinate transformation unit 320, and an inverse color transformation unit 322.

[0049] The GPCC decoder 300 can obtain a geometric bitstream and an attribute bitstream. The geometric arithmetic decoding unit 302 of the decoder 300 can apply arithmetic decoding (e.g., CABAC or other types of arithmetic decoding) to the syntax elements in the geometric bitstream. Similarly, the attribute arithmetic decoding unit 304 can apply arithmetic decoding to the syntax elements in the attribute bitstream.

[0050] Octree synthesis unit 306 can synthesize octrees based on syntax elements parsed from the geometric bitstream. In the case of using surface approximation in the geometric bitstream, surface approximation synthesis unit 310 can determine the surface model based on syntax elements parsed from the geometric bitstream and based on the octree.

[0051] Furthermore, the geometric reconstruction unit 312 can perform reconstruction to determine the coordinates of points in the point cloud. The inverse coordinate transformation unit 320 can apply an inverse transformation to the reconstructed coordinates to transform the reconstructed coordinates (positions) of points in the point cloud from the transformation domain back to the initial domain.

[0052] Additionally, in Figure 3 In the example, the inverse quantization unit 308 can inverse quantize the attribute value. The attribute value can be based on the syntax elements obtained from the attribute bitstream (e.g., syntax elements containing the syntax elements decoded by the attribute arithmetic decoding unit 304).

[0053] Depending on how the attribute values ​​are encoded, RAHT unit 314 can perform RAHT encoding / decoding to determine the color values ​​of points in the point cloud based on the inverse quantized attribute values. Alternatively, LOD generation unit 316 and inverse lifting unit 318 can use level-of-detail (LMD) based techniques to determine the color values ​​of points in the point cloud.

[0054] In addition, Figure 3 In the example, the color inverse transformation unit 322 can apply an inverse color transformation to the color value. This inverse color transformation can be the inverse of the color transformation applied by the color transformation unit 204 of the encoder 200. For example, the color transformation unit 204 can transform color information from the RGB color space to the YCbCr color space. Therefore, the color inverse transformation unit 322 can transform color information from the YCbCr color space to the RGB color space.

[0055] Figure 2 and Figure 3Various units are shown to aid in understanding the operations performed by encoder 200 and decoder 300. These units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. A fixed-function circuit refers to a circuit that provides a specific function and is pre-programmed for the operations it can perform. A programmable circuit refers to a circuit that can be programmed to perform various tasks and provides flexible functionality within the operations it can perform. For example, a programmable circuit can execute software or firmware that causes the programmable circuit to operate in a manner defined by instructions from the software or firmware. A fixed-function circuit can execute software instructions (e.g., to receive or output parameters), but the type of operation performed by a fixed-function circuit is typically immutable. In some examples, one or more of these units may be different circuit blocks (fixed-function or programmable), and in some examples, one or more of these units may be integrated circuits.

[0056] Some exemplary embodiments of this disclosure will be described in detail below. It should be understood that the use of part headings in this document is for ease of understanding and does not limit the embodiments disclosed in a particular part to that part. Furthermore, while some embodiments are described with reference to GPCC or other specific point cloud codecs, the disclosed techniques are also applicable to other point cloud codec techniques. Additionally, while some embodiments describe point cloud codec steps in detail, it should be understood that the corresponding decoding steps for decoding will be implemented by the decoder. In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.

[0057] 1. Overview

[0058] This disclosure relates to point cloud compression techniques. Specifically, it relates to the design of chunks and slices in geometry-based point cloud compression (G-PCC) standards, including the relationships between them. The ideas can be applied individually or in various combinations to any point cloud compression standard or non-standard point cloud codec, such as the underdeveloped G-PCC standard.

[0059] 2. Abbreviation

[0060] APS Attribute Parameter Set

[0061] ADU Attribute Data Unit

[0062] DU Data Unit

[0063] FBDU (Frame Boundary Data Unit)

[0064] FSAP frame-specific attribute parameters

[0065] GDU Geometric Data Unit

[0066] GPS Geometric Parameter Set

[0067] G-PCC Geometric-Based Point Cloud Compression

[0068] LSB (Least Significant Bit)

[0069] MSB Most significant bit

[0070] PCC point cloud compression

[0071] SPS Sequence Parameter Set

[0072] TI Tile Inventory

[0073] 3. Background

[0074] 3.1 Overall

[0075] Advances in 3D capture and rendering technologies are enabling new applications and services in areas such as assisted and autonomous driving, mapping, cultural heritage preservation, industrial processes, immersive real-time communication, and the creation, transmission, and communication of virtual / augmented / mixed reality (VR / AR / MR) content. Point clouds have emerged as one of the primary representations for these applications.

[0076] A point cloud frame consists of a set of 3D points. In addition to having a 3D location, each point can be associated with many other attributes, such as color, transparency, reflectivity, timestamp, surface normal, and classification. Such a representation requires a large amount of data, which can be expensive in terms of storage and transmission.

[0077] The Moving Picture Experts Group (MPEG) has developed two point cloud compression standards. The first is the Video-Based Point Cloud Compression (V-PCC) standard, which is suitable for point sets with a relatively uniform distribution. The second is the Geometry-Based Point Cloud Compression (G-PCC) standard, which is suitable for sparser distributions.

[0078] 3.2 Some basic concepts of G-PCC

[0079] 3.2.1 Terms and Definitions

[0080] point

[0081] The basic elements of a point cloud consist of a position specified as Cartesian coordinates and zero or more attributes.

[0082] Point cloud

[0083] Unordered list of points

[0084] Point cloud sequence

[0085] Sequence of zero or multiple point clouds

[0086] Point cloud framework

[0087] Point cloud in a point cloud sequence

[0088] Geometric shapes

[0089] Point locations associated with a set of points

[0090] property

[0091] Scalar or vector attributes associated with each point in the point cloud

[0092] Examples: color, reflectivity, frame rate, etc.

[0093] Bitstream

[0094] The bit sequence that forms the representation of the encoded and decoded point cloud sequence

[0095] Encoded and decoded point cloud frames

[0096] Representation of point cloud frames after encoding and decoding

[0097] bounding box

[0098] Define an axis-aligned cuboid that defines a spatial region of points.

[0099] Tiles

[0100] A set of slices identified by the common slice_tag syntax element value, whose geometry is contained within a bounding box specified in the chunked list data unit.

[0101] Slice

[0102] A portion or the entirety of an encoded and decoded point cloud frame consisting of a GDU and zero or more corresponding ADUs.

[0103] Note 1 to be entered: The bounding boxes of any two slices can intersect.

[0104] 3.2.2 Encoding Point Cloud Sequences

[0105] The encoded and decoded representation of a point cloud sequence consists of one or more point cloud frames encoded as a DU sequence.

[0106] The encoded and decoded point cloud sequence should include:

[0107] —SPS, which enumerates the attributes present in the encoded / decoded point cloud format and transmits metadata and decoding parameters related to the entire encoded / decoded point cloud sequence.

[0108] —At least one GPS, at least one GPS transmits parameters used in the decoding of geometric data.

[0109] —At least one APS, if the ADU exists in the encoded / decoded point cloud sequence, conveys the parameters used in the decoding of the attribute data.

[0110] —DU, DU includes each encoded and decoded point cloud frame.

[0111] The grade and level specify the limit on the number of bits required to represent geometric and attribute component information.

[0112] 3.2.3 Encoding point cloud frames and slices

[0113] An encoded / decoded point cloud frame consists of a sequence of zero or more slices with the same FrameCtr value. Empty frames are indicated using consecutive frame boundary data units.

[0114] The encoded and decoded point cloud frame consists of the following data units:

[0115] —Geometric, attribute, or default attribute data unit.

[0116] — Zero or more frame boundary data units that identify the boundary between two encoded / decoded point cloud frames.

[0117] A slice is an unordered list of points. In the encoding / decoding coordinate system, the position of a slice point is encoded relative to the slice origin. The encoding / decoding volumes of slices can intersect and are included within the point cloud frame.

[0118] Each slice will consist of a single GDU followed by zero or more ADUs. The GDU header serves as the slice header.

[0119] ADU depends on the corresponding GDU within the same slice. DUs belonging to different slices should not be interleaved.

[0120] A decoded point cloud frame is a concatenation of all points in all the constituent slices of the frame. Coincident points in a point cloud frame can originate from the concatenation of multiple slices.

[0121] Slices can be independent or dependent. Independent slices do not require any other slices to be decoded first. Dependent slices require the slice that comes first in the bitstream order to be decoded first. A slice should depend on at most a single dependent slice.

[0122] 3.2.4 Slicing and Dividing

[0123] A set of slices within a point cloud frame can be identified by the common value of slice_tag.

[0124] The tile list provides a means of associating bounding boxes with a set of tiles. Each tile consists of a single bounding box and an identifier (tileId). Tile bounding boxes can overlap.

[0125] When the list of slices is displayed in the bitstream, the slice_tag will identify the slice by its tileId. Otherwise, the use of the slice_tag is application-specific.

[0126] Block information is not used in the decoding process described in this document. Decoder implementations may use a block list to assist in spatial random access.

[0127] Figure 4 The diagram illustrates an example arrangement of blocks and slices within a point cloud frame. Slices S0, S1, and S4 are associated with block T0, and slices S2 and S3 are associated with block T1. A decoder performing spatial random access to decode region R can use the block list to determine the tileId of the set of blocks intersecting with R. Only slices with matching tileIds need to be decoded.

[0128] 3.3G-PCC sequence parameter set

[0129] 3.3.1 Sequence Parameter Set Syntax

[0130]

[0131] 3.3.2 Sequence Parameter Set Semantics

[0132] The parameters specified in SPS will apply to any DU where SPS is activated.

[0133] A simple_profile_compliant value of 1 indicates that the bitstream conforms to the simple profile. A simple_profile_compliant value of 0 indicates that the bitstream conforms to a profile other than the simple profile.

[0134] A `dense_profile_compliant` value of 1 specifies that the bitstream conforms to a dense profile. A `dense_profile_compliant` value of 0 specifies that the bitstream conforms to a profile other than dense.

[0135] A predictive_profile_compliant value of 1 indicates that the bitstream conforms to the prediction profile. A predictive_profile_compliant value of 0 indicates that the bitstream conforms to a profile other than the prediction profile.

[0136] A main_profile_compliant value of 1 specifies that the bitstream conforms to the main profile. A main_profile_compliant value of 0 specifies that the bitstream conforms to a profile other than the main profile.

[0137] The reserved_profile_18bits value will be equal to 0 in this version of the bitstream conforming to this document. Other values ​​for reserved_profile_18bits are reserved for future use by ISO / IEC. The decoder should ignore the value of reserved_profile_18bits.

[0138] A slice_reordering_constraint value of 1 indicates that the bitstream is sensitive to slice reordering and removal. A slice_reordering_constraint value of 0 indicates that the bitstream is not sensitive to slice reordering and removal.

[0139] A unique_point_positions_constraint value of 1 specifies that all points in each encoded point cloud frame have a unique position. A unique_point_positions_constraint value of 0 specifies that two or more points can have the same position in any encoded point cloud frame.

[0140] Note 1: For example, even if points in each slice have unique positions, points from different slices in the frame can overlap. In this case, unique_point_position_constraint will be set to 0.

[0141] Note 2: Two points with the same position in the same frame that have different values ​​of the frame index attribute do not satisfy the condition that unique_point_positions_constraint equals 1.

[0142] `level_idc` specifies the level that the bitstream conforms to, as specified in Appendix A. The bitstream should not contain any value other than `level_idc` specified in Appendix A. Other values ​​for `level_idc` are reserved for future use by ISO / IEC.

[0143] sps_seq_parameter_set_id identifies the SPS for reference by other DUs. sps_seq_parameter_set_id will be 0 in the bitstream conforming to this version of the document. Other values ​​for sps_seq_parameter_set_id are reserved for future use by ISO / IEC.

[0144] frame_ctr_lsb_bits specifies the length of the frame_ctr_lsb syntax element in bits.

[0145] slice_tag_bits specifies the length of the slice_tag syntax element in bits. ...

[0147] 3.4G-PCC GDU head (i.e., slicing head)

[0148] 3.4.1 Geometric Data Cell Header Syntax

[0149]

[0150] 3.4.2 Geometric Data Cell Header Semantics

[0151] gdu_geometry_parameter_set_id specifies the value of the active GPS gps_geom_parameter_set_id.

[0152] In this version of the bitstream conforming to this document, gdu_reserved_zero_3bits will be equal to 0. Other values ​​for gdu_reserved_zero_3bits are reserved for future use by ISO / IEC. The decoder should ignore the value of gdu_reserved_zero_3bits.

[0153] The slice_id identifies the slice for reference by other syntax elements.

[0154] The slice_tag can be used to identify one or more slices with a specific value. When a slice manifest data unit exists, the slice_tag is the slice ID. Otherwise, when no slice manifest data unit exists, the interpretation of the slice_tag is specified externally.

[0155] `frame_ctr_lsb` specifies the least significant bit of the `frame_ctr_lsb_bits` of the hypothetical frame count counter. Consecutive slices with different `frame_ctr_lsb` values ​​form parts of different output point cloud frames. Consecutive slices with the same `frame_ctr_lsb` value but without intermediate frame boundary marker data units form parts of the same encoded / decoded point cloud frame.

[0156] The requirement for bitstream consistency is that each encoded and decoded point cloud frame should have a unique value FrameCtr.

[0157] `slice_entropy_continuation` equal to 1 specifies that the entropy resolution state recovery process (XREF) will be applied to the GDU and any ADU in the slice. `slice_entropy_continuation` equal to 0 specifies that the entropy resolution of the GDU and any ADU in the slice is independent of any other slice. When not present, `slice_entropy_continuation` should be inferred to be 0. The requirement for bitstream consistency is that `slice_entropy_continuation` equals 0 when the GDU is the first DU in the encoded / decoded point cloud frame.

[0158] The prev_slice_id should be equal to the slice_id value of the previous GDU in the bitstream order. The decoder will ignore slices where the prev_slice_id exists and is not equal to the slice_id value of the previous slice.

[0159] Note: It is recommended that slice_entropy_continuation should not be equal to 1 if slice_tag is not equal to the slice_tag of the GDU identified by prev_slice_id.

[0160] 3.5 Block List

[0161] 3.5.1 Block List Syntax

[0162]

[0163] 3.5.2 Block List Semantics

[0164] A chunk list (if it exists) contains metadata defining spatial regions of zero or more chunks. Each chunk is identified by an implicit or explicit chunk ID. A chunk list remains valid until it is replaced by another chunk list.

[0165] ti_seq_parameter_set_id specifies the value of sps_seq_parameter_set_id for the active SPS.

[0166] ti_frame_ctr_lsb_bits specifies the length of the ti_frame_ctr_lsb syntax element in bits.

[0167] ti_frame_ctr_lsb specifies the least significant bit of ti_frame_ctr_lsb_bits in FrameCtr, from which the block list is valid.

[0168] tile_cnt specifies the number of tiles present in the tile list.

[0169] `tile_id_bits` specifies the length of each `tile_id` syntax element in bits. A `tile_id_bits` value of 0 indicates that the tile will be identified by `tileIdx`.

[0170] Incrementing `tile_origin_bits_minus1` by 1 specifies the length in bits for each `tile_origin_xyz` syntax element.

[0171] Incrementing tile_size_bits_minus1 by 1 specifies the length in bits for each tile_size_minus1_xyz syntax element.

[0172] `tile_id[tileIdx]` specifies the identifier of the `tileIdx`-th tile in the tile list. When `tile_id_bits` equals 0, the value of `tile_id[tileIdx]` should be inferred as `tileIdx`. The requirement for bitstream consistency is that all values ​​of `tile_id` are unique within the tile list.

[0173] tile_origin_xyz[tileId][k] and tile_size_minus1_xyz[tileId][k] indicate the bounding box in the codec coordinate system, which includes the slice identified by the slice_tag equal to the tileId.

[0174] tile_origin_xyz[tileId][k] specifies the k-th component of the tile bounding box relative to the (x, y, z) origin coordinates of TileInventoryOrigin[k].

[0175] The tile_size_minus1_xyz[tileId][k] parameter incremented by 1 specifies the k-th component of the tile bounding box width, height, and depth, respectively.

[0176] ti_origin_bits_minus1 plus 1 is the length of each ti_origin_xyz syntax element.

[0177] ti_origin_xyz[k] and ti_origin_log2_scale together indicate the origin of the encoding / decoding coordinate system specified by seq_origin_xyz[k] and seq_origin_log2_scale. The values ​​of ti_origin_xyz[k] and ti_origin_log2_scale should be equal to seq_origin_xyz[k] and seq_origin_log2_scale, respectively.

[0178] The origin of the chunk list is specified by the expression TileInventoryOrigin[k].

[0179] TileInventoryOrigin[k]=ti_origin_xyz[k]< <ti_origin_log2_scale。

[0180] 4. Question

[0181] A chunk consists of a set of slices within a point cloud frame, where each slice shares a common slice_tag value. Chunks can be used for spatial random access. Chunk bounding boxes can overlap. However, the chunk and slice design in the latest draft G-PCC specification has the following problems:

[0182] 1) The requirement that the bounding box of a block should contain constraints that include all points in all slices included in that block is missing.

[0183] 2) There is also a lack of constraints requiring that the bounding box of a block should not contain all points of any slice not included in that block.

[0184] 3) `tile_id_bits` specifies the length in bits for each `tile_id` syntax element. The value of `slice_tag` in the GDU header should be equal to the value of the `tile_id` syntax element in the associated chunk list. However, there are no constraints on the relationship between the length of the `tile_id` syntax element in the chunk list and the `slice_tag` syntax element in the GDU header.

[0185] 5. Detailed Solution

[0186] To address the aforementioned problems, methods outlined below are disclosed. These solutions should be considered as examples for explaining general concepts and should not be interpreted in a narrow way. Furthermore, these solutions can be applied individually or in combination in any way.

[0187] 1) To address the first issue, the following constraint is specified: the bounding box of a tile with a specific value of tileId equal to thisTileId should contain all points in all slices of that tile (i.e., all slices in the point cloud frame containing that tile with slice_tag equal to thisTileId).

[0188] a. Alternatively, specify the following constraint: The bounding box of a tile with a specific value of tileId equal to thisTileId should contain all output points generated by decoding all slices in that tile (i.e., all slices in the point cloud frame containing that tile with slice_tag equal to thisTileId).

[0189] 2) To address the second issue, the following constraint is specified: the bounding box of a tile with a specific value of tileId equal to thisTileId should not contain: all points in the point cloud frame containing the tile but not in the tile (i.e., slices in the point cloud frame containing the tile but with slice_tag not equal to thisTileId).

[0190] a. Alternatively, specify the following constraint: the bounding box of a tile with a specific value of TileId equal to thisTileId should not contain: all output points generated from decoding slices that are in the point cloud frame containing the tile but not in the tile (i.e. slices in the point cloud frame containing the tile but with a slice_tag not equal to thisTileId).

[0191] 3) To address the third issue, specify that the value of tile_id_bits should be equal to 0 or the slice_tag_bits in the active SPS.

[0192] a. Alternatively, specify that when tile_id_bits is greater than 0, this value should be equal to slice_tag_bits in the active SPS.

[0193] 6. Example

[0194] Below are some example implementations of some of the solution items outlined in Section 5 above. These implementations can be applied to G-VVC. Changes compared to the latest draft G-PCC specification are highlighted, where additions have been made... Underline And the deleted part is The method is shown.

[0195] 6.1 Example 1

[0196] This embodiment corresponds to items 1, 2 and 3 outlined in Section 5.

[0197] 6.1.1 Slicing and Dividing

[0198] A set of slices within a point cloud frame can be identified by the common value of slice_tag.

[0199] The tile list provides a means of associating bounding boxes with a set of tiles. Each tile consists of a single bounding box and an identifier (tileId). Tile bounding boxes can overlap. A tile with a specific value of TileId equal to thisTileId The bounding box of a segment should contain all slices in the segment (i.e., the point cloud frame containing the segment with a value equal to thisTileId). All points in all slices of the slice_tag. A segment with a specific TileId equal to thisTileId. The block bounding box should not contain: slices that are in the point cloud frame containing the block but not in that block (i.e., slices in the point cloud frame containing the block). All points in a point cloud frame that have a slice_tag that is not equal to thisTileId.

[0200] When a list of segments exists in the bitstream, the slice_tag will identify the segment using the tileId. Otherwise, the use of the slice_tag is application-specific.

[0201] The decoding process described in this document does not use block information. Decoder implementations may use a block list to assist spatial random access.

[0202] Figure 4 The diagram illustrates an example arrangement of blocks and slices within a point cloud frame. Slices S0, S1, and S4 are associated with block T0, and slices S2 and S3 are associated with block T1. A decoder performing spatial random access to decode region R can use the block list to determine the tileId of the set of blocks intersecting with R. Only slices with matching tileIds need to be decoded.

[0203] 6.1.2 Semantics of Block Lists

[0204] A chunk list (if it exists) contains metadata defining spatial regions of zero or more chunks. Each chunk is identified by an implicit or explicit chunk ID. A chunk list remains valid until it is replaced by another chunk list.

[0205] ti_seq_parameter_set_id specifies the value of sps_seq_parameter_set_id for the active SPS.

[0206] ti_frame_ctr_lsb_bits specifies the length of the ti_frame_ctr_lsb syntax element in bits.

[0207] ti_frame_ctr_lsb specifies the least significant bit of ti_frame_ctr_lsb_bits in FrameCtr, from which the block list is valid.

[0208] tile_cnt specifies the number of tiles present in the tile list.

[0209] `tile_id_bits` specifies the length of each `tile_id` syntax element in bits. A `tile_id_bits` value of 0 indicates that the tile will be identified by `tileIdx`.

[0210] Incrementing `tile_origin_bits_minus1` by 1 specifies the length in bits for each `tile_origin_xyz` syntax element.

[0211] Incrementing tile_size_bits_minus1 by 1 specifies the length in bits for each tile_size_minus1_xyz syntax element.

[0212] `tile_id[tileIdx]` specifies the identifier of the `tileIdx`-th tile in the tile list. When `tile_id_bits` equals 0, the value of `tile_id[tileIdx]` should be inferred as `tileIdx`. The requirement for bitstream consistency is that all values ​​of `tile_id` are unique within the tile list.

[0213] tile_origin_xyz[tileId][k] and tile_size_minus1_xyz[tileId][k] indicate the bounding box in the codec coordinate system, which includes the slice identified by the slice_tag equal to the tileId.

[0214] tile_origin_xyz[tileId][k] specifies the k-th component of the tile bounding box relative to the (x, y, z) origin coordinates of TileInventoryOrigin[k].

[0215] The tile_size_minus1_xyz[tileId][k] parameter incremented by 1 specifies the k-th component of the tile bounding box width, height, and depth, respectively.

[0216] ti_origin_bits_minus1 is the length of each ti_origin_xyz syntax element.

[0217] ti_origin_xyz[k] and ti_origin_log2_scale together indicate the origin of the encoding / decoding coordinate system specified by seq_origin_xyz[k] and seq_origin_log2_scale. The values ​​of ti_origin_xyz[k] and ti_origin_log2_scale should be equal to seq_origin_xyz[k] and seq_origin_log2_scale, respectively.

[0218] The origin of the chunk list is specified by the expression TileInventoryOrigin[k].

[0219] TileInventoryOrigin[k]=ti_origin_xyz[k]< <ti_origin_log2_scale。

[0220] Further details of embodiments of this disclosure relating to chunking and slicing in geometry-based point cloud compression will now be described.

[0221] As used herein, the term "point cloud sequence" can refer to a sequence of zero or more point clouds. The term "point cloud frame" can refer to a point cloud within a point cloud sequence. The term "encoded point cloud frame" can refer to an encoded representation of a point cloud frame. The term "bounding box" can refer to an axis-aligned cuboid that defines a spatial region that defines a set of points. The term "slice" can refer to a portion or the entirety of an encoded point cloud frame consisting of geometric data units (GDUs) and zero or more corresponding attribute data units (ADUs).

[0222] Figure 5 A flowchart of a method 500 for point cloud encoding / decoding according to some embodiments of the present disclosure is shown. Figure 5 As shown, at 502, a conversion is performed between point cloud frames of the point cloud sequence and the bitstream of the point cloud sequence. In some embodiments, the point cloud frames may be encoded into the bitstream during the conversion at 502. Alternatively or additionally, the point cloud frames may be decoded from the bitstream during the conversion at 502.

[0223] During the transformation at 502, a chunk in the point cloud frame comprises a set of slices. As an example, the slice tag for each slice in the set of slices can be an identifier for the chunk, such as a tileId. A set of slices can include all slices whose slice_tag is equal to the tileId value of the chunk. Furthermore, the bounding box of the chunk includes at least a subset of the points in the set of slices. At least a subset of the points can be obtained from said set of slices. In one example, at least a subset of the points are all output points decoded from the set of slices. In other words, the bounding box of the chunk includes at least all output points generated by decoding all slices in that chunk.

[0224] Given the above, the bounding box of a block includes at least points that can be obtained from that set of slices within the block. Compared to traditional schemes lacking this constraint, the proposed method can advantageously better support the application of blocks, thereby improving point cloud processing efficiency.

[0225] In some embodiments, the bounding box of a chunk may include all points in a set of slices. That is, the bounding box of a chunk should include all points in all slices within the chunk.

[0226] Additionally, the first slice in a point cloud frame may be at least partially outside the chunks. As an example, the first slice may have a slice label with an identifier different from that of the chunks. In one example, at least one point in the first slice may be outside the bounding box of the chunk. That is, the bounding box of the chunk should not contain all points in the slice that are not in the chunk. In another example, at least one of the points in the first slice may be outside the bounding box of the chunk. These points can be obtained from the first slice. For example, the points could be all output points decoded from the first slice. That is, the bounding box of the chunk should not contain all output points generated by decoding the first slice.

[0227] In some additional embodiments, a Sequence Parameter Set (SPS) can be activated for point cloud frames. This type of SPS is also referred to as an active SPS. An active SPS includes a first syntax element (e.g., slice_tag_bits) that specifies the length in bits of the slice tag for each slice in a set of slices. A second syntax element (such as tile_id_bits) that specifies the length in bits of the chunk identifier can have a value equal to 0 or the value of the first syntax element. In one instance, the value of tile_id_bits should be equal to 0 or slice_tag_bits in the active SPS. Alternatively, if the value of the second syntax element is greater than 0, then the value of the second syntax element can be equal to the value of the first syntax element. For example, when tile_id_bits is greater than 0, tile_id_bits should be equal to slice_tag_bits in the active SPS.

[0228] According to embodiments of this disclosure, a non-transitory computer-readable recording medium is proposed. A bitstream of a point cloud sequence is stored in the non-transitory computer-readable recording medium. The bitstream can be generated by a method executed by a point cloud processing apparatus. According to this method, a conversion between point cloud frames of the point cloud sequence and the bitstream is performed. A block in the point cloud frame comprises a set of slices. The bounding box of the block includes at least a portion of the points in the set of slices. At least a portion of the points can be obtained from the set of slices.

[0229] According to embodiments of this disclosure, a method for storing a bitstream of a point cloud sequence is proposed. In this method, a conversion is performed between point cloud frames of the point cloud sequence and a bitstream. A block in the point cloud frame comprises a set of slices. The bounding box of the block includes at least a portion of the points in the set of slices. At least a portion of the points can be obtained from said set of slices. The bitstream is stored in a non-transitory computer-readable recording medium.

[0230] The embodiments of this disclosure can be described in light of the following terms, and their features can be combined in any reasonable manner.

[0231] Clause 1. A method for point cloud encoding and decoding, comprising: performing a conversion between point cloud frames of a point cloud sequence and a bitstream of the point cloud sequence, wherein blocks in the point cloud frames comprise a set of slices, and bounding boxes of the blocks comprise at least a portion of points in the set of slices, the at least a portion of points being extractable from the set of slices.

[0232] Clause 2. The method according to Clause 1, wherein the bounding box of the segment includes all points in the set of slices.

[0233] Clause 3. The method according to any one of Clauses 1-2, wherein the slice label of each slice in the set of slices is the identifier of the block.

[0234] Clause 4. The method according to any one of Clauses 1-3, wherein the first slice in the point cloud frame is at least partially outside the block, and at least one point in the first slice is outside the bounding box of the block.

[0235] Clause 5. The method according to any one of Clauses 1-3, wherein the first slice in the point cloud frame is at least partially outside the block, and at least one point of a portion of the points in the first slice is outside the bounding box of the block, the portion of the points being retrievable from the first slice.

[0236] Clause 6. The method according to any one of Clauses 4-5, wherein the slice label of the first slice is different from the identifier of the block.

[0237] Clause 7. The method according to any one of Clauses 1-6, wherein a Sequence Parameter Set (SPS) is activated for the point cloud frame, the SPS comprising a first syntax element specifying a slice label in bits for each slice in the set of slices, and a second syntax element having a value equal to 0 or equal to the value of the first syntax element, the second syntax element specifying a block identifier in bits.

[0238] Clause 8. The method according to any one of Clauses 1-6, wherein a Sequence Parameter Set (SPS) is activated for the point cloud frame, the SPS comprising a first syntax element specifying the length in bits of a slice label for each slice in the set of slices, and the value of the second syntax element being equal to the value of the first syntax element if the value of a second syntax element specifying the length in bits of an identifier for the slice is greater than 0.

[0239] Clause 9. The method according to any one of Clauses 7-8, wherein the first syntax element is the syntax element slice_tag_bits, and the second syntax element is the syntax element tile_id_bits.

[0240] Clause 10. The method according to any one of Clauses 1-9, wherein the conversion includes encoding the point cloud frame into the bitstream.

[0241] Clause 11. The method according to any one of Clauses 1-9, wherein the conversion includes decoding the point cloud frame from the bitstream.

[0242] Clause 12. An apparatus for processing point cloud data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform a method according to any one of Clauses 1-11.

[0243] Clause 13. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform a method according to any one of Clauses 1-11.

[0244] Clause 14. A non-transitory computer-readable recording medium storing a bit stream of a point cloud sequence generated by a method performed by a point cloud processing apparatus, the method comprising: performing a conversion between point cloud frames of the point cloud sequence and the bit stream, wherein blocks in the point cloud frames comprise a set of slices, the bounding boxes of the blocks comprising at least a portion of points in the set of slices, the at least a portion of points being retrievable from the set of slices.

[0245] Clause 15. A method for storing a bitstream of a point cloud sequence, comprising: performing a conversion between point cloud frames of the point cloud sequence and the bitstream, wherein blocks in the point cloud frames comprise a set of slices, the bounding boxes of the blocks comprising at least a portion of points in the set of slices, the at least a portion of points being retrievable from the set of slices; and storing the bitstream in a non-transitory computer-readable recording medium.

[0246] Example device

[0247] Figure 6 A block diagram of a computing device 600 that can implement various embodiments of the present disclosure is shown. The computing device 600 may be implemented as or included in a source device 100 (or GPCC encoder 116 or 200) or a destination device 120 (or GPCC decoder 126 or 300).

[0248] Understandable Figure 6The computing device 600 shown is for illustrative purposes only and does not in any way imply any limitation on the functionality and scope of the embodiments of this disclosure.

[0249] like Figure 6 As shown, the computing device 600 includes a general-purpose computing device 600, which may include at least one or more processors or processing units 610, memory 620, storage units 630, one or more communication units 640, one or more input devices 650, and one or more output devices 660.

[0250] In some embodiments, computing device 600 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server provided by a service provider, a large computing device, etc. The user terminal can be, for example, any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, stations, units, devices, multimedia computers, multimedia tablets, Internet nodes, communicators, desktop computers, laptop computers, netbook computers, tablet computers, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, and includes accessories and peripherals of these devices, or any combination thereof. It is conceivable that computing device 600 can support any type of interface to the user (such as "wearable" circuitry devices, etc.).

[0251] Processing unit 610 can be a physical or virtual processor, and can perform various processes based on programs stored in memory 620. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of computing device 600. Processing unit 610 may also be referred to as a central processing unit (CPU), microprocessor, controller, or microcontroller.

[0252] Computing device 600 typically includes various computer storage media, which can be any media accessible to computing device 600, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 620 can be volatile memory (e.g., registers, cache, running memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), or flash memory), or any combination thereof. Storage cell 630 can be any removable or non-removable media and may include machine-readable media, such as memory, flash drives, disks, or other media that can be used to store information and / or data and are accessible within computing device 600.

[0253] The computing device 600 may also include additional removable / non-removable, volatile / non-volatile storage media, although in Figure 6 Not shown, but may provide disk drives for reading from and / or writing to removable and non-volatile disks and optical disc drives for reading from and / or writing to removable and non-volatile optical discs, in which case each drive may be connected to a bus (not shown) via one or more data media interfaces.

[0254] The communication unit 640 communicates with further computing devices via a communication medium. Furthermore, the functionality of the components in the computing device 600 can be implemented by a single computing cluster or multiple computing machines that can communicate via communication connections. Therefore, the computing device 600 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or further general-purpose network nodes.

[0255] Input device 650 can be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 660 can be one or more of various output devices, such as a monitor, speaker, printer, etc. Through communication unit 640, computing device 600 can further communicate with one or more external devices (not shown), such as storage devices and display devices, wherein one or more devices enable a user to interact with computing device 600, or any device (e.g., network card, modem, etc.) that, if needed, enables computing device 600 to communicate with one or more other computing devices. Such communication can be performed through an input / output (I / O) interface (not shown).

[0256] In some embodiments, some or all components of computing device 600 may be located within a cloud computing architecture, rather than integrated into a single device. In a cloud computing architecture, components may be remotely provided and work together to achieve the functionality described herein. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring end users to know the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services via a wide area network (e.g., the Internet) using suitable protocols. For example, a cloud computing provider offers applications via a wide area network that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, along with the corresponding data, may be stored on remote servers. Computing resources in a cloud computing environment may be consolidated or distributed across remote data center locations. Cloud computing infrastructure may provide services through shared data centers, although they may act as a single access point for users. Thus, cloud computing architectures can be used to provide the components and functionality described herein from service providers in remote locations. Alternatively, they may be provided by conventional servers or installed directly or otherwise on client devices.

[0257] The computing device 600 can be used to implement point cloud encoding and decoding in the embodiments of this disclosure, and the memory 620 may include one or more point cloud encoding and decoding modules 625 having one or more program instructions. These modules are accessible and executable by the processing unit 610 to perform the functions of the various embodiments described herein.

[0258] In an example embodiment of point cloud encoding, input device 650 may receive point cloud data as input 670 to be encoded. The point cloud data may be processed, for example, by point cloud encoding / decoding module 625 to generate an encoded bitstream, which may be provided as output 680 via output device 660.

[0259] In an example embodiment of point cloud decoding, input device 650 may receive an encoded bitstream as input 670, which may be processed, for example, by point cloud encoding / decoding module 625 to generate decoded point cloud data. The decoded point cloud data may be provided as output 680 via output device 660.

[0260] While this disclosure has been specifically shown and described with reference to preferred embodiments thereof, those skilled in the art will understand that various changes in form and detail may be made without departing from the spirit and scope of this application as defined by the appended claims. Such changes are intended to be covered by the scope of this application. Therefore, the foregoing description of embodiments of this application is not intended to be limiting.

Claims

1. A method for point cloud encoding and decoding, comprising: A conversion is performed between point cloud frames of a point cloud sequence and the bitstream of the point cloud sequence, wherein a block in the point cloud frame comprises a set of slices, and the bounding box of the block includes at least a portion of the points in the set of slices, wherein the at least a portion of the points can be obtained from the set of slices. The Sequence Parameter Set (SPS) is activated for the point cloud frame. The SPS includes a first syntax element that specifies the length in bits of the slice label for each slice in the set of slices, and a second syntax element that is either 0 or equal to the value of the first syntax element, specifying the length in bits of the identifier of the slice.

2. The method of claim 1, wherein the bounding box of the segment comprises all points in the set of slices.

3. The method according to any one of claims 1-2, wherein the slice label of each slice in the set of slices is the identifier of the block.

4. The method according to any one of claims 1-2, wherein the first slice in the point cloud frame is at least partially outside the block, and at least one point in the first slice is outside the bounding box of the block.

5. The method according to any one of claims 1-2, wherein the first slice in the point cloud frame is at least partially outside the block, and at least one point of a portion of the points in the first slice is outside the bounding box of the block, the portion of the points being capable of being acquired from the first slice.

6. The method of claim 4, wherein the slice label of the first slice is different from the identifier of the block.

7. The method of any one of claims 1-2, wherein a sequence parameter set (SPS) is activated for the point cloud frame, the SPS comprising a first syntax element specifying the length in bits of a slice label for each slice in the set of slices, and the value of the second syntax element being equal to the value of the first syntax element if the value of a second syntax element specifying the length in bits of an identifier for the slice is greater than 0.

8. The method according to any one of claims 1-2, wherein the first syntax element is the syntax element slice_tag_bits, and the second syntax element is the syntax element tile_id_bits.

9. The method according to any one of claims 1-2, wherein the conversion comprises encoding the point cloud frame into the bitstream.

10. The method according to any one of claims 1-2, wherein the conversion comprises decoding the point cloud frame from the bitstream.

11. An apparatus for processing point cloud data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of claims 1-10.

12. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method according to any one of claims 1-10.

13. A non-transitory computer-readable recording medium having a computer program and a bit stream stored thereon, wherein the computer program, when executed by a processor, implements the method of any one of claims 1-10 to generate the bit stream.

14. A method for storing a bitstream of a point cloud sequence, comprising: A conversion is performed between point cloud frames of the point cloud sequence and the bit stream, wherein a block in the point cloud frame comprises a set of slices, and the bounding box of the block comprises at least a portion of points in the set of slices, wherein the at least a portion of points can be obtained from the set of slices; as well as The bitstream is stored in a non-transitory computer-readable recording medium. The Sequence Parameter Set (SPS) is activated for the point cloud frame. The SPS includes a first syntax element that specifies the length in bits of the slice label for each slice in the set of slices, and a second syntax element that is either 0 or equal to the value of the first syntax element, specifying the length in bits of the identifier of the slice.

Citation Information

Patent Citations

  • Method and apparatus for tile-relative addressing in video coding

    CN112640463A

  • High-level syntax design for geometry-based point cloud compression

    US20210321139A1