Point cloud coding method, device, and medium
By dividing frames into groups and using multiple reference frames with adaptive coding precision, the method addresses limitations in current point cloud compression techniques, enhancing prediction accuracy and efficiency.
Patent Information
- Application Number
- JP2024540777
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-07-09
- Filing Date
- 2023-01-03
- Publication Date
- 2025-01-17
AI Technical Summary
Current point cloud compression techniques suffer from limited prediction accuracy due to the use of a single reference frame for inter-prediction, outdated timestamp references, and uniform coding precision across frames, which affects coding efficiency and performance.
The proposed method involves dividing frames into groups of frames (GOFs) and utilizing multiple reference frames with varying coding priorities and precision based on hierarchical reference relationships for inter-prediction, allowing for more accurate and efficient compression.
This approach enhances the efficiency and quality of frame inter-prediction in point cloud processing by leveraging multiple reference frames and adaptive coding precision, improving overall compression performance.
Smart Images

Figure 2025501351000001_ABST
Abstract
Description
[Technical field]
[0001] TECHNICAL FIELD Embodiments of the present disclosure relate generally to point cloud coding techniques, and more specifically to multi-reference inter prediction for point cloud compression. [Background technology]
[0002] A point cloud is a collection of individual data points in a three-dimensional (3D) plane, with each point having coordinates set on the X, Y, and Z axes. Point clouds can therefore be used to represent physical content in a three-dimensional space. Point clouds have proven to be a promising way to represent 3D visual data for a wide range of immersive applications, from augmented reality to autonomous vehicles.
[0003] Point cloud coding standards have evolved primarily through the development of the well-known MPEG organization. MPEG stands for Moving Picture Experts Group, one of the main standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Coding Group (3DG) issued a Call for Presentations (CFP) document to initiate the development of a point cloud coding standard. The final standard will include two classes of methods. Video-based point cloud compression (V-PCC or VPCC) is suitable for point sets where the points are relatively uniformly distributed. Geometry-based point cloud compression (G-PCC or GPCC) is suitable for sparser distributions. However, the coding efficiency of traditional point cloud coding techniques is generally expected to be further improved. Summary of the Invention
[0004] An embodiment of the present disclosure provides a method for coding a point cloud.
[0005] In a first aspect, a point cloud coding method is proposed, which comprises, during a conversion between a current point cloud (PC) sample of a point cloud sequence and a bitstream of the point cloud sequence, determining a target PC sample of the current PC sample based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample, and performing a conversion based on the target PC sample.
[0006] According to the method according to the first aspect of the present disclosure, a target PC sample used as a reference PC sample for a current PC sample is generated based on at least one reconstructed PC sample. Compared with the conventional approach, the proposed method advantageously improves the efficiency and quality of frame inter prediction, and thus improves the efficiency and quality of point cloud processing.
[0007] In a second aspect, an apparatus for processing point cloud data is proposed, said apparatus for processing point cloud data comprising a processor and a non-transitory memory in which instructions are stored that, when executed by the processor, cause the processor to perform a method according to the first aspect of the present disclosure.
[0008] In a third aspect, a non-transitory computer readable storage medium is proposed, said non-transitory computer readable storage medium storing instructions for causing a processor to perform the method according to the first aspect of the present disclosure.
[0009] In a fourth aspect, another non-transitory computer-readable recording medium is proposed, which stores a bit stream of a point cloud sequence generated by a method executed by a point cloud processing device, the method comprising: determining a target PC sample of a current PC sample of the point cloud sequence based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample of the point cloud sequence; and generating the bit stream based on the target PC sample.
[0010] In a fifth aspect, a method for storing a bit stream of a point cloud sequence is proposed, the method comprising: determining a target PC sample of a current PC sample of the point cloud sequence based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample of the point cloud sequence, generating the bit stream based on the target PC sample, and storing the bit stream in a non-transitory computer-readable recording medium.
[0011] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. [Brief description of the drawings]
[0012] The above and other objects, features, and advantages of exemplary embodiments of the present disclosure will become more apparent through the following detailed description taken in conjunction with the accompanying drawings, in which like reference numerals generally refer to like components.
[0013] [Figure 1] FIG. 1 is a block diagram illustrating an example point cloud coding system that can utilize the techniques of this disclosure.
[0014] [Diagram 2] FIG. 1 is a block diagram illustrating an example point cloud encoder according to some embodiments of the present disclosure.
[0015] [Diagram 3] FIG. 2 is a block diagram illustrating an example point cloud decoder according to some embodiments of the present disclosure.
[0016] [Figure 4] 1 shows a schematic diagram illustrating an example of inter prediction for predictive geometry coding.
[0017] [Diagram 5] 1 shows a schematic diagram illustrating an example of a group of frames (GOF) structure with a GOF size of 8.
[0018] [Figure 6] FIG. 1 shows a schematic diagram illustrating an example of a hierarchical reference relationship of one GOF.
[0019] [Figure 7] FIG. 13 is a schematic diagram showing another example of the hierarchical reference relationship of one GOF.
[0020] [Figure 8] FIG. 2 shows a schematic diagram illustrating an example of deriving a prediction direction for a child node.
[0021] [Figure 9] FIG. 1 shows a schematic diagram illustrating an example of the reference relationships of one IPPP GOF structure.
[0022] [Figure 10] 1 illustrates a flowchart of a point cloud coding method according to some embodiments of the present disclosure.
[0023] [Figure 11] FIG. 1 illustrates a block diagram of a computing device capable of implementing various embodiments of the present disclosure.
[0024] Throughout the drawings, the same or similar reference numbers typically refer to the same or similar elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0025] The principles of the present disclosure will be described below with reference to some embodiments. It should be understood that these embodiments are described for illustrative purposes only and to help those skilled in the art understand and practice the present disclosure, and do not imply any limitations on the scope of the present disclosure. The disclosure described herein can be implemented in various ways other than the methods described below.
[0026] 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 belongs.
[0027] References in this disclosure to "one embodiment," "one embodiment," "exemplary embodiment," and the like indicate that the described embodiment may include a particular feature, structure, or characteristic, but not all embodiments necessarily include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an exemplary embodiment, it is noted that it is within the knowledge of one of ordinary skill in the art to affect such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly stated.
[0028] Terms such as "first" and "second" may be used herein to describe various elements, but it should be understood that these elements should not be limited by 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. 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.
[0029] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context clearly dictates otherwise. It will be further understood that the terms "comprise," "comprising," "having," "having," "including," and / or "comprising," as used herein, specify the presence of stated features, elements, and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof. Example Environment
[0030] 1 is a block diagram illustrating an example point cloud coding system 100 that can utilize the techniques of this disclosure. As shown, the point cloud coding 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 supporting coding (encoding and / or decoding) of point cloud data, i.e., point cloud compression. The coding may be effective to compress and / or decompress the point cloud data.
[0031] Source device 100 and destination device 120 may include any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephones such as smartphones and mobile phones, televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, terrestrial or marine vehicles, spacecraft, aircraft, robots, LIDAR devices, satellites, augmented reality devices, etc. In some cases, source device 100 and destination device 120 may be equipped for wireless communication.
[0032] The source device 100 may include a data source 112, a memory 114, a GPCC encoder 116, and an input / output (I / O) interface 118. The destination device 120 may include an input / output (I / O) interface 128, a GPCC decoder 126, a memory 124, and a data consumer 122. In accordance with the present disclosure, the GPCC encoder 116 of the source device 100 and the GPCC decoder 126 of the destination device 120 may be configured to apply techniques of the present disclosure related to point cloud coding. Thus, the source device 100 represents an example of an encoding device, and the destination device 120 represents an example of a decoding device. In other examples, the source device 100 and the destination device 120 may include other components and arrangements. For example, the source device 100 may receive data (e.g., point cloud data) from an internal or external source. Similarly, the destination device 120 may not include a data consumer within the device and may interface with an external data consumer.
[0033] Generally, the data source 112 may represent a source of point cloud data (i.e., raw, unencoded point cloud data) and provide a continuous series of "frames" of point cloud data to the GPCC encoder 116, which encodes the point cloud data of the frames. In some examples, the data source 112 generates the point cloud data. The data source 112 of the 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 video cameras, an archive that stores previously captured point cloud data, a 3D scanner or a LIDAR (Light Detection And Ranging) device, and / or a data feed interface for receiving point cloud data from a data content provider. Thus, in some examples, the data source 112 may generate the point cloud data based on signals from a LIDAR device. Alternatively or additionally, the point cloud data may be computer-generated from a scanner, camera, sensor, or other data. For example, the data source 112 may generate the point cloud data or may create a combination of live point cloud data, archived point cloud data, and computer-generated point cloud data. In either case, the GPCC encoder 116 encodes the captured, pre-captured, or computer-generated point cloud data. The GPCC encoder 116 may reorder frames of point cloud data from reception order (sometimes referred to as "display order") into a coding order for coding. The GPCC encoder 116 may generate one or more bitstreams including the encoded point cloud data. The source device 100 then outputs the encoded point cloud data via the I / O interface 118 for receipt and / or acquisition by, for example, the I / O interface 128 of the destination device 120. The encoded point cloud data may be transmitted directly to the destination device 120 over the network 130A via the I / O interface 118. The encoded point cloud data may be stored in a storage medium / server 130B for access by the destination device 120.
[0034] The memory 114 of the source device 100 and the memory 124 of the destination device 120 may represent general purpose memories. In some examples, the memory 114 and the memory 124 may store raw point cloud data, e.g., raw point cloud data from the data source 112 and decoded raw point cloud data from the GPCC decoder 126. Additionally or alternatively, the memory 114 and the memory 124 may store software instructions executable by, e.g., the GPCC encoder 116 and the GPCC decoder 126, respectively. In this example, the memory 114 and the memory 124 are shown separately from the GPCC encoder 116 and the GPCC decoder 126, but it should be understood that the GPCC encoder 116 and the GPCC decoder 126 may include internal memories for similar or equivalent functional purposes. Additionally, the memory 114 and the memory 124 may store encoded point cloud data (e.g., output from the GPCC encoder 116 and input to the GPCC decoder 126). In some examples, portions of memory 114 and memory 124 may be allocated as one or more buffers to store, for example, raw point cloud data, decoded point cloud data, and / or encoded point cloud data. For example, memory 114 and memory 124 may store point cloud data.
[0035] I / O interface 118 and I / O interface 128 may represent a wireless transmitter / receiver, a modem, a wired networking 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 interface 118 and I / O interface 128 include wireless components, I / O interface 118 and I / O interface 128 may be configured to transmit data, such as encoded point cloud data, according to a cellular communication standard, such as 4G, 4G-LTE (Long-Term Evolution), LTE Advanced, 5G, etc. In some examples where I / O interface 118 includes a wireless transmitter, I / O interface 118 and I / O interface 128 may be configured to transmit data, such as encoded point cloud data, according to other wireless standards, such as the IEEE 802.11 specification. In some examples, source device 100 and / or destination device 120 may include respective system-on-a-chip (SoC) devices. For example, the source device 100 may include an SoC device that performs functions attributed to the GPCC encoder 116 and / or the I / O interface 118, and the destination device 120 may include an SoC device that performs functions attributed to the GPCC decoder 126 and / or the I / O interface 128.
[0036] The techniques of this disclosure can be applied to encoding and decoding in support of any of a variety of applications, such as communication between autonomous vehicles, communication between processing devices such as scanners, cameras, sensors, local or remote servers, geographic mapping, or other applications.
[0037] The I / O interface 128 of the destination device 120 receives the encoded bitstream from the source device 110. The encoded bitstream includes signaling information, such as syntax elements having values that represent the point cloud, defined by the GPCC encoder 116 and also used by the GPCC decoder 126. The data consumer 122 uses the decoded data. For example, the data consumer 122 may use the decoded point cloud data to determine a location of a physical object. In some examples, the data consumer 122 may include a display for displaying an image based on the point cloud data.
[0038] The GPCC encoder 116 and the GPCC decoder 126 may each 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 combinations thereof. If the techniques are implemented in part in software, a device may perform the techniques of this disclosure by storing instructions for the software on a suitable non-transitory computer-readable medium and executing the instructions in hardware using one or more processors. Each of the GPCC encoder 116 and the GPCC decoder 126 may be included in one or more encoders or decoders, which may be integrated as part of a combined encoder / decoder (codec) within 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.
[0039] The GPCC encoder 116 and the GPCC decoder 126 may operate according to a coding standard, such as the Video Point Cloud Compression (VPCC) standard or the Geometry Point Cloud Compression (GPCC) standard. This disclosure may refer to coding (e.g., encoding and decoding) of frames, which includes the process of encoding or decoding data. An encoded bitstream typically includes a series of values of syntax elements that represent coding decisions (e.g., coding modes).
[0040] A point cloud comprises a set of points in 3D space with attributes associated with the points. The attributes can be color information such as R, G, B or Y, Cb, Cr, reflectance information, or other attributes. Point clouds can be acquired by various cameras and sensors such as LIDAR sensors and 3D scanners, or they can be computer generated. Point cloud data is used in a variety of applications including, but not limited to, architecture (sculpting), graphics (3D models for visualization and animation), and automotive industries (LIDAR sensors used for navigation).
[0041] Figure 2 is a block diagram illustrating an example of a GPCC encoder 200, which may be an example of the GPCC encoder 116 in the system 100 shown in Figure 1, according to some embodiments of the present disclosure. Figure 3 is a block diagram illustrating an example of a GPCC decoder 300, which may be an example of the GPCC decoder 126 in the system 100 shown in Figure 1, according to some embodiments of the present disclosure.
[0042] In both GPCC encoder 200 and GPCC decoder 300, the point cloud position is coded first. The attribute coding depends on the decoded geometry. In Fig. 2 and Fig. 3, the Region Adaptive Hierarchical Transformation (RAHT) unit 218, the Surface Approximation unit 212, the RAHT unit 314 and the Surface Approximation Synthesis unit 310 are options that are typically used for category 1 data. The Level of Detail (LOD) Generation unit 220, the Lifting unit 222, the LOD Generation unit 316 and the Inverse Lifting unit 318 are options that are typically used for category 3 data. All other units are common between category 1 and category 3.
[0043] For category 3 data, the compressed geometry is typically represented as an octree from the root down to the leaf level of individual voxels. For category 1 data, the compressed geometry is typically manifested by a pruned octree (i.e., an octree from the root down to the leaf level of blocks larger than a voxel) and a model that approximates the surface within each leaf of the pruned octree. In this way, both category 1 and 3 data share the coding mechanism of an octree, but category 1 data may additionally use a surface model to approximate the voxels within each leaf. The surface model used is a triangulation containing 1-10 triangles per block, and a triangle soup is generated. Category 1 geometry codecs are known as Trisoup geometry codecs, and category 3 geometry codecs are known as Octree geometry codecs.
[0044] In the example of FIG. 2, 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 geometry reconstruction unit 216, a RAHT unit 218, an LOD generation unit 220, a lifting unit 222, a coefficient quantization unit 224, and an arithmetic coding unit 226.
[0045] 2, the GPCC encoder 200 may receive a set of locations and a set of attributes. The locations may include coordinates of points in the point cloud. The attributes may include information about the points in the point cloud, such as a color associated with the points in the point cloud.
[0046] The coordinate transformation unit 202 may apply a transformation to the coordinates of the points to convert the coordinates from an initial domain to a transformation domain. This disclosure may refer to the transformed coordinates as transformed coordinates. The color transformation unit 204 may apply a transformation to convert color information of the attributes to a different domain. For example, the color transformation unit 204 may convert color information from an RGB color space to a YCbCr color space.
[0047] Further, in the example of FIG. 2, voxelization unit 206 may voxelize the transformed coordinates. Voxelization of the transformed coordinates may include quantizing and removing some points of the point cloud. In other words, multiple points of the point cloud may be contained within a single "voxel", which may be treated as one point in some respects thereafter. Further, octree analysis unit 210 may generate an octree based on the voxelized transformed coordinates. Further, in the example of FIG. 2, surface approximation analysis unit 212 may analyze the points to potentially determine a surface representation of the point set. Arithmetic coding unit 214 may perform arithmetic coding on syntax elements representing the octree and / or surface information determined by surface approximation analysis unit 212. GPCC encoder 200 may output these syntax elements in the geometry bitstream.
[0048] The geometry reconstruction unit 216 may reconstruct transformation coordinates of points in the point cloud based on the octree, the data indicative of the surface determined by the surface approximation analysis unit 212, and / or other information. The number of transformation coordinates reconstructed by the geometry reconstruction unit 216 may differ from the original number of points in the point cloud due to voxelization and surface approximation. In this disclosure, the resulting points may be referred to as reconstructed points. The attribute transfer unit 208 may transfer attributes of the original points of the point cloud to the reconstructed points of the point cloud data.
[0049] Further, the RAHT unit 218 may apply RAHT coding to the attributes of the reconstructed points. Alternatively or additionally, the LOD generation unit 220 and the lifting unit 222 may apply LOD processing and lifting, respectively, to the attributes of the reconstructed points. The RAHT unit 218 and the lifting unit 222 may generate coefficients based on the attributes. The coefficient quantization unit 224 may quantize the coefficients generated by the RAHT unit 218 or the lifting unit 222. The arithmetic coding unit 226 may apply arithmetic coding to syntax elements representing the quantized coefficients. The GPCC encoder 200 may output these syntax elements in an attribute bitstream.
[0050] In the example of FIG. 3, the GPCC decoder 300 may include a geometry 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 geometry reconstruction unit 312, a RAHT unit 314, an LOD generation unit 316, an inverse lifting unit 318, a coordinate inverse transformation unit 320, and a color inverse transformation unit 322.
[0051] The GPCC decoder 300 may obtain a geometry bitstream and an attribute bitstream. A geometry arithmetic decoding unit 302 of the decoder 300 may apply arithmetic decoding (e.g., CABAC or other types of arithmetic decoding) to syntax elements in the geometry bitstream. Similarly, an attribute arithmetic decoding unit 304 may apply arithmetic decoding to syntax elements in the attribute bitstream.
[0052] The octree synthesis unit 306 may synthesize octets based on syntax elements parsed from the geometry bitstream. In cases where surface approximations are used in the geometry bitstream, the surface approximation synthesis unit 310 may determine a surface model based on the syntax elements parsed from the geometry bitstream and the octree.
[0053] Further, the geometry reconstruction unit 312 may perform the reconstruction to determine the coordinates of the points of the point cloud. The coordinate inversion unit 320 may perform an inverse transformation to the reconstructed coordinates to transform the reconstructed coordinates (positions) of the points of the point cloud from the transformation domain back to the initial domain.
[0054] 3, the inverse quantization unit 308 may inverse quantize the attribute value. The attribute value may be based on a syntax element obtained from the attribute bitstream (e.g., including the syntax element decoded by the attribute arithmetic decoding unit 304).
[0055] Depending on how the attribute values are encoded, the RAHT unit 314 may perform RAHT coding to determine color values for the points of the point cloud based on the dequantized attribute values. Alternatively, the LOD generation unit 316 and the inverse lifting unit 318 may determine color values for the points of the point cloud using level-of-detail based techniques.
[0056] 3, the color inverse transform unit 322 may apply an inverse color transform to the color values. The inverse color transform may be the inverse of the color transform applied by the color transform unit 204 of the encoder 200. For example, the color transform unit 204 may convert the color information from the RGB color space to the YCbCr color space. Thus, the color inverse transform unit 322 may convert the color information from the YCbCr color space to the RGB color space.
[0057] The various units in Figures 2 and 3 are shown to aid in understanding the operations performed by the encoder 200 and the decoder 300. The units may 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-configured with respect to the operations that may be performed. A programmable circuit refers to a circuit that can be programmed to perform various tasks and provide flexible functionality in the operations that may be performed. For example, a programmable circuit may execute software or firmware that causes the programmable circuit to operate in a manner defined by the software or firmware instructions. A fixed function circuit may execute software instructions (e.g., to receive parameters or output parameters), but the type of operations that the fixed function circuit performs is generally unchanged. In some examples, one or more of the units may be separate circuit blocks (fixed function or programmable), and in some examples, one or more of the units may be an integrated circuit.
[0058] In the following, some exemplary embodiments of the present disclosure are described in detail. Section headings are used in this specification for ease of understanding, but it should be understood that they do not limit the embodiments disclosed in a section to only that section. Furthermore, although certain embodiments are described with reference to a versatile GPCC or other specific point cloud codec, the disclosed techniques are also applicable to other point cloud coding techniques. Furthermore, although some embodiments describe a point cloud coding step in detail, it will be understood that the corresponding step of undoing the coding, decoding, is performed by a decoder. 1. Overview The present disclosure relates to point cloud coding techniques, in particular to coding and encapsulation of coding parameters in point cloud coding. The ideas can be applied individually or in various combinations to point cloud coding standards or non-standard point cloud coding, for example Geometry-Based Point Cloud Compression (G-PCC), which is under development. 2. Abbreviation G-PCC Geometry-based Point Cloud Compression MPEG Moving Picture Experts Group 3DG 3D Graphics Coding Group CFP Call for Papers V-PCC Video-based Point Cloud Compression CE Core Experiment EE Exploration Experiment Inter-EM Inter-Exploration Model GOF Frame Group RDO Rate Distortion Optimization GM Global Activities QP Quantization parameter RA Random Access FIFO first in first out OC Occupancy Code POC Picture Order Count PC point cloud 3.Background Point cloud coding standards have evolved primarily through the development of the well-known MPEG organization. MPEG stands for Moving Picture Experts Group, one of the main standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Coding Group (3DG) issued a Call for Presentations (CFP) document to initiate the development of a point cloud coding standard. The final standard will include two classes of solutions. Video-based point cloud compression (V-PCC) is suitable for point sets where the points are relatively uniformly distributed. Geometry-based point cloud compression (G-PCC) is suitable for more sparse distributions. In order to explore the future point cloud coding technology in G-PCC, Core Experiment (CE) 13.5 and Exploration Experiment (EE) 13.2 were established to develop inter prediction technology in G-PCC. Since then, many new inter prediction methods have been adopted by MPEG and incorporated into the reference software named inter exploration model (inter-EM). In one point cloud frame, there are many data points to describe a 3D object or scene. For each data point, there may be corresponding geometry and attribute information. The geometry information is used to record the spatial location of the data point. The attribute information is used to record the details of the data point, such as texture, normal vector, and reflection. Within inter-EM, there are several optional tools that support coding and decoding of the geometry and attribute information, respectively. For the attribute information, the codec performs inter prediction for each point in the current frame using the attribute information of the reference points. The reference points are selected from the data points in the current frame and the reference frames based on the geometric distance of the points. Each reference point corresponds to a weight value based on the geometric distance from the current point. The predicted attribute value can be a weighted average of the attribute values of the reference points or one of the attribute values of the reference points. The determination of the predicted attribute value is based on the rate-distortion optimization (RDO) method. There are two main methods for performing inter-predictive coding of geometry information: octree-based methods and predictive tree-based methods. In the first method, the geometry information is represented by an octree structure and an occupied code (OC) of each node. For each node in the octree of the current frame, the codec determines whether to perform an octagonal division based on the number of points in the current node. The same division is performed for the corresponding reference node in the reference frame. At the same time, the occupied codes of the current node and the reference node are calculated. The codec uses the occupied code of the reference node to perform predictive coding of the occupied code of the current node. In the second method, the points in the point cloud are sorted to form a prediction tree. As shown in Figure 4, for each point, the previous decoded point is selected as point A. Then, the point in the reference frame that has the same scale azimuth and laser ID as point A is selected as point B. Finally, the first point in the reference frame that has a scale azimuth greater than that of point B is selected as point C. The codec uses the geometry information of point C to perform predictive coding on the geometry information of the current point. In the current inter-EM, the IPPP structure is applied, that is, if the current frame applies inter prediction, the reference frame of the current frame is the frame before it. At the same time, inter-EM uses the quantization parameter (QP) to control the bit rate point, and all frames share the same QP value. 4.Problems Existing designs for inter prediction of point cloud compression have the following problems: 1. In the current inter-EM, for each frame, there is only one reference frame to perform inter prediction. In theory, the more reference information there is, the more accurate the prediction result will be. Using only one reference frame will limit the prediction accuracy and affect the coding efficiency. 2. In the current inter-EM, the reference frames are only frames with relatively old timestamps (i.e., small POC values). The purpose of inter prediction is to eliminate redundant information between consecutive frames. However, redundant information exists not only between the previous frame and the current frame, but also between the current frame and the next frame. Using only frames with relatively old timestamps limits the coding performance. 3. In the current inter-EM, the QP value of each frame is the same. However, some frames are reference frames of other frames, that is, their coding priority should be high. When the transmission resource is limited, it is necessary to assign a lower QP value so that they can be transmitted more accurately. When the transmission resource is very limited, applying the same coding accuracy to all frames will affect the coding performance. 5. Detailed solution In order to solve the above problems and some other problems not mentioned, the methods summarized as follows are disclosed. The solutions should be considered as examples to illustrate the general concept, and should not be interpreted narrowly. Moreover, these solutions can also be applied in combination in any manner. In the following description, the term "PC sample" refers to a unit that performs predictive coding within point cloud sequence coding, such as a frame / picture / slice / tile / subpicture / node / point / one or more nodes, or other unit that contains points. 1) To perform point cloud compression, it is proposed to divide the frames within a point cloud sequence into one or more groups of frames (GOFs). In one example, N consecutive frames in timestamp order may be clustered as one GOF. i. In one example, each frame may belong to one GOF. ii. In one example, N may be equal to the GOF size. b. In one example, the first frame of a GOF in decoding order may be an I-frame. i. In one example, for I-frames, there is only intra prediction. c. In one example, the first frame of the GOF in decoding order is not an I-frame. i. In one example, the first frame of a GOF in decoding order may be a P-frame. ii. In one example, the first frame of a GOF in decoding order may be a P-frame or a B-frame whose reference frames all precede the current frame in timestamp order. d. Whether the first frame of a GOF is coded as an I-frame according to decoding order may depend on the intra period / random access period. e. In one example, the GOF size may be equal to the intra period / random access period. f. In one example, the GOF size may be smaller than the intra period / random access period. g. In one example, an indication of GOF size and / or coding structure within the GOF may be signaled. 2) It is proposed to perform inter prediction of the current PC sample using one or more reference PC samples. In one example, for a current PC sample, there may be one or more reference PC samples. b. In one example, the multiple reference PC samples may be from different reference slices / frames. i. Or, multiple reference PC samples can be from the same reference slice / frame. c. In one example, one reference PC sample may be derived from at least one sample. i. In one example, a reference PC sample can be a PC reconstituted sample. In one example, one reference PC sample can be the result of applying a procedure to at least one PC reconstituted sample. For example, the procedure can be sampling or upsampling. iii. In one example, one reference PC sample may be a merged PC sample from multiple PC samples. (1) In one example, a merged PC sample of multiple PC samples may be a cluster of all points within the PC sample. (2) Or, a merged PC sample of multiple PC samples may be a cluster of some points within the PC sample. a) In one example, some points are generated by a downsampling process. In one example, a reference PC sample can be the result of applying a procedure to at least one merged sample from a plurality of PC reconstructed samples. For example, the procedure can be, for example, sampling or upsampling. d. In one example, the reference PC sample may be from the same slice / frame as the current PC sample. e. Alternatively or additionally, an indication of whether to use multiple reference PC samples can be signaled to the decoder. f. In one example, the reference information for the current PC sample (eg, where the reference PC sample is from and / or which reference PC sample is used) may be derived at the decoder. g. In one example, the reference information for the current PC sample (eg, where the reference PC sample is from and / or which reference PC sample is used) may be derived at the decoder. i. In one example, the reference direction may be signaled. (1) In one example, the reference directions include: a) The reference direction may be unidirectional prediction from a reference frame in the first reference list (denoted as L0). b) The reference direction may be unidirectional prediction from reference frames in a second reference list (denoted as L1). c) The reference direction can be bi-predictive (first reference frame in L0 and second reference frame in L1). (2) In one example, the relative position of a reference frame in a reference list may be fixed with respect to a particular frame within one GOF. a) In one example, N (eg, N=2) previously coded frames in display order may be used as reference frames. i. Or, in addition, an indication of N may be signaled. ii. Or, additionally, the N frames are previously coded frames that immediately precede and contiguous to a particular current frame. b) In one example, the relative position of a reference frame in a reference list may be adaptive to a particular frame in a GOF, for example the position may be derived based on the GOF size. (3) In one example, the reference direction may be conditionally signaled, for example, according to reference picture list information. ii. In one example, an indication of the reference frame from which the reference PC samples originate may be signaled (1) The reference frame indication may be signaled as a reference list index (L0 or L1) and a reference frame index within the reference list. a) Or, if desired, it can be signaled by the reference directions and the reference frame index for each direction. (2) The reference list index may be conditionally signaled. a) If there is only one reference list, the signaling of the reference list index may be skipped. (3) The reference frame index of the reference list may be conditionally signaled. a) If there is only one reference frame in the reference list, the signaling of the reference frame index may be skipped. iii. Alternatively or additionally, an indication of the number of reference PC samples may be signaled to the decoder. iv. Additionally, for a sample, at least one indication pointing to at least one reference PC sample may be signaled to the decoder to indicate the reference relationship. (1) The indication may be conditionally signaled depending, for example, on whether or not to use another sample as the reference PC sample rather than the previous sample. (2) The indication may be expressed by some index (eg, sample id) indicating the relevant sample to be used as the reference PC sample. (3) The instruction may be coded using fixed-length coding, unary coding, truncated unary coding, etc. (4) The instructions may be predictively coded. v. In one example, at least one reference sample. h. In one example, geometry information of a reference PC sample may be used to perform geometry inter prediction of a current PC sample. i. In one example, geometry information of a reference PC sample may be used to derive a predicted geometry value of a current PC sample. (1) In one example, the predicted geometry value may be selected from several candidate predictors. a) Candidate predictors may be derived by one or more geometry values of the reference samples. b) Candidate predictors may be derived by functions of one or more geometry values of the reference PC samples. c) Candidate predictors may be derived by one or more predicted geometry values of the current PC sample or previously decoded samples. d) Candidate predictors may be derived as a function of one or more predicted geometry values of the current PC sample or previously decoded samples. (2) In one example, the candidate predictors include, but are not limited to, an average value, a weighted average value, one of the geometric information of the reference PC samples, etc. (3) In one example, the selection of the predictor may be based on a rate optimization method, a distortion optimization method, an RDO method, etc. (4) In one example, the selection may be derived at the decoder. (5) In one example, for each sample, an indication of the selected predictor may be signaled to the decoder. a) The indication may be coded as fixed length coding, unary coding, truncated unary coding, etc. b) The instructions may be predictively coded. (6) In one example, the residual between the predicted geometry information and the actual geometry information may be derived and signaled to the decoder. a) The residual may be coded using fixed length coding, unary coding, truncated unary coding, etc. b) The residuals can be predictively coded. ii. In one example, the geometry information of the reference PC sample may be used as context information for predictive coding of the geometry information of the current node. i. In one example, attribute information of a reference PC sample may be used to perform attribute inter prediction of a current PC sample. i. In one example, attribute information of a reference PC sample may be used to derive predicted attribute values for a current PC sample. (1) In one example, the predictive attribute value may be selected from several candidate predictors. a) Candidate predictors may be derived by one or more attribute values of reference PC samples. b) Candidate predictors may be derived as a function of one or more attribute values of the reference PC samples. c) Candidate predictors may be derived by one or more predictive attribute values of the current PC sample or previously decoded samples. d) Candidate predictors may be derived as a function of one or more predictive attribute values of the current PC sample or previously decoded samples. (2) In one example, the candidate predictors include, but are not limited to, an average value, a weighted average value, one of the attribute information of the reference PC samples, and the like. (3) In one example, the selection of the predictor may be based on a rate optimization method, a distortion optimization method, an RDO method, etc. (4) In one example, the selection may be derived at the decoder. (5) In one example, for each sample, an indication of the selected predictor may be signaled to the decoder. a) The indication may be coded as fixed length coding, unary coding, truncated unary coding, etc. b) The instructions may be predictively coded. (6) In one example, the residual between the predicted attribute information and the actual attribute information may be derived and signaled to the decoder. a) The residual may be coded using fixed length coding, unary coding, truncated unary coding, etc. b) The residuals can be predictively coded. ii. In one example, attribute information of a reference PC sample may be used as context information for predictive coding of attribute information of a current node. 3) It is proposed to use at least one kind of GOF structure within a point cloud sequence. In one example, frames in different GOF structures have different reference relationships. i. In one example, frames in an IPPP GOF structure may only have the previous frame as a reference frame, except for the first frame. ii. In one example, a frame in the IBBB GOF structure may have two reference frames, except for the first frame. b. In one example, one GOF structure may be applied to all GOFs in one point cloud sequence. c. In one example, multiple GOF structures may be applied to GOFs within a single point cloud sequence. d. In one example, there may be at least one indication of whether only one GOF structure is applied to all GOFs in a point cloud sequence. i. In one example, the instruction may be signaled to the decoder. (1) The instruction may be coded using fixed-length coding, unary coding, truncated unary coding, etc. (2) The instructions may be predictively coded. e. In one example, if only one GOF structure is applied to all GOFs in a point cloud sequence, there may be at least one indication of which GOF structure is applied. i. In one example, the instruction may be signaled to the decoder. (1) The instruction may be coded using fixed-length coding, unary coding, truncated unary coding, etc. (2) The instructions may be predictively coded. f. In one example, GOF motion information may be used to determine which GOF structure applies to a GOF. i. In one example, the GOF motion information may be derived at the encoder. (1) In one example, the GOF motion information may be the motion information between a first frame in a GOF and a first frame in the next GOF. (2) Or, the GOF motion information can be the motion information between the first frame in the GOF and the last frame in the GOF. (3) Or, the GOF motion information can be the motion information between the first I-frame and the next I-frame in the GOF. In one example, it is determined that the IBBB GOF structure is applied to a GOF only if the GOF motion information satisfies the GOF constraints, otherwise it is determined that the IPPP GOF structure is applied to the GOF. (1) In one example, the GOF motion condition may be that the GOF motion information is less than at least one threshold value. a) In one example, the threshold may be derived in the encoder. b) In one example, the threshold value may be predefined. iii. In one example, the decision is made in the encoder. iv. In one example, the decision is made in the decoder. g. In one example, when multiple GOF structures are applied to GOFs in a point cloud sequence, for a GOF, there may be at least one indication of which GOF structure is applied to the GOF. i. In one example, the instruction may be signaled to the decoder. (1) The instruction may be coded using fixed-length coding, unary coding, truncated unary coding, etc. (2) The instructions may be predictively coded. h. In the above description, frames may be replaced with slices / blocks or other processing units. 4) In one example, for frames in point cloud coding, information regarding how to manage the decoded frames may be signaled. In one example, a decoded frame may be identified by an index counted in display order. b. In one example, the decoded frame may be identified by an index counted in coding / decoding order. c. In one example, which decoded frames should be kept in the frame buffer may be signaled. d. In one example, which decoded frames should be removed from the frame buffer may be signaled. e. In one example, it may be signaled which decoded frames should be used as reference frames for a particular frame. f. In one example, which decoded frames should be placed in which reference lists may be signaled. g. In one example, the order of the reference frames may be signaled. h. In one example, the information may be signaled in association with the frame. i. In one example, the information may be signaled independently of the frame. 5) A sample in a frame with a relatively recent timestamp may be used as a reference PC sample for the current PC sample. In one example, there is time stamp information for each frame in a time point cloud sequence. b. In one example, the timestamp order may be the same as the display order. c. In one example, the timestamp order may be the same as the rendering order. d. In one example, the timestamp of each sample is equal to the timestamp of the frame to which it belongs. e. In one example, a sample with a relatively old timestamp may be used as a reference PC sample for the current PC sample. f. In one example, a sample with the same timestamp may be used as a reference PC sample for the current PC sample. g. In one example, a sample with a more recent timestamp may be used as a reference PC sample for the current PC sample. h. Alternatively or additionally, an indication of whether or not to allow samples with more recent timestamps to be used as reference PC samples may be signaled to the decoder. 6) In one example, there may be a low latency mode for point cloud compression. a. Or, in addition, in low latency mode, the timestamp order and the decoding order must be the same. b. Alternatively or additionally, an indication of whether or not to use low latency mode may be signaled to the decoder. c. Alternatively or additionally, multiple reference frames can be used for low latency mode. 7) In low latency mode, it is proposed to use frames with relatively old timestamps or samples with the same timestamps within a frame as reference samples. In one example, in low latency mode, a sample with a relatively old timestamp may be used as a reference PC sample for the current PC sample. b. In one example, in low latency mode, a sample with the same timestamp may be used as a reference PC sample for the current PC sample. 8) It is proposed to perform the encoding and decoding process based on the reference relationship rather than the timestamp order of the samples. In one example, the reference PC sample may be encoded before the current PC sample. b. In one example, the reference PC sample may be decoded before the current PC sample. 9) In case of inter-coded slices / frames where inter prediction is enabled, reference frame information may be signaled. a. Frame of reference information includes: i. The number of reference frames; ii. number of reference lists; iii. the number of reference frames in each reference list; iv. The reference frames within each reference list. (1) The reference frame may be indicated by its timestamp, or by the POC, or by other means. b. Information may be shared across multiple frames, such as signaled within a higher level syntactic structure (e.g., SPS / PPS). 10) It is proposed to code the PC samples in different orders rather than a fixed order and / or different coding accuracy of the PC samples. In one example, it is proposed to apply a hierarchical coding precision based on the coding priority of the PC samples. i. In one example, PC samples may have different coding priorities within one point cloud sequence. b. In one example, the coding priority of the reference PC sample should be higher than the current PC sample. c. In one example, the coding accuracy of samples with high coding priority should be higher than samples with low coding accuracy. d. In one example, the coding precision may be controlled by the QP value / quantization step in point cloud sequence coding. e. In one example, the QP / quantization step value of the reference PC sample may be lower / smaller than the current PC sample. f. In one example, the delta value of the QP / quantization step value of the reference PC sample may be fixed. g. In one example, a delta value for the QP / quantization step value of the reference PC sample may be derived at the decoder. i. In one example, a delta value for the QP / quantization step value of the reference PC sample may be derived based on the GOF size. ii. In one example, a delta value for the QP / quantization step value of the reference PC sample may be derived based on the intra period / random access period. iii. In one example, a delta value for the QP / quantization step value of the reference PC sample may be derived based on an indicator of a lossless coding mode. iv. In one example, a delta value for the QP / quantization step value of the reference PC sample may be derived based on an indicator of a low delay coding mode. h. In one example, a delta value of the QP / quantization step value of the reference PC sample may be signaled to the decoder. i. In the above example, the "reference PC sample" may be replaced with the "current PC sample." j. Or, additionally, an indication of whether to use hierarchical QP values and / or QP values / quantization steps may be signaled to the decoder. k. In one example, the QP value for each sample may be derived at the decoder. 11) In one example, the QP value for each frame / block / cube / tile / slice may be signaled to the decoder. a. The QP value may be coded using fixed length coding, unary coding, truncated unary coding, etc. b. The QP values may be predictively coded. 12) When using octree geometry coding, it is proposed to use occupancy information of multiple reference nodes to perform inter prediction of the current node. In one example, the geometry information may be represented by an octree structure and occupancy information (eg, occupancy codes) of the octree nodes when using octree geometry coding. b. In one example, for each frame, there may be multiple reference frames. c. Alternatively or additionally, an indication of whether or not to use multiple reference frames can be signaled to the decoder. d. In one example, for each node, there may be at least one corresponding reference node in each reference frame. e. In one example, for each node, the reference occupancy code may be selected from several candidate values. i. Candidate values may be derived by occupancy information of one or more reference nodes. ii. Candidate values may be derived as a function of occupancy information of one or more reference nodes. iii. In one example, the candidate values include, but are not limited to, one of XOR, same, or occupancy information of the reference node. iv. In one example, the selection of candidate values may be based on a rate optimization method, a distortion optimization method, an RDO method, etc. v. In one example, the selection may be derived at the decoder. vi. In one example, an indication of the selected candidate value may be signaled to the decoder. (1) The instruction may be coded using fixed-length coding, unary coding, truncated unary coding, etc. (2) The instructions may be predictively coded. f. In one example, for each node, the reference occupancy code may be used as predicted occupancy information. i. Additionally, a residual between the predicted occupancy information and the actual occupancy information may be derived and signaled to the decoder. (1) The residual can be coded using fixed-length coding, unary coding, truncated unary coding, etc. (2) The residuals can be predictively coded. g. In one example, for each node, the reference occupancy information may be used as context information for predictive coding of the occupancy information of the current node. 13) When using octree geometry coding, it is proposed to derive the selection of reference occupancy information of a child node based on the current node and the reference node of the current node. In one example, when using octree geometry coding, the geometry information may be represented by an octree structure and occupancy information (eg, occupancy codes) of the octree nodes. b. In one example, for each node, there may be one occupancy code, which is an 8-bit binary number, with each bit corresponding to one child node. c. In one example, for each node, there may be multiple reference nodes and corresponding occupancy codes. d. In one example, there may be one reference occupancy code for each node. e. In one example, for each node, a reference occupied code may be selected from one of the occupied codes of the reference node. f. In one example, for each node, the selection of the reference occupancy code of the child node may be derived based on the occupancy code of the current node and the reference node of the current node. i. In one example, for each bit in the occupancy code of the current node and the reference node of the current node: (1) If the bit values at the same bit positions of the current node and one reference node are the same, the occupied code of the child node of the reference node can be selected as the reference occupied code of the child node of the current node, where the child node corresponds to the bit position. ii. In one example, the number of mismatched bits between the occupancy code of the current node and the reference code of the current node is calculated. (1) If the number of mismatched bits is the same for all reference nodes, then the child node's selection may inherit the current node's selection. (2) When the number of mismatched bits is not the same for all reference nodes, the occupied code of the child node of the reference node with the least number of mismatches may be selected as the reference occupied code of the child node. 14) It is proposed to derive, for at least one frame, the accumulated global motion based on at least one externally estimated global frame. In one example, the global motion between a frame and a subsequent frame may be estimated externally. i. In one example, global motion may be estimated as a pre-processing step prior to point cloud compression. ii. In one example, the global motion may be part of the raw data. b. In one example, an externally estimated global motion may be used for global motion estimation. c. In one example, if the frame distance between the current frame and the reference frame is greater than a threshold (eg, 1), the accumulated global motion may be used instead of the externally estimated global motion. d. In one example, the cumulative global motion may be derived at the encoder. e. In one example, the cumulative global motion between the reference frame and the current frame may be derived based on the externally estimated global motion of the reference frame and consecutive frames before the current frame in timestamp order. f. In one example, the cumulative global motion between the reference frame and the current frame may be derived based on an externally estimated global motion of the current frame and one or more consecutive frames before the reference frame in timestamp order. g. In one example, the accumulated global motion may be signaled to the decoder. i. The accumulated global motion may be coded with fixed length coding, unary coding, truncated unary coding, etc. ii. The accumulated global motion may be predictively coded. iii. The accumulated global motion can be coded with context coding. iv. The accumulated global motion may be coded with bypass coding. 15) It is proposed to derive an attribute inter-threshold based on the frame distance of at least one reference frame. In one example, for a reference frame, there may be at least one attribute inter threshold for determining whether attribute inter prediction is applied to the reference frame. b. In one example, for a reference frame, an attribute inter threshold may be derived based on the original attribute inter threshold and the frame distance of the reference frame. c. In one example, the attribute inter threshold requirements for reference frames with a large frame distance may be stricter than the attribute inter threshold requirements for reference frames with a small frame distance. i. In one example, the attribute inter threshold may be the original attribute inter threshold divided by the frame distance. d. The threshold value may be derived at the decoder or may be signaled from the encoder to the decoder. 16) It is proposed that the search scope of attribute inter-prediction is based on reference relationships. a. The search range of a sample containing multiple reference samples may be smaller than that of a sample containing one reference sample. i. A search range of samples that includes one reference sample may be indicated by an integer (eg, N), and a search range of samples that has M reference samples may be indicated by a relatively small integer (eg, N / M). b. Alternatively, the search range of a sample containing multiple reference samples may be larger than a sample containing one reference sample. c. Alternatively, the search range of a sample containing multiple reference samples may be equal to a sample containing one reference sample. d. Alternatively, the search range can be signaled from the encoder to the decoder. 17) It is proposed to perform geometry inter prediction for a set of layers of an octree structure using one or more reference frames. In one example, the set is the first N layers of an octree structure. b. In one example, the set is the last N layers of an octree structure. c. In one example, the geometry coding may be performed within an octree structure having multiple layers. d. In one example, geometry intra-predictive coding may be performed for all layers of an octree structure. e. In one example, geometry inter-predictive coding with one reference frame may be performed for all layers of the octree structure. In one example, geometry inter-predictive coding with multiple reference frames may be performed on the first N layers of an octree structure, where N may be a non-negative integer. i. In one example, N may be one predefined value. ii. In one example, N is derived at the encoder. (1) N can be derived based on the node size of each layer. (2) N may be derived based on the motion block size. iii. In one example, N may be derived at the decoder. (1) N can be derived based on the node size of each layer. (2) N may be derived based on the motion block size. iv. In one example, N may be signaled to the decoder. (1) N can be coded using fixed-length coding, unary coding, truncated unary coding, etc. (2) N can be predictively coded. 18) It is suggested to temporarily record a PC reconstituted sample when the PC reconstituted sample is a reference PC sample for other PC samples. In one example, one PC sample may be reconstructed at the encoder and / or decoder. b. In one example, one PC reconstituted sample can be a reference PC sample for other PC samples. c. In one example, if a PC reconstructed sample is a reference PC sample for other PC samples, some memory may be used to record one PC reconstructed sample while processing the other PC samples. d. In one example, memory for recording one PC reconstructed sample may be released if the PC reconstructed sample is not a reference PC sample for any other PC sample. e. In one example, for each PC sample, there may be at least one indication to indicate whether the PC sample is a reference PC sample for other PC samples. i. In one example, the indication may be a flag to indicate whether a PC sample is a reference PC sample for another PC sample. (1) In one example, the flag may be derived in the encoder. (2) In one example, the flag may be derived at the decoder. (3) Alternatively, a flag can be signaled to the decoder. ii. In one example, the instruction may be the number of PC samples to use the current PC sample as the reference PC sample. (1) In one example, the number may be derived in an encoder. (2) In one example, the number may be changed during the coding of other PC samples, e.g., after a PC sample is referenced by another PC sample, the number may be decreased by 1. When the number becomes 0, the memory for recording the corresponding PC sample may be released. (3) In one example, the number may be derived at the decoder. (4) In one example, the number may be signaled to a decoder. 19) For a current PC point, it is proposed to select reference points from different reference PC samples and perform attribute inter prediction. In one example, for each point, there may be multiple reference points for performing attribute inter prediction. b. In one example, a reference point may be selected from the multiple samples based on a geometric distance between the reference point and the current point. c. In one example, attribute information of a reference point may be used to derive a predicted attribute value for the current point. d. In one example, the predictive attribute value may be selected from a number of candidate predictors. i. Candidate predictors may be derived by attribute information of reference points from one or more reference PC samples. ii. Candidate predictors may be derived as a function of attribute information of reference points from one or more reference PC samples. iii. In one example, the candidate predictors include, but are not limited to, an average value, a weighted average value, one of the attribute information of the reference points, and the like. (1) In one example, the weight of each reference point can be its geometric distance from the current point. iv. In one example, the selection of the predictor may be based on a rate optimization method, a distortion optimization method, an RDO method, etc. v. In one example, for each point, an indication of the selected predictor may be signaled to the decoder. (1) The instruction may be coded using fixed-length coding, unary coding, truncated unary coding, etc. (2) The instructions may be predictively coded. e. In one example, the residual between the predicted attribute value and the actual attribute value may be derived and signaled to the decoder. i. The residual may be coded with fixed length coding, unary coding, truncated unary coding, etc. ii. The residuals may be predictively coded. f. In one example, the predicted attribute values may be used as context information for predictive coding of the attribute information of the current point. 6. Embodiment 1) This embodiment describes an example of how to use two reference frames to perform inter prediction of a current frame using a frame with a relatively new timestamp as the reference frame. In this example, the point cloud frames in the point cloud sequence are divided into multiple GOFs, and the GOF size is set to 8. As shown in Figure 5, in each GOF there are eight consecutive frames in timestamp order. The numbers shown indicate the relative timestamp order of the frames within the GOF. Frame "0" is the first frame in the GOF, which has the oldest timestamp in the GOF. The first frame is a random access (RA) point, which means that only intra-predictive coding is performed, and no inter-predictive coding is performed. For the other seven frames, both intra-predictive coding and inter-predictive coding are performed based on the reference relationship. A hierarchical referencing relationship is applied to each GOF, as shown in Figure 6. In the figure, frame "8" is the first frame of the next GOF. For frames "1" to "7", each frame has two reference frames. One reference frame has an older timestamp than the current frame, and the other reference frame has a newer timestamp than the current frame. For each frame, the reference frames are shown in Table 1. [Table 1] To ensure that frames "0" through "8" are encoded and decoded before the current frame, the encoding and decoding order for frames "0" through "8" is {0, 8, 4, 2, 1, 3, 6, 5, 7}. It should be noted that frame "8" is the first frame of the next GOF and should be processed before frames "1" through "7". When frame "8" is coded or decoded in the current GOF, the processing of frame "8", which is also frame "0" in the next GOF, should be skipped in the next GOF. 2) This embodiment describes an example of how to apply hierarchical coding precision to attribute inter prediction based on the coding priority of samples. In this example, the point cloud frames in the point cloud sequence are divided into multiple GOFs, and the GOF size is set to 8. A hierarchical reference relationship is applied, as shown in Figure 6. The hierarchical coding priority is calculated based on the principle that the coding priority of the reference frame is higher than that of the current frame. The coding priority results are shown in Table 2. [Table 2] In this example, the QP value is used to control the coding precision: the lower the QP value, the higher the coding precision. Thus, a hierarchical QP value structure is applied to the frames, so that the coding precision can be changed based on the coding precision. For each frame, the QP value is calculated as follows:
number
number
number
number
number
[0059] In the following, further details of the embodiments of the present disclosure related to multi-reference inter prediction for point cloud compression are described. The embodiments of the present disclosure should be considered as examples for explaining the general concept, and should not be interpreted narrowly. Moreover, these embodiments can also be applied in combination in any manner.
[0060] As used herein, the term "point cloud sequence" may refer to a sequence of one or more point clouds. The term "point cloud frame" or "frame" may refer to a point cloud in a point cloud sequence. The term "point cloud (PC) sample" may refer to a frame, picture, slice, tile, subpicture, node, point, or a unit containing one or more nodes or points.
[0061] FIG. 10 shows a flowchart of a point cloud coding method 1000 according to some embodiments of the present disclosure. The method 1000 may be implemented during conversion between a current PC sample of a point cloud sequence and a bitstream of the point cloud sequence. As shown in FIG. 10, the method 1000 starts with determining 1002 a target PC sample of a current PC sample based on at least one reconstructed PC sample of at least one target PC sample of the current PC sample. In some embodiments, one of the at least one reconstructed PC samples may be determined as a target PC sample. That is, the target PC sample may be one of the at least one reconstructed PC samples. Or, the at least one reconstructed PC sample may be processed to obtain a target PC sample, which will be described in detail below. It should be understood that the above examples are merely described for illustrative purposes. The scope of the present disclosure is not limited thereto.
[0062] At 1004, a transformation is performed based on the target PC sample. In some embodiments, the target PC sample may be used as a reference PC sample for coding the current PC sample. In some embodiments, the transformation may include encoding the current PC sample into a bitstream. Alternatively or additionally, the transformation may include decoding the current PC sample from the bitstream.
[0063] In view of the above, a target PC sample used as a reference PC sample of a current PC sample is generated based on at least one reconstructed PC sample.Compared with the conventional approach, the proposed method advantageously improves the efficiency and quality of frame inter-prediction, and thus improves the efficiency and quality of point cloud processing.
[0064] In some embodiments, a processing procedure may be performed on the at least one reconstructed PC sample to obtain a target PC sample, at 1002. By way of example and not limitation, the processing procedure may include a sampling procedure, an upsampling procedure, etc.
[0065] In some embodiments, the at least one reconstructed PC sample may include a plurality of reconstructed PC samples. At 1002, the plurality of reconstructed PC samples may be merged to obtain a target PC sample. In one example, the merged result, i.e., the target PC sample, may include all points in the plurality of reconstructed PC samples. Or, the merged result, i.e., the target PC sample, may include some points in the plurality of reconstructed PC samples. The some of the points may be generated by a downsampling procedure.
[0066] Or, at 1002, the multiple reconstructed PC samples may be merged to obtain at least one merged PC sample. A processing procedure may be performed on the at least one merged PC sample to obtain a target PC sample. By way of example and not limitation, the processing procedure may include a sampling procedure, an upsampling procedure, etc.
[0067] In some embodiments, the samples of a point cloud sequence may be divided into multiple groups of samples (GOS), and the multiple GOS may be associated with at least one GOS structure. That is, at least one type of GOS structure may be used within a point cloud sequence. In some embodiments, the samples are frames, and the GOS are groups of frames (GOFs). Or, the samples are slices or blocks.
[0068] In some embodiments, samples in a first GOS structure of the at least one GOS structure have a different reference relationship to samples in a second GOS structure of the at least one GOS structure. The second GOS structure may be different from the first GOS structure. For example, frames in different GOF structures may include different reference relationships.
[0069] In some embodiments, a first GOS of the plurality of GOS may have a first GOS structure of the at least one GOS structure. The first GOS may include a set of samples following a first sample in the first GOS. The first sample may be at an initial position in the first GOS, and each of the sets of samples may have a single reference sample immediately preceding the respective sample. For example, the first GOS structure may be an IPPPGOS structure. In some alternative or additional embodiments, a second GOS of the plurality of GOS may have a second GOS structure of the at least one GOS structure. The second GOS may include a set of samples following a first sample in the second GOS. The first sample may be at an initial position in the second GOS, and each of the sets of samples may have two reference samples. For example, the second GOS structure may be an IBBGOS structure.
[0070] In some embodiments, the at least one GOS structure may include a single GOS structure. For example, a single GOF structure may be applied to all GOFs in a point cloud sequence. Or, the at least one GOS structure may include multiple GOS structures. For example, multiple GOF structures may be applied to GOFs in a point cloud sequence. There may be at least one first indication indicating whether only one GOS structure is applied to all of the multiple sample groups. In one example, the at least one first indication may be indicated in the bitstream. By way of example and not limitation, the at least one first indication may be coded with one of fixed length coding, unary coding, or truncated unary coding. Or, the at least one first indication may be coded predictively.
[0071] In some embodiments, only a first GOS structure may be applied to all of the plurality of sample groups. At least one second indication indicating the first GOS structure may be present. For example, if only one GOF structure is applied to all GOFs in a point cloud sequence, at least one second indication indicating which GOF structure is applied may be present. In one example, the at least one second indication may be indicated in the bitstream. By way of example and not limitation, the at least one second indication may be coded with one of fixed length coding, unary coding, or truncated unary coding. Or, the at least one second indication may be coded predictively.
[0072] Or, the multiple GOS structures are applied to all of the multiple sample groups. For the current PC sample, there may be at least one third indication indicating that a first GOS structure of the multiple GOS structures is applied to the current PC sample. For example, when multiple GOF structures are applied to GOFs in a point cloud sequence, for a GOF, there may be at least one third indication indicating which GOF structure is applied to the GOF. In one example, the at least one third indication may be indicated in the bitstream. By way of example and not limitation, the at least one third indication may be coded with one of fixed length coding, unary coding, or truncated unary coding. Or, the at least one third indication may be coded predictively.
[0073] In some embodiments, a first GOS structure of a first GOS of the plurality of GOSs may be determined based on GOS motion information of the first GOS. The determination may be made at an encoder or a decoder. For example, GOF motion information may be used to determine which GOF structure is used for the GOF. For example, the GOS motion information may be determined at an encoder.
[0074] In some embodiments, the GOS motion information may be motion information between a first sample in a first GOS and a second sample in a second GOS following the first GOS. The first sample may be at an initial position in the first GOS and the second sample may be at an initial position in the second GOS. Or, the GOS motion information may be motion information between a first sample in the first GOS and a second sample in the first GOS. The first sample may be at an initial position in the first GOS and the second sample may be at a last position in the first GOS. In some further embodiments, the GOS motion information may be motion information between a first I-sample in the first GOS and a next I-sample in the first GOS.
[0075] In some embodiments, if the GOS motion information satisfies the GOS constraint, the first GOS structure may be determined to be an IBBB GOS structure. Otherwise, if the GOS motion information does not satisfy the GOS constraint, the first GOS structure may be determined to be an IPPP GOS structure. By way of example and not limitation, the GOS constraint may be that the GOS motion information is less than at least one threshold. In one example, the at least one threshold may be determined in the encoder. In another example, the at least one threshold may be predefined.
[0076] In some embodiments, at 1004, a cumulative global motion between the current PC sample and the reference PC sample may be determined based on at least one global motion of at least one PC sample of the point cloud sequence. The at least one global motion may be determined, for example, externally, during collection of the point cloud data. The transformation may be performed based on the cumulative global motion.
[0077] In some embodiments, the at least one global motion includes a first global motion between a current PC sample and a PC sample immediately preceding the current PC sample, and the first global motion may be determined externally. For example, the global motion between a frame and a subsequent frame may be estimated externally. In some embodiments, the first global motion may be determined before point cloud compression is performed. In such a case, the determination of the first global motion is a pre-processing of the point cloud compression. Alternatively, the first global motion may be part of the raw data. By way of example and not limitation, the first global motion may be used in the global motion estimation for the current PC sample.
[0078] In some embodiments, the frame distance between the current PC sample and the reference PC sample is greater than a distance threshold, for example 1. The accumulated global motion may be used instead of an externally determined global motion.
[0079] In some embodiments, the at least one global motion may include an externally determined global motion of the reference PC sample and at least one consecutive PC sample immediately preceding the current PC sample in timestamp order. For example, the cumulative global motion between the reference frame and the current frame may be derived based on the externally estimated global motion of the reference frame and a consecutive frame preceding the current frame in timestamp order. Or, the at least one global motion may include an externally determined global motion of the current PC sample and at least one consecutive PC sample immediately preceding the reference PC sample in timestamp order. For example, the cumulative global motion between the reference frame and the current frame may be derived based on the externally estimated global motion of the current frame and one or more consecutive frames preceding the reference frame in timestamp order.
[0080] In some embodiments, the accumulated global motion may be determined at the encoder. Alternatively or additionally, the accumulated global motion may be indicated in the bitstream. In one example, the accumulated global motion may be coded with one of fixed length coding, unary coding, or truncated unary coding. In another example, the accumulated global motion may be predictively coded. In a further example, the accumulated global motion may be coded with context coding. In yet another example, the accumulated global motion may be coded with bypass coding.
[0081] In some embodiments, the set of attribute inter thresholds may be determined based on a frame distance between the current PC sample and each of the at least one reference PC sample. In one example, the set of attribute inter thresholds may be determined at the decoder. Or, the set of attribute inter thresholds may be indicated in the bitstream.
[0082] In some embodiments, for a first reference PC sample of the at least one reference PC sample, at least one attribute inter threshold in the set of attribute inter thresholds may be used to determine whether attribute inter prediction is applied to the current PC sample based on the first reference PC sample. In some embodiments, the at least one attribute inter threshold may be determined based on a predefined threshold and a frame distance between the current PC sample and the first reference PC sample.
[0083] In some embodiments, the at least one reference PC sample may include a first reference PC sample and a second reference PC sample. A frame distance between the first reference PC sample and the current PC sample is greater than a frame distance between the second reference PC sample and the current PC sample. An attribute inter threshold requirement of the first reference PC sample is stricter than an attribute inter threshold requirement of the second reference PC sample. For example, an attribute inter threshold requirement of a reference frame with a far frame distance is stricter than an attribute inter threshold requirement of a reference frame with a close frame distance. In one example, an attribute inter threshold requirement of the first reference PC sample may be determined by dividing a predetermined threshold by a frame distance between the first reference PC sample and the current PC sample.
[0084] In some embodiments, the current PC sample may include the current point. At 1004, at least one neighboring point of the current point is determined from points in the current PC sample and in the at least one reference PC sample based on a search range of the current PC sample. The search range may be based on a reference relationship of the current PC sample. The conversion may be performed based on the at least one neighboring point. That is, the search range of the attribute inter prediction may be based on a reference relationship. In one example, the at least one neighboring point may include at least one nearest neighbor of the current point. In some embodiments, the search range of the current PC sample may be indicated in the bitstream.
[0085] In some embodiments, the current PC sample may have multiple reference PC samples. The search range used for the current PC sample is smaller than the search range of the further PC sample of the point cloud sequence. The further PC sample may have one reference PC sample. That is, the search range of a sample that includes multiple reference samples is smaller than the search range of a sample that includes one reference sample. In one example, the search range used for the further PC sample may be indicated by a first number, and the search range used for the current PC sample may be indicated by a second number that is smaller than the first number. By way of example and not limitation, the second number is equal to the first number divided by the number of reference PC samples in the multiple reference PC samples. For example, the search range of a sample that includes one reference sample may be indicated by an integer (e.g., N), and the search range of a sample that includes M reference samples may be indicated by a relatively small integer (e.g., N / M).
[0086] In some embodiments, the current PC sample may include multiple reference PC samples. The search range used for the current PC sample may be greater than or equal to the search range used for the further PC samples of the point cloud sequence. The further PC samples may include one reference PC sample. That is, the search range of the sample including multiple reference samples may be greater than or equal to the search range of the sample including one reference sample.
[0087] In some embodiments, at 1004, geometry inter prediction is performed on a set of layers of an octree structure of the current PC sample based on at least one reference PC sample. In one example, the set of layers may include the top N layers of the octree structure or the last N layers of the octree structure, where N is a non-negative integer, e.g., 1, 2, 3, etc.
[0088] In some embodiments, the octree structure may include multiple layers and geometry coding may be performed within the octree structure. In one example, geometry intra prediction may be performed for all layers of the octree structure.
[0089] In some embodiments, the at least one reference PC sample may include one reference PC sample, and the set of layers may include all layers of the octree structure, i.e., geometry inter-prediction coding using one reference frame may be performed for all layers of the octree structure.
[0090] In some embodiments, the at least one reference PC sample may include multiple reference PC samples. The set of layers may include the top N layers of the octree structure. N may be a non-negative integer, and in one example, N may be a predetermined value. In another example, N may be determined at the encoder or decoder. For example, N may be determined based on a node size of each layer in the set of layers. Additionally or alternatively, N may be determined based on a size of a motion block for local motion estimation. In a further example, N may be indicated in the bitstream. For example, N may be coded with one of fixed length coding, unary coding, or truncated unary coding. Or, N may be coded predictively.
[0091] In some embodiments, the reconstructed PC sample may be temporarily stored if the reconstructed PC sample is a reference PC sample of at least one PC sample of the point cloud sequence. By way of example and not limitation, the reconstructed PC sample may be temporarily stored in a buffer. In one example, the reconstructed PC sample may be obtained by reconstructing the PC sample of the point cloud sequence at the encoder and / or decoder. In some embodiments, the reconstructed PC sample may be a reference PC sample of the PC sample of the point cloud sequence.
[0092] In some embodiments, a reconstructed PC sample may be stored in memory when at least one PC sample is being processed if the reconstructed PC sample is a reference PC sample for at least one PC sample, and the memory may be released if the reconstructed PC sample is not a reference PC for any other PC sample to be coded.
[0093] In some embodiments, for a current PC sample, there may be at least one indication indicating whether the current PC sample is a reference PC sample for at least one PC sample of the point cloud sequence. By way of example and not limitation, one of the at least one indications may be a flag. In one example, the flag may be determined at an encoder or a decoder. In another example, the flag may be indicated in a bitstream. Or, one of the at least one indications may be a number of at least one PC sample that uses the current PC sample as a reference PC sample. In one example, the number may be determined at an encoder or a decoder. Additionally or alternatively, the number may be indicated in a bitstream. The number may be changed when the at least one PC sample is coded. For example, the number may be decreased by one after one of the at least one PC samples is coded. Furthermore, when the number is decreased to zero, the memory that stores the current PC sample may be freed.
[0094] In some embodiments, information on how to store the at least one reconstructed PC sample may be indicated in the bitstream of the current PC sample. It should be noted that the reconstructed PC sample is also referred to as a decoded PC sample. For example, the information may be indicated in the bitstream to be associated with the current PC sample. Or, the information may be indicated in the bitstream independent of the current PC sample. In one example, one of the at least one reconstructed PC sample may be identified by an index counted in display order. Or, one of the at least one reconstructed PC sample may be identified by an index counted in coding order or decoding order.
[0095] In some embodiments, the information may include a set of reconstructed PC samples to be stored, e.g., reconstructed PC samples to be stored in a buffer. For example, which decoded frames should be kept in a frame buffer may be signaled. Additionally or alternatively, the information may include a set of reconstructed PC samples to be removed from a buffer that stores the set of reconstructed PC samples. For example, which decoded frames should be removed from a frame buffer may be signaled. In some further embodiments, the information may include a set of reconstructed PC samples to be used as reference PC samples for the current PC sample. For example, which decoded frames should be used as reference frames for a particular frame may be signaled. In yet other embodiments, the information may include a set of reconstructed PC samples to be included in a reference list. For example, which decoded frames should be put in a reference list may be signaled. In some additional or alternative embodiments, the information may include an order of reference PC samples for the current PC sample.
[0096] According to an embodiment of the present disclosure, there is provided a non-transitory computer-readable recording medium. A bit stream of a point cloud sequence is stored in the non-transitory computer-readable recording medium. The bit stream can be generated by a method executed by a point cloud processing device. According to the method, a target PC sample of a current PC sample of the point cloud sequence is determined based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample. Furthermore, the bit stream is generated based on the target PC sample.
[0097] According to an embodiment of the present disclosure, there is provided a method for storing a bit stream of a point cloud sequence, in which a target PC sample of a current PC sample of the point cloud sequence is determined based on at least one reference PC sample of the current PC sample, and a bit stream is generated based on the target PC sample, and the bit stream is stored in a non-transitory computer-readable recording medium.
[0098] Embodiments of the present disclosure can be described in view of the following clauses, the features of which can be combined in any reasonable manner.
[0099] Clause 1. A point cloud coding method, comprising: during a conversion between a current point cloud (PC) sample of a point cloud sequence and a bit stream of the point cloud sequence, determining a target PC sample of the current PC sample based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample; and performing a conversion based on the target PC sample.
[0100] Clause 2. The method of clause 1, wherein the target PC sample is one of the at least one reconstructed PC sample.
[0101] Clause 3. The method of clause 1, wherein the step of determining the target PC sample comprises the step of performing a processing procedure on the at least one reconstructed PC sample to obtain the target PC sample.
[0102] Clause 4. The method of clause 3, wherein the processing procedure comprises at least one of a sampling procedure or an upsampling procedure.
[0103] Clause 5. The method of clause 1, wherein the at least one reconstructed PC sample includes a plurality of reconstructed PC samples, and the step of determining the target PC sample includes the step of merging the plurality of reconstructed PC samples to obtain the target PC sample.
[0104] Clause 6. The method of clause 5, wherein the target PC samples include all points within the plurality of reconstructed PC samples.
[0105] Clause 7. The method of clause 5, wherein the target PC sample comprises a portion of points within the plurality of reconstructed PC samples.
[0106] Clause 8. The method of clause 7, wherein the portion of points is generated by a downsampling procedure.
[0107] Clause 9. The method of clause 1, wherein the at least one reconstructed PC sample includes a plurality of reconstructed PC samples, and the step of determining the target PC sample includes the steps of: obtaining at least one merged PC sample by merging the plurality of reconstructed PC samples; and performing a processing procedure on the at least one merged PC sample to obtain the target PC sample.
[0108] Clause 10. The method of clause 9, wherein the processing procedure comprises at least one of a sampling procedure or an upsampling procedure.
[0109] Clause 11. A method according to any one of clauses 1 to 10, wherein samples of the point cloud sequence are divided into a plurality of groups of samples (GOS), and the plurality of GOS are associated with at least one GOS structure.
[0110] Clause 12. The method of clause 11, wherein samples in a first GOS structure of the at least one GOS structure have a different reference relationship to samples in a second GOS structure of the at least one GOS structure, the second GOS structure being different from the first GOS structure.
[0111] Clause 13. The method of clause 11, wherein a first GOS of the plurality of GOSs comprises a first GOS structure of the at least one GOS structure, the a1 GOS comprising a set of samples following a first sample in the first GOS, the first sample being at an initial position within the first GOS, and each of the sets of samples having a single reference sample immediately preceding the respective sample.
[0112] Clause 14. The method of clause 13, wherein the first GOS structure is an IPPPGOS structure.
[0113] Clause 15. The method of clause 11, wherein a second GOS of the plurality of GOSs has a second GOS structure of the at least one GOS structure, the second GOS including a set of samples following a first sample in the second GOS, the first sample being at an initial position in the second GOS, and each of the sets of samples having two reference samples.
[0114] Clause 16. The method of clause 13, wherein the second GOS structure is an IBBBGOS structure.
[0115] Clause 17. The method of clause 11, wherein the at least one GOS structure comprises a single GOS structure.
[0116] Clause 18. The method of any one of clauses 11 to 16, wherein the at least one GOS structure comprises a plurality of GOS structures.
[0117] Clause 19. The method of any one of clauses 11 to 18, wherein there is at least one first indication indicating whether only one GOS structure is applied to all of the plurality of sample groups.
[0118] Clause 20. The method of clause 19, wherein the at least one first instruction is indicated within the bitstream.
[0119] Clause 21. The method of clause 19 or 20, wherein the at least one first instruction is coded with one of a fixed length coding, a unary coding, or a truncated unary coding.
[0120] Clause 22. The method of clause 19 or 20, wherein the at least one first instruction is predictively coded.
[0121] Clause 23. A method according to any one of clauses 11 to 22, wherein only a first GOS structure is applied to all of the plurality of sample groups and at least one second instruction indicating the first GOS structure is present, or multiple GOS structures are applied to all of the plurality of sample groups and for the current PC sample, at least one third instruction is present indicating that a first GOS structure of the plurality of GOS structures is applied to the current PC sample.
[0122] Clause 24. The method of clause 23, wherein the at least one second instruction or the at least one third instruction is indicated in the bitstream.
[0123] Clause 25. The method of clause 23 or 24, wherein the at least one second instruction or the at least one third instruction is coded with one of a fixed length coding, a unary coding, or a truncated unary coding.
[0124] Clause 26. The method of clause 23 or 24, wherein the at least one second instruction or the at least one third instruction is predictively coded.
[0125] Clause 27. The method of clause 11, wherein a first GOS structure of a first GOS of the plurality of GOSs is determined based on GOS movement information of the first GOS.
[0126] Clause 28. The method of clause 27, wherein the GOS motion information is determined in an encoder.
[0127] Clause 29. The method of clause 27 or 28, wherein the GOS motion information is motion information between a first sample in the first GOS and a second sample in a second GOS subsequent to the first GOS, the first sample being at an initial position in the first GOS and the second sample being at an initial position in the second GOS.
[0128] Clause 30. The method of clause 27 or 28, wherein the GOS motion information is motion information between a first sample in the first GOS and a second sample in the first GOS, the first sample being at an initial position in the first GOS and the second sample being at a last position in the first GOS.
[0129] Clause 31. The method according to clause 27 or 28, wherein the GOS motion information is motion information between a first I-sample in the first GOS and a next I-sample in the first GOS.
[0130] Clause 32. The method of clause 27, wherein if the GOS motion information satisfies a GOS constraint, the first GOS structure is determined to be an IBBB GOS structure, and if the GOS motion information does not satisfy the GOS constraint, the first GOS structure is determined to be an IPPP GOS structure.
[0131] Clause 33. The method of clause 32, wherein the GOS constraint is that the GOS motion information is less than at least one threshold value.
[0132] Clause 34. The method of clause 33, wherein the at least one threshold is determined in an encoder.
[0133] Clause 35. The method of clause 33, wherein the at least one threshold is predefined.
[0134] Clause 36. The method of clause 27, wherein the determination is made in an encoder or a decoder.
[0135] Clause 37. The method of any one of clauses 11 to 36, wherein the samples are frames and the GOS are group of frames (GOF).
[0136] Clause 38. The method of any one of clauses 11 to 36, wherein the sample is a slice or a block.
[0137] Clause 39. A method according to any one of clauses 1 to 10, wherein the step of performing the transformation includes the steps of determining a cumulative global motion between the current PC sample and the reference PC sample based on at least one global motion of at least one PC sample of the point cloud sequence, and performing the transformation based on the cumulative global motion.
[0138] Clause 40. The method of clause 39, wherein the at least one global motion comprises a first global motion between the current PC sample and a PC sample immediately preceding the current PC sample, the first global motion being determined externally.
[0139] Clause 41. The method of clause 40, wherein the first global motion is determined before point cloud compression is performed.
[0140] Clause 42. The method of clause 41, wherein the first global motion is part of the raw data.
[0141] Clause 43. The method according to any one of clauses 40 to 42, wherein the first global motion is used for global motion estimation of the current PC sample.
[0142] Clause 44. The method of clause 39, wherein a frame distance between the current PC sample and the reference PC sample is greater than a distance threshold and the accumulated global motion is used instead of an externally determined global motion.
[0143] Clause 45. The method of any one of clauses 39 to 44, wherein the accumulated global motion is determined in an encoder.
[0144] Clause 46. A method according to any one of clauses 39 to 45, wherein the at least one global motion comprises an externally determined global motion of the reference PC sample and at least one consecutive PC sample immediately preceding the current PC sample in timestamp order.
[0145] Clause 47. A method according to any one of clauses 39 to 45, wherein the at least one global motion comprises an externally determined global motion of the current PC sample and at least one consecutive PC sample immediately preceding the reference PC sample in timestamp order.
[0146] Clause 48. The method of any one of clauses 39 to 47, wherein the accumulated global motion is indicated in the bitstream.
[0147] Clause 49. The method of any one of clauses 39 to 48, wherein the accumulated global motion is coded with one of fixed length coding, unary coding, or truncated unary coding.
[0148] Clause 50. The method of any one of clauses 39 to 48, wherein the accumulated global motion is predictively coded.
[0149] Clause 51. The method of any one of clauses 39 to 48, wherein the accumulated global motion is coded with context coding.
[0150] Clause 52. The method of any one of clauses 39 to 48, wherein the accumulated global motion is coded with bypass coding.
[0151] Clause 53. A method according to any one of clauses 1 to 10, wherein a set of attribute inter thresholds is determined based on a frame distance between the current PC sample and each of the at least one reference PC sample.
[0152] Clause 54. The method of clause 53, wherein for a first reference PC sample of the at least one reference PC sample, at least one attribute inter threshold in the set of attribute inter thresholds is used to determine whether attribute inter prediction is applied to the current PC sample based on the first reference PC sample.
[0153] Clause 55. The method of clause 54, wherein the at least one attribute inter threshold is determined based on a predefined threshold and a frame distance between the current PC sample and the first reference PC sample.
[0154] Clause 56. The method of clause 53, wherein the at least one reference PC sample includes a first reference PC sample and a second reference PC sample, an attribute inter threshold requirement of the first reference PC sample is stricter than an attribute inter threshold requirement of the second reference PC sample, and a frame distance between the first reference PC sample and the current PC sample is greater than a frame distance between the second reference PC sample and the current PC sample.
[0155] Clause 57. The method of clause 56, wherein the attribute inter threshold of the first reference PC sample is determined by dividing a predefined threshold by a frame distance between the first reference PC sample and the current PC sample.
[0156] Clause 58. A method according to any one of clauses 53 to 57, wherein the set of attribute inter thresholds is determined at a decoder.
[0157] Clause 59. A method according to any one of clauses 53 to 57, wherein the set of attribute inter threshold values is indicated in the bitstream.
[0158] Clause 60. A method according to any one of clauses 1 to 10, wherein the current PC sample includes a current point, and the step of performing the transformation includes a step of determining at least one neighbouring point of the current point from points within the current PC sample and within the at least one reference PC sample based on a search range of the current PC sample based on a reference relationship of the current PC sample, and a step of performing the transformation based on the at least one neighbouring point.
[0159] Clause 61. The method of clause 60, wherein the at least one neighboring point includes at least one nearest neighboring point of the current point.
[0160] Clause 62. A method as described in clause 60 or 61, wherein the current PC sample includes a plurality of reference PC samples, the search range used for the current PC sample is smaller than the search range used for further PC samples of the point cloud sequence, and the further PC samples have one reference PC sample.
[0161] Clause 63. The method of clause 62, wherein the search range used for the further PC sample is indicated by a first number and the search range used for the current PC sample is indicated by a second number that is smaller than the first number.
[0162] Clause 64. The method of clause 63, wherein the second number is equal to the first number divided by the number of reference PC samples in the plurality of reference PC samples.
[0163] Clause 65. A method as described in clause 60 or 61, wherein the current PC sample has a plurality of reference PC samples, the search range used for the current PC sample is larger than the search range used for further PC samples of the point cloud sequence, and the further PC samples have one reference PC sample.
[0164] Clause 66. A method as described in clause 60 or 61, wherein the current PC sample has a plurality of reference PC samples, the search range used for the current PC sample is equal to the search range used for further PC samples of the point cloud sequence, and the further PC samples have one reference PC sample.
[0165] Clause 67. A method according to any one of clauses 60 to 66, wherein the search range of the current PC sample is indicated in the bitstream.
[0166] Clause 68. The method according to any one of clauses 1 to 10, wherein the step of performing the transformation comprises a step of performing geometry inter prediction on a set of octree structured layers of the current PC sample based on the at least one reference PC sample.
[0167] Clause 69. The method of clause 68, wherein the set of layers includes the top N layers of the octree structure, where N is a non-negative integer.
[0168] Clause 70. The method of clause 68, wherein the set of layers includes the last N layers of the octree structure, where N is a non-negative integer.
[0169] Clause 71. A method according to any one of clauses 68 to 70, wherein the octree structure includes multiple layers and geometry coding is performed within the octree structure.
[0170] Clause 72. The method of any one of clauses 68 to 70, wherein geometry intra prediction is performed for all layers of the octree structure.
[0171] Clause 73. The method of clause 68, wherein the at least one reference PC sample includes one reference PC sample, and the set of layers includes all layers of the octree structure.
[0172] Clause 74. The method of clause 68, wherein the at least one reference PC sample comprises a plurality of reference PC samples, and the set of layers comprises the top N layers of the octree structure, where N is a non-negative integer.
[0173] Clause 75. The method of clause 74, wherein N is a predetermined value.
[0174] Clause 76. The method of clause 74, wherein N is determined in an encoder.
[0175] Clause 77. The method of clause 76, wherein N is determined based on a node size of each layer in the set of layers.
[0176] Clause 78. The method of clause 76, wherein N is determined based on a size of a motion block for local motion estimation.
[0177] Clause 79. A method according to clause 74, in which N is determined at a decoder.
[0178] Clause 80. The method of clause 79, wherein N is determined based on a node size of each layer in the set of layers.
[0179] Clause 81. The method of clause 79, wherein N is determined based on a size of a motion block for local motion estimation.
[0180] The method of any one of clauses 74 to 78, wherein clause 82.N is indicated in the bitstream.
[0181] Clause 83. The method of clause 82, wherein N is coded with one of a fixed length coding, a unary coding, or a truncated unary coding.
[0182] Clause 84. The method of clause 82, wherein N is predictively coded.
[0183] Clause 85. The method according to any one of clauses 1 to 10, wherein the reconstructed PC sample is temporarily stored if the reconstructed PC sample is a reference PC sample for at least one PC sample of the point cloud sequence.
[0184] Clause 86. The method of clause 85, wherein the reconstructed PC samples are obtained by reconstructing PC samples of the point cloud sequence at an encoder or decoder.
[0185] Clause 87. The method of clause 85, wherein the reconstructed PC samples are obtained by reconstructing PC samples of the point cloud sequence in an encoder and a decoder.
[0186] Clause 88. A method according to any one of clauses 85 to 87, wherein the reconstructed PC samples are reference PC samples of the PC samples of the point cloud sequence.
[0187] Clause 89. The method of clause 85, wherein if the reconstructed PC sample is a reference PC sample for the at least one PC sample, the reconstructed PC sample is stored in memory as the at least one PC sample is being processed.
[0188] Clause 90. The method of clause 86, wherein the memory is released if the reconstructed PC sample is not a reference PC for any other PC sample to be coded.
[0189] Clause 91. The method of clause 86, wherein for the current PC sample there is at least one indication indicating whether the current PC sample is a reference PC sample for at least one PC sample of the point cloud sequence.
[0190] Clause 92. The method of clause 91, wherein one of the at least one indications is a flag.
[0191] Clause 93. The method of clause 92, wherein the flag is determined in an encoder.
[0192] Clause 94. The method of clause 92, wherein the flag is determined in a decoder.
[0193] Clause 95. The method of clause 92, wherein the flag is indicated in the bitstream.
[0194] Clause 96. The method of clause 91, wherein one of the at least one instructions is a number of the at least one PC sample to use the current PC sample as a reference PC sample.
[0195] Clause 97. The method of clause 96, wherein the number is determined in an encoder.
[0196] Clause 98. The method of clause 96 or 97, wherein the number is changed when the at least one PC sample is coded.
[0197] Clause 99. The method of clause 98, wherein the number is decreased by one after one of the at least one PC sample is coded.
[0198] Clause 100. The method of clause 98 or 99, wherein when the number is reduced to zero, memory storing the current PC sample is freed.
[0199] Clause 101. The method of clause 96, wherein the number is determined in a decoder.
[0200] Clause 102. The method of any one of clauses 96 to 100, wherein the number is indicated in the bitstream.
[0201] Clause 103. The method according to any one of clauses 1 to 10, wherein information on how to store the at least one reconstructed PC sample is indicated within the bitstream of the current PC sample.
[0202] Clause 104. The method of clause 103, wherein one of the at least one reconstructed PC sample is identified by an index counted in display order.
[0203] Clause 105. The method of clause 103, wherein one of the at least one reconstructed PC sample is identified by an index counted in coding order or decoding order.
[0204] Clause 106. A method according to any one of clauses 103 to 105, wherein the information comprises a set of reconstructed PC samples to be stored.
[0205] Clause 107. A method according to any one of clauses 103 to 105, wherein the information includes a set of reconstructed PC samples that is to be deleted from a buffer that stores the set of reconstructed PC samples.
[0206] Clause 108. The method of any one of clauses 103 to 105, wherein the information includes a set of reconstructed PC samples to be used as reference PC samples for the current PC sample.
[0207] Clause 109. A method according to any one of clauses 103 to 105, wherein the information comprises a set of reconstructed PC samples to be included in the reference list.
[0208] Clause 110. A method according to any one of clauses 103 to 105, wherein the information includes an order of reference PC samples of the current PC sample.
[0209] Clause 111. A method according to any one of clauses 103 to 110, wherein the information is indicated in the bitstream in a form associated with the current PC sample.
[0210] Clause 112. The method of any one of clauses 103 to 110, wherein the information is indicated in the bitstream independently of the current PC sample.
[0211] Clause 113. The method of any one of clauses 1 to 112, wherein the target PC sample is used as a reference PC sample for coding the current PC sample.
[0212] Clause 114. A method according to any one of clauses 1 to 113, wherein the PC sample is one of a frame, a picture, a slice, a tile, a subpicture, a node, a point or a unit comprising one or more nodes or points.
[0213] Clause 115. The method of any one of clauses 1 to 114, wherein the converting comprises encoding the current PC sample into the bitstream.
[0214] Clause 116. The method of any one of clauses 1-114, wherein the converting includes decoding the current PC sample from the bitstream.
[0215] Clause 117. An apparatus for processing point cloud data comprising a processor and a non-transitory memory in which instructions are stored, the instructions, when executed by the processor, causing the processor to perform a method according to any one of clauses 1 to 116.
[0216] Clause 118. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of clauses 1 to 116.
[0217] Clause 119. 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 device, the method including the steps of: determining a target PC sample for a current PC sample based on at least one reconstructed PC sample of at least one reference PC sample of a current PC sample of the point cloud sequence; and generating the bit stream based on the target PC sample.
[0218] Clause 120. A method for storing a bit stream of a point cloud sequence, comprising: determining a target PC sample of a current PC sample of the point cloud sequence based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample; generating the bit stream based on the target PC sample; and storing the bit stream in a non-transitory computer-readable recording medium.
[0219] Exemplary Devices 11 illustrates a block diagram of a computing device 1100 capable of implementing various embodiments of the present disclosure. The computing device 1100 may be implemented as or included in the source device 110 (or the GPCC encoder 116 or 200) or the destination device 120 (or the GPCC decoder 126 or 300).
[0220] It will be appreciated that the computing device 1100 shown in FIG. 11 is for illustrative purposes only and is not meant to suggest any limitation on the functionality and scope of the embodiments of the present disclosure.
[0221] 11, the computing device 1100 includes a general-purpose computing device 1100. The computing device 1100 may include at least one or more processors or processing units 1110, a memory 1120, a storage unit 1130, one or more communication units 1140, one or more input devices 1150, and one or more output devices 1160.
[0222] In some embodiments, the computing device 1100 may be implemented as any user terminal or server terminal having computing capabilities. The server terminal may be a server provided by a service provider, a large-scale computing device, etc. The user terminal may be any type of mobile, fixed, or portable terminal, including, for example, a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / GPCC player, a digital camera / GPCC camera, a positioning device, a television receiver, a radio broadcast receiver, an electronic book device, a gaming device, or any combination thereof (including accessories and peripherals of these devices, or any combination thereof). It is contemplated that the computing device 1100 may support any type of interface to a user, such as "wearable" circuitry.
[0223] The processing unit 1110 may be a physical or virtual processor and may perform various processes based on programs stored in the memory 1120. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing capabilities of the computing device 1100. The processing unit 1110 may be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.
[0224] Computing device 1100 typically includes a variety of computer storage media. Such media may be any media accessible by computing device 1100, including, but not limited to, volatile and non-volatile media, or removable and non-removable media. Memory 1120 may be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory), or any combination thereof. Storage unit 1130 may be any removable or non-removable medium that can be used to store information and / or data and that can be accessed by computing device 1100, and may include a machine-readable medium, such as a memory, a flash memory drive, a magnetic disk, or another medium.
[0225] The computing device 1100 may further include additional removable / non-removable, volatile / non-volatile memory media. Although not shown in FIG. 11, a magnetic disk drive that reads from and writes to a removable non-volatile magnetic disk and an optical disk drive that reads from and writes to a removable non-volatile optical disk may be provided. In such a case, each drive may be connected to a bus (not shown) via one or more data media interfaces.
[0226] The communication unit 1140 communicates with further computing devices via a communication medium. Furthermore, the functionality of the components in the computing device 1100 may be implemented by a single computing cluster or multiple computing machines that may communicate via a communication connection. Thus, the computing device 1100 may operate in a networked environment using logical connections with one or more other servers, networked personal computers (PCs), or further general network nodes.
[0227] The input device(s) 1150 may be one or more of a variety of input devices such as a mouse, a keyboard, a tracking ball, a voice input device, etc. The output device(s) 1160 may be one or more of a variety of output devices such as a display, a speaker, a printer, etc. The communication unit 1140 may enable the computing device 1100 to further communicate with one or more external devices (not shown), such as a storage device and a display device, one or more devices allowing a user to interact with the computing device 1100, or any device (such as a network card, a modem, etc.) allowing the computing device 1100 to communicate with one or more other computing devices, as needed. Such communication may be performed via an input / output (I / O) interface (not shown).
[0228] In some embodiments, instead of being integrated into a single device, some or all of the components of the computing device 1100 may be located in a cloud computing architecture. In a cloud computing architecture, the components may be provided remotely and work together to perform the functions described in this disclosure. In some embodiments, cloud computing provides computing, software, data access, and storage services without the end user needing to be aware of the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services over a wide area network (such as the Internet) using appropriate protocols. For example, a cloud computing provider provides applications over a wide area network that can be accessed through a web browser or other computing components. The software or components of the cloud computing architecture and corresponding data may be stored on servers in remote locations. Computing resources in a cloud computing environment may be consolidated or distributed at remote data center locations. The cloud computing infrastructure may act as a single access point for users, but provide services through a shared data center. Thus, a cloud computing architecture may be used to provide the components and functions described herein from a service provider in a remote location. Alternatively, they may be provided from a conventional server or installed directly or otherwise on the client device.
[0229] The computing device 1100 may be used to perform point cloud encoding / decoding in embodiments of the present disclosure. The memory 1120 may include one or more point cloud coding modules 1125 having one or more program instructions. These modules are accessible and executable by the processing unit 1110 to perform the functions of various embodiments described herein.
[0230] In an example embodiment performing point cloud encoding, the input device 1150 may receive point cloud data to be encoded as an input 1170. The point cloud data may be processed, for example, by the point cloud coding module 1125 to generate an encoded bitstream. The encoded bitstream may be provided as an output 1180 via the output device 1160.
[0231] In an example embodiment performing point cloud decoding, the input device 1150 may receive an encoded bitstream as input 1170. The encoded bitstream may be processed, for example, by the point cloud coding module 1125 to generate decoded point cloud data. The decoded GPCC data may be provided as output 1180 via the output device 1160.
[0232] Although the present disclosure has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present application as defined by the appended claims. Such variations are intended to be within the scope of the present application. Accordingly, the foregoing description of the embodiments of the present application is not intended to be limiting.
Claims
1. 1. A point cloud coding method, comprising: determining a target PC sample of a current point cloud (PC) sample of a point cloud sequence based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample during conversion between the current PC sample and a bit stream of the point cloud sequence; performing a transformation based on the target PC samples.
2. the target PC sample is one of the at least one reconstructed PC sample; The method of claim 1.
3. The step of determining the target PC sample comprises: performing a processing procedure on the at least one reconstructed PC sample to obtain the target PC sample. The method of claim 1.
4. The processing procedure includes: Sampling procedures, or upsampling procedure, The method according to claim 3.
5. the at least one reconstructed PC sample includes a plurality of reconstructed PC samples; The step of determining the target PC sample comprises: merging the reconstructed PC samples to obtain the target PC sample. The method of claim 1.
6. the target PC samples include all points within the plurality of reconstructed PC samples; The method according to claim 5.
7. the target PC sample includes a portion of the points within the plurality of reconstructed PC samples; The method according to claim 5.
8. said portion of points being generated by a downsampling procedure; The method according to claim 7.
9. The at least one reconstructed PC sample includes a plurality of reconstructed PC samples, and the step of determining the target PC sample comprises: merging the reconstructed PC samples to obtain at least one merged PC sample; performing a processing procedure on the at least one merged PC sample to obtain the target PC sample. The method of claim 1.
10. The processing procedure includes: Sampling procedures, or upsampling procedure, 10. The method of claim 9.
11. The samples of the point cloud sequence are divided into a plurality of groups of samples (GOS), and the plurality of GOS are associated with at least one GOS structure. The method according to any one of claims 1 to 10.
12. a sample in a first GOS structure of the at least one GOS structure has a different reference relationship to a sample in a second GOS structure of the at least one GOS structure, the second GOS structure being different from the first GOS structure; The method of claim 11.
13. a first GOS of the plurality of GOSs comprises a first GOS structure of the at least one GOS structure, the first GOS including a set of samples following a first sample in the first GOS, the first sample being in an initial position within the first GOS, each of the set of samples having a single reference sample immediately preceding the respective sample; The method of claim 11.
14. The first GOS structure is an IPPP GOS structure; The method of claim 13.
15. a second GOS of the plurality of GOSs has a second GOS structure of the at least one GOS structure, the second GOS including a set of samples following a first sample in the second GOS, the first sample being in an initial position within the second GOS, and each of the sets of samples having two reference samples; The method of claim 11.
16. The second GOS structure is an IBBB GOS structure; The method of claim 13.
17. The at least one GOS structure comprises a single GOS structure; The method of claim 11.
18. The at least one GOS structure includes a plurality of GOS structures. The method according to any one of claims 11 to 16.
19. There is at least one first indication indicating whether only one GOS structure is applied to all of the plurality of sample groups. The method according to any one of claims 11 to 18.
20. the at least one first instruction is indicated in the bitstream.
20. The method of claim 19.
21. the at least one first instruction is coded with one of a fixed length coding, a unary coding, or a truncated unary coding.
21. The method according to claim 19 or 20.
22. the at least one first instruction is predictively coded.
21. The method according to claim 19 or 20.
23. Only a first GOS structure is applied to all of the plurality of sample groups, and at least one second indication indicating the first GOS structure is present; or A plurality of GOS structures are applied to all of the plurality of sample groups, and for the current PC sample, there is at least one third indication indicating that a first GOS structure of the plurality of GOS structures is applied to the current PC sample. The method according to any one of claims 11 to 22.
24. the at least one second instruction or the at least one third instruction is indicated in the bitstream.
24. The method of claim 23.
25. the at least one second instruction or the at least one third instruction is coded with one of a fixed length coding, a unary coding, or a truncated unary coding.
25. The method of claim 23 or 24.
26. the at least one second instruction or the at least one third instruction is predictively coded.
25. The method of claim 23 or 24.
27. A first GOS structure of a first GOS of the plurality of GOSs is determined based on GOS movement information of the first GOS. The method of claim 11.
28. The GOS motion information is determined at an encoder.
28. The method of claim 27.
29. The GOS motion information is motion information between a first sample in the first GOS and a second sample in a second GOS subsequent to the first GOS, the first sample being at an initial position in the first GOS, and the second sample being at an initial position in the second GOS.
29. The method of claim 27 or 28.
30. The GOS motion information is motion information between a first sample in the first GOS and a second sample in the first GOS, the first sample being at an initial position in the first GOS and the second sample being at a last position in the first GOS.
29. The method of claim 27 or 28.
31. The GOS motion information is motion information between a first I-sample in the first GOS and a next I-sample in the first GOS.
29. The method of claim 27 or 28.
32. If the GOS motion information satisfies a GOS constraint, it is determined that the first GOS structure is an IBBB GOS structure; If the GOS motion information does not satisfy the GOS constraint, it is determined that the first GOS structure is an IPPP GOS structure.
28. The method of claim 27.
33. The GOS constraint condition is that the GOS motion information is less than at least one threshold.
33. The method of claim 32.
34. the at least one threshold is determined in an encoder.
34. The method of claim 33.
35. The at least one threshold is predefined.
34. The method of claim 33.
36. The determination is made at an encoder or a decoder.
28. The method of claim 27.
37. A sample is a frame and a GOS is a group of frames (GOF). The method according to any one of claims 11 to 36.
38. A sample may be a slice or a block. The method according to any one of claims 11 to 36.
39. The step of performing the conversion comprises: determining a cumulative global motion between the current PC sample and the reference PC sample based on at least one global motion of at least one PC sample of the point cloud sequence; performing the transformation based on the accumulated global motion. The method according to any one of claims 1 to 10.
40. the at least one global motion includes a first global motion between the current PC sample and a PC sample immediately preceding the current PC sample, the first global motion being determined externally; 40. The method of claim 39.
41. the first global motion is determined before point cloud compression is performed; 41. The method of claim 40.
42. the first global motion is part of the raw data; 42. The method of claim 41.
43. the first global motion is used for global motion estimation of the current PC sample; 43. The method according to any one of claims 40 to 42.
44. a frame distance between the current PC sample and the reference PC sample is greater than a distance threshold, and the accumulated global motion is used instead of an externally determined global motion.
40. The method of claim 39.
45. The cumulative global motion is determined in an encoder.
45. The method according to any one of claims 39 to 44.
46. the at least one global motion includes an externally determined global motion of the reference PC sample and at least one consecutive PC sample immediately preceding the current PC sample in timestamp order.
46. The method according to any one of claims 39 to 45.
47. the at least one global motion includes an externally determined global motion of the current PC sample and at least one consecutive PC sample immediately preceding the reference PC sample in timestamp order.
46. The method according to any one of claims 39 to 45.
48. the accumulated global motion is indicated in the bitstream; 48. The method according to any one of claims 39 to 47.
49. the accumulated global motion is coded with one of a fixed length coding, a unary coding, or a truncated unary coding.
49. The method according to any one of claims 39 to 48.
50. the accumulated global motion is predictively coded; 49. The method according to any one of claims 39 to 48.
51. The accumulated global motion is coded with context coding.
49. The method according to any one of claims 39 to 48.
52. the accumulated global motion is coded with bypass coding; 49. The method according to any one of claims 39 to 48.
53. a set of attribute inter thresholds is determined based on a frame distance between the current PC sample and each of the at least one reference PC sample; The method according to any one of claims 1 to 10.
54. For a first reference PC sample of the at least one reference PC sample, at least one attribute inter threshold in the set of attribute inter thresholds is used to determine whether attribute inter prediction is applied to the current PC sample based on the first reference PC sample.
54. The method of claim 53.
55. the at least one attribute inter-threshold is determined based on a predetermined threshold and a frame distance between the current PC sample and the first reference PC sample; 55. The method of claim 54.
56. the at least one reference PC sample includes a first reference PC sample and a second reference PC sample, an attribute inter threshold requirement of the first reference PC sample is stricter than an attribute inter threshold requirement of the second reference PC sample, and a frame distance between the first reference PC sample and the current PC sample is greater than a frame distance between the second reference PC sample and the current PC sample; 54. The method of claim 53.
57. an attribute inter threshold of the first reference PC sample is determined by dividing a predetermined threshold by a frame distance between the first reference PC sample and the current PC sample; 57. The method of claim 56.
58. the set of attribute inter-threshold values is determined at a decoder; 58. The method according to any one of claims 53 to 57.
59. the set of attribute inter thresholds is indicated in the bitstream; 58. The method according to any one of claims 53 to 57.
60. the current PC sample includes the current point; The step of performing the conversion comprises: determining at least one neighboring point of the current point from points in the current PC sample and in the at least one reference PC sample based on a search range of the current PC sample based on a reference relationship of the current PC sample; and performing the transformation based on the at least one neighboring point. The method according to any one of claims 1 to 10.
61. the at least one neighboring point includes at least one nearest neighboring point of the current point; 61. The method of claim 60.
62. the current PC sample includes a plurality of reference PC samples, the search range used for the current PC sample is smaller than a search range used for further PC samples of the point cloud sequence, the further PC samples having one reference PC sample; 62. The method of claim 60 or 61.
63. the search range used for the further PC sample is indicated by a first number and the search range used for the current PC sample is indicated by a second number, the second number being smaller than the first number.
63. The method of claim 62.
64. the second number is equal to the first number divided by the number of reference PC samples in the plurality of reference PC samples.
64. The method of claim 63.
65. the current PC sample has a plurality of reference PC samples, the search range used for the current PC sample is larger than the search range used for a further PC sample of the point cloud sequence, the further PC sample having one reference PC sample; 62. The method of claim 60 or 61.
66. the current PC sample has a number of reference PC samples, the search range used for the current PC sample is equal to a search range used for a further PC sample of the point cloud sequence, the further PC sample having one reference PC sample; 62. The method of claim 60 or 61.
67. the search range of the current PC sample is indicated in the bitstream.
67. The method according to any one of claims 60 to 66.
68. The step of performing the conversion comprises: performing geometry inter prediction on a set of layers of an octree structure of the current PC sample based on the at least one reference PC sample; The method according to any one of claims 1 to 10.
69. the set of layers includes the top N layers of the octree structure, where N is a non-negative integer; 69. The method of claim 68.
70. the set of layers includes the last N layers of the octree structure, where N is a non-negative integer.
69. The method of claim 68.
71. the octree structure includes a plurality of layers, and geometry coding is performed within the octree structure.
71. The method according to any one of claims 68 to 70.
72. Geometry intra prediction is performed for all layers of the octree structure.
71. The method according to any one of claims 68 to 70.
73. the at least one reference PC sample includes one reference PC sample, and the set of layers includes all layers of the octree structure; 69. The method of claim 68.
74. the at least one reference PC sample includes a plurality of reference PC samples, and the set of layers includes the top N layers of the octree structure, where N is a non-negative integer.
69. The method of claim 68.
75. N is a predetermined value.
75. The method of claim 74.
76. N is determined by the encoder.
75. The method of claim 74.
77. N is determined based on the node size of each layer in the set of layers.
77. The method of claim 76.
78. N is determined based on the size of the motion block for local motion estimation.
77. The method of claim 76.
79. N is determined by the decoder.
75. The method of claim 74.
80. N is determined based on the node size of each layer in the set of layers.
80. The method of claim 79.
81. N is determined based on the size of the motion block for local motion estimation.
80. The method of claim 79.
82. N is indicated in the bitstream.
79. The method according to any one of claims 74 to 78.
83. N is coded with one of fixed length coding, unary coding, or truncated unary coding.
83. The method of claim 82.
84. N is predictively coded, 83. The method of claim 82.
85. If the reconstructed PC sample is a reference PC sample of at least one PC sample of the point cloud sequence, the reconstructed PC sample is temporarily stored. The method according to any one of claims 1 to 10.
86. The reconstructed PC samples are obtained by reconstructing PC samples of the point cloud sequence at an encoder or a decoder.
86. The method of claim 85.
87. The reconstructed PC samples are obtained by reconstructing PC samples of the point cloud sequence at an encoder and a decoder.
86. The method of claim 85.
88. The reconstructed PC sample is a reference PC sample of the PC sample of the point cloud sequence.
88. The method according to any one of claims 85 to 87.
89. If the reconstructed PC sample is a reference PC sample for the at least one PC sample, the reconstructed PC sample is stored in a memory while the at least one PC sample is being processed.
86. The method of claim 85.
90. the memory is released if the reconstructed PC sample is not a reference PC for any other PC sample to be coded.
87. The method of claim 86.
91. For the current PC sample, there is at least one indication indicating whether the current PC sample is a reference PC sample of at least one PC sample of the point cloud sequence.
87. The method of claim 86.
92. one of the at least one indications is a flag; 92. The method of claim 91.
93. The flag is determined by an encoder.
93. The method of claim 92.
94. The flag is determined by a decoder.
93. The method of claim 92.
95. The flag is indicated in the bitstream.
93. The method of claim 92.
96. one of the at least one indications is a number of the at least one PC sample that uses the current PC sample as a reference PC sample; 92. The method of claim 91.
97. The number is determined by an encoder.
97. The method of claim 96.
98. the number is changed when the at least one PC sample is being coded.
98. The method of claim 96 or 97.
99. the number is decremented by one after one of the at least one PC sample is coded.
99. The method of claim 98.
100. When the number is decremented to 0, the memory storing the current PC sample is freed.
100. The method of claim 98 or 99.
101. said number being determined by a decoder; 97. The method of claim 96.
102. the number is indicated in the bitstream, 101. The method according to any one of claims 96 to 100.
103. information about how to store the at least one reconstructed PC sample is indicated in the bitstream of the current PC sample; The method according to any one of claims 1 to 10.
104. one of the at least one reconstructed PC sample is identified by an index counted in display order; The method of claim 103.
105. one of the at least one reconstructed PC sample is identified by an index counted in coding order or decoding order; The method of claim 103.
106. the information includes a set of reconstructed PC samples to be stored; 106. The method according to any one of claims 103 to 105.
107. the information includes a set of reconstructed PC samples to be deleted from a buffer storing the set of reconstructed PC samples; 106. The method according to any one of claims 103 to 105.
108. the information includes a set of reconstructed PC samples to be used as reference PC samples for the current PC sample; 106. The method according to any one of claims 103 to 105.
109. The information includes a set of reconstructed PC samples to be included in the reference list.
106. The method according to any one of claims 103 to 105.
110. the information includes an order of reference PC samples of the current PC sample; 106. The method according to any one of claims 103 to 105.
111. the information is indicated in the bitstream in a form associated with the current PC sample; 111. The method according to any one of claims 103 to 110.
112. the information is indicated in the bitstream independently of the current PC sample.
111. The method according to any one of claims 103 to 110.
113. the target PC sample is used as a reference PC sample for coding the current PC sample.
113. The method of any one of claims 1 to 112.
114. The PC sample is Frame, Picture, slice, tile, Subpicture, node, Point, or a unit including one or more nodes or points; 114. The method according to any one of claims 1 to 113.
115. the converting comprises encoding the current PC sample into the bitstream; 115. The method of any one of claims 1 to 114.
116. the converting comprises decoding the current PC sample from the bitstream.
115. The method of any one of claims 1 to 114.
117. 1. An apparatus for processing point cloud data, comprising: a processor; and a non-transitory memory in which instructions are stored, the apparatus comprising: Apparatus, wherein the instructions, when executed by the processor, cause the processor to perform a method according to any preceding claim.
118. storing instructions for causing a processor to carry out a method according to any one of claims 1 to 116; A non-transitory computer-readable storage medium.
119. 1. A non-transitory computer readable recording medium storing a bitstream of a point cloud sequence generated by a method performed by a point cloud processing device, the method comprising: determining a target PC sample of a current PC sample based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample of the point cloud sequence; generating the bitstream based on the target PC samples. A non-transitory computer-readable recording medium.
120. 1. A method for storing a bitstream of a point cloud sequence, comprising: determining a target PC sample of a current PC sample based on at least one reconstructed PC sample of at least one reference PC sample of the current PC sample of the point cloud sequence; generating the bitstream based on the target PC samples; storing the bitstream in a non-transitory computer-readable recording medium.