Method, apparatus and medium for point cloud coding

By determining search centers based on geometric positions and using multiple search ranges, the method addresses inefficiencies in nearest neighbor search and attribute inter-prediction, enhancing coding efficiency and accuracy in point cloud coding techniques.

JP7765638B2Active Publication Date: 2025-11-06DOUYIN VISION CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024531316
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-11-26
Filing Date
2022-11-25
Publication Date
2025-11-06
Estimated Expiration
2042-11-25

AI Technical Summary

Technical Problem

Existing point cloud coding techniques face inefficiencies in nearest neighbor search and attribute inter-prediction due to inaccurate search centers and uniform search ranges, leading to complex calculations and reduced prediction efficiency.

Method used

The proposed method determines search centers based on geometric positions and uses multiple search ranges to improve nearest neighbor search accuracy and efficiency by selecting points with similar geometric positions and adjusting search ranges accordingly.

Benefits of technology

This approach enhances the accuracy and efficiency of nearest neighbor search and attribute inter-prediction in point cloud coding, improving coding efficiency and reducing computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007765638000005
    Figure 0007765638000005
  • Figure 0007765638000006
    Figure 0007765638000006
  • Figure 0007765638000007
    Figure 0007765638000007
Patent Text Reader

Abstract

The embodiment of the present disclosure provides a method for point cloud coding. The method for point cloud coding includes, during a transition between a current point cloud (PC) sample and a bit stream of a point cloud sequence, determining at least one search center from a set of points in a first PC sample of the point cloud sequence with respect to a current point in a current PC sample of the point cloud sequence based on a metric related to a geometric position of the current point and a set of points, determining at least one neighboring point of the current point based on the at least one search center, and performing the transition based on the at least one neighboring point. Compared with the conventional method, the proposed method can advantageously improve the accuracy of nearest neighbor search and attribute inter prediction.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD Embodiments of the present disclosure relate generally to point cloud coding techniques, and more particularly to optimized inter prediction for point cloud attribute coding based on nearest neighbor search. [Background technology]

[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 physical content in three-dimensional space. Point clouds have shown to be a promising way to represent 3D visual data for a wide range of immersive applications, from augmented reality to autonomous vehicles.

[0003] Point cloud coding standards have evolved primarily through developments within the well-known MPEG organization. MPEG stands for Moving Picture Experts Group and is one of the major standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Coding Group (3DG) issued a Call for Proposals (CFP) document to initiate the development of a point cloud coding standard. The final standard will consist of two classes of solutions: video-based point cloud compression (V-PCC or VPCC) is suitable for point sets with a relatively uniform distribution of points; geometry-based point cloud compression (G-PCC or GPCC) is suitable for more sparse distributions. However, the coding efficiency of traditional point cloud coding techniques is generally expected to be further improved. Summary of the Invention

[0004] An embodiment of the present disclosure provides a method for point cloud coding.

[0005] In a first aspect, a method for point cloud coding is proposed, which includes, during a conversion between a current point cloud (PC) sample and a bitstream of a point cloud sequence, determining at least one search center from a set of points in a first PC sample of the point cloud sequence relative to a current point in a current PC sample of the point cloud sequence based on metrics related to geometric positions of the current point and a set of points, determining at least one neighboring point of the current point based on the at least one search center, and performing the conversion based on the at least one neighboring point.

[0006] According to the method of the first aspect of the present disclosure, at least one search center is determined by considering the geometric positions of the current point and a set of points. Compared with the conventional method in which the search center is determined based on the Morton index, the proposed method can advantageously select a point with a similar geometric position to the current point, thereby improving the accuracy of nearest neighbor search and attribute inter-prediction.

[0007] In a second aspect, another method for point cloud coding is proposed, which includes, during a conversion between a current PC sample and a bitstream of a point cloud sequence, determining, based on a plurality of search ranges, at least one neighboring point in a set of PC samples of the point cloud sequence to a current point in the current PC sample of the point cloud sequence, and performing the conversion based on the at least one neighboring point.

[0008] According to the method according to the second aspect of the present disclosure, multiple search ranges are used to search for neighboring points of the current point. Compared with the conventional approach using only one search range, the proposed method can advantageously search sets of PC samples in different search ranges, thereby improving the efficiency of nearest neighbor search and attribute inter-prediction.

[0009] In a third aspect, an apparatus for processing point cloud data is proposed, the apparatus for processing point cloud data comprising a processor and a non-transitory memory with instructions that, when executed by the processor, cause the processor to perform a method according to the first or second aspect of the present disclosure.

[0010] In a fourth aspect, a non-transitory computer-readable storage medium is proposed, the non-transitory computer-readable storage medium storing instructions for causing a processor to perform a method according to the first or second aspect of the present disclosure.

[0011] In a fifth aspect, a non-transitory computer-readable storage medium is proposed, which stores a bitstream of a point cloud sequence generated by a method executed by a point cloud processing device, the method comprising: determining, with respect to a current point in a current PC sample of the point cloud sequence, at least one search center from a set of points in a first PC sample of the point cloud sequence based on metrics related to geometric positions of the current point and a set of points; determining at least one neighboring point of the current point based on the at least one search center; and generating the bitstream based on the at least one neighboring point.

[0012] In a sixth aspect, a method for storing a bitstream of a point cloud sequence is proposed, the method comprising: determining, with respect to a current point in a current PC sample of the point cloud sequence, at least one search center from a set of points in a first PC sample of the point cloud sequence based on metrics related to geometric positions of the current point and a set of points, determining at least one neighboring point of the current point based on the at least one search center, generating the bitstream based on the at least one neighboring point, and storing the bitstream on a non-transitory computer-readable recording medium.

[0013] In a seventh aspect, another non-transitory computer-readable storage medium is proposed, which stores a bitstream of a point cloud sequence generated by a method executed by a point cloud processing device, the method including: determining, based on a plurality of search ranges, with respect to a current point in a current PC sample of the point cloud sequence, at least one neighboring point in a set of PC samples of the point cloud sequence; and generating the bitstream based on the at least one neighboring point.

[0014] In an eighth aspect, a method for storing a bitstream of a point cloud sequence is proposed, the method comprising: determining, for a current point in a current PC sample of the point cloud sequence based on a plurality of search ranges, at least one neighboring point in a set of PC samples of the point cloud sequence; generating the bitstream based on the at least one neighboring point; and storing the bitstream in a non-transitory computer-readable recording medium.

[0015] This description is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. It 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 explanation of the drawings]

[0016] These and other objects, features, and advantages of exemplary embodiments of the present disclosure will become more apparent through the following detailed description taken in conjunction with the accompanying drawings, in which like reference numerals generally refer to like components.

[0017] [Figure 1] FIG. 1 is a block diagram illustrating an example point cloud coding system that may utilize techniques of this disclosure.

[0018] [Figure 2]FIG. 1 shows a block diagram illustrating an exemplary point cloud encoder, according to some embodiments of the present disclosure.

[0019] [Figure 3] FIG. 1 shows a block diagram illustrating an exemplary point cloud decoder, in accordance with some embodiments of the present disclosure.

[0020] [Figure 4] 1 illustrates a flowchart of a method for point cloud coding according to some embodiments of the present disclosure.

[0021] [Figure 5] 10 illustrates a flowchart of another method for point cloud coding according to some embodiments of the present disclosure.

[0022] [Figure 6] FIG. 1 illustrates a block diagram of a computing device capable of implementing various embodiments of the present disclosure.

[0023] Throughout the drawings, the same or similar reference numbers generally refer to the same or similar elements. DETAILED DESCRIPTION OF THE INVENTION

[0024] Next, the principles of the present disclosure will be explained with reference to some embodiments. It should be understood that these embodiments are provided for illustrative purposes only, to help those skilled in the art understand and embody the present disclosure, and are not intended to imply any limitations on the scope of the present disclosure. The disclosure described herein can be embodied in various ways other than those described below.

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

[0026] References in this disclosure to "one embodiment," "one embodiment," "exemplary embodiment," etc. indicate that the described embodiment may include a particular feature, structure, or characteristic, but not all embodiments necessarily include the particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an exemplary embodiment, it is noted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly stated.

[0027] Terms such as "first" and "second" may be used herein to describe various elements, but it should be understood that these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first element could be referred to as a second element, and similarly, a second element could 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.

[0028] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit example embodiments. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context clearly dictates otherwise. It will be further understood that the terms "comprise," "comprise," "have," "have," "contain," and / or "comprise," when used herein, specify the presence of stated features, elements, and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.

[0029] [Example environment] 1 is a block diagram illustrating an exemplary point cloud coding system 100 that may utilize the techniques of this disclosure. As shown, the point cloud coding system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a point cloud coding device, and the destination device 120 may also be referred to as a point cloud decoding device. In operation, the source device 110 may be configured to generate encoded point cloud data, and the destination device 120 may be configured to decode the encoded point cloud data generated by the source device 110. The techniques of this disclosure are generally directed to supporting coding (encoding and / or decoding) of point cloud data, i.e., point cloud compression. The coding may be effective for compressing and / or decompressing the point cloud data.

[0030] Source device 100 and destination device 120 may include any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephones such as smartphones and mobile phones, televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, vehicles (e.g., land or sea vehicles, spacecraft, aircraft, etc.), robots, LIDAR devices, satellites, augmented reality devices, etc. In some cases, source device 100 and destination device 120 may be equipped for wireless communication.

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

[0032] Generally, data source 112 represents a source of point cloud data (i.e., raw, unencoded point cloud data) and may provide a continuous series of “frames” of point cloud data to GPCC encoder 116, which encodes the point cloud data of the frames. In some examples, data source 112 generates the point cloud data. Data source 112 of source device 100 may include any of a variety of cameras or sensors, such as one or more video cameras, an archive containing previously captured point cloud data, a point cloud capture device such as a 3D scanner or a light detection and ranging (LIDAR) device, and / or a data feed interface that receives point cloud data from a data content provider. Thus, in some examples, data source 112 may generate point cloud data based on signals from a LIDAR device. Alternatively or additionally, point cloud data may be computer-generated from scanners, cameras, sensors, or other data. For example, data source 112 may generate point cloud data or a combination of live point cloud data, archived point cloud data, and computer-generated point cloud data. In either case, the GPCC encoder 116 encodes the captured, pre-captured, or computer-generated point cloud data. The GPCC encoder 116 may rearrange frames of the point cloud data from the order in which they were received (sometimes referred to as "display order") into a coding order for coding. The GPCC encoder 116 may generate one or more bitstreams containing the encoded point cloud data. The source device 100 may then output the encoded point cloud data via the I / O interface 118 for receipt and / or retrieval by, for example, the I / O interface 128 of the destination device 120. The encoded point cloud data may be transmitted directly to the destination device 120 over the network 130A via the I / O interface 118. The encoded point cloud data may also be stored on a storage medium / server 130B for access by the destination device 120.

[0033] 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, e.g., 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 executable by, e.g., the GPCC encoder 116 and the GPCC decoder 126, respectively. While the memory 114 and the memory 124 are shown separate from the GPCC encoder 116 and the GPCC decoder 126 in this example, 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. Furthermore, the memory 114 and the memory 124 may store encoded point cloud data, e.g., output from the GPCC encoder 116 and input to the GPCC decoder 126. In some examples, portions of memory 114 and memory 124 may be allocated as one or more buffers to store raw, decoded, and / or encoded point cloud data. For example, memory 114 and memory 124 may store point cloud data.

[0034] I / O interface 118 and I / O interface 128 may represent a wireless transmitter / receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to any of the various IEEE 802.11 standards, or other physical components. In examples in which 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 transfer data, such as encoded point cloud data, according to a cellular communication standard such as 4G, 4G-LTE (Long Term Evolution), LTE-Advanced, 5G, etc. In some examples in which I / O interface 118 includes a wireless transmitter, I / O interface 118 and I / O interface 128 may be configured to transfer data, such as encoded point cloud data, according to other wireless standards such as the IEEE 802.11 standard. In some examples, source device 100 and / or destination device 120 may include respective system-on-chip (SoC) devices. For example, the source device 100 may include an SoC device that performs functions attributed to the GPCC encoder 116 and / or the I / O interface 118, and the destination device 120 may include an SoC device that performs functions attributed to the GPCC decoder 126 and / or the I / O interface 128.

[0035] The techniques of this disclosure may be applied to encoding and decoding in support of any of a variety of applications, such as communication between autonomous vehicles, communication between processing device devices such as scanners, cameras, sensors and local or remote servers, geographic mapping, or other applications.

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

[0037] The GPCC encoder 116 and the GPCC decoder 126 may each be embodied as any of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or combinations thereof. If the techniques are embodied partially in software, a device may store software instructions on a suitable non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the techniques of this 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 the respective device. A device including the GPCC encoder 116 and / or the GPCC decoder 126 may include one or more integrated circuits, microprocessors, and / or other types of devices.

[0038] The GPCC encoder 116 and the GPCC decoder 126 may operate according to a coding standard, such as the Video Point Cloud Compression (VPCC) standard or the Geometry Point Cloud Compression (GPCC) standard. This disclosure may generally refer to coding (e.g., encoding and decoding) of frames, which includes the process of encoding or decoding data. The coded bitstream generally includes a series of values ​​of syntax elements that represent coding decisions (e.g., coding modes).

[0039] A point cloud may include a set of points in 3D space and may have attributes associated with the points. The attributes may be color information such as R, G, B, Y, Cb, Cr, or reflectance information, or other attributes. Point clouds may be captured by various cameras and sensors, such as LIDAR sensors and 3D scanners, or may be computer-generated. Point cloud data is used in a variety of applications, including, but not limited to, construction (modeling), graphics (3D models for visualization and animation), and the automotive industry (LIDAR sensors used for navigation).

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

[0041] In both the GPCC encoder 200 and the GPCC decoder 300, the point cloud location is coded first. Attribute coding depends on the coded geometry. In Figures 2 and 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 typically used for Category 1 data. The Level of Detail (LOD) Generation unit 220, the Lifting unit 222, the LOD Generation unit 316, and the Inverse Lifting unit 318 are options typically used for Category 3 data. All other units are common to Categories 1 and 3.

[0042] For Category 3 data, the compressed geometry is typically represented as an octree extending from the root down to the leaf level of individual voxels. For Category 1 data, the compressed geometry is typically represented by a pruned octree (i.e., an octree extending from the root down to the leaf level of blocks larger than a voxel) and a model approximating the surface within each leaf of the pruned octree. In this way, both Category 1 and Category 3 data share the octree coding mechanism, but Category 1 data may additionally approximate the voxels within each leaf with a surface model. The surface model used is a triangulation with 1 to 10 triangles per block, resulting in a triangle soup. Therefore, Category 1 geometry codecs are known as Trisoup geometry codecs, and Category 3 geometry codecs are known as Octree geometry codecs.

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

[0044] 2, the GPCC encoder 200 may receive a set of locations and a set of attributes. The locations may include coordinates of points within the point cloud. The attributes may include information about points within the point cloud, such as a color associated with the points within the point cloud.

[0045] The coordinate transformation unit 202 may apply a transform to the coordinates of the points to convert the coordinates from the initial domain to the transformation domain. In this disclosure, the transformed coordinates may be referred to as transformed coordinates. The color transformation unit 204 may apply a transform to convert the color information of the attributes to a different domain. For example, the color transformation unit 204 may convert the color information from the RGB color space to the YCbCr color space.

[0046] Further, in the example of FIG. 2, the voxelization unit 206 may voxelize the transformed coordinates. Voxelizing the transformed coordinates may include quantizing and removing some points of the point cloud. In other words, multiple points of the point cloud may be contained within a single "voxel" and then treated as one point in some respects. Further, the octree analysis unit 210 may generate an octree based on the voxelized transformed coordinates. Additionally, in the example of FIG. 2, the surface approximation analysis unit 212 may analyze the points to potentially determine a surface representation of the set of points. The arithmetic coding unit 214 may perform arithmetic coding on syntax elements representing the octree and / or surface information determined by the surface approximation analysis unit 212. The GPCC encoder 200 may output these syntax elements in a geometry bitstream.

[0047] The geometry reconstruction unit 216 may reconstruct transformation coordinates of points in the point cloud based on the octree, data indicating the surface determined by the surface approximation analysis unit 212, and / or other information. The number of transformation coordinates reconstructed by the geometry reconstruction unit 216 may differ from the number of original points in the point cloud due to voxelization and surface approximation. In this disclosure, the resulting points may be referred to as reconstructed points. The attribute transfer unit 208 may transfer attributes of the original points of the point cloud to the reconstructed points of the point cloud data.

[0048] Further, the RAHT unit 218 may apply RAHT coding to the attributes of the reconstructed points. Alternatively or additionally, the LOD generation unit 220 and the lifting unit 222 may apply LOD processing and lifting, respectively, to the attributes of the reconstructed points. The RAHT unit 218 and the lifting unit 222 may generate coefficients based on the attributes. The coefficient quantization unit 224 may quantize the coefficients generated by the RAHT unit 218 or the lifting unit 222. The arithmetic coding unit 226 may apply arithmetic coding to syntax elements representing the quantized coefficients. The GPCC encoder 200 may output these syntax elements in an attribute bitstream.

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

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

[0051] The octree synthesis unit 306 may synthesize an octree based on syntax elements parsed from the geometry bitstream. If surface approximation is used in the geometry bitstream, the surface approximation synthesis unit 310 may determine a surface model based on the syntax elements and octrees parsed from the geometry bitstream.

[0052] Additionally, the geometry reconstruction unit 312 may perform reconstruction to determine coordinates of points within the point cloud. The coordinate inverse transformation unit 320 may apply an inverse transform to the reconstructed coordinates to transform the reconstructed coordinates (positions) of the points within the point cloud from the transformed domain back to the initial domain.

[0053] Additionally, in the example of Figure 3, the inverse quantization unit 308 may inverse quantize the attribute values, which may be based on syntax elements obtained from the attribute bitstream (e.g., including syntax elements decoded by the attribute arithmetic decoding unit 304).

[0054] Depending on how the attribute values ​​are encoded, the RAHT unit 314 may perform RAHT coding to determine color values ​​for the points of the point cloud based on the dequantized attribute values. Alternatively, the LOD generation unit 316 and the inverse lifting unit 318 may determine color values ​​for the points of the point cloud using a level-of-detail-based technique.

[0055] 3, color inverse transform unit 322 may apply an inverse color transform to the color values. The inverse color transform may be the inverse of the color transform applied by color transform unit 204 of encoder 200. For example, color transform unit 204 may convert the color information from the RGB color space to the YCbCr color space. Thus, color inverse transform unit 322 may convert the color information from the YCbCr color space to the RGB color space.

[0056] The various units in FIGS. 2 and 3 are shown to aid in understanding the operations performed by the encoder 200 and the decoder 300. The units may be embodied as fixed-function circuits, programmable circuits, or a combination thereof. A fixed-function circuit refers to a circuit that provides a specific function and is preconfigured with respect to the operations it can perform. A programmable circuit refers to a circuit that can be programmed to perform various tasks and provides flexible functionality in the operations it can perform. For example, a programmable circuit may execute software or firmware that causes the programmable circuit to operate in a manner defined by the software or firmware instructions. While a fixed-function circuit may execute software instructions (e.g., to receive parameters or output parameters), the types of operations it performs are generally immutable. In some examples, one or more units may be separate circuit blocks (fixed function or programmable), and in some examples, one or more units may be integrated circuits.

[0057] Some exemplary embodiments of the present disclosure are described in detail below. It should be understood that section headings are used herein for ease of understanding and are not intended to limit the embodiments disclosed in a section to that section alone. Furthermore, while certain embodiments are described with reference to GPCC or other specific point cloud codecs, the disclosed techniques are also applicable to other point cloud coding techniques. Furthermore, while some embodiments describe point cloud encoding steps in detail, it will be understood that the corresponding steps of decoding to undo the coding are implemented by a decoder. [1. Overview] This disclosure relates to point cloud coding techniques, particularly point cloud attribute prediction in inter prediction. The ideas can be applied individually or in various combinations to point cloud coding standards or non-standard point cloud codecs (e.g., Geometry-Based Point Cloud Compression (G-PCC) under development). [2.Abbreviation] G-PCC:Geometry Geometry-based Point Cloud Compression MPEG: Moving Picture Experts Group 3DG: 3D Graphics Coding Group CFP:Call For Proposal V-PCC: Video-based Point Cloud Compression (Video-based Point Cloud Compression) LOD: Level of Detail CE: Core Experiment EE: Exploration Experiment inter-EM: Inter Exploration Model PC:Point Cloud RDO: Rate-distortion Optimization [3. Background] Point cloud coding standards have evolved primarily through developments within the well-known MPEG organization. MPEG stands for Moving Picture Experts Group, one of the major standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Coding Group (3DG) issued a Call for Proposals (CFP) document to begin development of a point cloud coding standard. The final standard will consist of two classes of solutions: video-based point cloud compression (V-PCC), which is suitable for point sets with a relatively uniform distribution of points; and geometry-based point cloud compression (G-PCC), which is suitable for more sparse distributions. To explore future point cloud coding techniques in G-PCC, Core Experiment (CE) 13.5 and Exploration Experiment (EE) 13.2 have been established to develop inter-prediction techniques in G-PCC. Since then, many new inter-prediction methods have been adopted by MPEG and incorporated into a reference software named inter-Exploration Model (inter-EM). A point cloud can contain both geometry and attribute information. Geometry information is used to describe the geometric position of the data points. Attribute information is used to record details of the data points, such as texture, normal vectors, and reflection. Point cloud codecs can process different information in different ways. Codecs usually have a number of optional tools that support coding and decoding of geometry and attribute information, respectively. [3.1 Attribute Intra Prediction] In G-PCC, two attribute coding methods are proposed that utilize geometry information to perform attribute intra prediction. 3.1.1 Predicting Conversions Transform prediction is an interpolation-based hierarchical nearest neighbor prediction method, which is typically used for sparse point cloud content. First, a Level of Detail (LOD) structure is generated. Then, nearest neighbors are searched based on the LOD structure. Finally, attribute prediction is performed based on the search results. [3.1.1.1 LOD Generation] In the LOD generation process, the geometry information is utilized to construct a hierarchical structure of the point cloud that defines a set of "levels of detail". The hierarchical structure is used to efficiently predict attributes and also enables advanced features such as progressive transmission and scalable rendering. The LOD generation process refines the point cloud points into refinement levels (point sets) R0, R1, ..., R, according to a user-defined parameter L that indicates the LOD number. L-1 Next, the attributes of the point cloud points are reorganized from R0 to R L-1 Level of Detail l, LOD l are the refinement levels R0,R1,…,R l can be obtained by taking the union of:

number

number

number

[0058] Further details of embodiments of the present disclosure related to optimized inter prediction for point cloud attribute coding based on nearest neighbor search are described below.

[0059] As used herein, the term "point cloud sequence" may refer to a sequence of one or more point clouds. The term "frame" may refer to a point cloud within a point cloud sequence. The term "PC sample" may refer to a unit that performs coding in point cloud sequence coding, such as a point cloud frame, a sub-region within a point cloud frame, a picture, a slice, a tile, a subpicture, a node, a point, or other unit that includes one or more nodes or points.

[0060] FIG. 4 illustrates a flowchart of a method 400 for point cloud coding according to some embodiments of the present disclosure. Method 400 may be implemented during conversion between a current PC sample of a point cloud sequence and a bitstream of the point cloud sequence. As shown in FIG. 4, method 400 begins at 402, where at least one search center is determined from a set of points in a first PC sample of the point cloud sequence based on a metric related to the geometric positions of the current point and the set of points relative to a current point in the current PC sample of the point cloud sequence. As an example, the metric may be the difference between the Morton code of the current point and each point in the set of points, and the point with the most similar Morton code to the current point may be determined as the search center.

[0061] At 404, at least one neighboring point of the current point is determined based on the at least one search center. As an example, the at least one neighboring point may be at least one nearest neighbor of the current point. A nearest neighbor search may be performed on the points defined by the at least one search center and a predetermined search range to obtain the at least one nearest neighbor. It should be understood that the above example is provided for illustrative purposes only. The scope of the present disclosure is not limited in this respect.

[0062] At 406, a transformation is performed based on at least one neighboring point. For example, an attribute value of the current point may be predicted by calculating a weighted average of the attribute values ​​of at least one neighboring point. The transformation may be performed based on the predicted attribute value. In some embodiments, the transformation may include encoding the current PC sample into a bitstream. Additionally or alternatively, the transformation may include decoding the current PC sample from the bitstream. It should be understood that the above examples are provided for illustrative purposes only. The scope of the present disclosure is not limited in this respect.

[0063] Based on the above, at least one search center can be determined by considering the geometric positions of the current point and the set of points. Compared with the conventional method in which the search center is determined based on the Morton index of the point, the proposed method can advantageously select a point with a similar geometric position to the current point, thereby improving the accuracy of nearest neighbor search and attribute inter-prediction.

[0064] In some embodiments, the set of points may include all points in the first PC sample. That is, at least one search center may be selected from all points in the PC sample to be searched based on a nearest neighbor search. Additionally, at least one search center may include a target point. A metric between the geometric positions of the target point and the current point is minimized among the metrics. In some examples, the metric may be a geometric distance, such as Euclidean distance, Manhattan distance, or Chebyshev distance. Alternatively, the metric may be a distance between the diversion codes of the target point and the current point. For example, the distance between the diversion codes of the target point and the current point may be the difference between the diversion codes of the target and current points. As an example, the diversion code may be a Morton code or a Hilbert code. It should be understood that the above examples are provided for illustrative purposes only. The scope of the present disclosure is not limited in this respect.

[0065] In some alternative embodiments, the set of points may include a portion of the points in the first PC sample. That is, at least one search center may be selected from a portion of the points in the PC sample to be searched based on a nearest neighbor search. In one example, the portion of the points may be points having a diversion code greater than the diversion code of the current point. Alternatively, the portion of the points may be points having a diversion code less than the diversion code of the current point.

[0066] Additionally, at least one search center may include a target point. A metric between the geometric location of the target point and the current point is minimized among the metrics. In some examples, the metric may be a geometric distance, such as Euclidean distance, Manhattan distance, or Chebyshev distance. Alternatively, the metric may be a distance between the transition codes of the target point and the current point. As an example, the transition code may be a Morton code or a Hilbert code. It should be understood that the above examples are provided for illustrative purposes only. The scope of the present disclosure is not limited in this respect.

[0067] In some embodiments, the first PC sample may be a current PC sample. In some alternative embodiments, the first PC sample may be a different PC sample than the current PC sample. Alternatively, the first PC sample may be a reference PC sample for the current PC sample.

[0068] In some embodiments, at least one neighboring point may be determined by performing a nearest neighbor search on the first PC sample. The points in the first PC sample may be sorted before performing the nearest neighbor search. In one example, the points in the first PC sample may be sorted based on the inversion code of the points, such as the Morton code or the Hilbert code of the points. In another example, the points in the first PC sample may be sorted based on the polar coordinates of the points. In a further example, the points in the first PC sample may be sorted based on the spherical coordinates of the points. In yet another example, the points in the first PC sample may be sorted based on the cylindrical coordinates of the points. Alternatively, the points in the first PC sample may be sorted based on the scan order of the radar to obtain the point cloud sequence. Additionally, the nearest neighbor search may be performed based on the order of the sorted points.

[0069] In some embodiments, the at least one search center may include one search center. In one example, a nearest neighbor search may be performed on the search center and a point preceding the search center in the sorted points. Alternatively, a nearest neighbor search may be performed on the search center and a point following the search center in the sorted points. In a further example, a nearest neighbor search may be performed on the search center, a point preceding the search center in the sorted points, and a point following the search center in the sorted points.

[0070] In some embodiments, the at least one search center may include multiple search centers. In one example, the nearest neighbor search may be performed starting from some of the multiple search centers. That is, the nearest neighbor search may be performed from one or more of the multiple search centers.

[0071] In some embodiments, the metric may include a geometric distance between the current point and each point in the set of points. The search centers may be points with the smallest metrics. For example, the geometric distance may be Euclidean distance, Manhattan distance, Chebyshev distance, etc.

[0072] In some alternative embodiments, the metrics may include the distance between the transition code of the current point and each point in the set of points. The search centers may be points with the smallest metrics. For example, the transition codes may be Morton codes, Hilbert codes, etc.

[0073] According to an embodiment of the present disclosure, a non-transitory computer-readable recording medium is proposed. A bit stream of a point cloud sequence is stored in the non-transitory computer-readable recording medium. The bit stream can be generated by a method executed by a point cloud processing device. According to the method, at least one search center is determined from a set of points in a first PC sample of the point cloud sequence relative to a current point in a current PC sample based on metrics related to the geometric positions of the current point and the set of points. At least one neighboring point of the current point is determined based on the at least one search center, and the bit stream is generated based on the at least one neighboring point.

[0074] According to an embodiment of the present disclosure, a method for storing a bit stream of a point cloud sequence is proposed. In the method, at least one search center is determined from a set of points in a first PC sample of the point cloud sequence relative to a current point in a current PC sample based on metrics related to the geometric positions of the current point and the set of points. At least one neighboring point of the current point is determined based on the at least one search center, and a bit stream is generated based on the at least one neighboring point. The bit stream is stored in a non-transitory computer-readable recording medium.

[0075] FIG. 5 illustrates a flowchart of another method 500 for point cloud coding according to some embodiments of the present disclosure. Method 500 may be implemented during conversion between a current PC sample of a point cloud sequence and a bitstream of the point cloud sequence. As shown in FIG. 5, method 500 begins at 502, where at least one neighboring point is determined in a set of PC samples of the point cloud sequence based on multiple search ranges relative to a current point in the current PC sample. As an example, the at least one neighboring point may be at least one nearest neighbor of the current point. A nearest neighbor search may be performed on a first PC sample of the set of PC samples based on a first search range, and a nearest neighbor search may be further performed on a second PC sample of the set of PC samples based on a second search range different from the first search range to obtain the at least one nearest neighbor.

[0076] At 504, a transformation is performed based on at least one neighboring point. For example, an attribute value of the current point may be predicted by calculating a weighted average of the attribute values ​​of at least one neighboring point. The transformation may be performed based on the predicted attribute value. In some embodiments, the transformation may include encoding the current PC sample into a bitstream. Additionally or alternatively, the transformation may include decoding the current PC sample from the bitstream.

[0077] Based on the above, multiple search ranges can be used to search for neighboring points of the current point. Compared with the conventional method that uses only one search range, the proposed method can advantageously search sets of PC samples with different search ranges, thereby improving the efficiency of nearest neighbor search and attribute inter-prediction.

[0078] In some embodiments, at least one neighbor point may be determined at 502 by performing a nearest neighbor search on the set of PC samples based on multiple search ranges. In one example, a nearest neighbor search may be performed on a first PC sample of the set of PC samples in a first direction based on a first search range of the multiple search ranges. Further, a nearest neighbor search may be performed on a first PC sample in a second direction based on a second search range of the multiple search ranges. The second direction is different from the first direction, and the second search range is different from the first search range. That is, different search ranges may be used for searches in different directions.

[0079] Additionally or alternatively, a nearest neighbor search may be performed on a first PC sample of the set of PC samples based on a first search range of the plurality of search ranges. Furthermore, a nearest neighbor search may be performed on a second PC sample of the set of PC samples based on a second search range of the plurality of search ranges. The second PC sample may be different from the first PC sample, and the second search range may be different from the first search range. That is, different search ranges may be used to search different PC samples. In one example, the first PC sample may be a current PC sample, and the second PC sample may be a reference PC sample for the current PC sample. In other words, different search ranges may be used for the current frame and the reference frame.

[0080] In some additional or alternative embodiments, the nearest neighbor search may be performed for a third PC sample of the set of PC samples based on at least one search range of the plurality of search ranges, i.e., at least one search range may be used for one PC sample to be searched.

[0081] In some embodiments, a first search range of the at least one search range may indicate a number of points to be searched before the search center of the first PC sample. Alternatively, a second search range of the at least one search range may indicate a number of points to be searched after the search center of the first PC sample. In some further embodiments, a third search range of the at least one search range may indicate both a number of points to be searched before the search center of the first PC sample and a number of points to be searched after the search center.

[0082] In some embodiments, an indication indicating a fourth search range of the plurality of search ranges may be included in the bitstream. In one example, if the fourth search range indicates that all points in one of the sets of PC samples should be searched, the indication may be a predefined signal. In another example, if the fourth search range may be selected from a plurality of predefined search ranges, the indication may be selected from a plurality of predefined signals. In a further example, the indication may be a value of the fourth search range. In yet another example, the indication may be determined based on a predefined mathematical transformation of the fourth search range.

[0083] In some embodiments, the instructions may be coded with fixed length coding. Alternatively, the instructions may be coded with unary coding. In some further embodiments, the instructions may be coded with truncated unary coding. In some alternative embodiments, the instructions may be coded in a predictive manner.

[0084] According to an embodiment of the present disclosure, a non-transitory computer-readable recording medium is proposed. A bit stream of a point cloud sequence is stored in the non-transitory computer-readable recording medium. The bit stream can be generated by a method executed by a point cloud processing device. According to the method, for a current point in a current PC sample, at least one neighboring point is determined in a set of PC samples of the point cloud sequence based on multiple search ranges, and a bit stream is generated based on the at least one neighboring point.

[0085] According to an embodiment of the present disclosure, a method for storing a bit stream of a point cloud sequence is proposed, in which at least one neighboring point in a set of PC samples of the point cloud sequence is determined based on multiple search ranges for a current point in a current PC sample, and a bit stream is generated based on the at least one neighboring point. The bit stream is stored in a non-transitory computer-readable recording medium.

[0086] Implementations of the present disclosure may be described in light of the following clauses, the features of which may be combined in any reasonable manner.

[0087] Clause 1. A method for point cloud coding, comprising, during conversion between a current point cloud (PC) sample and a bitstream of a point cloud sequence, determining, with respect to a current point in a current PC sample of the point cloud sequence, at least one search center from a set of points in a first PC sample of the point cloud sequence based on metrics related to geometric positions of the current point and the set of points; determining at least one neighboring point of the current point based on the at least one search center; and performing the conversion based on the at least one neighboring point.

[0088] Clause 2. The method of clause 1, wherein the set of points includes all points in the first PC sample.

[0089] Clause 3. The method of clause 2, wherein the at least one search center includes a target point, and a metric between the target point and the geometric position of the current point is the smallest among the metrics.

[0090] Clause 4. The method of clause 3, wherein the metric is one of Euclidean distance, Manhattan distance, or Chebyshev distance.

[0091] Clause 5. The method of clause 1, wherein the set of points includes a subset of points in the first PC sample.

[0092] Clause 6. The method of clause 5, wherein the at least one search center includes a target point, and a metric between the target point and the geometric position of the current point is the smallest among the metrics.

[0093] Clause 7. The method of clause 6, wherein the metric is one of Euclidean distance, Manhattan distance, or Chebyshev distance.

[0094] Clause 8. The method of clause 3, wherein the metric is the distance between the transition codes of the target point and the current point.

[0095] Clause 9. The method of clause 8, wherein the distance between the diversion codes of the target point and the current point is the difference between the diversion codes of the target point and the current point.

[0096] Clause 10. The method of any one of clauses 8 to 9, wherein the transformation code is a Morton code or a Hilbert code.

[0097] Clause 11. The method of clause 6, wherein the metric is the distance between the transition codes of the target point and the current point.

[0098] Clause 12. The method of any one of clauses 5 to 6 or 11, wherein the some points are points having a diversion code greater than the diversion code of the current point.

[0099] Clause 13. The method of any one of clauses 5 to 6 or 11, wherein the some points are points having a diversion code that is smaller than the diversion code of the current point.

[0100] Clause 14. The method of clause 11, wherein the distance between the diversion codes of the target point and the current point is the difference between the diversion codes of the target point and the current point.

[0101] Clause 15. The method according to clause 11 or 14, wherein the transformation code is a Morton code or a Hilbert code.

[0102] Clause 16. The method of any one of clauses 1 to 15, wherein the first PC sample is one of the current PC sample, a PC sample different from the current PC sample, or a reference PC sample of the current PC sample.

[0103] Clause 17. A method according to any one of clauses 1 to 16, wherein the at least one neighbouring point is determined by performing a nearest neighbour search on the first PC sample, and the points in the first PC sample are sorted before the nearest neighbour search is performed.

[0104] Clause 18. The method of clause 17, wherein the points in the first PC sample are sorted based on the transformation codes of the points.

[0105] Clause 19. The method according to clause 18, wherein the transformation code is a Morton code or a Hilbert code.

[0106] Clause 20. The method of clause 17, wherein the points in the first PC sample are sorted based on the polar coordinates of the points.

[0107] Clause 21. The method of clause 17, wherein the points in the first PC sample are sorted based on the spherical coordinates of the points.

[0108] Clause 22. The method of clause 17, wherein the points in the first PC sample are reordered based on a cylindrical coordinate system of the points.

[0109] Clause 23. The method of clause 17, wherein the points in the first PC sample are sorted based on a radar scan order for obtaining the point cloud sequence.

[0110] Clause 24. The method of any one of clauses 17 to 23, wherein the nearest neighbor search is performed based on the order of the sorted points.

[0111] Clause 25. The method of any one of clauses 17 to 24, wherein said at least one search center comprises one search center.

[0112] Clause 26. The method of clause 25, wherein the nearest neighbor search is performed on the search center and a point preceding the search center in the sorted points.

[0113] Clause 27. The method of clause 25, wherein the nearest neighbor search is performed on the search center and a point following the search center in the sorted points.

[0114] Clause 28. The method of clause 25, wherein the nearest neighbor search is performed on the search center, a point preceding the search center in the sorted points, and a point following the search center in the sorted points.

[0115] Clause 29. The method of any one of clauses 1 to 24, wherein said at least one search center comprises a plurality of search centers.

[0116] Clause 30. The method of clause 29, wherein the nearest neighbor search is performed starting from a subset of the plurality of search centers.

[0117] Clause 31. The method of clause 29, wherein the metrics include geometric distances between the current point and each point in the set of points, and the plurality of search centers are a plurality of points having smallest metrics.

[0118] Clause 32. The method of clause 29, wherein the metrics include distances between a transition code of the current point and each point in the set of points, and the plurality of search centers are the plurality of points having the smallest metrics.

[0119] Clause 33. A method for point cloud coding, comprising, during a conversion between a current point cloud (PC) sample and a bitstream of a point cloud sequence, determining, for a current point in a current PC sample of the point cloud sequence, at least one neighboring point in a set of PC samples of the point cloud sequence based on a plurality of search ranges, and performing the conversion based on the at least one neighboring point.

[0120] Clause 34. The method of clause 33, wherein determining the at least one neighboring point comprises determining the at least one neighboring point by performing a nearest neighbor search on a set of PC samples based on the plurality of search ranges.

[0121] Clause 35. The method of clause 34, wherein the nearest neighbor search is performed on a first PC sample of a set of PC samples in a first direction based on a first search range of the plurality of search ranges, and the nearest neighbor search is further performed on the first PC sample in a second direction based on a second search range of the plurality of search ranges, the second direction being different from the first direction and the second search range being different from the first search range.

[0122] Clause 36. The method of clause 34, wherein the nearest neighbor search is performed on a first PC sample of the set of PC samples based on a first search range of the plurality of search ranges, and the nearest neighbor search is further performed on a second PC sample of the set of PC samples based on a second search range of the plurality of search ranges, the second PC sample being different from the first PC sample, and the second search range being different from the first search range.

[0123] Clause 37. The method of any one of clauses 34 to 36, wherein the nearest neighbor search is performed on a third PC sample of the set of PC samples based on at least one search range of the plurality of search ranges.

[0124] Clause 38. The method of clause 37, wherein a first search range of the at least one search range indicates a number of points to be searched before a search center of the first PC sample.

[0125] Clause 39. The method of clause 37, wherein a second search range of the at least one search range indicates a number of points to be searched after a search center of the first PC sample.

[0126] Clause 40. The method described in Clause 37, wherein a third search range of the at least one search range indicates both the number of points to be searched before the search center of the first PC sample and the number of points to be searched after the search center.

[0127] Clause 41. The method of clause 36, wherein the first PC sample is the current PC sample and the second PC sample is a reference PC sample for the current PC sample.

[0128] Clause 42. The method of any one of clauses 33 to 41, wherein an indication of a fourth search range of the plurality of search ranges is included in the bitstream.

[0129] Clause 43. The method of clause 42, wherein if the fourth search range indicates that all points in one of the sets of PC samples should be searched, the indication is a predefined signal.

[0130] Clause 44. The method of clause 42, wherein when the fourth search range is selected from a plurality of predefined search ranges, the indication is selected from a plurality of predefined signals.

[0131] Clause 45. The method of clause 42, wherein the instruction is a value of the fourth search range.

[0132] Clause 46. The method of clause 42, wherein the instructions are determined based on a predefined mathematical transformation of the fourth search range.

[0133] Clause 47. A method according to any one of clauses 42 to 46, wherein the instructions are coded using one of fixed length coding, unary coding, or truncated unary coding.

[0134] Clause 48. The method of any one of clauses 42 to 46, wherein the instructions are coded in a predictive manner.

[0135] Clause 49. A method according to any one of clauses 1 to 48, wherein the current PC sample is a point cloud frame in the point cloud sequence or a sub-region within a point cloud frame in the point cloud sequence.

[0136] Clause 50. The method of any one of clauses 1 to 49, wherein the at least one nearby point comprises at least one nearest neighbor of the current point.

[0137] Clause 51. The method of any one of clauses 1 to 50, wherein said converting comprises encoding said current PC sample into said bitstream.

[0138] Clause 52. A method according to any one of clauses 1 to 50, wherein said converting comprises decoding said current PC sample from said bitstream.

[0139] Clause 53. An apparatus for processing point cloud data comprising a processor and a non-transitory memory comprising instructions that, when executed by the processor, cause the processor to perform a method according to any one of clauses 1 to 52.

[0140] Clause 54. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of clauses 1 to 52.

[0141] Clause 55. A non-transitory computer-readable recording medium storing a bitstream of a point cloud sequence generated by a method executed by a point cloud processing device, the method comprising the steps of: determining, with respect to a current point in a current point cloud (PC) sample of the point cloud sequence, at least one search center from a set of points in a first PC sample of the point cloud sequence based on metrics related to geometric positions of the current point and the set of points; determining at least one neighboring point of the current point based on the at least one search center; and generating the bitstream based on the at least one neighboring point.

[0142] Clause 56. A method for storing a bitstream of a point cloud sequence, comprising: determining, for a current point in a current point cloud (PC) sample of the point cloud sequence, at least one search center from a set of points in a first PC sample of the point cloud sequence based on metrics related to geometric positions of the current point and the set of points; determining at least one neighboring point of the current point based on the at least one search center; generating the bitstream based on the at least one neighboring point; and storing the bitstream on a non-transitory computer-readable recording medium.

[0143] Clause 57. A non-transitory computer-readable recording medium storing a bitstream of a point cloud sequence generated by a method executed by a point cloud processing device, the method comprising: determining, based on a plurality of search ranges, for a current point in a current point cloud (PC) sample of the point cloud sequence, at least one neighboring point in a set of PC samples of the point cloud sequence; and generating the bitstream based on the at least one neighboring point.

[0144] Clause 58. A method for storing a bitstream of a point cloud sequence, comprising: determining, based on a plurality of search ranges, for a current point in a current point cloud (PC) sample of the point cloud sequence, at least one neighboring point in a set of PC samples of the point cloud sequence; generating the bitstream based on the at least one neighboring point; and storing the bitstream in a non-transitory computer-readable recording medium.

[0145] [Example Device] 6 shows a block diagram of a computing device 600 capable of implementing various embodiments of the present disclosure. The computing device 600 may be embodied as or included in the source device 110 (or a GPCC encoder 116 or 200) or the destination device 120 (or a GPCC decoder 126 or 300).

[0146] It will be understood that the computing device 600 shown in FIG. 6 is for illustrative purposes only and is not intended to limit in any way the functionality and scope of the embodiments of the present disclosure.

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

[0148] In some embodiments, computing device 600 may be embodied as any user terminal or server terminal having computing capabilities. The server terminal may be a server provided by a service provider, a large-scale computing device, or the like. The user terminal may be any type of mobile, fixed, or portable terminal, including, for example, a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio receiver, an electronic book device, a gaming device, or any combination thereof (including accessories and peripherals of these devices, or any combination thereof). It is contemplated that computing device 600 may support any type of interface to a user (e.g., “wearable” circuitry, etc.).

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

[0150] Computing device 600 typically includes a variety of computer storage media. Such media may be any media accessible by computing device 600, including, but not limited to, volatile and nonvolatile media, or removable and non-removable media. Memory 620 may be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or any combination thereof. Storage unit 630 may be any removable or non-removable media, including machine-readable media such as memory, flash memory drives, magnetic disks, or other media, that can be used to store information and / or data and that can be accessed by computing device 600.

[0151] The computing device 600 may further include additional removable / non-removable, volatile / non-volatile memory media. Although not shown in FIG. 6, a magnetic disk drive that reads from and writes to a removable non-volatile magnetic disk and an optical disk drive that reads from and writes to a removable non-volatile optical disk may be provided. In such cases, each drive may be connected to a bus (not shown) via one or more data medium interfaces.

[0152] The communications unit 640 communicates with additional computing devices via a communications medium. Furthermore, the functionality of the components within computing device 600 may be embodied by a single computing cluster or multiple computing machines that can communicate via communications connections. Thus, computing device 600 may operate in a networked environment using logical connections with one or more other servers, networked personal computers (PCs), or additional general network nodes.

[0153] The input device(s) 650 may be one or more of a variety of input devices such as a mouse, a keyboard, a tracking ball, an audio input device, etc. The output device(s) 660 may be one or more of a variety of output devices such as a display, a loudspeaker, a printer, etc. The communication unit 640 may further enable the computing device 600 to communicate with one or more external devices (not shown), such as a storage device and a display device, one or more devices that allow a user to interact with the computing device 600, or any device (such as a network card, a modem, etc.) that allows the computing device 600 to communicate with one or more other computing devices, as needed. Such communication may be performed via an input / output (I / O) interface (not shown).

[0154] In some embodiments, instead of being integrated into a single device, some or all of the components of computing device 600 may be located in a cloud computing architecture. In a cloud computing architecture, components may be provided remotely and work together to perform the functions described in this disclosure. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring end users to be aware of the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services over a wide area network (e.g., the Internet) using appropriate protocols. For example, a cloud computing provider may provide applications over a wide area network that can be accessed through a web browser or other computing component. Software or components of a cloud computing architecture and corresponding data may be stored on servers in remote locations. Computing resources in a cloud computing environment may be consolidated or distributed across remote data center locations. A cloud computing infrastructure may act as a single access point for users but provide services through a shared data center. Thus, a cloud computing architecture may be used to provide the components and functions described herein from a remote service provider. Alternatively, they may be provided from traditional servers or installed directly or otherwise on client devices.

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

[0156] In an example embodiment performing point cloud encoding, the input device 650 may receive point cloud data to be encoded as an input 670. The point cloud data may be processed, for example, by the point cloud coding module 625 to generate an encoded bitstream. The encoded bitstream may be provided as an output 680 via the output device 660.

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

[0158] While the present disclosure has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the present application as defined by the appended claims. Such variations are intended to be within the scope of the present application. Accordingly, the foregoing description of the embodiments of the present application is not intended to be limiting.

Claims

1. 1. A method for point cloud coding, comprising: determining, during a transition between a current point cloud (PC) sample and a bitstream of a point cloud sequence, with respect to a current point in a current PC sample of the point cloud sequence, at least one search center from a set of points in a first PC sample of the point cloud sequence based on metrics related to a geometric position of the current point and a set of points; determining at least one neighboring point of the current point based on the at least one search center; and performing the transformation based on the at least one neighboring point; the set of points includes a subset of points in the first PC sample; The method, wherein the at least one search center includes a target point, and a metric between the target point and the geometric position of the current point is the smallest among metrics relating to the geometric positions of the current point and a set of points.

2. The method of claim 1 , wherein the metric between the geometric positions of the target point and the current point is the difference between the Morton codes of the target point and the current point.

3. The method of claim 1 , wherein the some points are points having a Morton code equal to or greater than the Morton code of the current point.

4. The first PC sample comprises: The method of claim 1 , wherein the current PC sample is a reference PC sample.

5. 2. The method of claim 1, wherein the at least one neighboring point is determined based on a result of performing a nearest neighbor search on the first PC sample, and the points in the first PC sample are sorted before the nearest neighbor search is performed.

6. The method of claim 5 , wherein the points in the first PC sample are sorted based on the Morton codes of the points.

7. the at least one search center includes one search center; The method of claim 5 , wherein the nearest neighbor search is performed on the search center, a point preceding the search center in the sorted points, and a point following the search center in the sorted points.

8. 2. The method of claim 1, further comprising: determining at least one neighboring point from a set of PC samples of the point cloud sequence based on a plurality of search ranges, the set of PC samples including the first PC sample and the current PC sample.

9. The step of determining at least one neighboring point comprises: The method of claim 8 , comprising determining the at least one neighboring point by performing a nearest neighbor search on a set of PC samples based on the plurality of search ranges.

10. 10. The method of claim 9, wherein the nearest neighbor search is performed on the first PC sample based on a first search range of the plurality of search ranges, and the nearest neighbor search is performed on the current PC sample based on a second search range of the plurality of search ranges, the second search range being different from the first search range.

11. The method of claim 10 , wherein the first search range indicates both a number of points to be searched before a search center of the first PC sample and a number of points to be searched after the search center.

12. The method of claim 10 , wherein an indication of the first search range of the plurality of search ranges is included in the bitstream.

13. the indication is a value of the first search range; or The method of claim 12 , wherein the instruction is determined based on a predefined mathematical transformation of the first search range.

14. The method of claim 1 , wherein the current PC sample is a slice within a point cloud frame in the point cloud sequence.

15. the conversion comprises encoding the current PC sample into the bitstream; or The method of claim 1 , wherein the converting comprises decoding the current PC sample from the bitstream.

16. 1. An apparatus for processing point cloud data, comprising: a processor; and a non-transitory memory with instructions, Apparatus, wherein the instructions, when executed by the processor, cause the processor to perform the method of any one of claims 1 to 15.

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

18. 1. A method for storing a bitstream of a point cloud sequence, comprising: determining at least one search center from a set of points in a first current point cloud (PC) sample of the point cloud sequence relative to a current point in the PC sample of the point cloud sequence based on metrics related to the geometric positions of the current point and a set of points; determining at least one neighboring point of the current point based on the at least one search center; generating the bitstream based on the at least one neighboring point; storing the bitstream on a non-transitory computer-readable recording medium; the set of points includes a subset of points in the first PC sample; The method, wherein the at least one search center includes a target point, and a metric between the target point and the geometric position of the current point is the smallest among metrics relating to the geometric positions of the current point and a set of points.

Citation Information

Patent Citations

  • Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

    WO2020196677A1