Method and device for point cloud coding and decoding and medium
By obtaining target information in point cloud encoding and decoding and optimizing the application conditions of inter-frame prediction, the problems of inaccurate search and high computational complexity in point cloud attribute inter-frame prediction design are solved, and more efficient codec quality is achieved.
Patent Information
- Application Number
- CN202380051959.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-07-09
- Filing Date
- 2023-06-30
- Publication Date
- 2025-03-14
AI Technical Summary
The existing inter-frame prediction design of point cloud attributes has problems such as inaccurate search, high computational complexity and low prediction efficiency.
By obtaining target information about whether the current point cloud sample is enabled for inter-frame prediction, converting based on rate information or distortion information, the application conditions of inter-frame prediction are optimized, and different search ranges are used in different directions and frames.
While maintaining the encoding and decoding quality, reduce the encoding and decoding bits and improve the encoding and decoding quality of point cloud encoding and decoding.
Smart Images

Figure CN119631402A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure generally relate to point cloud encoding and decoding techniques, and more particularly, to inter-frame prediction for point cloud attribute encoding and decoding. Background Art
[0002] A point cloud is a collection of individual data points in a three-dimensional (3D) plane, with each point having set coordinates on the X, Y, and Z axes. Point clouds can therefore be used to represent the physical content of 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 self-driving cars.
[0003] Point cloud codec standards have evolved primarily through developments within the renowned MPEG organization. MPEG stands for Moving Picture Experts Group, one of the main standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Codec Group (3DG) released a Call for Proposals (CFP) document to begin the development of point cloud codec standards. The final standard will encompass two categories of solutions. Video-based point cloud compression (V-PCC or VPCC) is suitable for point sets with relatively uniform point distribution. Geometry-based point cloud compression (G-PCC or GPCC) is suitable for more sparse distributions. However, there is an overall desire to further improve the codec quality of conventional point cloud codec techniques. Summary of the invention
[0004] The embodiments of the present disclosure provide a solution for point cloud encoding and decoding.
[0005] In a first aspect, a method for point cloud encoding and decoding is provided. The method comprises: for conversion between a current point cloud (PC) sample of a point cloud sequence and a bitstream of the point cloud sequence, obtaining target information about whether to enable attribute inter-frame prediction for the current PC sample, the target information being determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction, wherein the at least one target PC sample comprises at least one of the following: the current PC sample, or at least one PC sample of the point cloud sequence that is encoded and decoded before the current PC sample; and performing conversion based on the target information.
[0006] Based on the method according to the first aspect of the present disclosure, target information about whether to enable attribute inter-frame prediction for the current PC sample is determined based on relevant rate information or distortion information. Compared with conventional solutions, the proposed method can advantageously reduce the codec bits while maintaining the codec quality, and improve the codec quality of point cloud codec.
[0007] In a second aspect, a device for point cloud encoding and decoding is provided. The device includes a processor and a non-volatile memory having instructions thereon. When the instructions are executed by the processor, the processor executes the method according to the first aspect of the present disclosure.
[0008] In a third aspect, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores instructions, wherein the instructions enable a processor to execute the method according to the first aspect of the present disclosure.
[0009] In a fourth aspect, another non-transitory computer-readable recording medium is proposed. The non-transitory computer-readable recording medium stores a bitstream of a point cloud sequence, which is generated by a method performed by an apparatus for point cloud encoding and decoding. The method includes: obtaining target information about whether attribute inter-frame prediction is enabled for a current point cloud (PC) sample of the point cloud sequence, the target information being determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction, wherein the at least one target PC sample includes at least one of the following: a current PC sample, or at least one PC sample of the point cloud sequence that is encoded and decoded before the current PC sample; and generating a bitstream based on the target information.
[0010] In a fifth aspect, a method for storing a bitstream of a point cloud sequence is provided. The method includes: obtaining target information about whether attribute inter-frame prediction is enabled for a current point cloud (PC) sample of the point cloud sequence, the target information being determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction, wherein the at least one target PC sample includes at least one of the following: the current PC sample, or at least one PC sample of the point cloud sequence that is encoded and decoded before the current PC sample; generating a bitstream based on the target information; and storing the bitstream in a non-transitory computer-readable recording medium.
[0011] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The above and other objects, features and advantages of example embodiments of the present disclosure will become more apparent from the following detailed description with reference to the accompanying drawings, in which like reference numerals generally refer to like components throughout the example embodiments of the present disclosure.
[0013] Figure 1 is a block diagram illustrating an example point cloud encoding and decoding system that may utilize the techniques of the present disclosure;
[0014] Figure 2 A block diagram of an example point cloud encoder according to some embodiments of the present disclosure is shown;
[0015] Figure 3 shows a block diagram of an example point cloud decoder according to some embodiments of the present disclosure;
[0016] Figure 4 A flowchart of a method for point cloud encoding and decoding according to some embodiments of the present disclosure is shown;
[0017] Figure 5 A block diagram of a computing device is shown in which various embodiments of the present disclosure may be implemented.
[0018] Throughout the drawings, the same or similar reference numbers generally refer to the same or similar elements. DETAILED DESCRIPTION
[0019] The principle of the present disclosure will now be described with reference to some embodiments. It should be understood that these embodiments are described only to illustrate and help those skilled in the art to understand and implement the present disclosure, and do not imply any limitation on the scope of the present disclosure. In addition to the methods described below, the disclosure described herein can also be implemented in various ways.
[0020] In the following description and claims, unless defined otherwise, 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.
[0021] References to "one embodiment," "an embodiment," "an example embodiment," and the like in this disclosure indicate that the described embodiment may include a particular feature, structure, or characteristic, but it is contemplated that not every embodiment must include the particular feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in conjunction with an example embodiment, whether or not explicitly described, it is considered to be within the knowledge of those skilled in the art to affect such feature, structure, or characteristic in relation to other embodiments.
[0022] It should be understood that although the terms "first" and "second" etc. can be used to describe various elements, these elements should not be limited to these terms. These terms are only used to distinguish one element from another element. For example, a first element can be referred to as a second element, and similarly, a second element can 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.
[0023] The terms used herein are only used for the purpose of describing specific embodiments and are not intended to limit the exemplary embodiments. As used herein, the singular forms "a", "an", and "the" are also intended to include the plural forms, unless the context clearly indicates otherwise. It should also be understood that the terms "include", "including", "have", "have", "include" and / or "include" when used herein indicate the presence of the features, elements and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components and / or combinations thereof. Example Environment
[0024] Figure 1 is a block diagram illustrating an example point cloud encoding and decoding system 100 that can utilize the technology of the present disclosure. As shown, the point cloud encoding and decoding system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a point cloud encoding device, and the destination device 120 may also be referred to as a point cloud decoding device. In operation, the source device 110 may be configured to generate encoded point cloud data, and the destination device 120 may be configured to decode the encoded point cloud data generated by the source device 110. The technology of the present disclosure is generally directed to encoding and decoding (encoding and / or decoding) point cloud data, that is, supporting point cloud compression. The encoding and decoding can be effective in compressing and / or decompressing point cloud data.
[0025] The source device 100 and the 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, telephone handsets (e.g., smart phones and mobile phones), televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, vehicles (e.g., land or sea vehicles, spacecraft, aircraft, etc.), robots, lidar devices, satellites, extended reality devices, etc. In some cases, the source device 100 and the destination device 120 may be equipped with wireless communication capabilities.
[0026] 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. According to 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 the techniques related to point cloud encoding and decoding of the present disclosure. Therefore, 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 or 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 interface with an external data consumer instead of including the data consumer in the same device.
[0027] In general, the data source 112 represents a source of point cloud data (i.e., raw, unencoded point cloud data) and can provide a continuous series of "frames" of point cloud data to the GPCC encoder 116, which encodes the point cloud data for the frames. In some examples, the data source 112 generates point cloud data. The data source 112 of the source device 100 can include a point cloud capture device, such as any of a variety of cameras or sensors, for example, one or more cameras, an archive covering previously captured point cloud data, a 3D scanner or a light radar (LIDAR) device, and / or a data feed interface for receiving point cloud data from a data content provider. Therefore, in some examples, the data source 112 can generate point cloud data based on a signal from a LIDAR device. Alternatively or additionally, the point cloud data can be generated by a scanner, camera, sensor, or other data through a computer. For example, the data source 112 can generate point cloud data, or a combination of real-time point cloud data, archived point cloud data, and computer-generated point cloud data. In each case, the GPCC encoder 116 encodes captured, pre-captured, or computer-generated point cloud data. For encoding and decoding, the GPCC encoder 116 can rearrange the frames of the point cloud data from the received order (sometimes referred to as "display order") to the encoding and decoding order. The GPCC encoder 116 can generate one or more bit streams containing encoded point cloud data. The source device 100 can then output the encoded point cloud data via the I / O interface 118 for reception and / or retrieval by, for example, the I / O interface 128 of the destination device 120. The encoded point cloud data can be transmitted directly to the destination device 120 via the network 130A via the I / O interface 118. The encoded point cloud data can also be stored on the storage medium / server 130B for access by the destination device 120.
[0028] The memory 114 of the source device 100 and the memory 124 of the destination device 120 may represent general purpose memory. In some examples, the memory 114 and the memory 124 may store raw point cloud data, for example, raw point cloud data from the data source 112 and raw, decoded point cloud data from the GPCC decoder 126. Additionally or alternatively, the memory 114 and the memory 124 may store software instructions that may be executed by, for example, the GPCC encoder 116 and the GPCC decoder 126, respectively. Although in this example, the memory 114 and the memory 124 are shown separately from the GPCC encoder 116 and the GPCC decoder 126, it should be understood that the GPCC encoder 116 and the GPCC decoder 126 may also include internal memory for functionally similar or equivalent purposes. In addition, the memory 114 and the memory 124 may store encoded point cloud data, for example, 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, for example, to store raw, decoded, and / or encoded point cloud data.For example, memory 114 and memory 124 may store point cloud data.
[0029] I / O interface 118 and I / O interface 128 may represent a wireless transmitter / receiver, a modem, a wired network component (e.g., an Ethernet card), a wireless communication component that operates according to any of a variety of 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 (e.g., 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 (e.g., IEEE 802.11 specifications). In some examples, source device 100 and / or destination device 120 may include corresponding system-on-chip (SoC) devices. For example, source device 100 may include a SoC device to perform the functions attributed to GPCC encoder 116 and / or I / O interface 118 , and destination device 120 may include a SoC device to perform the functions attributed to GPCC decoder 126 and / or I / O interface 128 .
[0030] The techniques disclosed herein may be applied to encoding and decoding to support any of a variety of applications, such as communications between autonomous vehicles, communications between scanners, cameras, sensors and processing devices (e.g., local or remote servers), geographic mapping, or other applications.
[0031] The I / O interface 128 of the destination device 120 receives the encoded bitstream from the source device 110, and the encoded bitstream may contain signaling information defined by the GPCC encoder 116, which is also used by the GPCC decoder 126, such as a syntax element having a value representing a point cloud. The data consumer 122 uses the decoded data. For example, the data consumer 122 can use the decoded point cloud data to determine the location of the object point. In some examples, the data consumer 122 may include a display to present an image based on the point cloud data.
[0032] Each of the GPCC encoder 116 and the GPCC decoder 126 may be implemented as any of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the technology is partially implemented in software, the device may store instructions for the software in a suitable, non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the technology of the present disclosure. Each of the GPCC encoder 116 and the GPCC decoder 126 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined encoder / decoder (CODEC) in a corresponding 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.
[0033] The GPCC encoder 116 and the GPCC decoder 126 may operate according to a codec standard, such as the Video Point Cloud Compression (VPCC) standard or the Geometry Point Cloud Compression (GPCC) standard. The present disclosure may generally refer to the coding and decoding of frames (e.g., encoding and decoding) to include the process of encoding or decoding data. The encoded bitstream typically includes a series of values for syntax elements that represent codec decisions (e.g., codec modes).
[0034] A point cloud can cover a set of points in 3D space and can have attributes associated with the point. The attribute can be color information such as R, G, B or Y, Cb, Cr or reflectivity information, or other attributes. Point clouds can be captured by various cameras or sensors such as LiDAR sensors and 3D scanners, or they can be generated by computers. Point cloud data is used in a variety of applications, including but not limited to architecture (modeling), mapping (3D models for visualization and animation), and the automotive industry (LiDAR sensors to help navigation).
[0035] Figure 2is a block diagram showing an example of a GPCC encoder 200 according to some embodiments of the present disclosure, which may be Figure 1 An example of a GPCC encoder 116 in the system 100 is shown. Figure 3 is a block diagram showing an example of a GPCC decoder 300 according to some embodiments of the present disclosure, which may be Figure 1 An example of a GPCC decoder 126 in the system 100 is shown.
[0036] In the GPCC encoder 200 and the GPCC decoder 300, the point cloud position is first encoded and decoded. The attribute encoding and decoding depends on the decoded geometry. Figure 2 and Figure 3 , the region adaptive hierarchical transform (RAHT) unit 218, the surface approximation analysis unit 212, the RAHT unit 314, and the surface approximation synthesis unit 310 are options that are commonly 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 commonly used for category 3 data. All other units are common between category 1 and category 3.
[0037] For category 3 data, the compressed geometry is typically represented as an octree from the root down to the leaf level for each voxel. For category 1 data, the compressed geometry is typically represented by a pruned octree (i.e., an octree from the root down to the leaf level for blocks larger than a voxel) plus a model that approximates the surface within each leaf of the pruned octree. In this way, category 1 and category 3 data share the octree codec mechanism, while category 1 data can additionally approximate the voxels within each leaf with a surface model. The surface model used is a triangulation of 1 to 10 triangles per block, resulting in a triangle soup. Therefore, category 1 geometry codecs are called triangle soup geometry codecs, while category 3 geometry codecs are called octree geometry codecs.
[0038] exist Figure 2 In the example, the GPCC encoder 200 may include a coordinate transformation unit 202, a color transformation unit 204, a voxelization unit 206, an attribute transfer unit 208, an octree analysis unit 210, a surface approximation analysis unit 212, an arithmetic coding unit 214, a geometric reconstruction unit 216, a RAHT unit 218, an LOD generation unit 220, a lifting unit 222, a coefficient quantization unit 224 and an arithmetic coding unit 226.
[0039] like Figure 2As shown in the example of , the GPCC encoder 200 can receive a set of positions and a set of attributes. The positions can include the coordinates of the points in the point cloud. The attributes can include information about the points in the point cloud, such as the color associated with the points in the point cloud.
[0040] The coordinate transformation unit 202 may apply a transformation to the coordinates of the point to transform the coordinates from the initial domain to the transformed domain. The present disclosure may refer to the transformed coordinates as transformed coordinates. The color transformation unit 204 may apply a transformation to transform the color information of the attribute to a different domain. For example, the color transformation unit 204 may transform the color information from the RGB color space to the YCbCr color space.
[0041] In addition, Figure 2 In the example of , the 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 subsumed into a single "voxel", which may thereafter be considered as a point in some aspects. In addition, the octree analysis unit 210 may generate an octree based on the voxelized transformed coordinates. Additionally, in Figure 2 In the example of , the surface approximation analysis unit 212 can analyze the points to potentially determine a surface representation of the set of points. The arithmetic coding unit 214 can perform arithmetic coding on syntax elements representing information of the octree and / or the surface determined by the surface approximation analysis unit 212. The GPCC encoder 200 can output these syntax elements in a geometry bitstream.
[0042] The geometric reconstruction unit 216 may reconstruct the transformed coordinates of the points in the point cloud based on the octree, the data indicating the surface determined by the surface approximation analysis unit 212, and / or other information. Due to voxelization and surface approximation, the number of transformed coordinates reconstructed by the geometric reconstruction unit 216 may be different from the number of original points of the point cloud. The present disclosure may refer to the resulting points as reconstructed points. The attribute transfer unit 208 may transfer the attributes of the original points of the point cloud to the reconstructed points of the point cloud data.
[0043] In addition, the RAHT unit 218 may apply RAHT coding to the attributes of the reconstruction 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 reconstruction 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 the syntax elements representing the quantized coefficients. The GPCC encoder 200 may output these syntax elements in the attribute bitstream.
[0044] exist Figure 3In the example, the GPCC decoder 300 may include a geometric arithmetic decoding unit 302, an attribute arithmetic decoding unit 304, an octree synthesis unit 306, an inverse quantization unit 308, a surface approximation synthesis unit 310, a geometric reconstruction unit 312, a RAHT unit 314, an LOD generation unit 316, an inverse lifting unit 318, an inverse coordinate transformation unit 320, and a color inverse transformation unit 322.
[0045] The GPCC decoder 300 may obtain a geometry bitstream and an attribute bitstream. The 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, the attribute arithmetic decoding unit 304 may apply arithmetic decoding to syntax elements in the attribute bitstream.
[0046] The octree synthesis unit 306 may synthesize the octree based on the syntax elements parsed from the geometry bitstream. In the case where surface approximation is used in the geometry bitstream, the surface approximation synthesis unit 310 may determine the surface model based on the syntax elements parsed from the geometry bitstream and based on the octree.
[0047] Furthermore, the geometry reconstruction unit 312 may perform reconstruction to determine the coordinates of the points in the point cloud. The coordinate inverse transformation unit 320 may apply an inverse transformation to the reconstructed coordinates to convert the reconstructed coordinates (positions) of the points in the point cloud from the transformed domain back to the original domain.
[0048] Additionally, in Figure 3 In the example of , the inverse quantization unit 308 may inverse quantize the property value. The property value may be based on a syntax element obtained from the property bitstream (eg, including a syntax element decoded by the property arithmetic decoding unit 304).
[0049] Depending on how the attribute values are encoded, RAHT unit 314 may perform RAHT encoding and decoding to determine color values of points in the point cloud based on the inverse quantized attribute values. Alternatively, LOD generation unit 316 and inverse lifting unit 318 may use a level of detail based technique to determine color values of points in the point cloud.
[0050] In addition, Figure 3 In the example of , the color inverse transform unit 322 can apply an inverse color transform to the color value. The inverse color transform can 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 can transform the color information from the RGB color space to the YCbCr color space. Therefore, the color inverse transform unit 322 can transform the color information from the YCbCr color space to the RGB color space.
[0051] Figure 2 and Figure 3Various units are shown to help understand the operations performed by the encoder 200 and the decoder 300. These units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Fixed-function circuits refer to circuits that provide specific functions and are preset on the operations that can be performed. Programmable circuits refer to circuits that can be programmed to perform various tasks and provide flexible functions in the operations that can be performed. For example, a programmable circuit can execute software or firmware that causes the programmable circuit to operate in a manner defined by the instructions of the software or firmware. Fixed-function circuits can execute software instructions (for example, to receive parameters or output parameters), but the types of operations performed by fixed-function circuits are generally immutable. In some examples, one or more of these units may be different circuit blocks (fixed-function or programmable), and in some examples, one or more of these units may be integrated circuits.
[0052] Some exemplary embodiments of the present disclosure are described in detail below. It should be understood that the section titles used in this document are for ease of understanding and do not limit the embodiments disclosed in the section to only that section. In addition, although some embodiments are described with reference to GPCC or other specific point cloud codecs, the disclosed technology is also applicable to other point cloud coding and decoding technologies. In addition, although some embodiments describe the point cloud coding and decoding steps in detail, it should be understood that the corresponding decoding steps of the undo coding will be implemented by the decoder. In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by ordinary technicians in the field to which the present disclosure belongs. 1. Overview The present disclosure relates to point cloud codec techniques. Specifically, it is related to point cloud attribute prediction in inter-frame prediction. These ideas can be applied to any point cloud codec standard or non-standard point cloud codec, such as the geometry-based point cloud compression (G-PCC) under development, either alone or in various combinations. 2. Abbreviations G-PCC Geometry-based Point Cloud Compression MPEG Moving Picture Experts Group 3DG 3D Graphics Codec Team CFP Call for Proposals V-PCC Video Point Cloud Compression LOD Level of Detail CE Core Experiments EE Exploration Experiment inter-EM inter-frame exploration model PC Point Cloud RDO Rate-Distortion Optimization 3. Introduction Point cloud codec standards have evolved primarily through developments within the renowned MPEG organization. MPEG stands for Moving Picture Experts Group, one of the main standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Codec Group (3DG) published a Call for Proposals (CFP) document to begin developing point cloud codec standards. The final standard will encompass two categories of solutions. Video-based point cloud compression (V-PCC or VPCC) is suitable for point sets with relatively uniform point distribution. Geometry-based point cloud compression (G-PCC or GPCC) is suitable for more sparse distributions. In order to explore the future point cloud coding and decoding technology in G-PCC, Core Experiment (CE) 13.5 and Exploration Experiment (EE) 13.2 were formed to develop inter-frame prediction technology in G-PCC. Since then, many new inter-frame prediction methods have been adopted by MPEG and put into the reference software named inter-exploration model (inter-EM). In a point cloud, there can be geometric information and attribute information. Geometric information is used to describe the geometric position of data points. Attribute information is used to record some details of data points, such as texture, normal vector, reflection, etc. Point cloud codecs can handle various information in different ways. Usually there are many optional tools in the codec to support the encoding and decoding of geometric information and attribute information respectively. 3.1 Attribute Intra Prediction In G-PCC, two attribute coding methods are proposed for attribute intra prediction using geometric information. 3.1.1 Prediction Transformation Prediction Transform is a hierarchical nearest neighbor prediction method based on interpolation, which is usually used for sparse point cloud content. First, a Level of Detail (LOD) structure is generated. Second, the nearest neighbors are searched based on the LOD structure. Then, attribute prediction is performed based on the search results. 3.1.1.1LOD Generation In the LOD generation process, the geometric information is used to build a hierarchical structure of the point cloud, which defines a set of "levels of detail". The hierarchical structure is used to efficiently predict properties. It also makes it possible to provide advanced features such as progressive transmission and scalable rendering. The LOD generation process reorganizes the point cloud points into a set of refinement levels (a set of points) R0, R1, ..., R according to the user-defined parameter L. L-1 , where L indicates the LOD number. Then the attributes of the point cloud points are encoded from R0 to R L-11 . Level of detail l, LODl By finding the refinement levels R0, R1, ..., R l The union of is obtained: LOD l =R0∪R1∪…∪R l (3-1) 3.1.1.2 Nearest Neighbor Search Considering Point Distribution In G-PCC, two neighbor lists list1 and list2 are constructed to search for the 3 approximate nearest neighbors of the current point. List1 contains 3 approximate nearest neighbors, which are obtained by the LOD-based approximate nearest neighbor search algorithm. List2 contains the 3 points deleted when list1 is updated. Considering the point distribution information, we define the concepts of strict opposition and loose opposition. According to the relative position with respect to the current point (x, y, z), for each nearest neighbor point (x n ,y n ,z n ) allocates a direction index dirIdx. According to the direction index dirIdx, strict opposite and loose opposite are defined, as shown in Table 3-1. Table 3-1: Definition of strict opposite and loose opposite according to the direction index dirIdx The final neighbor list is generated by updating list1 with the points in list2, and performing strict opposite eligibility check and loose opposite eligibility check. Note that the number of points in the final list1 can be less than 3 because there are not enough neighbors and the neighbor pruning process is performed. 3.1.1.3 Attribute prediction After obtaining list1, multiple prediction item candidates are created based on list1. Each prediction item candidate is assigned an index. Then, the variability of the attributes of the points in list1 is calculated. If the variability is less than the threshold, the weighted average is used to predict the attribute of the current point. Otherwise, the best prediction item is selected by applying the Rate-Distortion Optimization (RDO) process. 3.1.2 Lifting Transformation Lifting transform is commonly used for dense point cloud content and is built on top of the prediction transform method. The main difference between lifting transform and prediction transform is the update operator and the adaptive quantization strategy. In lifting transform, each point is associated with an influence weight value. Points with lower LOD are used more frequently and are assigned higher weight values. The influence weights are used in the quantization process. 3.2 Attribute Inter-frame Prediction In inter-EM, some inter prediction tools have been proposed to perform attributed inter coding. There is a list1 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 prediction candidates and get the prediction value of the current point in a similar way to intra coding. First, the points in the current frame and the reference frame are reordered based on the Morton code. Each point is associated with a Morton index to show the Morton order. Then, for each point, a nearest neighbor search is performed in the current frame and the reference frame. There is a parameter Search_Range to control the search range. a) In the current frame, the Search_Range points before the current point are traversed in Morton order. b) In the reference frame, the search center is the point in the reference frame with the same Morton index. The previous Search_Range point before the search center, the subsequent Search_Range points after the search center, and the search center point are searched. The nearest neighbor search is based on the Euclidean distance from the search point to the current point. The 3 nearest neighbor points are selected and stored in list1. It should be noted that the weight of the points in the reference frame should be lower than the weight of the points in the current frame. Finally, multiple prediction item candidates are created based on list1, and prediction attribute values are generated in a similar way to intra-frame coding. 4. Question The existing point cloud attribute inter-frame prediction design has the following problems: 1. In 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 reordered points in the reference frame. In some cases, points with the same Morton index have completely different geometric positions, resulting in inaccurate search and prediction results. 2. In the current inter-EM, the nearest search is performed based on the Euclidean distance. The computational complexity of the Euclidean distance is high, which affects the overall complexity of the encoding and decoding. 3. In the current inter-EM, the search range in the current frame and the search range in the reference frame are the same. However, the influence of the points in the current frame and the points in different frames on the current point is different. Using the same search range will limit the prediction efficiency. 5. Detailed solution In order to solve the above problems and some other problems not mentioned, the following summarized methods are disclosed. The solutions should be regarded as examples to explain the general concepts and should not be interpreted in a narrow way. In addition, these solutions can be applied alone or in combination in any way. In the following description, list1 may be a list storing nearest neighbors. 1) Provides an indication of whether inter prediction is applied to a frame. a. In one example, inter prediction may not be applied to a frame. i. In one example, the frame may be a random access point frame. ii. In one example, the frame may be an I-frame. b. In one example, inter prediction may be applied to a frame. c. In one example, there may be at least one indication indicating whether inter prediction is applied to a frame. i. In one example, the indication may be sent to the decoder via a signal. (1) In one example, the indication may be encoded using a fixed length codec, a unary codec, a truncated unary codec, etc. (2) In one example, the indication may be encoded or decoded in a predictive manner. 2) A property indicating whether inter prediction is enabled for a frame is proposed. a. In one example, if inter prediction is applied to a frame and attribute inter prediction is enabled, attribute inter prediction may be applied to a frame. b. In one example, there may be at least one indication of whether the property inter prediction is enabled for a frame. i. In one example, the indication may be sent to the decoder via a signal. (1) In one example, the indication may be encoded using a fixed length codec, a unary codec, a truncated unary codec, etc. (2) In one example, the indication may be encoded or decoded in a predictive manner. 3) It is proposed that at least one search center can be derived for nearest neighbor search in attribute inter prediction. a. In one example, a nearest neighbor search may be performed within a given frame to be searched. i. In one example, the given frame to be searched may be the current frame. ii. In one example, the given frame to be searched may be another frame. iii. In one example, the given frame to be searched may be a reference frame of the current frame. b. In one example, prior to the nearest neighbor search, the points in a given frame to be searched are reordered. i. In one example, the reordering may be performed based on a Morton code, a Hilbert code, or other transformation code of the points. ii. In one example, the reordering may be performed based on the polar coordinates of the points. iii. In one example, the reordering may be performed based on the spherical coordinates of the points. iv. In one example, the reordering may be performed based on the cylindrical coordinates of the points. v. In one example, reordering can be performed based on the radar's scan order. vi. In one example, the search will be done in order of the points (which can be reordered). c. In one example, there may be one search center for a given frame to be searched. i. In one example, points before the search center in the reordered order and the search center may be searched. ii. In one example, points after the search center in the reordered order and the search center may be searched. iii. In one example, the point before the search center in the reordered order, the search center, and the point after the search center in the reordered order may be searched. d. In one example, the search center may be the approximately nearest point in geometric position in the frame to be searched. i. In one example, the search center may be selected from all or part of the points in the frame to be searched. ii. In one example, the search center may be the point closest to 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 approximately closest to the current point. (1) The search center may be selected from a portion of points in 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 conversion code that is closest to the current point. (1) The distance can be the difference in conversion codes. (2) The conversion code can be Morton code, Hilbert code, etc. v. In one example, the search center may be the point on the conversion code that is approximately closest to the current point. (1) The search center may be selected from a portion of points in the frame to be searched. (2) In one example, the partial points may be points having a conversion code greater than the conversion code of the current point. (3) In one example, the partial points may be points having a conversion code smaller than the conversion code of the current point. (4) The distance can be the difference in conversion codes. (5) The conversion code can be Morton code, Hilbert code, etc. e. In one example, multiple (eg, N) search centers may be derived. i. Additionally, optionally, searches may be performed from one or more search centers. ii. In one example, the N search centers may be the N points having the N closest distances to the current point. iii. In one example, the N search centers may be the N points having the N closest conversion code distances to the current point. 4) It is proposed to use different search ranges in different directions and / or different frames. a. In one example, there may be at least one search range for a frame to be searched. i. In one example, there may be a search range to indicate the number of points to be searched before the search center. ii. In one example, there may be a search range to indicate the number of points to be searched after the search center. iii. In one example, there may be a search range to indicate the number of points to be searched before the search center and the number of points to be searched after the search center. b. In one example, there may be different search ranges for the current frame and the reference frame. c. In one example, the search ranges of different reference frames may be different. d. In one example, the search range for attribute intra prediction and the search range for attribute inter prediction may be different. e. In one example, the search range for attribute intra prediction and the search range for attribute inter prediction may be the same. f. In one example, the search range of attribute intra prediction for a frame utilizing attribute inter prediction may be different from the search range of a frame utilizing only attribute intra prediction. g. In one example, the search range can be derived at the encoder. h. In one example, the search range may be derived at the decoder. i. In one example, the search range for different encoded points in the current frame and / or reference frame(s) may be different. j. In one example, the search ranges for different encoded points in the current frame and / or reference frame(s) may be the same. k. In one example, the search ranges for different LODs in the current frame and / or reference frame(s) may be different. 1. In one example, the search ranges of different LODs in the current frame and / or reference frame(s) may be the same. m. In one example, the current refinement level, lower refinement level in the current frame and / or reference frame(s) The search range can be different between LODs and higher LODs. n. In one example, the current refinement level, lower refinement level in the current frame and / or reference frame(s) The search range between LODs and higher LODs can be the same. o. In one example, the search ranges for different slices / blocks in the current frame and / or reference frame(s) may be different. p. In one example, the search ranges of different slices / blocks in the current frame and / or reference frame(s) may be the same. 5) It is proposed to signal the search range to the decoder by encoding an indication for indicating the search range. a. In one example, at least one indication may be signaled to the decoder to indicate the search range. i. In one example, the indication may be a predefined signal when the codec performs a nearest neighbor search for all points. ii. In one example, when the search scope is selected from some predefined search scopes, The indication may be selected from some predefined signals. iii. In one example, the indication may be a value of a search range. iv. In one example, the indication may be a predefined mathematical transformation (eg, logarithm, square root, etc.) of the search range. b. In one example, the indication may be encoded using a fixed length codec, a unary codec, a truncated unary codec, etc. c. In one example, the indication may be encoded in a predictive manner. 6) Different geometric distances can be used for nearest neighbor search and neighbor weight generation in attribute inter-frame prediction. a. In one example, by performing a nearest neighbor search in the current frame and the reference frame, at least one point may be stored in list1. i. In one example, the selected point may be a point that is closest in geometric distance (eg, Euclidean distance, Manhattan distance, Chebyshev distance, etc.) to the current point. ii. In one example, the selected point may be from the searched points defined by the search center and the search range. b. In one example, the geometric distance of each point in list1 can be used for neighbor weight generation. c. In one example, the process of nearest neighbor search and neighbor weight generation can use different geometric distances. i. In one example, the Manhattan distance of each searched point can be used for nearest neighbor search, and the Euclidean distance of each point in list1 can be used for neighbor weight generation. 7) In one example, attribute inter prediction can be performed in different coordinate systems. a. 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, when geometric information is represented in a certain coordinate system, attribute inter prediction can be performed in another coordinate system. c. In one example, there may be a coordinate system transformation for the geometric information of the current frame. d. In one example, there may be a coordinate system transformation for the reference frame(s). e. In one example, coordinate system conversion may be performed after geometry encoding and decoding and / or before attribute encoding and decoding. f. In one example, coordinate system conversion can be performed at the encoder and decoder. g. In one example, the transformed coordinate system of the current frame and / or reference frame(s) may be scaled. h. Alternatively, the geometric coordinates in the transformed coordinate system of the current frame and / or reference frame(s) may be scaled. i. In one example, the converted coordinate system of the current frame and / or reference frame(s) may be transformed. j. Alternatively, the geometric coordinates in the converted coordinate system of the current frame and / or the reference frame may be transformed. 8) In one example, attribute inter prediction may be performed after the geometric shift. a. In one example, there may be an offset for the geometric information of the reference frame and the geometric information of the current frame before the attribute inter-frame prediction. i. In one example, the geometric offset for the reference frame and the geometric offset for the current frame may be the same. (1) In one example, the geometric offset for the reference frame and the geometric offset for the current frame may be the minimum position of geometric information of the two frames in a specific coordinate system. (2) In one example, the geometric offset for the reference frame and the geometric offset for the current frame may be the minimum position of geometric information of multiple frames in a specific coordinate system. a. In one example, the multiple frames may be all decoded frames and the current frame. b. Alternatively, the multiple frames may be the previous N decoded frames and the current frame. c. Alternatively, the multiple frames may be all decoded frames after the last random access point frame, the last random access point frame, and the current frame. ii. In one example, the geometric offset for the reference frame and the geometric offset for the current frame may be different. (1) In one example, the geometric offset for a frame may be the minimum position of the geometric information of the frame in a specific coordinate system. b. Alternatively, there may be no offset for the geometric information of the reference frame and the geometric information of the current frame before the attribute inter-frame prediction. 9) The frame distance may be proportional to the distance between two frames in timestamp order. a. In one example, the timestamp order may be the rendering order of the frames. b. In one example, the timestamp order may be the acquisition order of the frames. c. In one example, the frame distance between the Mth frame and the Nth frame can be MN or NM or |M- N| is proportional. d. In one example, the frame distance between a frame and itself can be 0. e. In one example, the frame distance between the current frame and the reference frame can be derived at the encoder. f. In one example, the frame distance between the current frame and the reference frame can be derived at the decoder. g. Alternatively, the frame distance between the current frame and the reference frame may be signaled to the decoder. i. In one example, the frame distance can be fixed length codec, unary codec, Or truncate one item in a unary codec being encoded. ii. In one example, the frame distance can be encoded in a predictive manner. h. A timestamp order indication may be signaled for a frame. 10) Frame distance can be used in nearest neighbor search. a. In one example, the geometric distance in the 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 a reference frame having a closer frame distance may be higher than the geometric distance of a reference point in a reference frame having a farther frame distance. i. In one example, the geometric distance of a reference point in a reference frame may be the sum of the frame distance and the original geometric distance. 11) Frame distance can be used in neighbor weight generation. a. In one example, the generated neighbor weights may depend on the frame distance between the reference frame and the current frame. b. In one example, the generated neighbor weights for a reference point in a reference frame having a closer frame distance may be higher than the generated neighbor weights for a reference point in a reference frame having a farther frame distance. i. In one example, the generated neighbor weight of a reference point in a reference frame may be the sum of the frame distance and the originally generated neighbor weight. 12) It is proposed to apply motion compensation to the reference frame before attribute inter-frame prediction. a. In one example, the motion compensation process may be preceded by motion estimation. b. In one example, there may be motion compensation for a reference frame. c. In one example, motion compensation may be applied to the reference frame prior to attribute inter prediction. d. In one example, reference frames with motion compensation may be used in attribute inter prediction. e. In one example, reference frames without motion compensation can be used in attribute inter prediction. f. In one example, an indication of whether to apply motion compensation may be signaled to a decoder. i. In one example, the indication can utilize fixed length codec, unary codec, Truncated unary codec etc. is coded. ii. In one example, the indication may be encoded in a predictive manner. 13) proposes to use compensated motion to decide whether to apply attribute inter prediction. a. In one example, the property inter prediction may only be applied to reference frames with limited geometric motion. b. In one example, geometric movement may be indicated by compensated motion. c. In one example, the compensated motion may consist of translation and rotation. d. In one example, translation can be recorded via a motion matrix / vector. e. In one example, the rotation may be recorded via a rotation matrix / vector. f. In one example, rotation can be recorded via Euler angles / quaternions / rotation angles. g. In one example, the compensated motion may be a rigid motion or a non-rigid motion. h. In one example, the compensated motion may be recorded via a matrix. i. In one example, if the compensated motion is less than a compensated motion threshold, then inter prediction may be applied to the reference frame. j. Alternatively, if the translation is smaller than the transition threshold, the attribute inter prediction may be applied to the reference frame. k. Alternatively, if the rotation is less than the rotation threshold, the attribute inter prediction may be applied to the reference frame. 1. In one example, the threshold value may be a predefined value. m. Alternatively, the threshold value may be signaled to the decoder. i. In one example, the threshold may be encoded using one of a fixed length codec, a unary codec, or a truncated unary codec. ii. In one example, the threshold value may be encoded in a predictive manner. 14) proposes to use motion information to decide whether inter prediction is enabled for a frame. a. In one example, the property inter prediction may only be applied to reference frames with limited geometric motion. b. In one example, geometric movement may be indicated by motion information. i. In one example, motion information may be provided by a source. ii. Alternatively, the motion information may be generated by a motion estimation process. iii. Alternatively, the motion information may be a compensated motion indication. c. In one example, the motion information may consist of translation and rotation. d. In one example, translation can be recorded by a motion matrix or motion vector. e. In one example, the rotation can be recorded by a rotation matrix or a rotation vector. f. In one example, the rotation can be recorded by Euler angles, quaternions, or rotation angles. g. In one example, the motion information may be rigid motion or non-rigid motion. h. In one example, motion information can be recorded by a matrix. i. In one example, if the motion information is less than the motion information threshold, the attribute inter prediction may be applied to the reference frame. j. Alternatively, if the translation is less than the translation threshold, the attribute inter prediction may be applied to the reference frame. k. Alternatively, if the rotation is less than the rotation threshold, the attribute inter prediction may be applied to the reference frame. 1. In one example, the threshold value may be a predefined value. m. Alternatively, the threshold value may be sent to the decoder side via a signal. i. In one example, the threshold value can be encoded using a fixed length codec, a unary codec, a truncated unary codec, etc. ii. In one example, the threshold value may be encoded in a predictive manner. 15) The usage rate information and / or distortion information is proposed to decide whether to enable attribute inter prediction for a frame. a. In one example, the rate information may be information indicating resource usage of a coding and decoding result. i. In one example, the rate information may be the size of the encoding and decoding result. ii. Alternatively, the rate information may be a conversion of the size of the encoding and decoding result. iii. Alternatively, the rate information may be an estimate of the size of the encoding and decoding result. b. In one example, rate information may be estimated at the encoder. i. In one example, the rate information can be estimated by performing the encoding and decoding process and counting the rate results. ii. Alternatively, the rate information may be estimated by using a rate estimation function that provides an approximation of the encoding and decoding process. c. In one example, the distortion information may be information indicating distortion between an original value and a reconstructed value. i. In one example, the distortion information may be the difference between the original value and the reconstructed value. (1) The difference can be represented by the error between the original value and the reconstructed value (such as mean square error, Mean absolute error, root mean square error, sum of squared errors, and sum of absolute errors). ii. Alternatively, the distortion information may be a transformation of the difference between the original value and the reconstructed value. iii. Alternatively, the distortion information may be an estimate of the difference between the original value and the reconstructed value. d. In one example, distortion information may be estimated at the encoder. i. In one example, the distortion information can be estimated by performing the encoding and reconstruction process and counting the distortion results. ii. Alternatively, the distortion information may be estimated by using a distortion estimation function which provides an approximation of the encoding and decoding process. e. In one example, the encoding and decoding cost information may be derived based on the rate information and the distortion information at the encoder. i. In one example, the encoding and decoding cost information may be a linear combination of rate information and distortion information, such as R+λ*D, where R is rate information, D is distortion information, and λ is a linear parameter. (1) In one example, the linear parameter λ may be predefined. (2) Alternatively, the linear parameter λ may be derived based on the coding accuracy or the quantization accuracy. f. In one example, the rate information may be used to decide whether to enable the attribute inter-frame prediction for a frame. i. In one example, the decision to enable the attribute inter prediction is made only when the rate information of the attribute inter prediction is less than the rate information of the attribute intra prediction. g. In one example, distortion information can be used to decide whether to enable inter-frame prediction for a frame. i. In one example, the decision to enable the attribute inter prediction is made only when the distortion information of the attribute inter prediction is less than the distortion information of the attribute intra prediction. h. In one example, the encoding and decoding cost information can be used to decide whether to enable inter-frame prediction for a frame. i. In one example, the decision to enable the attribute inter prediction is made only when the encoding and decoding cost information of the attribute inter prediction is less than the encoding and decoding cost information of the attribute intra prediction. i. In one example, after the encoder uses rate information and / or distortion information to decide whether to enable inter-frame prediction for a frame, the decision can be signaled in the bitstream to inform the decoder. j. In one example, a decoder may use rate information and / or distortion information to decide whether to enable inter-frame prediction for a frame. i. In one example, the decoder may use rate and / or distortion of previously decoded information to determine whether to enable inter prediction for a frame / slice / block. k. In the above description, frames may be replaced by slices / blocks or other processing units. 16) It is proposed to use the above information in combination to decide whether to enable attribute inter-frame prediction for a frame. a. The decision can be made at the encoder or the decoder. i. If the decision is made at the decoder, the decoder may use previously decoded information in a combined manner to determine whether attribute inter prediction is enabled for a frame / slice / block. b. In one example, the decision to enable the attribute inter prediction is made only when the geometric motion is smaller than at least one threshold and the encoding and decoding cost of the attribute inter prediction is smaller than the encoding and decoding cost of the attribute intra prediction. i. In one example, geometric movement may be indicated by compensation motion or motion information. ii. In one example, the encoding and decoding cost may be indicated by rate information or distortion information or coding cost information. c. In the above description, frames may be replaced by slices / blocks or other processing units. 17) It is proposed to signal whether inter-frame prediction is applied to a reference frame. a. In one example, there may be an indication indicating whether the property inter prediction is applied to a reference frame. b. In one example, the indication may be derived at the encoder. c. In one example, the indication may be signaled to the decoder. i. In one example, the indication may be encoded using one of a fixed length codec, a unary codec, or a truncated unary codec. ii. In one example, the indication may be encoded in a predictive manner. 18) It is proposed to perform attribute compensation in attribute inter prediction. a. In one example, compensated attribute values can be derived based on nearest neighbor search results and compensation parameters. b. In one example, the compensation parameters can be fixed for points in a point cloud cluster. i. In one example, a point cloud cluster may be M consecutive points. c. In one example, compensation parameters may be derived at the encoder. d. In one example, compensation parameters may be derived based on the inter-frame nearest neighbor's property values and the reconstructed values of N previously encoded points prior to the point cloud cluster. e. Alternatively, the compensation parameters may be derived based on the predicted and reconstructed values of N previously encoded points before the point cloud cluster. f. In one example, compensation parameters may be derived at the decoder. g. Alternatively, the compensation parameters may be transmitted to the decoder via a signal. i. In one example, the compensation parameters can be fixed length codec, unary codec, Or truncate one item in a unary codec being encoded. ii. In one example, the compensation parameters may be encoded in a predictive manner. 19) In attribute inter prediction, points in different LODs of the reference frame can be searched. a. In one example, points in a reference frame may be divided into one or more LODs. b. In one example, points in the current frame may be divided into one or more LODs. c. In one example, there can be one LOD level referring to the LOD of each point. d. In one example, for the current point, points with the same LOD level in the reference frame may be searched to perform a nearest neighbor search. e. In one example, for the current point, points with lower LOD levels in the reference frame may be searched to perform a nearest neighbor search. f. In one example, for the current point, a point with a higher LOD level in the reference frame may be searched to perform a nearest neighbor search. g. In one example, for the current point, points in all LOD layers in the reference frame may be searched to perform a nearest neighbor search. h. In one example, an indication may be signaled to the decoder indicating whether points in all LODs are searched. i. In one example, the indication can utilize fixed length codec, unary codec, Truncated unary codec etc. is coded. ii. In one example, the indication may be encoded in a predictive manner. i. In one example, an indication may be signaled to the decoder to indicate whether only points in the same LOD are searched. i. In one example, the indication may be signaled conditionally, for example, based on whether points in all LODs are searched. ii. In one example, the indication may utilize a fixed length codec, a unary codec, Truncated unary codec etc. is coded. iii. In one example, the indication may be encoded in a predictive manner. 20) proposed to use multiple lists to store search results in different frames and generate a list of predicted items by combining all the lists. a. In one example, there may be a first list (eg, list1) to store search results in the current frame. b. In one example, there may be a second list (eg, list2) to store the search results in each reference frame. c. In one example, the nearest neighbor search in the current frame may only change list1. d. In one example, a nearest neighbor search in one reference frame may only change the corresponding list. e. In one example, information from all points in the list can be used to generate a list of predicted items. 21) The above-mentioned “frame” can be replaced by other processing units, such as a sub-region within a frame. 22) The above method can also be applied to other coding and decoding modules in G-PCC or other search methods except the nearest neighbor search method. 6. Examples 1) This embodiment describes an example of how to perform a nearest neighbor search in attribute inter-frame prediction using Manhattan distance. In this example, the search center in the reference frame is set to the point with the closest Morton code. The search ranges of the current frame and the reference frame are both set to 128. For each frame, the reference frame is the previous frame, and attribute inter prediction is performed at the encoder and decoder. First, the points in the current frame and the reference frame are reordered. The Morton code of each point is calculated, and according to the Morton code order, the points in a frame are reordered. Second, for each point in the current frame, the 3 approximate nearest neighbors in the current frame and the reference frame are searched and stored in list1. There are 3 flags to indicate whether the nearest neighbor is from the current frame. 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. At most 3 points with the closest Manhattan distance are selected from the traversed points. The position, flag and index of each point in list1 are recorded. The Manhattan distance between two points (x1, y1, z1) and (x2, y2, z2) d is calculated as follows: d=|x1-x2|+|y1-y2|+|z1-z2|,(6-1). b. The search center of the reference frame is the point in the reference frame that has the closest Morton code to the current point. 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 Manhattan distance of the traversed point is closer than a point in list1, the traversed point is inserted into list1 and the point with the largest Manhattan distance in list1 is deleted. list1 is updated. The position, flag, and index of each point in list1 are recorded. Third, for each point in the current frame, a prediction item is generated based on the information of the point in list1, and a prediction value is generated. a. Each point in list1 has a weight value. The calculated distance of each point in list1 is calculated based on the Euclidean distance from the point to the current point. For points from the reference frame, the calculated distance should be increased by 1. The weight value of each point in list1 is the inverse of the calculated distance. Two points (x1, y1, z1) and The Euclidean distance d of (x2,y2,z2) is calculated as follows: The attributes of each point in b.list1 are obtained based on the index. c.The variability of the attributes of the points in list1 is calculated. d. If the variability is less than the threshold, the weighted average is used to predict the attribute of the current point. e. Otherwise, the best predictor is selected by applying the RDO procedure. The candidate list of predictors includes the weighted average of the points in list1 and the attribute value. The result of the RDO process is signaled to the decoder. At the decoder, a prediction value is generated based on the signaled RDO result. Finally, for each point in the current frame, the residual between the attribute of the current frame and the predicted attribute value is Encoded and transmitted to the decoder with a signal.
[0053] More details of embodiments of the present disclosure are described below, which relate to inter-frame prediction of point cloud attribute encoding and decoding. The embodiments of the present disclosure should be regarded as examples to explain general concepts and should not be interpreted in a narrow sense. In addition, these embodiments can be applied alone or in combination in any way.
[0054] As used herein, the term "point cloud sequence" may refer to a sequence of one or more point clouds. The term "point cloud frame" or "frame" may refer to a point cloud in a point cloud sequence. The term "point cloud (PC) sample" may refer to a frame, a sub-region within a frame, a slice, a block, or any other suitable processing unit.
[0055] Figure 4 4 is a flowchart of a method 400 for point cloud encoding and decoding according to some embodiments of the present disclosure. The method 400 may be implemented during the conversion between the current PC sample of the point cloud sequence and the bit stream of the point cloud sequence. Figure 4 As shown, method 400 starts at 402, where target information about whether to enable attribute inter-frame prediction for a current PC sample is obtained. The target information is determined based on rate information and / or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction. The at least one target PC sample includes the current PC sample and / or at least one PC sample of the point cloud sequence that was encoded and decoded before the current PC sample.
[0056] In some embodiments, the target information can be determined at the encoder and signaled in the bitstream. At the decoder, the target information can be obtained from the bitstream. As an example and not limitation, the indication indicating the target information can be included in the bitstream. The decoder can decode the indication from the bitstream to obtain the target information. In some alternative embodiments, the decoder can determine the target information based on rate information and / or distortion information.
[0057] At 404, a conversion is performed based on the target information. In some embodiments, the conversion may include encoding the current PC sample into a bitstream. Alternatively or additionally, the conversion may include decoding the current PC sample from the bitstream.
[0058] In view of the above, information about whether to enable attribute inter-frame prediction for the current PC sample is determined based on relevant rate information and / or distortion information. Compared with traditional solutions, the proposed method can advantageously reduce the codec bits while maintaining the codec quality. As a result, the codec quality of point cloud codec can be improved.
[0059] In some embodiments, at 404, a second indication indicating whether to apply inter-frame prediction to the current PC sample may be obtained from the bitstream. Whether to apply attribute inter-frame prediction to the current PC sample may be determined based on the target information and the second indication. Furthermore, conversion may be performed based on the determination.
[0060] In some embodiments, the target information may be determined based on at least one of the rate information or the distortion information and a geometric motion associated with the current PC sample. By way of example and not limitation, the geometric motion may include information for performing motion compensation on a reference PC sample of the current PC sample. Additionally or alternatively, the geometric motion may include motion information between the reference PC sample and the current PC sample.
[0061] In some embodiments, if the geometric motion is less than at least one threshold and the first codec cost is less than the second codec cost, it can be determined that attribute inter-frame prediction is enabled for the current PC sample. The first codec cost can be associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction, and the second codec cost can be associated with encoding and decoding at least one target PC sample using attribute intra-frame prediction. As an example and not limitation, the first codec cost can include rate information, distortion information, or cost information. The cost information can be determined based on the rate information and the distortion information, which will be described in detail below.
[0062] In some embodiments, the rate information may indicate the amount of resources used for a codec result obtained by performing a codec process on at least one target PC sample using attribute inter-frame prediction. In one example, the rate information may be the size of the codec result, such as the number of bits included in the codec result. In another example, the rate information may be a value determined based on the size. In another example, the rate information may be an estimate of the size. It should be understood that the above examples are described for descriptive purposes only. The scope of the present disclosure is not limited thereto.
[0063] In some embodiments, the rate information can be determined at the encoder. In one example, the rate information can be determined based on the number of bits included in the encoding and decoding result. Alternatively, the rate information can be determined by using a rate estimation function. The rate estimation function provides an approximation to the encoding and decoding process. By way of example and not limitation, the rate estimation function can be based on information entropy.
[0064] In some embodiments, the distortion information may indicate the distortion between the attribute value of a point of at least one target PC sample and the reconstructed attribute value of the point. The reconstructed attribute value may be determined based on the encoding and decoding result. The encoding and decoding result is obtained by performing an encoding and decoding process on at least one target PC sample using attribute inter-frame prediction. In one example, the distortion information may be the difference between the attribute value and the reconstructed attribute value. In another example, the distortion information may be a value determined based on the difference. In yet another example, the distortion information may be an estimate of the difference. It should be understood that the above examples are described for descriptive purposes only. The scope of the present disclosure is not limited thereto.
[0065] In some embodiments, the difference can be determined as an error metric between the attribute value and the reconstructed attribute value. By way of example and not limitation, the error metric can include: mean square error, mean absolute error, root mean square error, sum of squared errors, sum of absolute errors, etc. It should be understood that the above examples are described for illustrative purposes only. The scope of the present disclosure is not limited thereto.
[0066] In some embodiments, the distortion information can be determined at the encoder. In one example, based on the encoding and decoding results, the distortion results for the corresponding points of at least one target PC sample can be determined. The distortion result of the point indicates the distortion between the attribute value of the point and the reconstructed attribute value of the point. The distortion information can be determined based on the distortion result. For example, the distortion information can be determined as the sum of the distortion results or the average of the distortion results. In another example, the distortion information can be determined by using a distortion estimation function. The distortion estimation function provides an approximation of the encoding and decoding process. By way of example and not limitation, the distortion estimation function can be based on information entropy.
[0067] In some embodiments, cost information can be determined based on rate information and distortion information. Target information can be determined based on cost information. In one example, if the cost indicated by the cost information is less than the cost indicated by another cost information associated with encoding and decoding at least one target PC sample using attribute intra-frame prediction, it can be determined that attribute inter-frame prediction is enabled for the current PC sample. In another example, if the cost indicated by the cost information is less than a predetermined threshold, it can be determined that attribute inter-frame prediction is enabled for the current PC sample. It should be understood that the above examples are described for description purposes only. The scope of the present disclosure is not limited to this.
[0068] In some embodiments, cost information can be determined at the encoder. By way of example and not limitation, a linear combination of rate information and distortion information can be determined as cost information. For example, the linear combination can be determined by adding the product of linear parameters and distortion information to the rate information. In one example, the linear parameters can be predefined. In another example, the linear parameters can be determined based on the codec accuracy for the current PC sample for coding. In yet another example, the linear parameters can be determined based on the quantization accuracy for the current PC sample for coding. When helping this linear combination, rate-distortion optimization can be achieved, and therefore the codec quality can be improved. It should be understood that cost information can also be determined by combining rate information and distortion information in any other suitable manner. The scope of the present disclosure is not limited thereto.
[0069] In some embodiments, the target information can be determined based on the rate information. In one example, if the amount of resources indicated by the rate information is less than the amount of resources indicated by the additional rate information associated with encoding and decoding at least one target PC sample using attribute intra-frame prediction, it can be determined to enable attribute inter-frame prediction for the current PC sample. Alternatively, if the amount of resources indicated by the rate information is less than a predetermined threshold, it can be determined to enable attribute inter-frame prediction for the current PC sample. It should be understood that the above examples are described for description purposes only. The scope of the present disclosure is not limited to this.
[0070] In some alternative embodiments, the target information may be determined based on the distortion information. In one example, if the distortion indicated by the distortion information is less than the distortion indicated by the additional distortion information associated with encoding and decoding at least one target PC sample using attribute intra-frame prediction, it may be determined that attribute inter-frame prediction is enabled for the current PC sample. Alternatively, if the distortion indicated by the distortion information is less than a predetermined threshold, it may be determined that attribute inter-frame prediction is enabled for the current PC sample. It should be understood that the above examples are described for descriptive purposes only. The scope of the present disclosure is not limited thereto.
[0071] According to another embodiment of the present disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of a point cloud sequence generated by a method executed by a device for point cloud encoding and decoding. In the method, target information about whether attribute inter-frame prediction is enabled for a current point cloud (PC) sample of the point cloud sequence is obtained. The target information is determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction. The at least one target PC sample includes at least one of the following: a current PC sample, or at least one PC sample of the point cloud sequence that is encoded and decoded before the current PC sample. In addition, a bitstream is generated based on the target information.
[0072] According to some further embodiments of the present disclosure, a method for storing a bitstream of a point cloud sequence is provided. In the method, target information about whether attribute inter-frame prediction is enabled for a current point cloud (PC) sample of the point cloud sequence is obtained. The target information is determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction. The at least one target PC sample includes at least one of the following: a current PC sample, or at least one PC sample of the point cloud sequence that is encoded and decoded before the current PC sample. In addition, a bitstream is generated based on the target information, and the bitstream is stored in a non-transitory computer-readable recording medium.
[0073] Implementations of the present disclosure may be described according to the following clauses, features of which may be combined in any reasonable way.
[0074] Clause 1. A method for point cloud encoding and decoding, comprising: for conversion between a current point cloud (PC) sample of a point cloud sequence and a bitstream of the point cloud sequence, obtaining target information about whether attribute inter-frame prediction is enabled for the current PC sample, wherein the target information is determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction, wherein the at least one target PC sample includes at least one of the following: the current PC sample, or at least one PC sample of the point cloud sequence that was encoded and decoded before the current PC sample; and performing conversion based on the target information.
[0075] Clause 2. The method of clause 1, wherein the target information is determined at an encoder, and wherein obtaining the target information comprises: obtaining the target information from a bitstream.
[0076] Clause 3. The method according to clause 1, wherein obtaining the target information comprises: determining the target information based on at least one of rate information or distortion information.
[0077] Clause 4. A method according to any one of clauses 1-3, wherein performing the conversion comprises: obtaining a second indication from the bitstream, the second indication being used to indicate whether inter-frame prediction is applied to the current PC sample; determining whether attribute inter-frame prediction is applied to the current PC sample based on the target information and the second indication; and performing the conversion based on the determination.
[0078] Clause 5. A method according to any of clauses 1-4, wherein the target information is determined based on: at least one of rate information or distortion information, and a geometric motion associated with the current PC sample.
[0079] Clause 6. The method of clause 5, wherein the geometric motion comprises at least one of: information for performing motion compensation on a reference PC sample of a current PC sample, or motion information between a reference PC sample and a current PC sample.
[0080] Clause 7. A method according to any one of clauses 5-6, wherein attribute inter-frame prediction is determined to be enabled for the current PC sample if the geometric motion is less than at least one threshold and the first coding cost is less than the second coding cost, wherein the first coding cost is associated with coding at least one target PC sample using attribute inter-frame prediction, and the second coding cost is associated with coding at least one target PC sample using attribute intra-frame prediction.
[0081] Clause 8. The method of clause 7, wherein the first encoding and decoding cost comprises one of: rate information, distortion information, or cost information determined based on rate information and distortion information.
[0082] Clause 9. A method according to any one of clauses 1-8, wherein the rate information indicates an amount of resources used for a coding result, the coding result being obtained by performing a coding process on at least one target PC sample using attribute inter-frame prediction.
[0083] Clause 10. The method of clause 9, wherein the rate information comprises at least one of: a size of a codec result, a value determined based on the size, or an estimate of the size.
[0084] Clause 11. The method of any of clauses 1-10, wherein the rate information is determined at an encoder.
[0085] Clause 12. The method according to any one of clauses 9-11, further comprising: determining rate information based on the number of bits included in the encoding and decoding result.
[0086] Clause 13. The method of any of clauses 9-11, further comprising: determining the rate information by using a rate estimation function, the rate estimation function providing an approximation to a coding process.
[0087] Clause 14. A method according to any one of clauses 1-13, wherein the distortion information indicates the distortion between the attribute value of a point of at least one target PC sample and the reconstructed attribute value of the point, and the reconstructed attribute value is determined based on a coding result, and the coding result is obtained by performing a coding process on at least one target PC sample using attribute inter-frame prediction.
[0088] Clause 15. The method of clause 14, wherein the distortion information comprises at least one of: a difference between a property value and a reconstructed property value, a value determined based on the difference, or an estimate of the difference.
[0089] Clause 16. The method of clause 15, wherein the difference is determined as an error measure between the property value and the reconstructed property value.
[0090] Clause 17. The method of clause 16, wherein the error metric comprises at least one of: mean square error, mean absolute error, root mean square error, sum of squared errors, or sum of absolute errors.
[0091] Clause 18. The method of any of clauses 1-17, wherein the distortion information is determined at an encoder.
[0092] Clause 19. The method according to any one of Clauses 14-18 further includes: determining a distortion result for a corresponding point of at least one target PC sample based on a coding result, the distortion result of the point indicating the distortion between an attribute value of the point and a reconstructed attribute value of the point; and determining distortion information based on the distortion result.
[0093] Clause 20. The method of any of clauses 14-18, further comprising: determining the distortion information by using a distortion estimation function, the distortion estimation function providing an approximation of a coding process.
[0094] Clause 21. A method according to any of clauses 1-20, wherein the target information is determined by: determining cost information based on the rate information and the distortion information; and determining the target information based on the cost information.
[0095] Clause 22. The method of clause 21, wherein the cost information is determined at the encoder.
[0096] Clause 23. The method of any of clauses 21-22, wherein determining the cost information comprises determining a linear combination of the rate information and the distortion information as the cost information.
[0097] Clause 24. The method of clause 23, wherein the linear combination is determined by adding a product of the linear parameter and the distortion information to the rate information.
[0098] Clause 25. The method of clause 24, wherein the linear parameters are predefined.
[0099] Clause 26. The method of clause 24, wherein the linear parameter is determined based on a codec precision or a quantization precision for coding the current PC sample.
[0100] Clause 27. A method according to any of clauses 15-20, wherein if the cost indicated by the cost information is less than the cost indicated by further cost information associated with decoding at least one target PC sample using attribute intra-frame prediction, attribute inter-frame prediction is determined to be enabled for the current PC sample.
[0101] Clause 28. The method of any of clauses 1-20, wherein the target information is determined based on the rate information.
[0102] Clause 29. A method according to clause 28, wherein if the amount of resources indicated by the rate information is less than the amount of resources indicated by further rate information associated with decoding at least one target PC sample using attribute intra prediction, attribute inter prediction is determined to be enabled for the current PC sample.
[0103] Clause 30. The method of any one of clauses 1-20, wherein the target information is determined based on the distortion information.
[0104] Clause 31. A method according to clause 30, wherein if the distortion indicated by the distortion information is less than the distortion indicated by the further distortion information associated with decoding at least one target PC sample using attribute intra prediction, attribute inter prediction is determined to be enabled for the current PC sample.
[0105] Clause 32. The method of any of clauses 1-31, wherein the PC sample is one of: a frame, a slice, or a block.
[0106] Clause 33. A method according to any of clauses 1-32, wherein converting comprises encoding the current PC sample into a bitstream.
[0107] Clause 34. A method according to any of clauses 1-32, wherein converting comprises decoding the current PC sample from the bitstream.
[0108] Clause 35. An apparatus for point cloud encoding and decoding, comprising a processor and a non-volatile memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform a method according to any one of clauses 1-34.
[0109] Clause 36. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any of clauses 1-34.
[0110] Item 37. A non-transitory computer-readable recording medium storing a bitstream of a point cloud sequence, the bitstream being generated by a method performed by an apparatus for point cloud encoding and decoding, wherein the method comprises: obtaining target information about whether attribute inter-frame prediction is enabled for a current point cloud (PC) sample of the point cloud sequence, the target information being determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction, wherein the at least one target PC sample comprises at least one of the following: a current PC sample, or at least one PC sample of the point cloud sequence encoded and decoded before the current PC sample; and generating a bitstream based on the target information.
[0111] Clause 38. A method for storing a bitstream of a point cloud sequence, comprising: obtaining target information about whether attribute inter-frame prediction is enabled for a current point cloud (PC) sample of the point cloud sequence, the target information being determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using attribute inter-frame prediction, wherein the at least one target PC sample includes at least one of the following: a current PC sample, or at least one PC sample of the point cloud sequence that was encoded and decoded before the current PC sample; generating a bitstream based on the target information; and storing the bitstream in a non-transitory computer-readable recording medium. Example Device
[0112] Figure 5 A block diagram of a computing device 500 that can implement various embodiments of the present disclosure is shown. The computing device 500 can be implemented as or included in the source device 100 (or GPCC encoder 115 or 200) or the destination device 120 (or GPCC decoder 125 or 300).
[0113] Understandably, Figure 5 The computing device 500 shown in FIG. 5 is for illustration purposes only and is not intended to in any way imply any limitation on the functionality and scope of embodiments of the present disclosure.
[0114] like Figure 5 As shown, the computing device 500 includes a general computing device 500, which may include at least one or more processors or processing units 510, a memory 520, a storage unit 530, one or more communication units 540, one or more input devices 550, and one or more output devices 550.
[0115] In some embodiments, the computing device 500 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server provided by a service provider, a large computing device, etc. The user terminal can be, for example, any type of mobile terminal, fixed terminal or portable terminal, including a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet computer, 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 / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio broadcast receiver, an e-book device, a gaming device, or any combination thereof, and includes accessories and peripherals of these devices, or any combination thereof. It is conceivable that the computing device 500 can support any type of interface to the user (such as a "wearable" circuit device, etc.).
[0116] Processing unit 510 may be a physical or virtual processor and may implement various processes based on programs stored in memory 520. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to increase the parallel processing capabilities of computing device 500. Processing unit 510 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.
[0117] The computing device 500 typically includes a variety of computer storage media, such media can be any media accessible to the computing device 500, including but not limited to volatile and non-volatile media, or removable and non-removable media. The memory 520 can be a volatile memory (e.g., registers, cache, running memory (RAM)), a non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM) or flash memory), or any combination thereof. The storage unit 530 can be any removable or non-removable medium, and can include machine-readable media, such as memory, flash drives, disks, or other media that can be used to store information and / or data and can be accessed in the computing device 500.
[0118] The computing device 500 may also include additional removable / non-removable, volatile / non-volatile storage media. Figure 5 Not shown, but a disk drive for reading and / or writing from a removable and non-volatile disk and an optical drive for reading and / or writing from a removable and non-volatile optical disk may be provided, in which case each drive may be connected to the bus (not shown) via one or more data media interfaces.
[0119] The communication unit 540 communicates with further computing devices via a communication medium. In addition, the functionality of the components in the computing device 500 may be implemented by a single computing cluster or multiple computing machines that can communicate via a communication connection. Thus, the computing device 500 may operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or further general-purpose network nodes.
[0120] Input device 550 may be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 550 may be one or more of various output devices, such as a display, speaker, printer, etc. Computing device 500 may further communicate with one or more external devices (not shown) such as storage devices and display devices, one or more of which enable a user to interact with computing device 500, or any device that enables computing device 500 to communicate with one or more other computing devices (e.g., a network card, modem, etc.) if desired, through communication unit 540. Such communication may be performed through an input / output (I / O) interface (not shown).
[0121] In some embodiments, some or all components of the computing device 500 may also be arranged in a cloud computing architecture rather than being integrated in a single device. In a cloud computing architecture, components may be provided remotely and work together to implement the functions described in the present disclosure. In some embodiments, cloud computing provides computing, software, data access, and storage services, which will not require the end user to know the physical location or configuration of the system or hardware that provides these services. In various embodiments, cloud computing provides services via a wide area network (e.g., the Internet) using a suitable protocol. For example, a cloud computing provider provides applications via a wide area network, which can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture and the corresponding data may be stored on a remote server. The computing resources in a cloud computing environment may be merged or distributed at the location of a remote data center. Cloud computing infrastructure may provide services through a shared data center, although they appear as a single access point for users. Therefore, the cloud computing architecture may be used to provide the components and functions described herein from a service provider at a remote location. Alternatively, they may be provided by a conventional server, or installed directly or otherwise on a client device.
[0122] The computing device 500 can be used to implement point cloud encoding or decoding in the embodiments of the present disclosure, and the memory 520 may include one or more point cloud encoding and decoding modules 525 having one or more program instructions, which can be accessed and executed by the processing unit 510 to perform the functions of the various embodiments described herein.
[0123] In an example embodiment of performing point cloud encoding, the input device 550 can receive point cloud data as input 570 to be encoded, and the point cloud data can be processed, for example, by the point cloud codec module 525 to generate an encoded bit stream, which can be provided as output 580 via the output device 550.
[0124] In an example embodiment of performing point cloud decoding, input device 550 may receive an encoded bitstream as input 570 , which may be processed, for example, by point cloud codec module 525 to generate decoded point cloud data. The decoded point cloud data may be provided as output 580 via output device 550 .
[0125] Although the present disclosure has been specifically shown and described with reference to the preferred embodiments of the present disclosure, it will be understood by those skilled in the art that various changes can be made in form and detail without departing from the spirit and scope of the present application as defined by the appended claims. These changes are intended to be encompassed by the scope of the present application. Therefore, the foregoing description of the embodiments of the present application is not intended to be limiting.
Claims
1. A method for point cloud encoding and decoding, comprising: For conversion between a current point cloud (PC) sample of a point cloud sequence and a bitstream of the point cloud sequence, obtaining target information about whether to enable attribute inter-frame prediction for the current PC sample, the target information being determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using the attribute inter-frame prediction, wherein the at least one target PC sample includes at least one of the following: the current PC sample, or at least one PC sample of the point cloud sequence that is encoded and decoded before the current PC sample; as well as The converting is performed based on the target information.
2. The method of claim 1 , wherein the target information is determined at an encoder, and wherein obtaining the target information comprises: The target information is obtained from the bit stream.
3. The method according to claim 1, wherein obtaining the target information comprises: The target information is determined based on at least one of the rate information or the distortion information.
4. The method according to any one of claims 1 to 3, wherein performing the conversion comprises: Obtaining a second indication from the bitstream, the second indication being used to indicate whether inter-frame prediction is applied to the current PC sample; Determining, based on the target information and the second indication, whether the attribute inter prediction is applied to the current PC sample; as well as The converting is performed based on the determination.
5. The method according to any one of claims 1-4, wherein the target information is determined based on the following items: at least one of the rate information or the distortion information, and a geometric motion associated with the current PC sample.
6. The method of claim 5, wherein the geometric motion comprises at least one of the following: information for performing motion compensation on a reference PC sample of the current PC sample, or Motion information between the reference PC sample and the current PC sample.
7. The method according to any one of claims 5-6, wherein if the geometric motion is less than at least one threshold and a first encoding and decoding cost is less than a second encoding and decoding cost, the attribute inter-frame prediction is determined to be enabled for the current PC sample, The first coding cost is associated with coding and decoding the at least one target PC sample using the attribute inter-frame prediction, and the second coding cost is associated with coding and decoding the at least one target PC sample using the attribute intra-frame prediction.
8. The method according to claim 7, wherein the first encoding and decoding cost comprises one of the following: The rate information, The distortion information, or Cost information is determined based on the rate information and the distortion information.
9. The method according to any one of claims 1-8, wherein the rate information indicates an amount of resources used for a coding result, wherein the coding result is obtained by performing a coding process on the at least one target PC sample using the attribute inter-frame prediction.
10. The method according to claim 9, wherein the rate information comprises at least one of the following: The size of the encoding and decoding result, a value determined based on the size, or The size is an estimate.
11. The method according to any one of claims 1-10, wherein the rate information is determined at an encoder.
12. The method according to any one of claims 9 to 11, further comprising: The rate information is determined based on the number of bits included in the encoding and decoding result.
13. The method according to any one of claims 9 to 11, further comprising: The rate information is determined by using a rate estimation function which provides an approximation to the encoding and decoding process.
14. A method according to any one of claims 1-13, wherein the distortion information indicates the distortion between the attribute value of the point of the at least one target PC sample and the reconstructed attribute value of the point, and the reconstructed attribute value is determined based on the encoding and decoding result, and the encoding and decoding result is obtained by performing the encoding and decoding process on the at least one target PC sample using the attribute inter-frame prediction.
15. The method according to claim 14, wherein the distortion information comprises at least one of the following: the difference between the property value and the reconstructed property value, a value determined based on the difference, or An estimate of the difference.
16. The method of claim 15, wherein the difference is determined as an error measure between the property value and the reconstructed property value.
17. The method of claim 16, wherein the error metric comprises at least one of: Mean square error, Mean absolute error, Root mean square error, The sum of squared errors, or The absolute error and .
18. The method according to any one of claims 1-17, wherein the distortion information is determined at an encoder.
19. The method according to any one of claims 14 to 18, further comprising: Based on the encoding and decoding result, determining a distortion result for a corresponding point of the at least one target PC sample, the distortion result of the point indicating a distortion between an attribute value of the point and a reconstructed attribute value of the point; as well as The distortion information is determined based on the distortion result.
20. The method according to any one of claims 14 to 18, further comprising: The distortion information is determined by using a distortion estimation function, which provides an approximation of the encoding and decoding process.
21. The method according to any one of claims 1 to 20, wherein the target information is determined by: determining cost information based on the rate information and the distortion information; and The target information is determined based on the cost information.
22. The method of claim 21, wherein the cost information is determined at an encoder.
23. The method of any one of claims 21-22, wherein determining the cost information comprises: A linear combination of the rate information and the distortion information is determined as the cost information.
24. The method of claim 23, wherein the linear combination is determined by adding a product of a linear parameter and the distortion information to the rate information.
25. The method of claim 24, wherein the linear parameters are predefined.
26. The method of claim 24, wherein the linear parameter is determined based on a codec precision or a quantization precision for encoding and decoding the current PC sample.
27. A method according to any one of claims 15-20, wherein if the cost indicated by the cost information is less than the cost indicated by additional cost information associated with decoding the at least one target PC sample using attribute intra-frame prediction, then the attribute inter-frame prediction is determined to be enabled for the current PC sample.
28. The method of any one of claims 1-20, wherein the target information is determined based on the rate information.
29. The method of claim 28, wherein the attribute inter prediction is determined to be enabled for the current PC sample if the amount of resources indicated by the rate information is less than the amount of resources indicated by further rate information associated with decoding the at least one target PC sample using attribute intra prediction.
30. The method according to any one of claims 1-20, wherein the target information is determined based on the distortion information.
31. The method of claim 30, wherein the attribute inter prediction is determined to be enabled for the current PC sample if the distortion indicated by the distortion information is less than the distortion indicated by further distortion information associated with decoding the at least one target PC sample using attribute intra prediction.
32. The method of any one of claims 1-31, wherein the PC sample is one of: frame, Slice, or piece.
33. The method of any one of claims 1-32, wherein the converting comprises encoding the current PC samples into the bitstream.
34. The method of any one of claims 1-32, wherein the converting comprises decoding the current PC sample from the bitstream.
35. A device for point cloud encoding and decoding, comprising a processor and a non-volatile memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform a method according to any one of claims 1-34.
36. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method according to any one of claims 1-34.
37. A non-transitory computer-readable recording medium storing a bit stream of a point cloud sequence, wherein the bit stream is generated by a method performed by an apparatus for point cloud encoding and decoding, wherein the method comprises: Obtaining target information about whether attribute inter-frame prediction is enabled for a current point cloud (PC) sample of the point cloud sequence, the target information being determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using the attribute inter-frame prediction, wherein the at least one target PC sample comprises at least one of the following: the current PC sample, or at least one PC sample of the point cloud sequence that is encoded and decoded before the current PC sample; as well as The bitstream is generated based on the target information.
38. A method for storing a bitstream of a point cloud sequence, comprising: Obtaining target information about whether attribute inter-frame prediction is enabled for a current point cloud (PC) sample of the point cloud sequence, the target information being determined based on at least one of the following: rate information or distortion information associated with encoding and decoding at least one target PC sample using the attribute inter-frame prediction, wherein the at least one target PC sample comprises at least one of the following: the current PC sample, or at least one PC sample of the point cloud sequence that is encoded and decoded before the current PC sample; generating the bitstream based on the target information; as well as The bit stream is stored in a non-transitory computer-readable recording medium.