Point cloud coding method, device, and medium
By employing distinct search ranges and coordinate systems for point cloud attribute prediction, the method addresses inefficiencies in conventional coding techniques, enhancing prediction accuracy and reducing complexity in geometry-based point cloud compression.
Patent Information
- Application Number
- JP2024540828
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-01-04
- Filing Date
- 2023-01-03
- Publication Date
- 2025-01-17
AI Technical Summary
Conventional point cloud coding techniques suffer from inefficiencies in search range utilization and coordinate system alignment, leading to suboptimal performance in point cloud attribute prediction, particularly in geometry-based point cloud compression (G-PCC).
The proposed method involves using different search ranges for different reference PC samples and performing attribute inter-prediction in a coordinate system distinct from the geometry information system, along with utilizing frame distance proportional to timestamp order to enhance the efficiency of point cloud coding.
This approach improves the efficiency of point cloud coding by optimizing search range utilization and coordinate system alignment, resulting in enhanced prediction accuracy and reduced computational complexity.
Smart Images

Figure 2025501355000001_ABST
Abstract
Description
[Technical field]
[0001] TECHNICAL FIELD Embodiments of the present disclosure relate generally to point cloud coding techniques, and more specifically to inter-prediction for point cloud attribute coding. [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 solutions. 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, comprising the steps of: determining, for a current point in a current point cloud (PC) sample of a point cloud sequence during a conversion between the current PC sample and a bit stream of the point cloud sequence, at least one neighbouring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges, and performing the conversion based on the at least one neighbouring point, the set of reference PC samples including a first reference PC sample and a second reference PC sample different from the first reference PC sample, and the plurality of search ranges including a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range.
[0006] According to the method according to the first aspect of the present disclosure, different search ranges are used for different reference PC samples, and compared with a conversion scheme in which the same search range is used for different reference PC samples, the proposed method can advantageously improve the efficiency of searching for neighboring points, thereby improving the efficiency of point cloud coding.
[0007] In a second aspect, another point cloud coding method is proposed, which includes: during a conversion between a current frame of a point cloud sequence and a bitstream of the point cloud sequence, performing attribute inter prediction on a current point in the current frame based on a first coordinate system to obtain a predicted attribute value of the current point, and performing the conversion based on the predicted attribute value, wherein geometry information of the current point is expressed in a second coordinate system different from the first coordinate system.
[0008] According to the method according to the second aspect of the present disclosure, attribute inter prediction is performed based on a coordinate system different from the coordinate system in which the geometry information is represented. Compared with a conversion scheme in which the two coordinate systems are the same, the proposed method can advantageously improve the efficiency of attribute inter prediction, and thus improve the efficiency of point cloud coding.
[0009] In a third aspect, we propose another point cloud coding method, which comprises performing a conversion between a current frame of a point cloud sequence and a bit stream of the point cloud sequence based on a frame distance between the current frame and a further frame of the point cloud sequence, the frame distance being proportional to a distance between the current frame and the further frame in timestamp order.
[0010] According to the method according to the third aspect of the present disclosure, the frame distance is utilized during the transformation. Compared with transformation solutions lacking such a feature, the proposed method can advantageously improve the efficiency of point cloud coding.
[0011] In a fourth 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 which, when executed by the processor, cause the processor to perform a method according to the first, second or third aspect of the present disclosure.
[0012] In a fifth 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 a method according to the first, second or third aspect of the present disclosure.
[0013] In a sixth aspect, a 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: for a current point in a current point cloud (PC) sample of the point cloud sequence, determining at least one neighbouring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges, and generating the bit stream based on the at least one neighbouring point, the set of reference PC samples comprising a first reference PC sample and a second reference PC sample different from the first reference PC sample, the plurality of search ranges comprising a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range.
[0014] In a seventh aspect, a method for storing a bit stream of a point cloud sequence is proposed, the method comprising: for a current point in a current point cloud (PC) sample of the point cloud sequence, determining at least one neighbouring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges, generating the bit stream based on the at least one neighbouring point, and storing the bit stream in a non-transitory computer-readable recording medium, the set of reference PC samples including a first reference PC sample and a second reference PC sample different from the first reference PC sample, and the plurality of search ranges including a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range.
[0015] In an eighth aspect, we propose another non-transitory computer-readable recording medium, storing a bitstream of a point cloud sequence generated by a method executed by a point cloud processing device, the method comprising: performing attribute inter prediction on a current point in a current frame of the cloud sequence based on a first coordinate system to obtain a predicted attribute value of the current point; and generating the bitstream based on the predicted attribute value, wherein geometry information of the current point is expressed in a second coordinate system different from the first coordinate system.
[0016] In a ninth aspect, we propose a method for storing a bitstream of another point cloud sequence, the method comprising: performing attribute inter prediction on a current point in a current frame of the cloud sequence based on a first coordinate system to obtain a predicted attribute value of the current point, generating the bitstream based on the predicted attribute value, and storing the bitstream in a non-transitory computer-readable recording medium, wherein geometry information of the current point is expressed in a second coordinate system different from the first coordinate system.
[0017] In a tenth aspect, we propose another non-transitory computer readable storage medium, which stores a bit stream of a point cloud sequence generated by a method executed by a point cloud processing device, the method comprising: performing a conversion between a current frame of the point cloud sequence and the bit stream based on a frame distance between the current frame of the point cloud sequence and a further frame of the point cloud sequence, the frame distance being proportional to a distance between the current frame and the further frame in timestamp order.
[0018] In an eleventh aspect, a method for storing a bit stream of another point cloud sequence is proposed, comprising the steps of: performing a conversion between a current frame of the point cloud sequence and the bit stream based on a frame distance between the current frame of the point cloud sequence and a further frame of the point cloud sequence, and storing the bit stream in a non-transitory computer-readable recording medium, where the frame distance is proportional to the distance between the current frame and the further frame in time stamp order.
[0019] 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]
[0020] 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.
[0021] [Figure 1] FIG. 1 is a block diagram illustrating an example point cloud coding system that can utilize the techniques of this disclosure.
[0022] [Diagram 2] FIG. 2 is a block diagram illustrating an example point cloud encoder according to some embodiments of the present disclosure.
[0023] [Diagram 3] FIG. 2 is a block diagram illustrating an example point cloud decoder according to some embodiments of the present disclosure.
[0024] [Figure 4]1 illustrates a flowchart of a point cloud coding method according to some embodiments of the present disclosure.
[0025] [Diagram 5] 1 illustrates a flowchart of another point cloud coding method according to some embodiments of the present disclosure.
[0026] [Figure 6] 1 illustrates a flowchart of another point cloud coding method according to some embodiments of the present disclosure.
[0027] [Figure 7] FIG. 1 illustrates a block diagram of a computing device capable of implementing various embodiments of the present disclosure.
[0028] Throughout the drawings, the same or similar reference numbers typically refer to the same or similar elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] Example Environment 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.
[0035] 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.
[0036] 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.
[0037] 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 frame's point cloud data. 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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 a frame, 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).
[0044] 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).
[0045] 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.
[0046] 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 Analysis 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.
[0047] For category 3 data, the compressed geometry is typically represented as an octree going from the root down to the leaf level of the 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 the 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 the 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 3, the inverse quantization unit 308 may inverse quantize the attribute value. The attribute value may be based on a syntax element obtained from an attribute bitstream (e.g., including a syntax element decoded by the attribute arithmetic decoding unit 304).
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 1. Overview The present disclosure relates to point cloud coding techniques, in particular point cloud attribute prediction in inter prediction. 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.
[0064] 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 LOD Level of Detail CE Core Experiment EE Exploration Experiment Inter-EM Inter-Exploration Model PC point cloud RDO Rate Distortion Optimization
[0065] 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) published 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 sparser distributions.
[0066] 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).
[0067] In a point cloud, there can be geometry information and attribute information. Geometry information is used to describe the geometry information location of the data points. Attribute information is used to record some details of the data points such as texture, normal vectors and reflection. Point cloud codecs can handle different information in different ways. Usually, a codec has many optional tools that support coding and decoding of geometry information and attribute information, respectively.
[0068] 3.1 Attribute Intra Prediction In G-PCC, two attribute coding methods are proposed that use geometry information to perform attribute intra prediction.
[0069] 3.1.1 Predictive conversion The predictive transformation is an interpolative hierarchical nearest neighbor prediction method, which is typically used for sparse point cloud content. First, a level of detail (LOD) structure is generated. Then, nearest neighbor points are searched based on the LOD structure. Then, attribute prediction is performed based on the search results.
[0070] 3.1.1.1 LOD generation In the LOD generation process, the geometric information is leveraged to build a hierarchical structure of the point cloud that defines a set of "levels of detail". The hierarchical structure is exploited to efficiently predict attributes, making it possible to provide advanced features such as progressive transmission and scalable rendering. The LOD generation process refines the points of the point cloud into a set of refinement levels (point sets) R0, R1, ..., R according to a user-defined parameter L that indicates the LOD number. L-1 Then, the attributes of the points in the point cloud are reordered from R0 to R L-1 Level of Detail (LOD) l are the refinement levels R0, R1, . . . , R l can be obtained by taking the union of LOD l =R0 ∪ R1 ∪ ∪ R l (3-1)
[0071] 3.1.1.2 Nearest neighbor search considering point distribution In G-PCC, two neighbor lists, List1 and List2, are constructed to search the three approximate nearest neighbors of the current point. List1 contains the three approximate nearest neighbors obtained by the LOD-based approximate nearest neighbor search algorithm. List2 contains the three points dropped during the update of List1.
[0072] Considering the point distribution information, we define the concepts of strict opposition and loose opposition. Every nearest neighbor point (x_n,y_n,z_n) is assigned to a direction index dirIdx according to its relative position with the current point (x,y,z). According to the direction index dirIdx, strict opposition and loose opposition are defined as in Table 3-1. [Table 1] The final neighbor list is generated by updating List 1 with strict and loose opposite eligibility checks using the points in List 2. Note that due to the lack of sufficient neighbor points, the score of the final List 1 may be less than 3, and a neighborhood pruning process is performed.
[0073] 3.1.1.3 Attribute Prediction After obtaining List1, multiple predictor candidates are created based on List1. Each predictor candidate is assigned an index. Then, the variance of the attributes of the points in List1 is calculated. If the variance is less than a threshold, the weighted average is used to predict the attributes of the current point. Otherwise, the optimal predictor is selected by applying a rate-distortion optimization (RDO) procedure.
[0074] 3.1.2 Lifting transformation The lifting transform is typically used for dense point cloud content and is built on top of the predictive transform method. The main difference between the lifting transform and the predictive transform is in the update operator and the adaptive quantization strategy. In the lifting transform, each point is associated with an influence weight value. Points within a relatively low LOD are used more frequently and are assigned relatively high weight values. The influence weights are used in the quantization process.
[0075] 3.2 Inter-attribute prediction In inter-EM, some inter-prediction tools are proposed to perform attribute inter-coding. There is one list 1 to store the nearest neighbors in the current frame and the previous frame. The attributes of the points in the list are used to generate predictor candidates and to obtain the prediction value of the current point in a similar manner to intra-frame coding.
[0076] First, the points in the current and reference frames are sorted based on the Morton code: each point is associated with a Morton index to indicate the Morton order.
[0077] Then, for each point, a nearest neighbor search is performed in the current frame and in the reference frame. There is one parameter, Search_Range, that controls the search range.
[0078] a) In the current frame, the Search_Range points before the current point in Morton order are traversed.
[0079] b) In the reference frame, the search center is the point with the same Morton index in the reference frame. The previous Search_Range points before the search center, the subsequent Search_Range points after the search center, and the search center point are searched.
[0080] The nearest neighbor search is based on the Euclidean distance from the searched point to the current point. The three closest points are selected and stored in list 1. It should be noted that the weight of points from the reference frame should be lower than points from the current frame.
[0081] Finally, multiple predictor candidates are generated based on List 1, and predictive attribute values are generated in a manner similar to intra-coding.
[0082] 4.Problems Existing designs for point cloud attribute inter-prediction have the following problems: 1. In the current inter-EM, the search center in the reference frame is the point with the same Morton index. However, there is no strict correspondence between the reordered points in the current frame and the reference frame. In some cases, the points with the same Morton index may have very different geometric positions, which leads to inaccurate search and prediction results. 2. In current inter-EM, nearest neighbor search is performed based on Euclidean distance, which is very complicated to calculate and thus affects the overall complexity of encoding and decoding. 3. In the current inter-EM, the search range in the current frame and the reference frame is the same. However, a point in the current frame and a point in a different frame have different influences on the current point. Using the same search range limits the prediction efficiency.
[0083] 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.
[0084] In the following description, list 1 may be a list that stores nearest neighbors.
[0085] 1) We propose that at least one search center can be derived for nearest neighbor search within attribute inter prediction. In one example, a nearest neighbor search may be performed within the particular frame being searched. i. In one example, the particular frame to be searched may be the current frame. ii. In one example, the particular frame to be searched may be another frame. iii. In one example, the particular frame to be searched may be a reference frame of the current frame. b. In one example, the points in a particular frame to be searched are sorted prior to performing the nearest neighbor search. i. In one example, the reordering may be performed based on the Morton code, Hilbert code or other transformed code of the points. ii. In one example, the sorting may be performed based on the polar coordinates of the points. iii. In one example, the sorting may be performed based on the spherical coordinates of the points. iv. In one example, the sorting may be performed based on the cylindrical coordinates of the points. v. In one example, the sorting may be performed based on the radar scan order. vi. In one example, the search is performed according to the order of the points (which may be reordered). c. In one example, there may be one search center for a particular frame to be searched. i. In one example, previous points and the search center that are earlier in the sort order than the search center may be searched. ii. In one example, subsequent points and the search center that are after the search center in the sorted order may be searched. iii. In one example, a previous point before the search center in the sorted order, the search center, and a subsequent point after the search center in the sorted order may be searched. d. In one example, the search center may be the closest approximate point at the geometric location in the frame being searched. i. In one example, the search center may be selected from all or a portion of the points in the frame to be searched. ii. In one example, the search center may be the point that has the closest distance from the current point. (1) The distance can be Euclidean distance, Manhattan distance, Chebyshev distance, etc. iii. In one example, the search center may be the point that has the closest approximate distance from the current point. (1) The search center may be selected from some point within the frame to be searched. (2) The distance can be Euclidean distance, Manhattan distance, Chebyshev distance, etc. iv. In one example, the search center may be the point on the transformed code that has the closest distance from the current point. (1) The distance can be the difference in the transformed codes. (2) The transformed code can be a Morton code, a Hilbert code, etc. v. In one example, the search center may be the point on the transformed code that has approximately the closest distance from the current point. (1) The search center may be selected from some point within the frame to be searched. (2) In one example, some points may be points whose transformed code is greater than the transformed code of the current point. (3) In one example, some points may be points whose transformed code is smaller than the transformed code of the current point. (4) The distance can be the difference in the transformed codes. (5) The transformed code may be a Morton code, a Hilbert code, etc. e. In one example, multiple (eg, N) search centers may be derived. i. Alternatively or additionally, the search may be performed from one or more search centers. ii. In one example, the N search centers may be the N points that have the N closest distances from the current point. iii. In one example, the N search centers may be the N points on the transformed code that have N closest distances from the current point.
[0086] 2) We propose to use different search ranges in different directions and / or in different frames. In one example, there may be at least one search range for one frame to be searched. i. In one example, there may be one search range that indicates the number of points ahead of the search center that need to be searched. ii. In one example, there may be one search range that indicates the number of points after the search center that need to be searched. iii. In one example, there may be one search range that indicates both the number of points before the search center and the number after the search center that need to be searched. b. In one example, the search ranges of the current frame and the reference frame may be different. c. In one example, the search ranges for different reference frames may be different. d. In one example, the search ranges for attribute intra prediction and attribute inter prediction may be different. e. In one example, the search ranges for attribute intra prediction and attribute inter prediction may be the same. f. In one example, the search range of attributed intra prediction for a frame that utilizes attributed inter prediction may be different from the search range of attributed intra prediction for a frame that utilizes only attributed intra prediction. g. In one example, the search range may be derived at the encoder. h. In one example, the search range may be derived at the decoder. i. In one example, the search ranges for different coding points in the current frame and / or the reference frame may be different. j. In one example, the search ranges for different coding points in the current frame and / or the reference frame may be the same. k. In one example, the search ranges for different LODs in the current frame and / or the reference frame may be different. l. In one example, the search ranges for different LODs in the current frame and / or the reference frame may be the same. m. In one example, the search range between the current refinement level, the relatively low LOD and the relatively high LOD in the current frame and / or the reference frame may be different. n. In one example, the search range between the current refinement level, the relatively lower LOD and the relatively higher LOD in the current frame and / or the reference frame may be the same. o. In one example, the search ranges for different slices / tiles in the current frame and / or the reference frame may be different. p. In one example, the search ranges for different slices / tiles in the current frame and / or the reference frame may be the same.
[0087] 3) We propose to signal the search range to the decoder by coding an indication of the search range. In one example, at least one indication may be signaled to a decoder to indicate a search range. i. In one example, the indication may be a predefined signal where the codec performs a nearest neighbor search for every point. ii. In one example, the indication may be selected from a number of predefined signals when the search range is selected from a number of predefined search ranges. iii. In one example, the indication may be a value for a search range. iv. In one example, the instructions may be a predefined mathematical transformation (eg, logarithm, square root, etc.) of the search range. b. In one example, the instructions may be coded as fixed length coding, unary coding, truncated unary coding, etc. c. In one example, the instructions may be predictively coded
[0088] 4) Different geometric distances can be used for nearest neighbor search and neighborhood weight generation in attribute inter prediction. In one example, at least one point may be stored in list 1 by performing a nearest neighbor search in the current frame and the reference frame. i. In one example, the selected point may be the point having the closest geometric distance (e.g., Euclidean distance, Manhattan distance, Chebyshev distance, etc.) from the current point. ii. In one example, the selected point may be from a searched set of points defined by a search center and a search range. b. In one example, the geometric distance of each point in list 1 may be used to generate neighborhood weights. c. In one example, the processes of nearest neighbor searching and neighbor weight generation may use different geometric distances. i. In one example, the Manhattan distance of each searched point may be used for nearest neighbor search, and the Euclidean distance of each point in list 1 may be used for neighborhood weight generation.
[0089] 5) In one example, attribute inter prediction may be performed in different coordinate systems. In one example, the coordinate system may be a spherical coordinate system, a cylindrical coordinate system, a Cartesian coordinate system, a Euclidean coordinate system, etc. b. In one example, if the geometry information is expressed in a particular coordinate system, attribute inter prediction may be performed in other coordinate systems. c. In one example, a coordinate system transformation may be performed on the geometry information of the current frame. d. In one example, a coordinate system transformation may be performed relative to the reference frame. e. In one example, coordinate system transformation may be performed after geometry coding and / or before attribute coding. f. In one example, coordinate system transformation may be performed at the encoder and decoder. g. In one example, the transformed coordinate system of the current frame and / or the reference frame may be scaled. h. Alternatively, the geometry information coordinates in the transformed coordinate system of the current frame and / or the reference frame may be scaled. i. In one example, the transformed coordinate system of the current frame and / or the reference frame may be transformed. j. Alternatively, the geometry information coordinates within a transformed coordinate system of the current frame and / or the reference frame may be transformed.
[0090] 6) The frame distance may be proportional to the distance between two frames in timestamp order. In one example, the timestamp order may be the rendering order of the frames. b. In one example, the timestamp order may be the order in which the frames were collected. c. In one example, the frame distance between the Mth frame and the Nth frame may be proportional to MN, or NM, or |MN|. d. In one example, the frame distance between one frame and itself may be 0. e. In one example, the frame distance between the current frame and the reference frame may be derived at the encoder. f. In one example, the frame distance between the current frame and the reference frame may be derived at the decoder. g. Alternatively, the frame distance between the current frame and the reference frame can be signaled to the decoder. i. In one example, the frame distance may be coded with fixed length coding, unary coding, truncated unary coding, etc. ii. In one example, the frame distance may be predictively coded. h. A timestamp ordering indication may be signaled for a frame.
[0091] 7) The frame distance can be used in the nearest neighbor search. In one example, the geometric distance in a nearest neighbor search may depend on the frame distance between the reference frame and the current frame. b. In one example, the geometric distance of a reference point in one reference frame with a closer frame distance is higher than that of one reference frame with a farther frame distance. i. In one example, the reference point geometric distance in one reference frame may be the sum of the frame distance and the original geometric distance.
[0092] 8) The frame distance can be used in neighborhood weight generation. In one example, the generated neighborhood weights may depend on the frame distance between the reference frame and the current frame. b. In one example, the generated neighborhood weight of a reference point in one reference frame with a closer frame distance is higher than that of one reference frame with a farther frame distance. i. In one example, the generated neighborhood weight of a reference point in one reference frame may be the sum of the frame distance and the original generated neighborhood weight.
[0093] 9) We propose to apply motion compensation to the reference frame before attribute inter prediction. In one example, there is motion compensation on the reference frame. b. In one example, motion compensation may be applied to the reference frame before attribute inter prediction. c. In one example, a reference frame with motion compensation may be used for attribute inter prediction. d. In one example, a reference frame without motion compensation may be used for attribute inter prediction. e. In one example, an indication of whether motion compensation is applied or not may be signaled to the decoder. i. In one example, the instructions may be coded with fixed length coding, unary coding, truncated unary coding, etc. ii. In one example, the instructions may be predictively coded.
[0094] 10) We propose to use the compensated motion to determine whether attribute inter prediction is applied or not. In one example, attribute inter prediction may be applied only to reference frames with restricted geometry information transfer. b. In one example, the geometry information movement may be indicated with a compensated motion. c. In one example, the compensated motion may consist of a translation and a rotation. d. In one example, the translation may be recorded in a motion matrix / vector. e. In one example, the rotation may be recorded in a rotation matrix / vector. f. In one example, rotations may be recorded in Euler angles / quaternions / rotation angles. g. In one example, the compensated motion can be rigid or non-rigid motion. h. In one example, the compensated movements may be recorded in a matrix. i. In one example, if the compensated motion is less than a compensated motion threshold, attributed inter prediction may be applied to the reference frame. j. Or, if the translation is less than a translation threshold, attribute inter prediction may be applied to the reference frame. k. Alternatively, if the rotation is less than a rotation threshold, attribute inter prediction may be applied to the reference frame. l. In one example, the threshold value may be a predefined value. Alternatively, the threshold value can be signaled to the decoder. i. In one example, the threshold may be coded as a fixed length code, a unary code, a truncated unary code, etc. ii. In one example, the thresholds may be predictively coded.
[0095] 11) We propose to signal whether attribute inter prediction is applied to one reference frame or not. In one example, there may be one indication that indicates whether attribute inter prediction is applied to one reference frame. b. In one example, the instructions may be derived at the encoder. c. In one example, the indication may be signaled to the decoder. i. In one example, the instructions may be coded with fixed length coding, unary coding, truncated unary coding, etc. ii. In one example, the instructions may be predictively coded.
[0096] 12) We propose to perform attribute compensation within attribute inter-prediction. In one example, the compensation attribute value may be derived based on the nearest neighbor search results and the compensated parameters. b. In one example, the compensated parameters may be fixed for points within one point cloud cluster. i. In one example, a point cloud cluster can be M consecutive points. c. In one example, the compensated parameters may be derived at the encoder. d. In one example, the compensated parameters may be derived based on the attribute values of the inter-nearest neighbors and the reconstructed values of the N previous coded points prior to the point cloud cluster. e. Alternatively, the compensated parameters may be derived based on the predicted values and the reconstructed values of the N previous coded points preceding the point cloud cluster. f. In one example, the compensated parameters may be derived at the decoder. g. Alternatively, the compensated parameters can be signaled to the decoder. i. In one example, the compensated parameters may be coded with fixed length coding, unary coding, truncated unary coding, etc. ii. In one example, the compensated parameters may be predictively coded.
[0097] 13) Points in different LODs of the reference frame can be searched in the attribute inter prediction. In one example, points in a reference frame may be divided into one or more LODs. b. In one example, the points in the current frame may be divided into one or more LODs. c. In one example, there may be LOD levels that indicate the LOD of each point. d. In one example, for a current point, a nearest neighbor search may be performed by searching for a point in the reference frame that has the same LOD level. e. In one example, a nearest neighbor search may be performed by searching for a point in the reference frame that has a relatively low LOD level for the current point. f. In one example, a nearest neighbor search may be performed by searching for a point in the reference frame that has a relatively high LOD level for the current point. g. In one example, a nearest neighbor search may be performed by searching points of all LOD levels in the reference frame for the current point. h. In one example, an indication of whether points in all LODs are to be searched may be signaled to the decoder. i. In one example, the instructions may be coded with fixed length coding, unary coding, truncated unary coding, etc. ii. In one example, the instructions may be predictively coded i. In one example, an indication may be signaled to the decoder indicating whether or not only points within the same LOD are searched. i. In one example, the indication may be conditionally signaled according to, for example, whether or not points in all LODs have been searched. ii. In one example, the instructions may be coded with fixed length coding, unary coding, truncated unary coding, etc. iii. In one example, the instructions may be predictively coded
[0098] (14) We propose to use multiple lists to store search results in different frames and generate a predictor list by combining all the lists. In one example, there may be a first list (eg, List 1) that stores search results in the current frame. b. In one example, there may be a second list (eg, List 2) that stores the search results in each reference frame. c. In one example, a nearest neighbor search in the current frame may only change list 1. d. In one example, a nearest neighbor search in one reference frame may only change the corresponding list. e. In one example, the information of the points in all the lists may be used to generate a predictor list.
[0099] 15) The above-mentioned "frame" can be replaced with other process units, such as a sub-region within a frame.
[0100] 16) The above method can also be applied to other coding models within G-PCC or other search methods other than nearest neighbor search.
[0101] 6. Embodiment This embodiment describes an example of how to use Manhattan distance to perform nearest neighbor search in attribute inter prediction. In this example, the search center in the reference frame is set to the point with the closest Morton code. The search range of both the current frame and the reference frame is set to 128.
[0102] For each frame, the reference frame is the previous frame, and attribute inter prediction is performed in the encoder and decoder.
[0103] First, the points in the current and reference frames are sorted, the Morton code for each point is calculated, and the points within a frame are sorted based on the Morton code order.
[0104] Then, for each point in the current frame, the three closest neighbors in the current frame and the reference frame are searched and stored in List 1. There are three flags that indicate whether the nearest neighbor is from the current frame or not. a. The search center of the current frame is the current point. The 128 points before the search center are traversed in Morton Code order. Up to three points with the closest Manhattan distance are selected from the traversed points. The position, flag and index of each point in list 1 are recorded. The Manhattan distance d between two points (x1,y1,z1) and (x2,y2,z2) is calculated as follows: d=|x1-x2|+|y1-y2|+|z1-z2| (6-1) b. The search center of the reference frame is the point with the closest Morton code to the current point in the reference frame. The 128 points before the search center in Morton code order, the 128 points after the search center in Morton code order, and the search center are traversed. If the traversed point has a closer Manhattan distance than a point in list 1, list 1 is updated by inserting the traversed point into list 1 and deleting the point in list 1 with the highest Manhattan distance. The position, flag, and index of each point in list 1 are recorded.
[0105] Further, for each point in the current frame, a predictor is generated based on the point's information in List 1 and a predicted value is generated. a. There is one weight value for each point in list1. The calculated distance of each point in list1 is calculated based on the Euclidean distance from that point to the current point. 1 should be added to the calculated distance of the point from the reference frame. The weight value for each point in list1 is the inverse of the calculated distance. The Euclidean distance d between two points (x1,y1,z1) and (x2,y2,z2) is calculated by the following formula:
number
[0106] Finally, for each point in the current frame, the residual between the current frame's attribute and the predicted attribute value is coded and signaled to the decoder.
[0107] Further details of the embodiments of the present disclosure related to inter prediction of point cloud attribute coding are described below. 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 any combination.
[0108] 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 point cloud frame, a sub-region within a point cloud frame, etc.
[0109] 4 shows a flowchart of a point cloud coding method 400 according to some embodiments of the present disclosure. The method 400 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. 4, the method 400 starts at 402, which determines, for a current point in the current PC sample, at least one neighboring point in a set of reference PC samples of the current PC sample based on multiple search ranges.
[0110] In some embodiments, the set of reference PC samples includes a first reference PC sample and a second reference PC sample different from the first reference PC sample. The multiple search ranges include a first search range for the first reference PC sample and a second search range for the second reference PC sample. The first search range is different from the second search range. That is, the search ranges used for the different reference PC samples are different. In some embodiments, the at least one neighboring point may be at least one nearest neighbor of the current point. In some embodiments, the multiple search ranges may be determined at an encoder. Or, the multiple search ranges may be determined at a decoder.
[0111] By way of example and not limitation, the first reference PC sample may be immediately before the current PC sample, and the second reference PC may be before the first reference PC sample. The first search range is greater than the second search range. It should be understood that the above examples are merely for illustrative purposes. The scope of the present disclosure is not limited thereto.
[0112] At 404, a transformation is performed based on the at least one neighboring point. 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.
[0113] In view of the above, different search ranges are used for different reference PC samples. Compared with a conversion scheme in which the same search range is used for different reference PC samples, the proposed method can advantageously improve the efficiency of neighbor point search, and thus improve the efficiency of point cloud coding.
[0114] In some embodiments, a search range of the multiple search ranges for attributed intra prediction of the current PC sample may be different from a search range of the multiple search ranges for attributed inter prediction of the current PC sample, or a search range of the multiple search ranges for attributed intra prediction of the current PC sample may be the same as a search range of the multiple search ranges for attributed inter prediction of the current PC sample.
[0115] In some embodiments, attribute intra prediction and attribute inter prediction may be performed for a current PC sample. Attribute intra prediction may be performed for further PC samples of the point cloud sequence, and attribute inter prediction is not performed for the further PC samples. In such cases, the search range for attribute intra prediction of the current PC sample may be different from the search range for attribute intra prediction of the further PC sample.
[0116] In some embodiments, the current PC samples may include a further point different from the current point. A search range in the current PC samples for the current point may be different from a search range in the current PC samples for the further point. Or, a search range in the current PC samples for the current point may be the same as a search range in the current PC samples for the further point. In some alternative or additional embodiments, the set of reference PC samples may include a first reference PC sample, and a search range in the first reference PC sample may be different from a search range in the first reference PC sample for the further point. Or, a search range in the first reference PC sample may be the same as a search range in the first reference PC sample for the further point.
[0117] In some embodiments, the current point may be within a first level of detail (LOD) of the current PC sample. The current PC sample may include a further point within a second LOD different from the first LOD. A search range in the current PC sample for the current point may be different from a search range in the current PC sample for the further point. Or, a search range in the current PC sample for the current point may be the same as a search range in the current PC sample for the further point. In some alternative or additional embodiments, the set of reference PC samples includes a first reference PC sample, and a search range in the first reference PC sample may be different from a search range in the first reference PC sample for the further point. Or, a search range in the first reference PC sample may be the same as a search range in the first reference PC sample for the further point.
[0118] In some embodiments, the current point may be at a first refinement level of the current PC sample. The current PC sample may include a first point in a refinement level lower than the first refinement level and a second point in a refinement level higher than the first refinement level. At least two of the search range in the current PC sample for the current point, the search range in the current PC sample for the first point, or the search range in the current PC sample for the second point may be different from each other. Or, at least two of the search range in the current PC sample for the current point, the search range in the current PC sample for the first point, or the search range in the current PC sample for the second point may be the same. In some additional or alternative embodiments, the set of reference PC samples includes a first reference PC sample, and at least two of the search range in the first reference PC sample, the search range in the first reference PC sample for the first point, or the search range in the first reference PC sample for the second point may be different from each other. Or, at least two of the search range in the first reference PC sample, the search range in the first reference PC sample for the first point, or the search range in the first reference PC sample for the second point may be the same.
[0119] In some embodiments, the current point may be in a first slice of current PC samples. The current PC samples may include a further point in a second slice different from the first slice. A search range in the current PC samples for the current point may be different from a search range in the current PC samples for the further point. Or, the search range in the current PC samples for the current point may be the same as a search range in the current PC samples for the further point. In some alternative or additional embodiments, the set of reference PC samples includes a first reference PC sample, and the search range in the first reference PC sample may be different from a search range in the first reference PC sample for the further point. Or, the search range in the first reference PC sample may be the same as a search range in the first reference PC sample for the further point.
[0120] In some embodiments, the current point may be within a first tile of the current PC sample. The current PC sample may include an additional point in a second tile different from the first tile. A search range in the current PC sample for the current point may be different from a search range in the current PC sample for the additional point. Or, the search range in the current PC sample for the current point may be the same as a search range in the current PC sample for the additional point. In some alternative or additional embodiments, the set of reference PC samples includes a first reference PC sample, and the search range in the first reference PC sample may be different from a search range in the first reference PC sample for the additional point. Or, the search range in the first reference PC sample may be the same as a search range in the first reference PC sample for the additional point.
[0121] According to an embodiment of the present invention, a non-transitory computer readable recording medium is proposed. 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, for a current point in a current PC sample of the point cloud sequence, at least one neighboring point is determined in a set of reference PC samples of the current PC sample based on a plurality of search ranges. The set of reference PC samples includes a first reference PC sample and a second reference PC sample different from the first reference PC sample. The plurality of search ranges includes a first search range for the first reference PC sample and a second search range for the second reference PC sample. The first search range is different from the second search range. Furthermore, the bit stream is generated based on the at least one neighboring point.
[0122] According to an embodiment of the present invention, a method for storing a bit stream of a point cloud sequence is proposed, in which for a current point in a current PC sample of the point cloud sequence, at least one neighboring point is determined in a set of reference PC samples of the current PC sample based on a plurality of search ranges. The set of reference PC samples includes a first reference PC sample and a second reference PC sample different from the first reference PC sample. The plurality of search ranges includes a first search range for the first reference PC sample and a second search range for the second reference PC sample. The first search range is different from the second search range. Furthermore, a bit stream is generated based on the at least one neighboring point, and the bit stream is stored in a non-transitory computer-readable recording medium.
[0123] FIG. 5 illustrates a flowchart of another point cloud coding method 500 according to some embodiments of the present disclosure. The method 500 may be implemented during conversion between a current frame of a point cloud sequence and a bitstream of the point cloud sequence. As shown in FIG. 5, the method 500 begins at 502 by performing attribute inter prediction on a current point in a current frame based on a first coordinate system to obtain a predicted attribute value of the current point. The geometry information of the current point is represented in a second coordinate system different from the first coordinate system. By way of example and not limitation, the geometry information of the current point may be represented in a Cartesian coordinate system, and attribute inter prediction is performed on the current point based on a cylindrical coordinate system. It should be understood that the above example is provided for illustrative purposes only. The scope of the present disclosure is not limited thereto.
[0124] At 504, a transformation is performed based on the predicted attribute value. 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.
[0125] In view of the above, attribute inter prediction is performed based on a coordinate system different from the coordinate system in which the geometry information is represented. Compared with a conversion scheme in which these two coordinate systems are the same, the proposed method can advantageously improve the efficiency of attribute inter prediction, and therefore improve the efficiency of point cloud coding.
[0126] In some embodiments, the first coordinate system or the second coordinate system may be a spherical coordinate system, a cylindrical coordinate system, a Cartesian coordinate system, a Euclidean coordinate system, or the like.
[0127] In some embodiments, coordinates included in the geometry information of the current frame may be transformed from the second coordinate system to the first coordinate system. Additionally or alternatively, coordinates included in the geometry information of at least one reference frame of the current frame may be transformed from the second coordinate system to the first coordinate system. In one example, the transformation of coordinates may be performed after geometry coding. In another example, the transformation of coordinates may be performed before attribute coding. In some embodiments, the transformation of coordinates may be performed in the encoder and the decoder.
[0128] In some embodiments, coordinates included in the geometry information of the current frame may be scaled during the transformation of the coordinates. Alternatively or additionally, coordinates included in the geometry information of the at least one reference frame may be scaled during the transformation of the coordinates. In some alternative embodiments, coordinates included in the geometry information of the current frame may be scaled after the transformation of the coordinates. Alternatively or additionally, coordinates included in the geometry information of the at least one reference frame may be scaled after the transformation of the coordinates.
[0129] In some embodiments, coordinates included in the geometry information of the current frame may be transformed during the transformation of coordinates. Alternatively or additionally, coordinates included in the geometry information of at least one reference frame may be transformed during the transformation of coordinates. In some alternative embodiments, coordinates included in the geometry information of the current frame may be transformed after the transformation of coordinates. Alternatively or additionally, coordinates included in the geometry information of at least one reference frame may be transformed after the transformation of coordinates.
[0130] According to an embodiment of the present invention, a non-transitory computer readable recording medium is proposed. 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 predicted attribute value of a current point in a current frame of the point cloud sequence is obtained by performing attribute inter prediction on the current point based on a first coordinate system. Geometry information of the current point is represented in a second coordinate system different from the first coordinate system. Furthermore, the bit stream is generated based on the predicted attribute value.
[0131] According to an embodiment of the present invention, a method for storing a bitstream of a point cloud sequence is proposed, in which a predicted attribute value of a current point in a current frame of the point cloud sequence is obtained by performing attribute inter prediction on the current point based on a first coordinate system, and geometry information of the current point is expressed in a second coordinate system different from the first coordinate system, and a bitstream is generated based on the predicted attribute value, and the bitstream is stored in a non-transitory computer-readable recording medium.
[0132] 6 illustrates another flowchart of a point cloud coding method 600 according to some embodiments of the present disclosure. As shown in FIG. 6, at 602, a conversion between a current frame and a bitstream of the point cloud sequence is performed based on a frame distance between a current frame of the point cloud sequence and a further frame of the point cloud sequence. In some embodiments, the current frame may be encoded into the bitstream during the conversion at 602. Additionally or alternatively, the current frame may be decoded from the bitstream during the conversion at 602.
[0133] In some embodiments, the frame distance is proportional to the distance between the current frame and the further frame in timestamp order. By way of example and not limitation, the current frame may be the Mth frame in the point cloud sequence according to the timestamp order, and the further frame may be the Nth frame in the point cloud sequence according to the timestamp order. M and N are each non-negative integers. In this case, the frame distance is proportional to the difference between M and N, (such as MN or NM) or the absolute value of the difference between M and N (i.e., |MN|). In some embodiments, the frame distance between the current frame and itself is a predetermined value. For example, the predetermined value is 0. It should be understood that the above examples are provided for illustrative purposes only. The scope of the present disclosure is not limited thereto.
[0134] Based on the above, the frame distance is utilized during the transformation. Compared with transformation schemes that lack such functionality, the proposed method can advantageously improve the efficiency of point cloud coding.
[0135] In some embodiments, the timestamp order may be the rendering order of the frames of the point cloud sequence, or the timestamp order may be the acquisition order of the frames of the point cloud sequence.
[0136] In some embodiments, the further frame may be a reference frame of the current frame. The frame distance between the current frame and the reference frame may be determined at an encoder or a decoder. Additionally or alternatively, the frame distance between the current frame and the reference frame may be indicated in the bitstream. In one example, the frame distance may be coded with fixed length coding, unary coding, truncated unary coding, etc. In another example, the frame distance may be predictively coded.
[0137] In some embodiments, an indication may be indicated within the bitstream of the current frame, the indication indicating the position of the current frame in timestamp order.
[0138] In some embodiments, the further frame may be one of the at least one reference frame of the current frame. At 604, for a current point in the current frame, at least one neighboring point of the current point is determined based on at least one frame distance between the current frame and the at least one reference frame. Further, the transformation is performed based on the at least one neighboring point. By way of example and not limitation, the at least one neighboring point may include at least one nearest neighbor of the current point.
[0139] In some embodiments, the at least one reference frame may include a first reference frame having a first point. The first geometric distance between the current point and the first point may depend on a first frame distance between the current frame and the first reference frame. Additionally, the at least one reference frame may further include a second reference frame having a second point. The first frame distance is smaller than a second frame distance between the current frame and the second reference frame, and the first geometric distance is smaller than a second geometric distance between the current point and the second point. In one example, the first geometric distance may be determined based on the first frame distance and an initial geometric distance between the current point and the first point. The initial geometric distance may be determined based on a metric between the geometric positions of the current point and the first point. The metric may be Euclidean distance, Manhattan distance, Chebyshev distance, etc. By way of example and not limitation, the first geometric distance may be a sum of the first frame distance and the initial geometric distance.
[0140] In some embodiments, the further frame is one of the at least one reference frame of the current frame. At 604, for at least one neighboring point of the current point in the current frame, at least one weight may be determined based on at least one frame distance between the current frame and the at least one reference frame. Further, a transformation may be performed based on the at least one weight. In one example, the at least one neighboring point may include at least one nearest neighbor of the current point.
[0141] In some embodiments, the at least one neighboring point may include a first neighboring point in a first reference frame of the at least one reference frame. The weight of the first neighboring point may depend on a first frame distance between the current frame and the first reference frame. Additionally, the at least one neighboring point may further include a second neighboring point in a second reference frame of the at least one reference frame. The first frame distance is smaller than a second frame distance between the current frame and the second reference frame, and the weight of the first neighboring point is smaller than the weight of the second neighboring point. For example, the weight of the first neighboring point may be determined based on the first frame distance and the original weight generated for the first neighboring point. By way of example and not limitation, the weight of the first neighboring point may be the sum of the first frame distance and the original weight generated.
[0142] According to an embodiment of the present invention, a non-transitory computer readable recording medium is proposed. 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 conversion between a current frame of the point cloud sequence and the bit stream is performed based on a frame distance between the current frame and a further frame of the point cloud sequence. The frame distance is proportional to the distance between the current frame and the further frame in timestamp order.
[0143] According to an embodiment of the present invention, a method for storing a bit stream of a point cloud sequence is proposed, in which a conversion between a current frame of the point cloud sequence and the bit stream is performed based on a frame distance between the current frame and a further frame of the point cloud sequence, the frame distance being proportional to the distance between the current frame and the further frame in timestamp order, and further, the bit stream is stored in a non-transitory computer-readable recording medium.
[0144] 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. 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, a step of determining, for a current point in the current PC sample, at least one neighboring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges; and a step of performing the conversion based on the at least one neighboring point, wherein the set of reference PC samples includes a first reference PC sample and a second reference PC sample different from the first reference PC sample, and the plurality of search ranges include a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range.
[0145] Clause 2. The method of clause 1, wherein a search range for attributed intra prediction of the current PC sample among the plurality of search ranges is different from a search range for attributed inter prediction of the current PC sample among the plurality of search ranges.
[0146] Clause 3. The method of clause 1, wherein a search range for attributed intra prediction of the current PC sample among the plurality of search ranges is the same as a search range for attributed inter prediction of the current PC sample among the plurality of search ranges.
[0147] Clause 4. The method of clause 1, wherein attribute intra prediction and attribute inter prediction are performed for the current PC sample, the attribute intra prediction is performed for further PC samples of the point cloud sequence, and the attribute inter prediction is not performed for the further PC samples, and a search range for the attribute intra prediction of the current PC sample is different from a search range for the attribute intra prediction of the further PC sample.
[0148] Clause 5. The method according to any one of clauses 1 to 4, wherein the multiple search ranges are determined at an encoder or a decoder.
[0149] Clause 6. A method according to any one of clauses 1 to 5, wherein the current PC sample includes a further point different from the current point, and a search range within the current PC sample for the current point is different from a search range within the current PC sample for the further point.
[0150] Clause 7. A method according to any one of clauses 1 to 6, wherein the current PC sample includes a further point different from the current point, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC sample for the current point is different from a search range within the first reference PC sample for the further point.
[0151] Clause 8. A method according to any one of clauses 1 to 5, wherein the current PC sample includes a further point different from the current point, and a search range within the current PC sample for the current point is the same as a search range within the current PC sample for the further point.
[0152] Clause 9. A method according to any one of clauses 1 to 5 and 8, wherein the current PC sample includes a further point different from the current point, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC sample for the current point is the same as a search range within the first reference PC sample for the further point.
[0153] Clause 10. A method according to any one of clauses 1 to 9, wherein the current point is within a first level of detail (LOD) of the current PC sample, the current PC sample includes a further point within a second LOD different from the first LOD, and a search range within the current PC sample for the current point is different from a search range within the current PC sample for the further point.
[0154] Clause 11. A method according to any one of clauses 1 to 10, wherein the current point is within a first LOD of the current PC sample, the current PC sample includes a further point within a second LOD different from the first LOD, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC sample for the current point is different from a search range within the first reference PC sample for the further point.
[0155] Clause 12. A method according to any one of clauses 1 to 9, wherein the current point is within a first LOD of the current PC sample, the current PC sample includes a further point within a second LOD different from the first LOD, and a search range within the current PC sample for the current point is the same as a search range within the current PC sample for the further point.
[0156] Clause 13. A method according to any one of clauses 1 to 9 and 12, wherein the current point is within a first LOD of the current PC sample, the current PC sample includes a further point within a second LOD different from the first LOD, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC sample for the current point is the same as a search range within the first reference PC sample for the further point.
[0157] Clause 14. A method according to any one of clauses 1 to 9, wherein the current point is within a first refinement level of the current PC sample, the current PC sample including a first point within a refinement level lower than the first refinement level and a second point within a refinement level higher than the first refinement level, and at least two of a search range within the current PC sample for the current point, a search range within the current PC sample for the first point, or a search range within the current PC sample for the second point are different from each other.
[0158] Clause 15. A method according to any one of clauses 1 to 9 and 14, wherein the current point is within a first refinement level of the current PC sample, the current PC sample includes a first point in a refinement level lower than the first refinement level and a second point in a refinement level higher than the first refinement level, the set of reference PC samples includes a first reference PC sample, and at least two of the search ranges within the first reference PC sample for the current point, the search ranges within the first reference PC sample for the first point, or the search ranges within the first reference PC sample for the second point are different from each other.
[0159] Clause 16. A method according to any one of clauses 1 to 9, wherein the current point is within a first refinement level of the current PC sample, the current PC sample including a first point in a refinement level lower than the first refinement level and a second point in a refinement level higher than the first refinement level, and at least two of the search ranges within the current PC sample for the current point, the search ranges within the current PC sample for the first point, or the search ranges within the current PC sample for the second point are the same.
[0160] Clause 17. A method according to any one of clauses 1 to 9 and 16, wherein the current point is within a first refinement level of the current PC sample, the current PC sample includes a first point in a refinement level lower than the first refinement level and a second point in a refinement level higher than the first refinement level, the set of reference PC samples includes a first reference PC sample, and at least two of the search ranges within the first reference PC sample for the current point, the search ranges within the first reference PC sample for the first point, or the search ranges within the first reference PC sample for the second point are the same.
[0161] Clause 18. A method according to any one of clauses 1 to 17, wherein the current point is within a first slice of the current PC samples, the current PC samples including a further point in a second slice different from the first slice, and a search range within the current PC samples for the current point is different from a search range within the current PC samples for the further point.
[0162] Clause 19. A method according to any one of clauses 1 to 18, wherein the current point is within a first slice of the current PC samples, the current PC samples include a further point in a second slice different from the first slice, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC samples for the current point is different from a search range within the first reference PC samples for the further point.
[0163] Clause 20. A method according to any one of clauses 1 to 17, wherein the current point is within a first slice of the current PC samples, the current PC samples including a further point in a second slice different from the first slice, and a search range within the current PC samples for the current point is the same as a search range within the current PC samples for the further point.
[0164] Clause 21. A method according to any one of clauses 1 to 17, 20, wherein the current point is within a first slice of the current PC samples, the current PC samples include a further point in a second slice different from the first slice, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC samples for the current point is the same as a search range within the first reference PC samples for the further point.
[0165] Clause 22. A method according to any one of clauses 1 to 17, wherein the current point is within a first tile of the current PC sample, the current PC sample includes a further point in a second tile different from the first tile, and a search range within the current PC sample for the current point is different from a search range within the current PC sample for the further point.
[0166] Clause 23. A method according to any one of clauses 1 to 17, 22, wherein the current point is within a first tile of the current PC sample, the current PC sample includes a further point in a second tile different from the first tile, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC sample for the current point is different from a search range within the first reference PC sample for the further point.
[0167] Clause 24. A method according to any one of clauses 1 to 17, wherein the current point is within a first tile of the current PC sample, the current PC sample includes a further point in a second tile different from the first tile, and a search range within the current PC sample for the current point is the same as a search range within the current PC sample for the further point.
[0168] Clause 25. A method according to any one of clauses 1 to 17, 24, wherein the current point is within a first tile of the current PC sample, the current PC sample includes a further point in a second tile different from the first tile, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC sample for the current point is the same as a search range within the first reference PC sample for the further point.
[0169] Clause 26. A method according to any one of clauses 1 to 25, wherein the PC sample is a point cloud frame or a sub-region within a point cloud frame.
[0170] Clause 27. The method of any one of clauses 1 to 26, wherein the at least one neighboring point includes at least one nearest neighboring point of the current point.
[0171] Clause 28. The method of any one of clauses 1 to 27, wherein the converting comprises encoding the current PC sample into the bitstream.
[0172] Clause 29. The method of any one of clauses 1 to 27, wherein the converting comprises decoding the current PC sample from the bitstream.
[0173] Clause 30. A point cloud coding method, comprising, during a conversion between a current frame of a point cloud sequence and a bitstream of the point cloud sequence, the step of: performing attribute inter prediction on a current point in the current frame based on a first coordinate system to obtain a predicted attribute value of the current point; and performing the conversion based on the predicted attribute value, wherein geometry information of the current point is expressed in a second coordinate system different from the first coordinate system.
[0174] Clause 31. The method of clause 30, wherein the first coordinate system or the second coordinate system is any one of a spherical coordinate system, a cylindrical coordinate system, a Cartesian coordinate system, or a Euclidean coordinate system.
[0175] Clause 32. The method of clause 30 or 31, further comprising a step of transforming coordinates contained in geometry information of the current frame from the second coordinate system to the first coordinate system, or a step of transforming coordinates contained in geometry information of at least one reference frame of the current frame from the second coordinate system to the first coordinate system.
[0176] Clause 33. The method of clause 32, wherein the transformation of the coordinates is performed after geometry coding.
[0177] Clause 34. The method of clause 32 or 33, wherein the transformation of the coordinates is performed before attribute coding.
[0178] Clause 35. A method according to any one of clauses 32 to 34, wherein the transformation of the coordinates is performed in an encoder and a decoder.
[0179] Clause 36. A method according to any one of clauses 32 to 35, wherein the coordinates included in the geometry information of the current frame are scaled during the transformation of the coordinates.
[0180] Clause 37. A method according to any one of clauses 32 to 36, wherein the coordinates contained in the geometry information of the at least one reference frame are scaled during the transformation of the coordinates.
[0181] Clause 38. A method according to any one of clauses 32 to 35, wherein the coordinates included in the geometry information of the current frame are scaled after the transformation of the coordinates.
[0182] Clause 39. A method according to any one of clauses 32 to 35, 38, wherein the coordinates included in the geometry information of the at least one reference frame are scaled after the transformation of the coordinates.
[0183] Clause 40. A method according to any one of clauses 32 to 35, wherein the coordinates included in the geometry information of the current frame are transformed during the transformation of the coordinates.
[0184] Clause 41. A method according to any one of clauses 32 to 35, 40, wherein the coordinates contained in the geometry information of the at least one reference frame are transformed during the transformation of the coordinates.
[0185] Clause 42. The method according to any one of clauses 32 to 35, wherein the coordinates included in the geometry information of the current frame are transformed after the transformation of the coordinates.
[0186] Clause 43. The method according to any one of clauses 32 to 35, 40, wherein the coordinates included in the geometry information of the at least one reference frame are transformed after the transformation of the coordinates.
[0187] Clause 44. A point cloud coding method comprising the step of performing a conversion between a current frame of the point cloud sequence and a bit stream of the point cloud sequence based on a frame distance between the current frame of the point cloud sequence and a further frame of the point cloud sequence, the frame distance being proportional to the distance between the current frame and the further frame in timestamp order.
[0188] Clause 45. The method of clause 44, wherein the timestamp order is a rendering order of frames of the point cloud sequence.
[0189] Clause 46. The method of clause 44, wherein the timestamp order is the order in which frames of the point cloud sequence were collected.
[0190] Clause 47. A method according to any one of clauses 44 to 46, wherein the current frame is the Mth frame in the point cloud sequence according to the timestamp order, and the further frame is the Nth frame in the point cloud sequence according to the timestamp order, M and N are each non-negative integers, and the frame distance is proportional to the difference between M and N or the absolute value of the difference between M and N.
[0191] Clause 48. The method of any one of clauses 44 to 47, wherein the frame distance between the current frame and itself is a predetermined value.
[0192] Clause 49. The method of clause 48, wherein the predetermined value is 0.
[0193] Clause 50. A method according to any one of clauses 44 to 49, wherein the further frame is a reference frame of the current frame, and the frame distance between the current frame and the reference frame is determined at an encoder or a decoder.
[0194] Clause 51. A method according to any one of clauses 44 to 49, wherein the further frame is a reference frame of the current frame, and the frame distance between the current frame and the reference frame is indicated in the bitstream.
[0195] Clause 52. The method of clause 51, wherein the frame distance is coded with one of fixed length coding, unary coding, or truncated unary coding.
[0196] Clause 53. The method of clause 51, wherein the frame distance is predictively coded.
[0197] Clause 54. A method according to any one of clauses 44 to 53, wherein an indication is indicated within the bitstream of the current frame, the indication indicating the position of the current frame in the timestamp order.
[0198] Clause 55. A method according to any one of clauses 44 to 54, wherein the further frame is one of at least one reference frame of the current frame, and the step of performing the transformation includes the steps of: for a current point in the current frame, determining at least one neighbouring point of the current point based on at least one frame distance between the current frame and the at least one reference frame; and performing the transformation based on the at least one neighbouring point.
[0199] Clause 56. The method of clause 55, wherein the at least one neighboring point includes at least one nearest neighboring point of the current point.
[0200] Clause 57. The method of clause 55 or 56, wherein the at least one reference frame includes a first reference frame having a first point, and a first geometric distance between the current point and the first point depends on a first frame distance between the current frame and the first reference frame.
[0201] Clause 58. The method of clause 57, wherein the at least one reference frame further includes a second reference frame having a second point, the first frame distance being smaller than a second frame distance between the current frame and the second reference frame, and the first geometric distance being smaller than a second geometric distance between the current point and the second point.
[0202] Clause 59. The method of clause 57 or 58, wherein the first geometric distance is determined based on the first frame distance and an initial geometric distance between the current point and the first point, the initial geometric distance being determined based on a metric between geometric positions of the current point and the first point.
[0203] Clause 60. The method of clause 59, wherein the first geometric distance is a sum of the first frame distance and the initial geometric distance.
[0204] Clause 61. The method of clause 59 or 60, wherein the metric is one of Euclidean distance, Manhattan distance, or Chebyshev distance.
[0205] Clause 62. A method according to any one of clauses 44 to 54, wherein the further frame is one of at least one reference frame of the current frame, and the step of performing the transformation comprises the steps of determining at least one weight of at least one neighbouring point of a current point in the current frame based on at least one frame distance between the current frame and the at least one reference frame, and performing the transformation based on the at least one weight.
[0206] Clause 63. The method of clause 62, wherein the at least one neighboring point includes at least one nearest neighboring point of the current point.
[0207] Clause 64. The method of clause 62 or 63, wherein the at least one neighboring point includes a first neighboring point in a first reference frame of the at least one reference frame, and a weight of the first neighboring point depends on a first frame distance between the current frame and the first reference frame.
[0208] Clause 65. The method of clause 64, wherein the at least one neighboring point further includes a second neighboring point in a second reference frame of the at least one reference frame, the first frame distance being smaller than a second frame distance between the current frame and the second reference frame, and the weight of the first neighboring point being smaller than the weight of the second neighboring point.
[0209] Clause 66. The method of clause 64 or 65, wherein the weight of the first neighboring point is determined based on the first frame distance and an original weight generated for the first neighboring point.
[0210] Clause 67. The method of clause 66, wherein the weight of the first neighboring point is the sum of the first frame distance and the generated original weight.
[0211] Clause 68. The method of any one of clauses 30 to 67, wherein the converting comprises encoding the current frame into the bitstream.
[0212] Clause 69. The method of any one of clauses 30 to 67, wherein the converting comprises decoding the current frame from the bitstream.
[0213] Clause 70. An apparatus for processing point cloud data comprising a processor and a non-transitory memory comprising instructions which, when executed by the processor, cause the processor to perform a method according to any one of clauses 1-69.
[0214] Clause 71. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of clauses 1-69.
[0215] Clause 72. 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 comprising: for a current point in a current point cloud (PC) sample of the point cloud sequence, determining at least one neighboring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges; and generating the bit stream based on the at least one neighboring point, the set of reference PC samples including a first reference PC sample and a second reference PC sample different from the first reference PC sample, and the plurality of search ranges including a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range.
[0216] Clause 73. A method for storing a bit stream of a point cloud sequence, comprising: for a current point in a current point cloud (PC) sample of the point cloud sequence, determining at least one neighboring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges; generating the bit stream based on the at least one neighboring point; and storing the bit stream in a non-transitory computer-readable recording medium, wherein the set of reference PC samples includes a first reference PC sample and a second reference PC sample different from the first reference PC sample, and the plurality of search ranges include a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range.
[0217] Clause 74. 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: performing attribute inter-prediction on a current point in a current frame of the cloud sequence based on a first coordinate system to obtain a predicted attribute value of the current point; and generating the bitstream based on the predicted attribute value, wherein geometry information of the current point is expressed in a second coordinate system different from the first coordinate system.
[0218] Clause 75. A method for storing a bitstream of a point cloud sequence, comprising: performing attribute inter prediction on a current point in a current frame of the cloud sequence based on a first coordinate system to obtain a predicted attribute value of the current point; generating the bitstream based on the predicted attribute value; and storing the bitstream in a non-transitory computer-readable recording medium, wherein geometry information of the current point is expressed in a second coordinate system different from the first coordinate system.
[0219] Clause 76. 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 comprising: performing a conversion between a current frame of the point cloud sequence and the bit stream based on a frame distance between the current frame of the point cloud sequence and a further frame of the point cloud sequence, the frame distance being proportional to the distance between the current frame and the further frame in timestamp order.
[0220] Clause 77. A method for storing a bit stream of a point cloud sequence, comprising: performing a conversion between a current frame of the point cloud sequence and the bit stream based on a frame distance between the current frame of the point cloud sequence and a further frame of the point cloud sequence; and storing the bit stream in a non-transitory computer-readable recording medium, wherein the frame distance is proportional to the distance between the current frame and the further frame in timestamp order.
[0221] Exemplary Devices 7 illustrates a block diagram of a computing device 700 capable of implementing various embodiments of the present disclosure. The computing device 700 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).
[0222] It will be appreciated that the computing device 700 illustrated in FIG. 7 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.
[0223] 7, the computing device 700 includes a general purpose computing device 700. The computing device 700 may include at least one or more processors or processing units 710, a memory 720, a storage unit 730, one or more communication units 740, one or more input devices 750, and one or more output devices 760.
[0224] In some embodiments, the computing device 700 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 700 may support any type of interface to a user, such as "wearable" circuitry.
[0225] The processing unit 710 may be a physical or virtual processor and may perform various processes based on programs stored in the memory 720. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing capabilities of the computing device 700. The processing unit 710 may be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.
[0226] Computing device 700 typically includes a variety of computer storage media. Such media may be any media accessible by computing device 700, including, but not limited to, volatile and non-volatile media, or removable and non-removable media. Memory 720 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 730 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 700, and may include a machine-readable medium, such as a memory, a flash memory drive, a magnetic disk, or another medium.
[0227] The computing device 700 may further include additional removable / non-removable, volatile / non-volatile memory media. Although not shown in FIG. 7, 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.
[0228] The communication unit 740 communicates with further computing devices via a communication medium. Furthermore, the functionality of the components in the computing device 700 may be implemented by a single computing cluster or multiple computing machines that may communicate via a communication connection. Thus, the computing device 700 may operate in a networked environment using logical connections with one or more other servers, networked personal computers (PCs), or further general network nodes.
[0229] The input device 750 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 760 may be one or more of a variety of output devices such as a display, a speaker, a printer, etc. The communication unit 740 may further enable the computing device 700 to 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 700, or any device (such as a network card, a modem, etc.) allowing the computing device 700 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).
[0230] In some embodiments, instead of being integrated into a single device, some or all of the components of computing device 700 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 a server located in a remote location. 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 located in a remote location. Alternatively, they may be provided from a traditional server or installed directly or otherwise on the client device.
[0231] The computing device 700 may be used to perform point cloud encoding / decoding in embodiments of the present disclosure. The memory 720 may include one or more point cloud coding modules 725 having one or more program instructions. These modules are accessible and executable by the processing unit 710 to perform the functions of various embodiments described herein.
[0232] In an example embodiment performing point cloud encoding, the input device 750 may receive point cloud data to be encoded as an input 770. The point cloud data may be processed, for example, by the point cloud coding module 725 to generate an encoded bitstream. The encoded bitstream may be provided as an output 780 via the output device 760.
[0233] In an example embodiment performing point cloud decoding, the input device 750 may receive an encoded bitstream as an input 770. The encoded bitstream may be processed, for example, by the point cloud coding module 725 to generate decoded point cloud data. The decoded GPCC data may be provided as output 780 via the output device 760.
[0234] 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: During conversion between a current point cloud (PC) sample of a point cloud sequence and a bit stream of the point cloud sequence, determining, for a current point in the current PC sample, at least one neighboring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges; performing the transformation based on the at least one neighboring point; A method according to the present invention, wherein the set of reference PC samples includes a first reference PC sample and a second reference PC sample different from the first reference PC sample, and the multiple search ranges include a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range.
2. A search range for attributed intra prediction of the current PC sample among the plurality of search ranges is different from a search range for attributed inter prediction of the current PC sample among the plurality of search ranges; The method of claim 1.
3. A search range for attributed intra prediction of the current PC sample among the plurality of search ranges is the same as a search range for attributed inter prediction of the current PC sample among the plurality of search ranges. The method of claim 1.
4. attribute intra prediction and attribute inter prediction are performed for the current PC sample, the attribute intra prediction is performed for further PC samples of the point cloud sequence, the attribute inter prediction is not performed for the further PC samples, and a search range for the attribute intra prediction of the current PC sample is different from a search range for the attribute intra prediction of the further PC sample. The method of claim 1.
5. The plurality of search ranges are determined by an encoder or a decoder. The method according to any one of claims 1 to 4.
6. the current PC sample includes a further point different from the current point, and a search range within the current PC sample for the current point is different from a search range within the current PC sample for the further point; The method according to any one of claims 1 to 5.
7. the current PC samples include a further point different from the current point, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC samples for the current point is different from a search range within the first reference PC samples for the further point; The method according to any one of claims 1 to 6.
8. the current PC sample includes a further point different from the current point, and a search range within the current PC sample for the current point is the same as a search range within the current PC sample for the further point. The method according to any one of claims 1 to 5.
9. the current PC samples include a further point different from the current point, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC samples for the current point is the same as a search range within the first reference PC samples for the further point; The method according to any one of claims 1 to 5 and 8.
10. the current point is within a first level of detail (LOD) of the current PC sample, the current PC sample includes a further point in a second LOD different from the first LOD, and a search range within the current PC sample for the current point is different from a search range within the current PC sample for the further point; The method according to any one of claims 1 to 9.
11. the current point is within a first LOD of the current PC sample, the current PC sample includes a further point within a second LOD different from the first LOD, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC sample for the current point is different from a search range within the first reference PC sample for the further point; The method according to any one of claims 1 to 10.
12. the current point is within a first LOD of the current PC sample, the current PC sample includes a further point within a second LOD different from the first LOD, and a search range within the current PC sample for the current point is the same as a search range within the current PC sample for the further point; The method according to any one of claims 1 to 9.
13. the current point is within a first LOD of the current PC sample, the current PC sample includes a further point within a second LOD different from the first LOD, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC sample for the current point is the same as a search range within the first reference PC sample for the further point; The method according to any one of claims 1 to 9 and 12.
14. the current point is within a first refinement level of the current PC sample, the current PC sample including a first point within a refinement level lower than the first refinement level and a second point within a refinement level higher than the first refinement level; a search range within the current PC sample relative to the current point; a search range within the current PC sample for the first point; or At least two of the search ranges within the current PC sample for the second point are different from each other. The method according to any one of claims 1 to 9.
15. the current point is within a first refinement level of the current PC sample, the current PC sample including a first point within a refinement level lower than the first refinement level and a second point within a refinement level higher than the first refinement level, and the set of reference PC samples includes a first reference PC sample; a search range within the first reference PC sample relative to the current point; a search range within the first reference PC sample for the first point; or At least two of the search ranges in the first reference PC sample for the second point are different from each other; The method according to any one of claims 1 to 9 and 14.
16. the current point is within a first refinement level of the current PC sample, the current PC sample including a first point within a refinement level lower than the first refinement level and a second point within a refinement level higher than the first refinement level; a search range within the current PC sample relative to the current point; a search range within the current PC sample for the first point; or At least two of the search ranges within the current PC sample for the second point are the same. The method according to any one of claims 1 to 9.
17. the current point is within a first refinement level of the current PC sample, the current PC sample including a first point within a refinement level lower than the first refinement level and a second point within a refinement level higher than the first refinement level, and the set of reference PC samples includes a first reference PC sample; a search range within the first reference PC sample relative to the current point; a search range within the first reference PC sample for the first point; or At least two of the search ranges in the first reference PC sample for the second point are the same. The method according to any one of claims 1 to 9 and 16.
18. the current point is in a first slice of the current PC sample, the current PC sample includes a further point in a second slice different from the first slice, and a search range in the current PC sample for the current point is different from a search range in the current PC sample for the further point; The method according to any one of claims 1 to 17.
19. the current point is in a first slice of the current PC samples, the current PC samples include a further point in a second slice different from the first slice, the set of reference PC samples includes a first reference PC sample, and a search range in the first reference PC samples for the current point is different from a search range in the first reference PC samples for the further point; The method according to any one of claims 1 to 18.
20. the current point is in a first slice of the current PC sample, the current PC sample includes a further point in a second slice different from the first slice, and a search range in the current PC sample for the current point is the same as a search range in the current PC sample for the further point. The method according to any one of claims 1 to 17.
21. the current point is in a first slice of the current PC samples, the current PC samples include a further point in a second slice different from the first slice, the set of reference PC samples includes a first reference PC sample, and a search range in the first reference PC samples for the current point is the same as a search range in the first reference PC samples for the further point. The method according to any one of claims 1 to 17 and 20.
22. the current point is within a first tile of the current PC sample, the current PC sample includes a further point in a second tile different from the first tile, and a search range within the current PC sample for the current point is different from a search range within the current PC sample for the further point; The method according to any one of claims 1 to 17.
23. the current point is within a first tile of the current PC samples, the current PC samples include a further point in a second tile different from the first tile, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC samples for the current point is different from a search range within the first reference PC samples for the further point; The method according to any one of claims 1 to 17 and 22.
24. the current point is within a first tile of the current PC sample, the current PC sample includes a further point in a second tile different from the first tile, and a search range within the current PC sample for the current point is the same as a search range within the current PC sample for the further point; The method according to any one of claims 1 to 17.
25. the current point is within a first tile of the current PC samples, the current PC samples include a further point in a second tile different from the first tile, the set of reference PC samples includes a first reference PC sample, and a search range within the first reference PC samples for the current point is the same as a search range within the first reference PC samples for the further point. The method according to any one of claims 1 to 17 and 24.
26. A PC sample is a point cloud frame or a sub-region within a point cloud frame.
26. The method according to any one of claims 1 to 25.
27. the at least one neighboring point includes at least one nearest neighboring point of the current point; 27. The method according to any one of claims 1 to 26.
28. the converting includes encoding the current PC sample into the bitstream.
28. The method according to any one of claims 1 to 27.
29. the converting includes decoding the current PC sample from the bitstream.
28. The method according to any one of claims 1 to 27.
30. During a conversion between a current frame of a point cloud sequence and a bitstream of the point cloud sequence, performing attribute inter prediction on a current point in the current frame based on a first coordinate system to obtain a predicted attribute value of the current point; performing the transformation based on the predicted attribute values; the geometric information of the current point is expressed in a second coordinate system different from the first coordinate system; Point cloud coding method.
31. The first coordinate system or the second coordinate system is Spherical coordinate system, Cylindrical coordinate system, Cartesian coordinate system, or Euclidean coordinate system, 31. The method of claim 30.
32. transforming coordinates contained in geometry information of the current frame from the second coordinate system to the first coordinate system; or and transforming coordinates contained in geometry information of at least one reference frame of the current frame from the second coordinate system to the first coordinate system.
32. The method of claim 30 or 31.
33. said transformation of said coordinates is performed after geometry coding; 33. The method of claim 32.
34. said transformation of said coordinates is performed prior to attribute coding; 34. The method of claim 32 or 33.
35. the transformation of the coordinates is performed in an encoder and a decoder; The method according to any one of claims 32 to 34.
36. the coordinates included in the geometry information of the current frame are scaled during the transformation of the coordinates; The method according to any one of claims 32 to 35.
37. the coordinates included in the geometry information of the at least one reference frame are scaled during the transformation of the coordinates. The method according to any one of claims 32 to 36.
38. the coordinates included in the geometry information of the current frame are scaled after the transformation of the coordinates; The method according to any one of claims 32 to 35.
39. the coordinates included in the geometry information of the at least one reference frame are scaled after the transformation of the coordinates. The method according to any one of claims 32 to 35 and 38.
40. the coordinates included in the geometry information of the current frame are transformed during the transformation of the coordinates. The method according to any one of claims 32 to 35.
41. the coordinates included in the geometric information of the at least one reference frame are transformed during the transformation of the coordinates. The method according to any one of claims 32 to 35 and 40.
42. the coordinates included in the geometry information of the current frame are transformed after the transformation of the coordinates; The method according to any one of claims 32 to 35.
43. the coordinates included in the geometry information of the at least one reference frame are transformed after the transformation of the coordinates; The method according to any one of claims 32 to 35 and 40.
44. performing a conversion between the current frame of the point cloud sequence and a bit stream of the point cloud sequence based on a frame distance between the current frame of the point cloud sequence and a further frame of the point cloud sequence; the frame distance being proportional to the distance between the current frame and the further frame in timestamp order; Point cloud coding method.
45. the timestamp order being the rendering order of the frames of the point cloud sequence; 45. The method of claim 44.
46. The timestamp order is the order in which the frames of the point cloud sequence were collected.
45. The method of claim 44.
47. the current frame is the Mth frame in the point cloud sequence according to the timestamp order, the further frame is the Nth frame in the point cloud sequence according to the timestamp order, M and N are each non-negative integers, and the frame distance is proportional to the difference between M and N or the absolute value of the difference between M and N.
47. The method according to any one of claims 44 to 46.
48. the frame distance between the current frame and itself is a predetermined value; 48. The method according to any one of claims 44 to 47.
49. The predetermined value is 0.
49. The method of claim 48.
50. the further frame is a reference frame of the current frame, and the frame distance between the current frame and the reference frame is determined at an encoder or a decoder.
50. The method according to any one of claims 44 to 49.
51. the further frame is a reference frame of the current frame, and the frame distance between the current frame and the reference frame is indicated in the bitstream.
50. The method according to any one of claims 44 to 49.
52. the frame distance is coded with one of fixed length coding, unary coding, or truncated unary coding; 52. The method of claim 51.
53. The frame distance is predictively coded.
52. The method of claim 51.
54. an indication is indicated within the bitstream of the current frame, the indication indicating a position of the current frame in the timestamp order.
54. The method according to any one of claims 44 to 53.
55. the further frame being one of at least one reference frame of the current frame; The step of performing the conversion comprises: determining, for a current point in the current frame, at least one neighboring point of the current point based on at least one frame distance between the current frame and the at least one reference frame; and performing the transformation based on the at least one neighboring point.
55. The method according to any one of claims 44 to 54.
56. the at least one neighboring point includes at least one nearest neighboring point of the current point; 56. The method of claim 55.
57. the at least one reference frame includes a first reference frame having a first point, and a first geometric distance between the current point and the first point is dependent on a first frame distance between the current frame and the first reference frame; 57. The method of claim 55 or 56.
58. the at least one reference frame further includes a second reference frame having a second point, the first frame distance being smaller than a second frame distance between the current frame and the second reference frame, and the first geometric distance being smaller than a second geometric distance between the current point and the second point; 58. The method of claim 57.
59. the first geometric distance is determined based on the first frame distance and an initial geometric distance between the current point and the first point, the initial geometric distance being determined based on a metric between geometric positions of the current point and the first point.
59. The method of claim 57 or 58.
60. the first geometric distance is the sum of the first frame distance and the initial geometric distance; 60. The method of claim 59.
61. The metric is: Euclidean distance, Manhattan distance, or One of the Chebyshev distances, 61. The method of claim 59 or 60.
62. the further frame being one of at least one reference frame of the current frame; The step of performing the conversion comprises: determining at least one weight of at least one neighboring point of a current point in the current frame based on at least one frame distance between the current frame and the at least one reference frame; performing the transformation based on the at least one weight.
55. The method according to any one of claims 44 to 54.
63. the at least one neighboring point includes at least one nearest neighboring point of the current point; 63. The method of claim 62.
64. the at least one neighboring point includes a first neighboring point in a first reference frame of the at least one reference frame, and a weight of the first neighboring point depends on a first frame distance between the current frame and the first reference frame.
64. The method of claim 62 or 63.
65. the at least one neighboring point further includes a second neighboring point in a second reference frame of the at least one reference frame, the first frame distance being less than a second frame distance between the current frame and the second reference frame, and the weight of the first neighboring point being less than a weight of the second neighboring point; 65. The method of claim 64.
66. the weight of the first neighboring point is determined based on the first frame distance and an original weight generated for the first neighboring point.
66. The method of claim 64 or 65.
67. the weight of the first neighbor is the sum of the first frame distance and the original weight generated.
67. The method of claim 66.
68. the converting includes encoding the current frame into the bitstream.
68. The method according to any one of claims 30 to 67.
69. the converting includes decoding the current frame from the bitstream.
68. The method according to any one of claims 30 to 67.
70. 1. An apparatus for processing point cloud data, comprising a processor and a non-transitory memory comprising instructions, Apparatus, wherein the instructions, when executed by the processor, cause the processor to perform a method according to any preceding claim.
71. storing instructions for causing a processor to carry out a method according to any one of claims 1 to 69; A non-transitory computer-readable storage medium.
72. 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, for a current point in a current point cloud (PC) sample of the point cloud sequence, at least one neighboring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges; generating the bitstream based on the at least one neighboring point; the set of reference PC samples includes a first reference PC sample and a second reference PC sample different from the first reference PC sample, and the plurality of search ranges includes a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range; A non-transitory computer-readable recording medium.
73. 1. A method for storing a bitstream of a point cloud sequence, comprising: determining, for a current point in a current point cloud (PC) sample of the point cloud sequence, at least one neighboring point in a set of reference PC samples of the current PC sample based on a plurality of search ranges; generating the bitstream based on the at least one neighboring point; storing the bitstream in a non-transitory computer-readable recording medium; A method according to the present invention, wherein the set of reference PC samples includes a first reference PC sample and a second reference PC sample different from the first reference PC sample, and the multiple search ranges include a first search range for the first reference PC sample and a second search range for the second reference PC sample different from the first search range.
74. 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: performing attribute inter prediction on a current point in a current frame of the point cloud sequence based on a first coordinate system to obtain a predicted attribute value of the current point; generating the bitstream based on the predicted attribute values; the geometric information of the current point is expressed in a second coordinate system different from the first coordinate system; A non-transitory computer-readable recording medium.
75. 1. A method for storing a bitstream of a point cloud sequence, comprising: performing attribute inter prediction on a current point in a current frame of the point cloud sequence based on a first coordinate system to obtain a predicted attribute value of the current point; generating the bitstream based on the predicted attribute values; storing the bitstream in a non-transitory computer readable recording medium; Including, The method, wherein the geometric information of the current point is expressed in a second coordinate system that is different from the first coordinate system.
76. 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: performing a conversion between the current frame of the point cloud sequence and the bitstream based on a frame distance between the current frame of the point cloud sequence and a further frame of the point cloud sequence; the frame distance being proportional to the distance between the current frame and the further frame in timestamp order; A non-transitory computer-readable recording medium.
77. 1. A method for storing a bitstream of a point cloud sequence, comprising: performing a conversion between the current frame of the point cloud sequence and the bitstream based on a frame distance between the current frame of the point cloud sequence and a further frame of the point cloud sequence; storing the bitstream in a non-transitory computer-readable recording medium; The method of claim 1, wherein the frame distance is proportional to the distance between the current frame and the further frame in timestamp order.