Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

By encoding and compressing point cloud data, the problems of long waiting time and high encoding/decoding complexity in the prior art when processing large amounts of point cloud data are solved, and efficient processing and high-quality service are achieved.

CN119856206APending Publication Date: 2025-04-18LG ELECTRONICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380062560.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-08-30
Filing Date
2023-08-29
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently process large amounts of point cloud data, resulting in long wait times and high encoding/decoding complexity.

Method used

By encoding point cloud data and converting it into bitstream for transmission and reception, point cloud compression encoding technologies such as geometric point cloud compression (G-PCC) and video point cloud compression (V-PCC) are processed.

Benefits of technology

It realizes efficient processing of point cloud data and provides high-quality point cloud services, suitable for providing general services such as virtual reality (VR), augmented reality (AR) and self-driving services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119856206A_ABST
    Figure CN119856206A_ABST
Patent Text Reader

Abstract

A point cloud data transmission method according to an embodiment may comprise the steps of: encoding point cloud data; and transmitting the bit stream including the point cloud data. A point cloud data receiving method according to an embodiment may comprise the steps of: receiving a bitstream including point cloud data; and decoding the point cloud data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments relate to a method and apparatus for processing point cloud content. Background Art

[0002] Point cloud content is represented by a point cloud, which is a collection of points belonging to a coordinate system representing three-dimensional space. Point cloud content can express media configured in three dimensions and is used to provide various services such as virtual reality (VR), augmented reality (AR), mixed reality (MR), and self-driving services. However, tens to hundreds of thousands of points of data are required to represent point cloud content. Therefore, a method for efficiently processing large amounts of point data is needed. Summary of the Invention

[0003] Technical issues

[0004] Embodiments provide an apparatus and method for efficiently processing point cloud data. Embodiments provide a method and apparatus for processing point cloud data to address latency and encoding / decoding complexity.

[0005] The technical scope of the embodiments is not limited to the above technical objectives, and can be extended to other technical objectives that can be inferred by those skilled in the art based on the entire content disclosed herein.

[0006] Technical Solution

[0007] In one aspect of the present disclosure, a method for transmitting point cloud data may include: encoding the point cloud data; and transmitting a bitstream containing the point cloud data. In another aspect of the present disclosure, a method for receiving point cloud data may include: receiving a bitstream containing the point cloud data; and decoding the point cloud data.

[0008] Beneficial effects

[0009] The apparatus and method according to the embodiment can efficiently process point cloud data.

[0010] The apparatus and method according to the embodiment can provide high-quality point cloud services.

[0011] The apparatus and method according to the embodiment may provide point cloud content for providing general services such as VR services and self-driving services. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The accompanying drawings are included to provide a further understanding of the present disclosure and are incorporated into and constitute a part of this application. They illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. For a better understanding of the various embodiments described below, reference should be made to the following description of the embodiments in conjunction with the accompanying drawings. The same reference numerals will be used throughout the drawings to refer to the same or similar parts.

[0013] Figure 1 An exemplary point cloud content providing system according to an embodiment is shown;

[0014] Figure 2 is a block diagram illustrating a point cloud content providing operation according to an embodiment;

[0015] Figure 3 An exemplary point cloud encoder according to an embodiment is illustrated;

[0016] Figure 4 shows examples of octrees and occupancy codes according to an embodiment;

[0017] Figure 5 illustrates an example of point configuration in each LOD according to an embodiment;

[0018] Figure 6 illustrates an example of point configuration in each LOD according to an embodiment;

[0019] Figure 7 A point cloud decoder according to an embodiment is illustrated;

[0020] Figure 8 A transmitting device according to an embodiment is illustrated;

[0021] Figure 9 A receiving device according to an embodiment is illustrated;

[0022] Figure 10 An exemplary structure that can be operated in conjunction with a point cloud data transmitting / receiving method / apparatus according to an embodiment is illustrated;

[0023] Figure 11 illustrates a prediction tree according to an embodiment;

[0024] Figure 12 The invention illustrates a geometric compression / reconstruction method based on an inter-frame prediction tree according to an embodiment;

[0025] Figure 13 An intra-frame object search method according to an embodiment is illustrated;

[0026] Figure 14 A point cloud data transmitting device according to an embodiment is illustrated;

[0027] Figure 15 A point cloud data receiving device according to an embodiment is illustrated;

[0028] Figure 16 illustrates a bitstream containing point cloud data and parameters according to an embodiment;

[0029] Figure 17illustrates a frame parameter set (FPS) according to an embodiment;

[0030] Figure 18 illustrates a sequence parameter set (SPS) according to an embodiment;

[0031] Figure 19 illustrates a tile parameter set (TPS) according to an embodiment;

[0032] Figure 20 illustrates a geometry parameter set (GPS) according to an embodiment;

[0033] Figure 21 An attribute parameter set (APS) according to an embodiment is illustrated;

[0034] Figure 22 illustrates a geometry slice header (GSH) according to an embodiment;

[0035] Figure 23 A method for transmitting point cloud data according to an embodiment is illustrated;

[0036] Figure 24 A point cloud data receiving method according to an embodiment is illustrated. DETAILED DESCRIPTION

[0037] Reference will now be made in detail to preferred embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. The detailed description given below with reference to the accompanying drawings is intended to illustrate exemplary embodiments of the present disclosure and is not intended to illustrate the only embodiments that can be implemented according to the present disclosure. The following detailed description includes specific details in order to provide a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure can be practiced without these specific details.

[0038] Although most of the terms used in this disclosure are selected from common terms widely used in the art, some terms are arbitrarily selected by the applicant and their meanings are explained in detail in the following description as needed. Therefore, this disclosure should be understood based on the intended meaning of the terms rather than their simple names or meanings.

[0039] Figure 1 An exemplary point cloud content providing system according to an embodiment is shown.

[0040] Figure 1 The illustrated point cloud content providing system may include a transmitting device 10000 and a receiving device 10004. The transmitting device 10000 and the receiving device 10004 may be capable of wired or wireless communication to transmit and receive point cloud data.

[0041] According to an embodiment, the point cloud data transmitting device 10000 can obtain and process point cloud video (or point cloud content) and transmit it. According to an embodiment, the transmitting device 10000 may include a fixed station, a base transceiver system (BTS), a network, an artificial intelligence (AI) device and / or system, a robot, an AR / VR / XR device and / or a server. According to an embodiment, the transmitting device 10000 may include a device configured to communicate with a base station and / or other wireless devices using a radio access technology (e.g., 5G New RAT (NR), Long Term Evolution (LTE)), a robot, a vehicle, an AR / VR / XR device, a portable device, a home appliance, an Internet of Things (IoT) device, and an AI device / server.

[0042] According to an embodiment, the sending device 10000 includes a point cloud video acquirer 10001, a point cloud video encoder 10002 and / or a transmitter (or communication module) 10003.

[0043] The point cloud video acquirer 10001 according to an embodiment acquires a point cloud video through a process such as capture, synthesis, or generation. A point cloud video is point cloud content represented by a point cloud. A point cloud is a collection of points located in a 3D space and may be referred to as point cloud video data, point cloud data, or the like. A point cloud video according to an embodiment may include one or more frames. A frame represents a still image or picture. Therefore, a point cloud video may include point cloud images, frames, or pictures and may be referred to as a point cloud image, frame, or picture.

[0044] The point cloud video encoder 10002 according to an embodiment encodes the acquired point cloud video data. The point cloud video encoder 10002 may encode the point cloud video data based on point cloud compression coding. The point cloud compression coding according to an embodiment may include geometry-based point cloud compression (G-PCC) coding and / or video-based point cloud compression (V-PCC) coding or next-generation coding. The point cloud compression coding according to an embodiment is not limited to the above-mentioned embodiment. The point cloud video encoder 10002 may output a bit stream containing the encoded point cloud video data. The bit stream may include not only the encoded point cloud video data but also signaling information related to the encoding of the point cloud video data.

[0045] According to an embodiment, the transmitter 10003 transmits a bitstream containing encoded point cloud video data. According to an embodiment, the bitstream is encapsulated in a file or segment (e.g., a stream segment) and transmitted via various networks such as a broadcast network and / or a broadband network. Although not shown in the figure, the transmitting device 10000 may include an encapsulator (or encapsulation module) configured to perform an encapsulation operation. According to an embodiment, the encapsulator may be included in the transmitter 10003. According to an embodiment, the file or segment may be transmitted to the receiving device 10004 via a network or stored in a digital storage medium (e.g., USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.). According to an embodiment, the transmitter 10003 is capable of wired / wireless communication with the receiving device 10004 (or receiver 10005) via a 4G, 5G, 6G, etc. network. In addition, the transmitter may perform necessary data processing operations based on the network system (e.g., a 4G, 5G, or 6G communication network system). The transmitting device 10000 can transmit the encapsulated data on demand.

[0046] The receiving device 10004 according to an embodiment includes a receiver 10005, a point cloud video decoder 10006, and / or a renderer 10007. According to an embodiment, the receiving device 10004 may include a device configured to communicate with a base station and / or other wireless devices using a radio access technology (e.g., 5G New RAT (NR), Long Term Evolution (LTE)), a robot, a vehicle, an AR / VR / XR device, a portable device, a home appliance, an Internet of Things (IoT) device, and an AI device / server.

[0047] The receiver 10005 according to the embodiment receives a bitstream containing point cloud video data or a file / segment encapsulated with a bitstream from a network or a storage medium. The receiver 10005 may perform necessary data processing according to a network system (e.g., a communication network system of 4G, 5G, 6G, etc.). The receiver 10005 according to the embodiment may decapsulate the received file / segment and output a bitstream. According to the embodiment, the receiver 10005 may include a decapsulator (or decapsulation module) configured to perform a decapsulation operation. The decapsulator may be implemented as an element (or component) separate from the receiver 10005.

[0048] The point cloud video decoder 10006 decodes the bitstream containing the point cloud video data. The point cloud video decoder 10006 can decode the point cloud video data according to the method by which the point cloud video data was encoded (e.g., by performing the inverse process of the operation of the point cloud video encoder 10002). Therefore, the point cloud video decoder 10006 can decode the point cloud video data by performing point cloud decompression encoding (the inverse process of point cloud compression). Point cloud decompression encoding includes G-PCC encoding.

[0049] The renderer 10007 renders the decoded point cloud video data. The renderer 10007 may output the point cloud content by rendering not only the point cloud video data but also the audio data. Depending on the embodiment, the renderer 10007 may include a display configured to display the point cloud content. Depending on the embodiment, the display may be implemented as a separate device or component rather than being included in the renderer 10007.

[0050] The arrow indicated by the dotted line in the figure represents the transmission path of the feedback information obtained by the receiving device 10004. Feedback information is information reflecting the interactivity with the user consuming the point cloud content, and includes information about the user (e.g., head orientation information, viewport information, etc.). Specifically, when the point cloud content is content for a service that requires interaction with the user (e.g., a self-driving service, etc.), the feedback information can be provided to the content sender (e.g., the sending device 10000) and / or the service provider. Depending on the embodiment, the feedback information may be used in the receiving device 10004 and the sending device 10000, or may not be provided.

[0051] According to an embodiment, head orientation information refers to information regarding the user's head position, orientation, angle, movement, and the like. According to an embodiment, the receiving device 10004 may calculate viewport information based on the head orientation information. Viewport information may be information regarding the area of ​​the point cloud video being viewed by the user. The viewpoint is the point through which the user views the point cloud video and may refer to the center point of the viewport area. That is, the viewport is the area centered on the viewpoint, and the size and shape of the area may be determined by the field of view (FOV). Therefore, in addition to head orientation information, the receiving device 10004 may also extract viewport information based on the vertical or horizontal FOV supported by the device. Furthermore, the receiving device 10004 may perform gaze analysis, etc., to examine how the user consumes the point cloud, the area within the point cloud video the user is gazing at, the duration of the gaze, and other factors. According to an embodiment, the receiving device 10004 may transmit feedback information including the gaze analysis results to the sending device 10000. According to an embodiment, the feedback information may be obtained during the rendering and / or display process. According to an embodiment, the feedback information may be acquired by one or more sensors included in the receiving device 10004. Depending on the implementation, the feedback information may be obtained by the renderer 10007 or a separate external element (or device, component, etc.). Figure 1The dotted line in represents the process of sending the feedback information obtained by the renderer 10007. The point cloud content providing system can process (encode / decode) the point cloud data based on the feedback information. Therefore, the point cloud video decoder 10006 can perform a decoding operation based on the feedback information. The receiving device 10004 can send the feedback information to the sending device 10000. The sending device 10000 (or the point cloud video data encoder 10002) can perform an encoding operation based on the feedback information. Therefore, the point cloud content providing system can efficiently process necessary data (for example, point cloud data corresponding to the user's head position) based on the feedback information instead of processing (encoding / decoding) the entire point cloud data, and provide the point cloud content to the user.

[0052] Depending on the embodiment, the transmitting device 10000 may be referred to as an encoder, a transmitting device, a transmitter, etc., and the receiving device 10004 may be referred to as a decoder, a receiving device, a receiver, etc.

[0053] According to the embodiment Figure 1 Point cloud data processed in a point cloud content providing system (through a series of processes such as acquisition, encoding, transmission, decoding, and rendering) may be referred to as point cloud content data or point cloud video data. Depending on the embodiment, point cloud content data may be used as a concept encompassing metadata or signaling information related to point cloud data.

[0054] Figure 1 The elements of the illustrated point cloud content providing system may be implemented by hardware, software, a processor, and / or a combination thereof.

[0055] Figure 2 is a block diagram illustrating a point cloud content providing operation according to an embodiment.

[0056] Figure 2 The block diagram shows Figure 1 As described above, the point cloud content providing system may process point cloud data based on point cloud compression coding (eg, G-PCC).

[0057] According to an embodiment, a point cloud content providing system (e.g., a point cloud sending device 10000 or a point cloud video acquirer 10001) can acquire a point cloud video (20000). The point cloud video is represented by a point cloud belonging to a coordinate system for expressing a 3D space. According to an embodiment, a point cloud video may include a Ply (Polygon file format or Stanford Triangle format) file. When a point cloud video has one or more frames, the acquired point cloud video may include one or more Ply files. The Ply file contains point cloud data such as point geometry and / or attributes. Geometry includes the position of a point. The position of each point can be represented by parameters (e.g., X, Y, and Z axis values) representing a three-dimensional coordinate system (e.g., a coordinate system consisting of X, Y, and Z axes). Attributes include attributes of the point (e.g., information about the texture, color (YCbCr or RGB), reflectivity r, transparency, etc. of each point). A point has one or more attributes. For example, a point may have a color attribute or two attributes, color and reflectivity. Depending on the embodiment, geometry may be referred to as position, geometry information, geometry data, position information, position data, etc., and attribute may be referred to as attribute, attribute information, attribute data, etc. The point cloud content providing system (e.g., the point cloud transmitting device 10000 or the point cloud video acquirer 10001) may obtain point cloud data from information related to the point cloud video acquisition process (e.g., depth information, color information, etc.).

[0058] According to an embodiment, a point cloud content providing system (e.g., a transmitting device 10000 or a point cloud video encoder 10002) may encode point cloud data (20001). The point cloud content providing system may encode point cloud data based on point cloud compression coding. As described above, point cloud data may include geometric information and attribute information about a point. Therefore, the point cloud content providing system may perform geometric coding for encoding the geometry and output a geometric bitstream. The point cloud content providing system may perform attribute coding for encoding the attributes and output an attribute bitstream. According to an embodiment, the point cloud content providing system may perform attribute coding based on geometric coding. The geometric bitstream and the attribute bitstream according to the embodiment may be multiplexed and output as one bitstream. The bitstream according to the embodiment may also include signaling information related to geometric coding and attribute coding.

[0059] The point cloud content providing system according to the embodiment (eg, the transmitting device 10000 or the transmitter 10003) may transmit the encoded point cloud data (20002). Figure 1As shown, the encoded point cloud data can be represented by a geometry bitstream and an attribute bitstream. In addition, the encoded point cloud data can be sent in the form of a bitstream together with signaling information related to the encoding of the point cloud data (e.g., signaling information related to geometry encoding and attribute encoding). The point cloud content providing system can encapsulate the bitstream carrying the encoded point cloud data and send it in the form of a file or fragment.

[0060] According to an embodiment, a point cloud content providing system (e.g., receiving device 10004 or receiver 10005) may receive a bitstream containing encoded point cloud data. In addition, the point cloud content providing system (e.g., receiving device 10004 or receiver 10005) may demultiplex the bitstream.

[0061] The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) can decode the encoded point cloud data (e.g., geometry bitstream, attribute bitstream) sent in the bitstream. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) can decode the point cloud video data based on the signaling information related to the encoding of the point cloud video data contained in the bitstream. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) can decode the geometry bitstream to reconstruct the position (geometry) of the point. The point cloud content providing system can reconstruct the attributes of the point by decoding the attribute bitstream based on the reconstructed geometry. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) can reconstruct the point cloud video based on the position according to the reconstructed geometry and the decoded attributes.

[0062] According to an embodiment, a point cloud content providing system (e.g., receiving device 10004 or renderer 10007) can render the decoded point cloud data (20004). The point cloud content providing system (e.g., receiving device 10004 or renderer 10007) can use various rendering methods to render the geometry and attributes decoded by the decoding process. Points in the point cloud content can be rendered as vertices with a specific thickness, cubes with a specific minimum size centered at the corresponding vertex position, or circles centered at the corresponding vertex position. All or part of the rendered point cloud content is provided to the user via a display (e.g., a VR / AR display, a general display, etc.).

[0063] According to an embodiment, the point cloud content providing system (e.g., receiving device 10004) may obtain feedback information (20005). The point cloud content providing system may encode and / or decode the point cloud data based on the feedback information. Figure 1 The feedback information and operations described are the same, so their detailed description is omitted.

[0064] Figure 3 An exemplary point cloud encoder is shown according to an embodiment.

[0065] Figure 3 Show Figure 1 An example of a point cloud video encoder 10002 is provided. The point cloud encoder reconstructs and encodes point cloud data (e.g., the position and / or attributes of points) to adjust the quality of the point cloud content (e.g., lossless, lossy, or near-lossless) according to network conditions or applications. When the total size of the point cloud content is large (e.g., 60 Gbps of point cloud content for 30 fps), the point cloud content providing system may not be able to stream the content in real time. Therefore, the point cloud content providing system may reconstruct the point cloud content based on the maximum target bit rate to provide the point cloud content according to the network environment, etc.

[0066] As reference Figure 1 and Figure 2 As described, the point cloud encoder can perform both geometry encoding and attribute encoding. Geometry encoding is performed before attribute encoding.

[0067] The point cloud encoder according to an embodiment includes a coordinate transformer (transforming coordinates) 30000, a quantizer (quantizing and removing points (voxelization)) 30001, an octree analyzer (analyzing octree) 30002 and a surface approximation analyzer (analyzing surface approximation) 30003, an arithmetic encoder (arithmetic coding) 30004, a geometry reconstructor (reconstructing geometry) 30005, a color transformer (transforming color) 30006, an attribute transformer (transforming attributes) 30007, a RAHT transformer (RAHT) 30008, an LOD generator (generating LOD) 30009, a lifting transformer (lifting) 30010, a coefficient quantizer (quantizing coefficients) 30011 and / or an arithmetic encoder (arithmetic coding) 30012.

[0068] The coordinate transformer 30000, quantizer 30001, octree analyzer 30002, surface approximation analyzer 30003, arithmetic encoder 30004, and geometry reconstructor 30005 may perform geometry coding. Depending on the embodiment, geometry coding may include octree geometry coding, prediction tree geometry coding, direct coding, triplet geometry coding, and entropy coding. Direct coding and triplet geometry coding may be applied selectively or in combination. Geometric coding is not limited to the above examples.

[0069] As shown in the figure, the coordinate converter 30000 according to an embodiment receives a position and converts it into coordinates. For example, the position can be converted into position information in a three-dimensional space (e.g., a three-dimensional space represented by an XYZ coordinate system). The position information in the three-dimensional space according to an embodiment can be referred to as geometric information.

[0070] The quantizer 30001 according to an embodiment quantizes the geometry. For example, the quantizer 30001 may quantize the points based on the minimum position value of all points (e.g., the minimum value on each of the X, Y, and Z axes). The quantizer 30001 performs a quantization operation by multiplying the difference between the minimum position value and the position value of each point by a preset quantization scaling value, and then finding the nearest integer value by rounding the value obtained by the multiplication. Therefore, one or more points may have the same quantized position (or position value). The quantizer 30001 according to an embodiment performs voxelization based on the quantized position to reconstruct the quantized points. As in the case of a pixel (the smallest unit containing 2D image / video information), the points of the point cloud content (or 3D point cloud video) according to an embodiment may be included in one or more voxels. As a composite of volume and pixel, the term voxel refers to a 3D cubic space generated when a 3D space is divided into units (unit = 1.0) based on the axes representing the 3D space (e.g., the X, Y, and Z axes). Quantizer 30001 can match point groups in 3D space to voxels. Depending on the embodiment, a voxel may include only one point. Depending on the embodiment, a voxel may include one or more points. To represent a voxel as a point, the position of the voxel's center can be set based on the positions of one or more points included in the voxel. In this case, the attributes of all positions included in a voxel can be combined and assigned to the voxel.

[0071] The octree analyzer 30002 according to an embodiment performs octree geometry encoding (or octree encoding) to represent voxels in an octree structure. The octree structure represents points that are matched to voxels based on an octal tree structure.

[0072] The surface approximation analyzer 30003 according to an embodiment may analyze and approximate an octree. The octree analysis and approximation according to an embodiment is a process of analyzing a region including a plurality of points to efficiently provide an octree and voxelization.

[0073] According to an embodiment, the arithmetic encoder 30004 performs entropy coding on the octree and / or approximate octree. For example, the coding scheme includes arithmetic coding. As a result of the coding, a geometry bitstream is generated.

[0074] The color converter 30006, the attribute converter 30007, the RAHT converter 30008, the LOD generator 30009, the lifting converter 30010, the coefficient quantizer 30011, and / or the arithmetic encoder 30012 perform attribute coding. As described above, a point may have one or more attributes. Attribute coding according to an embodiment is also applied to the attributes of a point. However, when an attribute (e.g., color) includes one or more elements, attribute coding is applied independently to each element. Attribute coding according to an embodiment includes color transform coding, attribute transform coding, region adaptive hierarchical transform (RAHT) coding, interpolation-based hierarchical nearest neighbor prediction (prediction transform) coding, and interpolation-based hierarchical nearest neighbor prediction (lifting transform) coding with an update / lifting step. Depending on the point cloud content, the above-mentioned RAHT coding, prediction transform coding, and lifting transform coding can be selectively used, or a combination of one or more coding schemes can be used. Attribute coding according to an embodiment is not limited to the above examples.

[0075] The color converter 30006 according to an embodiment performs color conversion encoding to convert the color value (or texture) included in the attribute. For example, the color converter 30006 may convert the format of the color information (e.g., from RGB to YCbCr). Alternatively, the operation of the color converter 30006 according to an embodiment may be applied based on the color value included in the attribute.

[0076] The geometry reconstructor 30005 according to an embodiment reconstructs (decompresses) an octree and / or an approximate octree. The geometry reconstructor 30005 reconstructs the octree / voxel based on the result of analyzing the point distribution. The reconstructed octree / voxel may be referred to as reconstructed geometry (restored geometry).

[0077] The attribute converter 30007 according to an embodiment performs attribute conversion to convert attributes based on reconstructed geometry and / or locations where geometry encoding is not performed. As described above, since attributes depend on geometry, the attribute converter 30007 can convert attributes based on reconstructed geometry information. For example, based on the position value of a point included in a voxel, the attribute converter 30007 can convert the attributes of the point at that position. As described above, when the center position of a voxel is set based on the positions of one or more points included in the voxel, the attribute converter 30007 converts the attributes of one or more points. When triplet geometry encoding is performed, the attribute converter 30007 can convert attributes based on the triplet geometry encoding.

[0078] The attribute converter 30007 can perform attribute conversion by calculating the average of the attributes or attribute values ​​(e.g., the color or reflectivity of each point) of neighboring points within a specific position / radius from the center position (or position value) of each voxel. The attribute converter 30007 can apply weights based on the distance from the center to each point when calculating the average. Thus, each voxel has a position and a calculated attribute (or attribute value).

[0079] The attribute converter 30007 can search for neighboring points within a specific position / radius from the center position of each voxel based on a KD tree or a Morton code. The KD tree is a binary search tree and supports a data structure that can manage points based on position, so that a nearest neighbor search (NNS) can be performed quickly. The Morton code is generated by presenting the coordinates (e.g., (x, y, z)) representing the 3D positions of all points as bit values ​​and mixing the bits. For example, when the coordinates representing the point position are (5, 9, 1), the bit values ​​of the coordinates are (0101, 1001, 0001). Mixing the bit values ​​in the order of z, y, and x according to the bit index produces 010001000111. This value is represented as a decimal number 1095. That is, the Morton code value of the point with coordinates (5, 9, 1) is 1095. The attribute converter 30007 can sort the points based on the Morton code value and perform NNS through a depth-first traversal process. After the attribute transformation operation, KD tree or Morton code is used when NNS is needed in another transformation process for attribute encoding.

[0080] As shown, the transformed attributes are input to the RAHT transformer 30008 and / or the LOD generator 30009.

[0081] The RAHT transformer 30008 according to an embodiment performs RAHT encoding for predicting attribute information based on the reconstructed geometric information. For example, the RAHT transformer 30008 may predict attribute information of a higher-level node in the octree based on attribute information associated with a lower-level node in the octree.

[0082] According to an embodiment, the LOD generator 30009 generates a level of detail (LOD) to perform predictive transform coding. According to an embodiment, the LOD is the degree of detail of the point cloud content. As the LOD value decreases, the detail of the point cloud content degrades. As the LOD value increases, the detail of the point cloud content increases. Points can be categorized by LOD.

[0083] The lifting transformer 30010 according to an embodiment performs lifting transform coding that transforms point cloud attributes based on weights. As described above, lifting transform coding can be optionally applied.

[0084] The coefficient quantizer 30011 according to the embodiment quantizes the attribute of the attribute encoding based on the coefficient.

[0085] The arithmetic encoder 30012 according to the embodiment encodes quantized properties based on arithmetic coding.

[0086] Although not shown in the figure, Figure 3 The elements of the point cloud encoder may be implemented by hardware, software, firmware, or a combination thereof including one or more processors or integrated circuits configured to communicate with one or more memories included in the point cloud providing device. The one or more processors may execute the above Figure 3 At least one of the operations and / or functions of the elements of the point cloud encoder. In addition, one or more processors may be operable or executable to perform Figure 3 The one or more memories of the embodiment may include high-speed random access memory, or include non-volatile memory (e.g., one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices).

[0087] Figure 4 Examples of octrees and occupancy codes are shown, according to an embodiment.

[0088] As reference Figures 1 to 3 As described, the point cloud content providing system (point cloud video encoder 10002) or the point cloud encoder (e.g., octree analyzer 30002) performs octree geometry encoding (or octree encoding) based on the octree structure to efficiently manage the area and / or position of voxels.

[0089] Figure 4 The upper part of FIG shows the octree structure. The 3D space of the point cloud content according to the embodiment is represented by the axes (eg, X-axis, Y-axis, and Z-axis) of the coordinate system. The octree structure is represented by the two poles (0,0,0) and (2 d ,2 d ,2 d ) to create an octree structure. Here, 2d can be set to the value of the minimum bounding box that surrounds all points of the point cloud content (or point cloud video). Here, d represents the depth of the octree. The value of d is determined in the following formula. In the following formula, (x int n ,y int n ,z int n ) represents the position (or position value) of the quantized point.

[0090] d=Ceil(Log2(Max(x_n^int,y_n^int,z_n^in,n=1,…,N)+1))

[0091] like Figure 4 As shown in the middle of the upper part of , the entire 3D space can be divided into eight spaces according to the partition. Each divided space is represented by a cube with six faces. Figure 4 As shown in the upper right portion of the octree, each of the eight spaces is further divided based on the axes of the coordinate system (e.g., X-axis, Y-axis, and Z-axis). Thus, each space is divided into eight smaller spaces. Each of the divided smaller spaces is also represented by a cube with six faces. This division scheme is applied until the leaf nodes of the octree become voxels.

[0092] Figure 4 The lower part shows the octree occupancy code. The occupancy code of the octree is generated to indicate whether each of the eight divided spaces generated by dividing one space contains at least one point. Therefore, a single occupancy code is represented by eight child nodes. Each child node represents the occupancy of the divided space, and the child node has a 1-bit value. Therefore, the occupancy code is represented as an 8-bit code. That is, when the space corresponding to the child node contains at least one point, the node is assigned a value of 1. When the space corresponding to the child node does not contain a point (the space is empty), the node is assigned a value of 0. Since Figure 4 The occupancy code shown is 00100001, thus indicating that the spaces corresponding to the third and eighth child nodes among the eight child nodes each contain at least one point. As shown in the figure, each of the third and eighth child nodes has eight child nodes, and the child nodes are represented by 8-bit occupancy codes. The accompanying drawings show that the occupancy code of the third child node is 10000111, and the occupancy code of the eighth child node is 01001111. The point cloud encoder (e.g., the arithmetic encoder 30004) according to the embodiment may perform entropy coding on the occupancy code. In order to increase compression efficiency, the point cloud encoder may perform intra-frame / inter-frame coding on the occupancy code. The receiving device (e.g., the receiving device 10004 or the point cloud video decoder 10006) according to the embodiment reconstructs the octree based on the occupancy code.

[0093] According to an embodiment of the point cloud encoder (e.g., Figure 4 The point cloud encoder or octree analyzer 30002 may perform voxelization and octree encoding to store point locations. However, points are not always evenly distributed in 3D space, so there may be specific areas with fewer points. Therefore, performing voxelization on the entire 3D space is inefficient. For example, when a specific area contains very few points, voxelization does not need to be performed in that specific area.

[0094] Therefore, for the above-mentioned specific area (or nodes other than the leaf nodes of the octree), the point cloud encoder according to the embodiment may skip voxelization and perform direct encoding to directly encode the point positions included in the specific area. The coordinates of the directly encoded points according to the embodiment are called direct coding mode (DCM). The point cloud encoder according to the embodiment may also perform triplet geometry encoding based on the surface model, which is to reconstruct the point positions in the specific area (or node) based on voxels. Triplet geometry encoding is a geometry encoding that represents an object as a series of triangular meshes. Therefore, the point cloud decoder can generate a point cloud from the mesh surface. Direct encoding and triplet geometry encoding according to the embodiment can be performed selectively. In addition, direct encoding and triplet geometry encoding according to the embodiment can be performed in combination with octree geometry encoding (or octree encoding).

[0095] To perform direct encoding, the option to use direct mode to apply direct encoding should be enabled. The node to which direct encoding is to be applied is not a leaf node, and there should be less than a threshold number of points within the specific node. In addition, the total number of points to which direct encoding is to be applied should not exceed a preset threshold. When the above conditions are met, the point cloud encoder (or arithmetic encoder 30004) according to the embodiment can perform entropy encoding on the point position (or position value).

[0096] A point cloud encoder according to an embodiment (e.g., a surface approximation analyzer 30003) may determine a specific level of the octree (a level less than the depth d of the octree), and may use a surface model starting from this level to perform triplet geometry encoding to reconstruct the point positions in the node area based on voxels (triplet mode). A point cloud encoder according to an embodiment may specify the level to which triplet geometry encoding is to be applied. For example, when the specific level is equal to the depth of the octree, the point cloud encoder does not operate in triplet mode. In other words, the point cloud encoder according to an embodiment may operate in triplet mode only when the specified level is less than the depth value of the octree. A 3D cubic area of ​​a node at a specified level according to an embodiment is called a block. A block may include one or more voxels. A block or voxel may correspond to a block. The geometry is represented as a surface within each block. A surface according to an embodiment may intersect each edge of the block at most once.

[0097] A block has 12 edges, so there are at least 12 intersections within a block. Each intersection is called a vertex. Vertices along an edge are detected when there is at least one occupied voxel adjacent to the edge across all blocks that share the edge. An occupied voxel, according to embodiments, refers to a voxel containing a point. The vertex position detected along an edge is the average position of all voxels adjacent to the edge across all blocks along the edge.

[0098] Once the vertex is detected, the point cloud encoder according to an embodiment may perform entropy encoding on the edge start point (x, y, z), the edge direction vector (Δx, Δy, Δz), and the vertex position value (relative position value within the edge). When triplet geometry encoding is applied, the point cloud encoder according to an embodiment (e.g., geometry reconstructor 30005) may generate recovered geometry (reconstructed geometry) by performing triangle reconstruction, upsampling, and voxelization processes.

[0099] Vertices located at the edges of a block define a surface that passes through the block. The surface according to an embodiment is a non-planar polygon. During triangle reconstruction, the surface represented by the triangles is reconstructed based on the starting points of the edges, the direction vectors of the edges, and the position values ​​of the vertices. The triangle reconstruction process is performed by i) calculating the centroid value of each vertex, ii) subtracting the centroid value from each vertex value, and iii) estimating the sum of the squares of the values ​​obtained by the subtraction.

[0100] ① ② ③

[0101] The minimum value of the sum is estimated, and the projection process is performed along the axis with the minimum value. For example, when the element x is the smallest, each vertex is projected onto the x-axis relative to the center of the block and onto the (y,z) plane. When the value obtained by projection onto the (y,z) plane is (ai,bi), the value of θ is estimated by atan2(bi,ai), and the vertices are sorted based on the value of θ. The following table shows the vertex combinations that create triangles based on the number of vertices. The vertices are sorted from 1 to n. The following table shows that for four vertices, two triangles can be constructed based on the vertex combinations. The first triangle can be composed of vertices 1, 2, and 3 among the sorted vertices, and the second triangle can be composed of vertices 3, 4, and 1 among the sorted vertices.

[0102] A triangle formed from vertices sorted 1,…,n

[0103] n triangle

[0104] 3(1,2,3)

[0105] 4(1,2,3),(3,4,1)

[0106] 5(1,2,3),(3,4,5),(5,1,3)

[0107] 6(1,2,3),(3,4,5),(5,6,1),(1,3,5)

[0108] 7(1,2,3),(3,4,5),(5,6,7),(7,1,3),(3,5,7)

[0109] 8(1,2,3),(3,4,5),(5,6,7),(7,8,1),(1,3,5),(5,7,1)

[0110] 9(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,1,3),(3,5,7),(7,9,3)

[0111] 10(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,1),(1,3,5),(5,7,9),(9,1,5)

[0112] 11(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,11),(11,1,3),(3,5,7),(7,9,11),(11,3,7)

[0113] 12(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,11),(11,12,1),(1,3,5),(5,7,9),(9,11,1),(1,5,9)

[0114] An upsampling process is performed to add points in the middle along the edges of the triangle, and voxelization is performed. The added points are generated based on the upsampling factor and the width of the block. The added points are called refinement vertices. The point cloud encoder according to an embodiment may voxelize the refinement vertices. In addition, the point cloud encoder may perform attribute encoding based on the voxelized positions (or position values).

[0115] Figure 5 An example of point configuration in each LOD according to an embodiment is shown.

[0116] As reference Figures 1 to 4 As described, the encoded geometry is reconstructed (decompressed) before attribute encoding is performed. When direct encoding is applied, the geometry reconstruction operation may include changing the placement of directly encoded points (e.g., placing directly encoded points in front of the point cloud data). When triplet geometry encoding is applied, the geometry reconstruction process is performed through triangle reconstruction, upsampling, and voxelization. Since attributes depend on geometry, attribute encoding is performed based on the reconstructed geometry.

[0117] The point cloud encoder (e.g., LOD generator 30009) can classify (or reorganize) points by LOD. The figure shows the point cloud content corresponding to the LOD. The leftmost frame in the figure shows the original point cloud content. The second frame from the left in the figure shows the point distribution in the lowest LOD, and the rightmost frame in the figure shows the point distribution in the highest LOD. That is, the points in the lowest LOD are sparsely distributed, and the points in the highest LOD are densely distributed. In other words, as the LOD increases in the direction indicated by the arrow at the bottom of the figure, the space (or distance) between points becomes narrower.

[0118] Figure 6 An example of point configuration for each LOD is shown according to an embodiment.

[0119] As reference Figures 1 to 5 As described, the point cloud content providing system or point cloud encoder (eg, point cloud video encoder 10002, Figure 3 The point cloud encoder or LOD generator 30009 can generate LODs. LODs are generated by reorganizing points into a set of refinement levels based on a set LOD distance value (or Euclidean distance set). The LOD generation process is performed not only by the point cloud encoder but also by the point cloud decoder.

[0120] Figure 6 The upper part of shows examples of points (P0 to P9) of point cloud contents distributed in 3D space. Figure 6 In , the original order represents the order of points P0 to P9 before LOD generation. Figure 6 In the LOD-based order, the order of points generated according to the LOD is shown. Points are reorganized by LOD. In addition, higher LODs contain points belonging to lower LODs. Figure 6 As shown, LOD0 contains P0, P5, P4, and P2. LOD1 contains the points of LOD0, P1, P6, and P3. LOD2 contains the points of LOD0, LOD1, P9, P8, and P7.

[0121] As reference Figure 3 As described, the point cloud encoder according to the embodiment may selectively or in combination perform predictive transform coding, lifting transform coding, and RAHT transform coding.

[0122] The point cloud encoder according to an embodiment may generate a predictor for each point to perform predictive transform coding for setting a predicted attribute (or predicted attribute value) for each point. That is, N predictors may be generated for N points. The predictor according to an embodiment may calculate a weight (=1 / distance) based on the LOD value of each point, index information about neighboring points within a set distance of each LOD, and the distance to the neighboring point.

[0123] The predicted attribute (or attribute value) according to the embodiment is set to the average of the values ​​obtained by multiplying the attribute (or attribute value) (e.g., color, reflectivity, etc.) of the neighboring points set in the predictor of each point by the weight (or weight value) calculated based on the distance to each neighboring point. The point cloud encoder (e.g., coefficient quantizer 30011) according to the embodiment can quantize and inverse quantize the residual (which may be referred to as residual attribute, residual attribute value, attribute prediction residual, attribute residual) obtained by subtracting the predicted attribute (attribute value) from the attribute (attribute value) of each point. The quantization process is configured as shown in the following table.

[0124] Table. Pseudocode for attribute prediction residual quantization

[0125] int PCCQuantization(int value,int quantStep){

[0126] if(value>=0){

[0127] return floor(value / quantStep+1.0 / 3.0);

[0128] }else{

[0129] return-floor(-value / quantStep+1.0 / 3.0);

[0130] }

[0131] }

[0132] Table. Pseudocode for inverse quantization of attribute prediction residuals

[0133] int PCCInverseQuantization(int value,int quantStep){

[0134] if(quantStep==0){

[0135] return value;

[0136] }else{

[0137] return value*quantStep;

[0138] }

[0139] }

[0140] When the predictor of each point has neighboring points, the point cloud encoder (e.g., the arithmetic encoder 30012) according to an embodiment may perform entropy encoding on the quantized and inverse quantized residual values ​​as described above. When the predictor of each point has no neighboring points, the point cloud encoder (e.g., the arithmetic encoder 30012) according to an embodiment may perform entropy encoding on the attributes of the corresponding point without performing the above operation.

[0141] The point cloud encoder (e.g., lifting transformer 30010) according to an embodiment may generate a predictor for each point, set the calculated LOD, register neighboring points in the predictor, and set weights based on the distances to the neighboring points to perform lifting transform encoding. Lifting transform encoding according to an embodiment is similar to the above-described predictive transform encoding, but differs in that weights are cumulatively applied to attribute values. The process of cumulatively applying weights to attribute values ​​according to an embodiment is configured as follows.

[0142] 1) Create an array called quantized weights (QW) to store the weight values ​​for each point. The initial value of all elements of QW is 1.0. Multiply the QW value of the predictor index of the neighboring node registered in the predictor by the weight of the predictor for the current point, and add the values ​​obtained by the multiplication.

[0143] 2) Boosting prediction process: The value obtained by multiplying the attribute value of the point by the weight is subtracted from the existing attribute value to calculate the predicted attribute value.

[0144] 3) Create temporary arrays called updateweight and update, and initialize the temporary arrays to zero.

[0145] 4) The weight calculated by multiplying the weight calculated for all predictors by the weight stored in the QW corresponding to the predictor index is added to the updateweight array as the index of the neighbor node. The value obtained by multiplying the attribute value of the neighbor node index by the calculated weight is added to the update array.

[0146] 5) Boosting update process: Divide the attribute values ​​of the update array of all predictors by the weight value of the updateweight array of the predictor index, and add the existing attribute value to the value obtained by the division.

[0147] 6) For all predictors, the predicted attribute is calculated by multiplying the attribute value updated by the lifting update process by the weight (stored in QW) updated by the lifting prediction process. The point cloud encoder (e.g., coefficient quantizer 30011) according to the embodiment quantizes the predicted attribute value. In addition, the point cloud encoder (e.g., arithmetic encoder 30012) performs entropy encoding on the quantized attribute value.

[0148] A point cloud encoder according to an embodiment (e.g., RAHT transformer 30008) may perform RAHT transform coding, in which attributes associated with nodes at a lower level in an octree are used to predict attributes of nodes at a higher level. RAHT transform coding is an example of intra-coding of attributes by scanning backward through an octree. A point cloud encoder according to an embodiment scans the entire area starting from voxels and repeats a merging process of merging voxels into larger blocks at each step until a root node is reached. The merging process according to an embodiment is performed only on occupied nodes. The merging process is not performed on empty nodes. The merging process is performed on the upper node directly above the empty node.

[0149] The following formula represents the RAHT transformation matrix. In this formula, Represents the average attribute value of voxels at level l. Can be based on and To calculate. and The weight is and

[0150]

[0151] here, is the low-pass value and is used during the next highest level of merging. Denotes the high-pass coefficient. The high-pass coefficient of each step is quantized and subjected to entropy coding (eg, by arithmetic coder 300012). The weight is calculated as pass and Create the root node as follows.

[0152]

[0153] The value of gDC is also quantized and subjected to entropy decoding like the high-pass coefficients.

[0154] Figure 7 A point cloud decoder according to an embodiment is shown.

[0155] Figure 7 The point cloud decoder shown is an example of a point cloud decoder and can perform decoding operations, which are Figures 1 to 6 The inverse process of the encoding operation of the point cloud encoder is shown.

[0156] As reference Figure 1 and Figure 6 As described, the point cloud decoder can perform both geometry decoding and attribute decoding. Geometry decoding is performed before attribute decoding.

[0157] The point cloud decoder according to an embodiment includes an arithmetic decoder (arithmetic decoding) 7000, an octree synthesizer (synthesize octree) 7001, a surface approximation synthesizer (synthesize surface approximation) 7002 and a geometry reconstructor (reconstruct geometry) 7003, an inverse coordinate transformer (inverse transform coordinates) 7004, an arithmetic decoder (arithmetic decoding) 7005, an inverse quantizer (inverse quantization) 7006, a RAHT transformer 7007, an LOD generator (generate LOD) 7008, an inverse lifting (inverse lifting) 7009 and / or an inverse color transformer (inverse transform color) 7010.

[0158] The arithmetic decoder 7000, the octree synthesizer 7001, the surface approximation synthesizer 7002, the geometry reconstructor 7003, and the coordinate inverse transformer 7004 may perform geometry decoding. The geometry decoding according to the embodiment may include direct decoding and triplet geometry decoding. Direct encoding and triplet geometry decoding are selectively applied. The geometry decoding is not limited to the above example, and as a reference Figures 1 to 6 The inverse process of the geometric encoding described is performed.

[0159] The arithmetic decoder 7000 according to the embodiment decodes the received geometry bitstream based on arithmetic coding. The operation of the arithmetic decoder 7000 corresponds to the inverse process of the arithmetic encoder 30004.

[0160] The octree synthesizer 7001 according to the embodiment can generate an octree by obtaining an occupancy code (or information about the geometry obtained as a result of decoding) from the decoded geometry bitstream. Figures 1 to 6 Describe the configuration in detail.

[0161] When triplet geometry encoding is applied, the surface approximation synthesizer 7002 according to an embodiment may synthesize a surface based on the decoded geometry and / or the generated octree.

[0162] According to an embodiment, the geometry reconstructor 7003 can regenerate the geometry based on the surface and / or decoded geometry. Figures 1 to 9 As described, direct coding and triplet geometry coding are selectively applied. Therefore, the geometry reconstructor 7003 directly imports the position information about the points to which direct coding is applied and adds them. When triplet geometry coding is applied, the geometry reconstructor 7003 can reconstruct the geometry by performing the reconstruction operations (e.g., triangle reconstruction, upsampling, and voxelization) of the geometry reconstructor 30005. Details and References Figure 6 The reconstructed geometry may include a point cloud frame or screen that does not contain attributes.

[0163] The coordinate inverse transformer 7004 according to an embodiment may acquire a point position by transforming the coordinates based on the reconstructed geometry.

[0164] The arithmetic decoder 7005, the inverse quantizer 7006, the RAHT transformer 7007, the LOD generator 7008, the inverse lifter 7009 and / or the inverse color transformer 7010 may perform a reference Figure 6 Attribute decoding described. Attribute decoding according to an embodiment includes region adaptive hierarchical transform (RAHT) decoding, interpolation-based hierarchical nearest neighbor prediction (prediction transform) decoding, and interpolation-based hierarchical nearest neighbor prediction (lifting transform) decoding with an update / lifting step. The above three decoding schemes can be used selectively, or a combination of one or more decoding schemes can be used. Attribute decoding according to an embodiment is not limited to the above examples.

[0165] The arithmetic decoder 7005 according to the embodiment decodes the attribute bitstream through arithmetic coding.

[0166] The inverse quantizer 7006 according to an embodiment inversely quantizes information about a decoded attribute bitstream or an attribute obtained as a result of decoding, and outputs the inversely quantized attribute (or attribute value). Inverse quantization may be selectively applied based on attribute encoding of the point cloud encoder.

[0167] Depending on the embodiment, the RAHT transformer 7007, the LOD generator 7008, and / or the inverse lifter 7009 may process the reconstructed geometry and inverse quantized attributes. As described above, the RAHT transformer 7007, the LOD generator 7008, and / or the inverse lifter 7009 may selectively perform a decoding operation corresponding to the encoding of the point cloud encoder.

[0168] The color inverse converter 7010 according to an embodiment performs inverse transform encoding to inversely transform the color value (or texture) included in the decoded attribute. The operation of the color inverse converter 7010 may be selectively performed based on the operation of the color converter 30006 of the point cloud encoder.

[0169] Although not shown in the figure, Figure 7 The elements of the point cloud decoder may be implemented by hardware, software, firmware, or a combination thereof including one or more processors or integrated circuits configured to communicate with one or more memories included in the point cloud providing device. The one or more processors may execute the above Figure 7 At least one or more of the operations and / or functions of the elements of the point cloud decoder. In addition, one or more processors may be operable or executed to perform Figure 7 A software program and / or instruction set for the operation and / or functionality of the elements of a point cloud decoder.

[0170] Figure 8 A transmitting device according to an embodiment is shown.

[0171] Figure 8The sending device shown is Figure 1 The sending device 10000 (or Figure 3 An example of a point cloud encoder. Figure 8 The sending device shown can be executed with reference to Figures 1 to 6 The transmitting apparatus according to the embodiment may include a data input unit 8000, a quantization processor 8001, a voxelization processor 8002, an octree occupancy code generator 8003, a surface model processor 8004, an intra / inter coding processor 8005, an arithmetic encoder 8006, a metadata processor 8007, a color transform processor 8008, an attribute transform processor 8009, a prediction / lifting / RAHT transform processor 8010, an arithmetic encoder 8011 and / or a transmission processor 8012.

[0172] The data input unit 8000 according to the embodiment receives or acquires point cloud data. The data input unit 8000 may perform the same operation and / or acquisition method as the point cloud video acquirer 10001 (or refer to Figure 2 The acquisition process 20000) described above has the same or similar operations and / or acquisition methods.

[0173] The data input unit 8000, the quantization processor 8001, the voxelization processor 8002, the octree occupancy code generator 8003, the surface model processor 8004, the intra / inter coding processor 8005 and the arithmetic encoder 8006 perform geometric coding. Figures 1 to 9 The geometric encoding described is the same or similar, so its detailed description is omitted.

[0174] The quantization processor 8001 according to an embodiment quantizes geometry (e.g., position values ​​of points). The operation and / or quantization of the quantization processor 8001 are related to the reference Figure 3 The operation and / or quantization of the quantizer 30001 described above are the same or similar. Figures 1 to 9 Same as those described.

[0175] The voxelization processor 8002 according to the embodiment voxelizes the quantized position value of the point. The voxelization processor 8002 may perform the same operation as the reference. Figure 3 The operation and / or voxelization process of the quantizer 30001 described above is the same or similar to the operation and / or process described above. Figures 1 to 6 Same as those described.

[0176] The octree occupancy code generator 8003 according to the embodiment performs octree encoding on the voxelized position of the point based on the octree structure. The octree occupancy code generator 8003 may generate an occupancy code. The octree occupancy code generator 8003 may perform the octree encoding with reference to Figure 3 and Figure 4 The operations and / or methods of the point cloud encoder (or octree analyzer 30002) described herein are the same or similar to the operations and / or methods described herein. Figures 1 to 6 Same as those described.

[0177] According to an embodiment, the surface model processor 8004 may perform triplet geometry encoding based on the surface model to reconstruct the point position in a specific area (or node) based on voxels. Figure 3 The operations and / or methods of the point cloud encoder (e.g., surface approximation analyzer 30003) described herein are the same or similar to the operations and / or methods described herein. Figures 1 to 6 Same as those described.

[0178] The intra / inter encoding processor 8005 according to the embodiment may perform intra / inter encoding on the point cloud data. Figure 7 The same or similar encoding as described for intra / inter encoding. Details and references Figure 7 According to an embodiment, the intra / inter encoding processor 8005 may be included in the arithmetic encoder 8006.

[0179] According to an embodiment, arithmetic encoder 8006 performs entropy encoding on an octree and / or approximate octree of point cloud data. For example, the encoding scheme includes arithmetic coding. Arithmetic encoder 8006 performs operations and / or methods that are the same as or similar to those of arithmetic encoder 30004.

[0180] The metadata processor 8007 according to an embodiment processes metadata (e.g., set values) about the point cloud data and provides it to necessary processing processes such as geometry coding and / or attribute coding. In addition, the metadata processor 8007 according to an embodiment may generate and / or process signaling information related to geometry coding and / or attribute coding. The signaling information according to an embodiment may be encoded separately from the geometry coding and / or attribute coding. The signaling information according to an embodiment may be interleaved.

[0181] The color conversion processor 8008, the attribute conversion processor 8009, the prediction / lifting / RAHT conversion processor 8010 and the arithmetic encoder 8011 perform attribute coding. Figures 1 to 6 The attribute codes described are the same or similar, so their detailed description is omitted.

[0182] The color transform processor 8008 according to an embodiment performs color transform encoding to transform the color value included in the attribute. The color transform processor 8008 may perform color transform encoding based on the reconstructed geometry. The reconstructed geometry is compared with the reference Figures 1 to 9 In addition, its execution is the same as that of reference Figure 3 The operations and / or methods of the color converter 30006 are the same as or similar to those described above, and detailed description thereof is omitted.

[0183] The attribute transformation processor 8009 according to an embodiment performs attribute transformation to transform attributes based on the reconstructed geometry and / or the location where geometry encoding is not performed. Figure 3 The operations and / or methods of the attribute converter 30007 described above are the same as or similar to those of the attribute converter 30007. Detailed description thereof is omitted. The prediction / lifting / RAHT transform processor 8010 according to the embodiment may encode the transformed attributes by any one or a combination of RAHT coding, prediction transform coding, and lifting transform coding. The prediction / lifting / RAHT transform processor 8010 performs the same as the reference. Figure 3 The operations of the RAHT transformer 30008, the LOD generator 30009 and the lifting transformer 30010 described above are identical or similar to at least one operation. In addition, the prediction transform coding, the lifting transform coding and the RAHT transform coding are the same as those of the reference Figures 1 to 9 Those described are the same, so detailed descriptions thereof are omitted.

[0184] The arithmetic encoder 8011 according to the embodiment may encode the encoded attribute based on arithmetic coding. The arithmetic encoder 8011 performs the same or similar operations and / or methods as those of the arithmetic encoder 300012.

[0185] The transmission processor 8012 according to the embodiment may send individual bitstreams containing encoded geometry and / or encoded attribute and metadata information, or send a bitstream configured with encoded geometry and / or encoded attribute and metadata information. When the encoded geometry and / or encoded attribute and metadata information according to the embodiment is configured into a bitstream, the bitstream may include one or more sub-bitstreams. The bitstream according to the embodiment may include signaling information and slice data, and the signaling information includes a sequence parameter set (SPS) for sequence level signaling, a geometry parameter set (GPS) for geometry information coding signaling, an attribute parameter set (APS) for attribute information coding signaling, and a patch parameter set (TPS) for patch level signaling. The slice data may include information about one or more slices. A slice according to the embodiment may include a geometry bitstream Geom00 and one or more attribute bitstreams Attr00 and Attr10.

[0186] A slice is a sequence of syntactic elements that represents a whole or part of an encoded point cloud frame.

[0187] The TPS according to an embodiment may include information about each of the one or more tiles (e.g., coordinate information and height / size information about a bounding box). The geometry bitstream may include a header and a payload. The header of the geometry bitstream according to an embodiment may include a parameter set identifier (geom_parameter_set_id), a tile identifier (geom_tile_id), and a slice identifier (geom_slice_id) included in the GPS, as well as information about the data contained in the payload. As described above, the metadata processor 8007 according to an embodiment may generate and / or process signaling information and send it to the transmission processor 8012. According to an embodiment, an element that performs geometry coding and an element that performs attribute coding may share data / information with each other as indicated by the dotted lines. The transmission processor 8012 according to an embodiment may perform operations and / or transmission methods that are the same as or similar to those of the transmitter 10003. Details and References Figure 1 and Figure 2 Those described are the same, so their description is omitted.

[0188] Figure 9 A receiving device according to an embodiment is shown.

[0189] Figure 9 The receiving device shown is Figure 1 The receiving device 10004 (or Figure 10 and Figure 11 An example of a point cloud decoder. Figure 9 The receiving device shown can execute and refer to Figures 1 to 11 One or more operations and methods that are the same or similar to those described for the point cloud decoder.

[0190] The receiving apparatus according to the embodiment may include a receiver 9000, a receiving processor 9001, an arithmetic decoder 9002, an octtree reconstruction processor based on an occupancy code 9003, a surface model processor (triangle reconstruction, upsampling, voxelization) 9004, an inverse quantization processor 9005, a metadata parser 9006, an arithmetic decoder 9007, an inverse quantization processor 9008, a prediction / lifting / RAHT inverse transform processor 9009, an inverse color transform processor 9010, and / or a renderer 9011. Each decoding element according to the embodiment may perform an inverse process of the operation of the corresponding encoding element according to the embodiment.

[0191] The receiver 9000 according to the embodiment receives point cloud data. The receiver 9000 may perform the same Figure 1The operation and / or receiving method of the receiver 10005 are the same as or similar to the operation and / or receiving method of the receiver 10005. A detailed description thereof is omitted.

[0192] The reception processor 9001 according to an embodiment may acquire a geometry bitstream and / or an attribute bitstream from the received data. The reception processor 9001 may be included in the receiver 9000.

[0193] The arithmetic decoder 9002, the octtree reconstruction processor 9003 based on the occupancy code, the surface model processor 9004 and the inverse quantization processor 9005 may perform geometric decoding. Figures 1 to 10 The geometric decoding described is the same or similar, so its detailed description is omitted.

[0194] The arithmetic decoder 9002 according to an embodiment may decode a geometry bitstream based on arithmetic coding. The arithmetic decoder 9002 performs operations and / or encoding that are the same as or similar to those of the arithmetic decoder 7000.

[0195] The octtree reconstruction processor 9003 based on the occupancy code according to the embodiment can reconstruct the octtree by obtaining the occupancy code from the decoded geometry bitstream (or information about the geometry obtained as a result of decoding). The octtree reconstruction processor 9003 based on the occupancy code performs the same or similar operations and / or methods as the operations of the octtree synthesizer 7001 and / or the octree generation method. When triplet geometry coding is applied, the surface model processor 9004 according to the embodiment can perform triplet geometry decoding and related geometry reconstruction (e.g., triangle reconstruction, upsampling, voxelization) based on the surface model method. The surface model processor 9004 performs the same or similar operations as the operations of the surface approximation synthesizer 7002 and / or the geometry reconstructor 7003.

[0196] The inverse quantization processor 9005 according to an embodiment may inversely quantize the decoded geometry.

[0197] The metadata parser 9006 according to an embodiment may parse metadata (e.g., setting values) contained in the received point cloud data. The metadata parser 9006 may pass the metadata to the geometry decoding and / or attribute decoding. Figure 8 The metadata described are the same, so a detailed description thereof is omitted.

[0198] The arithmetic decoder 9007, the inverse quantization processor 9008, the prediction / lifting / RAHT inverse transform processor 9009 and the color inverse transform processor 9010 perform attribute decoding. Figures 1 to 10 The attribute decoding described is the same or similar, so the detailed description thereof is omitted.

[0199] According to an embodiment, the arithmetic decoder 9007 can decode the attribute bitstream through arithmetic coding. The arithmetic decoder 9007 can decode the attribute bitstream based on the reconstructed geometry. The arithmetic decoder 9007 performs the same or similar operations and / or encoding as those of the arithmetic decoder 7005.

[0200] The inverse quantization processor 9008 according to an embodiment may inversely quantize the decoded attribute bitstream. The inverse quantization processor 9008 performs the same or similar operation and / or inverse quantization method as the inverse quantizer 7006.

[0201] The prediction / lifting / RAHT inverse transform processor 9009 according to an embodiment may process the reconstructed geometry and inverse quantized attributes. The prediction / lifting / RAHT inverse transform processor 9009 performs one or more operations and / or decoding that are the same or similar to the operations and / or decoding of the RAHT converter 7007, the LOD generator 7008, and / or the inverse lifter 7009. The color inverse transform processor 9010 according to an embodiment performs inverse transform encoding to inversely transform the color values ​​(or textures) included in the decoded attributes. The color inverse transform processor 9010 performs operations and / or inverse transform encoding that are the same or similar to the operations and / or inverse transform encoding of the color inverse converter 7010. The renderer 9011 according to an embodiment may render point cloud data.

[0202] Figure 10 An exemplary structure that can be operated in conjunction with a method / apparatus for transmitting / receiving point cloud data according to an embodiment is shown.

[0203] Figure 10 The structure of 1060 represents a configuration in which at least one of the server 1060, the robot 1010, the self-driving vehicle 1020, the XR device 1030, the smartphone 1040, the home appliance 1050, and / or the head-mounted display (HMD) 1070 is connected to the cloud network 1000. The robot 1010, the self-driving vehicle 1020, the XR device 1030, the smartphone 1040, or the home appliance 1050 is referred to as a device. In addition, the XR device 1030 may correspond to a point cloud data (PCC) device according to an embodiment or may be operatively connected to a PCC device.

[0204] The cloud network 1000 may represent a network that constitutes a part of a cloud computing infrastructure or exists in a cloud computing infrastructure. Here, the cloud network 1000 may be configured using a 3G network, a 4G or Long Term Evolution (LTE) network, or a 5G network.

[0205] The server 1060 may be connected to at least one of the robot 1010 , the self-driving vehicle 1020 , the XR device 1030 , the smart phone 1040 , the home appliance 1050 , and / or the HMD 1070 via the cloud network 1000 , and may assist at least a portion of processing of the connected devices 1010 to 1070 .

[0206] The HMD 1070 represents one of implementation types of an XR device and / or a PCC device according to an embodiment. The HMD type device according to an embodiment includes a communication unit, a control unit, a memory, an I / O unit, a sensor unit, and a power supply unit.

[0207] Hereinafter, various embodiments of devices 1010 to 1050 to which the above-described technology is applied will be described. Figure 10 The illustrated devices 1010 to 1050 may be operatively connected / coupled to the point cloud data transmitting device and receiving device according to the above-described embodiments.

[0208] <PCC+XR>

[0209] The XR / PCC device 1030 may employ PCC technology and / or XR (AR+VR) technology, and may be implemented as an HMD, a head-up display (HUD) provided in a vehicle, a television, a mobile phone, a smart phone, a computer, a wearable device, a home appliance, a digital signage, a vehicle, a fixed robot, or a mobile robot.

[0210] The XR / PCC device 1030 can analyze 3D point cloud data or image data acquired through various sensors or from external devices and generate positional data and attribute data about the 3D points. Thus, the XR / PCC device 1030 can obtain information about the surrounding space or real objects and render and output XR objects. For example, the XR / PCC device 1030 can match an XR object that includes auxiliary information about the recognized object with the recognized object and output the matched XR object.

[0211] <PCC+XR+Mobile Phone>

[0212] The XR / PCC device 1030 may be implemented as a mobile phone 1040 by applying PCC technology.

[0213] The mobile phone 1040 may decode and display point cloud content based on PCC technology.

[0214] <PCC+Self-driving+XR>

[0215] The self-driving vehicle 1020 may be implemented as a mobile robot, a vehicle, an unmanned aerial vehicle, etc. by applying PCC technology and XR technology.

[0216] Self-driving vehicle 1020, which utilizes XR / PCC technology, may represent a self-driving vehicle equipped with a means for providing XR images, or a self-driving vehicle that serves as a control / interaction target in an XR image. Specifically, as a control / interaction target in an XR image, self-driving vehicle 1020 may be distinguished from and operatively connected to XR device 1030.

[0217] The self-driving vehicle 1020, which has a means for providing XR / PCC images, can obtain sensor information from sensors including cameras and output generated XR / PCC images based on the obtained sensor information. For example, the self-driving vehicle 1020 may have a HUD and output XR / PCC images thereto, thereby providing passengers with XR / PCC objects corresponding to real objects or objects displayed on the screen.

[0218] When an XR / PCC object is output to the HUD, at least a portion of the XR / PCC object may be output to overlap with the real object that the passenger's eyes are pointing at. On the other hand, when an XR / PCC object is output on a display provided within a self-driving vehicle, at least a portion of the XR / PCC object may be output to overlap with the object on the screen. For example, the self-driving vehicle 1220 may output XR / PCC objects corresponding to objects such as a road, another vehicle, a traffic light, a traffic sign, a two-wheeled vehicle, a pedestrian, and a building.

[0219] Virtual reality (VR) technology, augmented reality (AR) technology, mixed reality (MR) technology, and / or point cloud compression (PCC) technology according to an embodiment are applicable to various devices.

[0220] In other words, VR technology is a display technology that only provides CG images of real-world objects, backgrounds, etc. On the other hand, AR technology refers to a technology that displays a virtually created CG image on an image of a real object. MR technology is similar to the above-mentioned AR technology in that the virtual objects to be displayed are mixed and combined with the real world. However, MR technology is different from AR technology in that AR technology clearly distinguishes between real objects and virtual objects created as CG images and uses virtual objects as supplementary objects to real objects, while MR technology treats virtual objects as objects with properties equivalent to real objects. More specifically, an example of the application of MR technology is holographic services.

[0221] Recently, VR, AR, and MR technologies are often referred to as extended reality (XR) technologies, rather than being clearly distinguished from each other. Therefore, embodiments of the present disclosure are applicable to any of VR, AR, MR, and XR technologies. Encoding / decoding based on PCC, V-PCC, and G-PCC technologies are applicable to such technologies.

[0222] The PCC method / apparatus according to the embodiment may be applied to a vehicle providing a self-driving service.

[0223] Vehicles providing self-driving services are connected to the PCC device for wired / wireless communication.

[0224] When the point cloud data (PCC) transmitting / receiving device according to the embodiment is connected to the vehicle for wired / wireless communication, the device can receive / process content data related to AR / VR / PCC services (which can be provided together with self-driving services) and send it to the vehicle. When the PCC transmitting / receiving device is installed on the vehicle, the PCC transmitting / receiving device can receive / process content data related to AR / VR / PCC services and provide it to the user based on a user input signal input through a user interface device. The vehicle or the user interface device according to the embodiment can receive the user input signal. The user input signal according to the embodiment may include a signal indicating a self-driving service.

[0225] The point cloud data transmission method / device according to the embodiment will be interpreted as referring to the transmission device 10000, the point cloud video encoder 10002, Figure 1 Transmitter 10003 in Figure 2 Acquisition 20000-Encoding 20001-Transmission 20002, Figure 3 The encoder in Figure 8 The sending device in Figure 10 The device in Figures 11 to 12 Prediction-based coding, Figure 13 Object-based search encoding in Figure 14 The sending device (encoder) in Figures 16 to 22 bitstream / parameter generation in Figure 23 Terms such as sending method in.

[0226] The point cloud data receiving method / device according to the embodiment will be interpreted as referring to Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002 - decoding 20003 - rendering 20004, Figure 7 The decoder in Figure 9 The receiving device in Figure 10 The device in Figures 11 to 12 Prediction tree-based decoding in Figure 14 Object search-based decoding in Figure 15 The receiving device (decoder) in Figure 24 Terms such as reception method in.

[0227] In addition, according to the embodiment, the point cloud data sending and receiving method / apparatus may be referred to as a method / apparatus.

[0228] According to the embodiment, geometric data, geometric information, position information, etc. constituting point cloud data will be interpreted as having the same meaning. Similarly, attribute data, attribute information, etc. constituting point cloud data will be interpreted as having the same meaning.

[0229] According to an embodiment, the method / apparatus may include a point-by-point search approach for object detection in point cloud compression.

[0230] Research on inter-frame object detection in point clouds has been actively conducted, but methods for accurate object detection and compression performance are lacking. Implementations include methods for compressing I-frames using intra-frame detection and point-by-point search methods using inter-frame object detection.

[0231] To compress 3D point cloud data, embodiments provide an inter-frame object detection method and a point-by-point search method based on geometric information. A dynamic point cloud classified as category 3 in point cloud data may consist of multiple point cloud frames. Use cases for point cloud data may include autonomous driving data. In this case, a group of frames is called a sequence. A sequence contains frames with the same attribute values. Therefore, the geometric values ​​are characterized by dynamic objects that move between frames and static objects that do not move between frames. In the current standard, object segmentation is not performed, and only inter-frame compression is performed.

[0232] Therefore, an embodiment proposes a method for intra / inter compression targeting inter-frame compression in a category 3 sequence. Before performing prediction tree compression, an object search method is used within the prediction tree. Object search is performed after the xyz coordinates are converted to rpl coordinates, such as a cylindrical coordinate system with azimuth, radius, and elevation (laser ID). When compressing the prediction tree in angle mode, a set of points is sorted by laserID. These points are then sorted by quantized azimuth and then by quantized radius. The points transformed into the RPL coordinate system are included in the object as a point, and individual objects are generated as signaling information and sent by the encoder in parameters. Object detection is performed for each frame, and the objects in the reference frame may not exist in the object list of the current frame. After the object list is detected, motion estimation and motion compensation are performed for the object. The motion estimation matrix for each object is generated by the encoder and included in the bitstream to be signaled.

[0233] Due to per-object motion estimation and compensation, the correlation between the current frame and the previous frame can be increased, so a highly correlated predictor with a small residual can be found. A highly correlated predictor can improve compression efficiency, and a smaller residual with less data can improve compression efficiency.

[0234] Figure 11 A prediction tree according to an embodiment is illustrated.

[0235] and Figure 1 The sending device 10000, the point cloud video encoder 10002, the transmitter 10003, Figure 2 Acquisition 20000-Encoding 20001-Transmission 20002, Figure 3 The encoder in Figure 8 The sending device in Figure 10 The device in Figure 13 Object-based search encoding in Figure 14 The sending device (encoder) and Figure 23 The point cloud data transmission method / device according to the embodiment corresponding to the transmission method in the embodiment can use a method such as Figure 11 The prediction tree shown is used to encode the point cloud. The prediction tree can be replaced by an octree. The octree can be called an occupancy tree. The occupancy tree is a tree structure that includes nodes in a parent-child relationship from the root level (depth) to the leaf level (depth). A node at one depth can include one or more slave nodes at the next depth, and the occupancy bit (occupancy information) indicates whether each node occupies a point.

[0236] and Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002 - decoding 20003 - rendering 20004, Figure 7 The decoder in Figure 9 The receiving device in Figure 10 The device in Figure 14 Object search-based decoding in Figure 15 The receiving device (decoder) and Figure 24 The point cloud data receiving method / device according to the embodiment corresponding to the receiving method in the embodiment can use a method such as Figure 11 The prediction tree shown is used to decode the point cloud.

[0237] The prediction tree structure represents the connectivity relationship between points in a point cloud based on the xyz coordinates of the point cloud. To construct the prediction tree, the input points are sorted according to a specific criterion, and the prediction tree structure is generated by calculating the predicted values ​​based on the neighboring nodes based on the rearranged ply. This process establishes a parent-child relationship or a higher-lower node relationship between two nodes. The node that receives the arrow is the higher (parent) node, and the node that sends the arrow is the lower (child) node.

[0238] In some embodiments, an inter-frame prediction method can be used to perform prediction tree-based compression. The method includes selecting an additional prediction point (inter-frame prediction point) from a reference frame (a previous frame relative to the current frame) or using two points as additional prediction points (additional inter-frame prediction points).

[0239] Figure 12 A geometric compression / reconstruction method based on an inter-frame prediction tree according to an embodiment is illustrated.

[0240] and Figure 1 The sending device 10000, the point cloud video encoder 10002, the transmitter 10003, Figure 2 Acquisition 20000-Encoding 20001-Transmission 20002, Figure 3 The encoder in Figure 8 The sending device in Figure 10 The device in Figure 13 Object-based search encoding in Figure 14 The sending device (encoder) and Figure 23 The point cloud data transmission method / device according to the embodiment corresponding to the transmission method in Figure 12 The inter-frame prediction tree shown is used to encode the geometry of the point cloud.

[0241] and Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002 - decoding 20003 - rendering 20004, Figure 7 The decoder in Figure 9 The receiving device in Figure 10 The device in Figure 14 Object search-based decoding in Figure 15 The receiving device (decoder) and Figure 24 The point cloud data receiving method / device according to the embodiment corresponding to the receiving method in can be based on such as Figure 12 The inter-frame prediction tree shown is used to decode the geometry of the point cloud.

[0242] Objects detected within a frame are managed in an object list. The object list is used for prediction tree encoding. Embodiments propose object search, intersection over union (IoU), IoU thresholding, object list sorting, and a final index check.

[0243] Reference Figure 12 , the current frame is the target to be encoded or decoded. The reference frame is the frame that was encoded or decoded before the current frame. Due to the high similarity between the reference frame and the current frame, points from the reference frame can be referenced to predict points in the current frame.

[0244] For example, a point with the same azimuth as a point decoded before the current point in the current frame can be found in the reference frame. This is because points with the same azimuth and / or the same laser ID in the current frame and the reference frame are similar. To improve the prediction performance, a point can be selected as the prediction value for the current point based on the rate-distortion optimization (RDO) method. A point with the next azimuth value of the point found in the reference frame can be found by searching ( Figure 12 Inter-frame prediction point in ) and / or subsequent points ( Figure 12 The point is selected between the additional inter-frame prediction points in .

[0245] The inter-frame prediction point (p'0) and the additional inter-frame prediction point (p'1) from the reference frame can be referenced. The inter-frame prediction point (p'0) is designated as the reference point from the decoded reference frame. It is a point with the same laser ID as the laser ID of the current frame and an azimuth value most similar to the azimuth value of the current frame. The additional inter-frame prediction point (p'1) has a smaller azimuth angle than the inter-frame prediction point (p'0) and the same laser ID.

[0246] The embodiments propose a method for object search in point cloud data using prediction trees, and also propose a method for improving intra-frame / inter-frame compression. Intra-frame object search can improve compression efficiency by defining coding units differently and selecting predictors for each object. Inter-frame object search can improve compression efficiency by estimating and compensating local motion between objects. Discovered objects can be classified as dynamic objects, static objects, or roads. Dynamic objects are objects that move dynamically, while static objects are objects that do not move dynamically. Roads refer to streets under cars, people, buildings, etc. Local motion can be determined based on whether the object is moving. Local motion vectors can be used to estimate and compensate for the motion of dynamic objects whose movement is dynamic, while global motion vectors can be used to estimate and compensate for the motion of static objects whose movement is static. Algorithms such as Intersection over Union (IoU), feature extractors, classifiers, regressors, and non-maximum suppression (NMS) can be used to determine object characteristics. Thresholds for the determined conditions can be generated and sent as signaling information, allowing the decoder to decode the object based on the object characteristics found according to the thresholds.

[0247] The search list can be sorted within the object list using a bounding box for compression. Additionally, when determination is performed based on radius, azimuth, and laser ID, points that were not included can be merged into the object through index rechecking.

[0248] Figure 13 An intra-frame object search method according to an embodiment is illustrated.

[0249] and Figure 1 The sending device 10000, the point cloud video encoder 10002, the transmitter 10003,Figure 2 Acquisition 20000-Encoding 20001-Transmission 20002, Figure 3 The encoder in Figure 8 The sending device in Figure 10 The device in Figure 13 Object-based search encoding in Figure 14 The sending device (encoder) and Figure 23 The point cloud data transmission method / device according to the embodiment corresponding to the transmission method in can search and classify objects in the frame in detail, such as Figure 13 As shown, the point cloud is efficiently encoded based on the found objects.

[0250] and Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002 - decoding 20003 - rendering 20004, Figure 7 The decoder in Figure 9 The receiving device in Figure 10 The device in Figure 14 Object search-based decoding in Figure 15 The receiving device (decoder) and Figure 24 The point cloud data receiving method / device according to the embodiment corresponding to the receiving method in can efficiently decode the point cloud based on the objects found in the frame, such as Figure 13 shown.

[0251] The method / apparatus according to the embodiment can transform the coordinate system for the point cloud. For example, the xyz coordinates can be transformed into rpl coordinates, and the intra-frame object search method can be performed. In the prediction tree compression, there can be two different cases: encoding in angle mode and encoding without angle mode. In the embodiment, the operation will be described assuming that the angle mode is enabled.

[0252] In angle mode, points are sorted according to N laserID indices. Specifically, laserID_N can generate N laserIDs. Each of the N indices has M sorted points. In other words, laserID_N_M represents a set of M points for each laserID. The sorted laserID_N_M is two-dimensionally mapped to azimuth and radius values, defined as laserID_N_M_Azi and laserID_N_M_Rad. Figure 13As shown, M points for laserID N have specific azimuth values. The M points of laserID N have specific radius values. [laserID_N_M_Azi, laserID_N_M_Rad] is an array with laserID_N_M elements. The Nth value of the laserID can identify a list of points and can identify multiple sorted points within the laserID index based on the radius and azimuth. When considering the relationship between the Cartesian coordinate system and the cylindrical (based on radius, azimuth, laserID) coordinate system, the points belonging to the same laserID can be points on the same Y-axis in the Cartesian coordinate system. Generally, roads, objects, moving objects, and static objects can be classified and searched based on the Y-axis. Therefore, as Figure 13 shown, in an embodiment, a coordinate system based on the laserID can be used to accurately and specifically detect the points of an object.

[0253] By generating laserID_N_M for the points, the points can be clustered into [laserID_N_M_Azi, laserID_N_M_Rad]. Specifically, point clustering is performed within the ranges of laserID_N_M_Azi[0] to laserID_N_M_Azi[laserID_N_M - 1] and laserID_N_M_Rad[0] to laserID_N_M_Rad[laserID_N_M - 1] based on an azimuth threshold (laserID_N_M_Azi_th) and a radius threshold (laserID_N_M_Rad_th). Starting from laserID_N_M_Azi[0], if the determined condition (laserID_N_M_Azi[x] - laserID_N_M_Azi[x + 1]) < laserID_N_M_Azi_th) is true, the points within the azimuth range can be defined as belonging to the same object. Similarly, if the determined condition (laserID_N_M_Rad[x] - laserID_N_M_Rad[x + 1]) < laserID_N_M_Rad_th) is true, the points within the radius range can also be defined as belonging to the same object. Depending on the data characteristics, AND (logical AND) or OR (logical OR) logic can be used to perform the determination. Then a set of points clustered as the same object is generated. The found object can be identified by an object index (obj_idx), which can be included in the bitstream to be transmitted. The decoder can refer to the object index information to perform a detailed detection of the found object.

[0254] In order to merge points with different laser IDs but can be clustered into the same object, the azimuth (laserID_N_M_Azi) and radius (laserID_N_M_Rad) values ​​of the M points with laserID N can be compared. In addition to these comparisons, laserID_N[x] can be compared with laserID[x-1] and laserID[x+1]. If the value is within the azimuth threshold (laserID_N_M_Azi_th) and radius threshold (laserID_N_M_Rad_th) but is assigned to different laserIDs, the point can be clustered into the same object. In this case, a laser ID threshold (laserID_th) can exist, which can be the total height of the laser or a height less than the total height. A laserID threshold flag (laserID_th_flag) can be defined. When the value of laserID_th_flag is true, the laserID threshold (laserID_th) is sent as signaling information via the bitstream and used for object clustering. In other words, additional clustering among laserIDs can be performed based on the laserID threshold. The list of objects divided in this way can be identified by the object index (obj_idx), and the encoder can encode a point for each detected object or each clustered object. Similarly, the decoder can decode a point for each detected object or each clustered object. The object index (obj_idx) indicates the number of objects found in the current frame.

[0255] The method / apparatus according to an embodiment may search for an object between frames.

[0256] The inter-frame object search method extends the above-mentioned intra-frame object search method. The reference object index (ref_obj_idx) indicates the number of objects found in the reference frame. The method / apparatus defines the object area using as many bounding boxes with minimum and maximum values ​​as the objects found in the reference frame, and performs an object search for the current frame using the above-mentioned method. A list of bounding boxes with minimum and maximum values ​​is created based on the current object index (cur_obj_idx). The minimum value (min) of the bounding boxes for objects found in the current frame is indicated by cur_obj_idx_min, and the maximum value of the bounding boxes for cur_obj_idx is indicated by cur_obj_idx_max. Then, the index closest to ref_obj_idx_min and ref_obj_idx_max is searched. Objects found in the reference frame are classified as static objects, dynamic objects, or roads using an object detection algorithm (e.g., intersection over union (IoU), feature extractor, classifier, regressor, or non-maximum suppression (NMS)). In the case of the IoU algorithm, when the value obtained by dividing the area of ​​the overlapping area between adjacent areas among the areas generated by the above-mentioned laser ID-based point sorting, search, and clustering by the entire area is less than the threshold (IoU_th), the object in the area can be initially classified as a dynamic object. The threshold (IoU_th) does not necessarily refer to the value generated by the IoU algorithm. The threshold (IoU_th) represents the threshold used to separate static objects and dynamic objects after the above-mentioned laser ID-based object search.

[0257] Additional thresholds can be used to classify objects as static objects or roads. If the laserID is less than the road threshold (IoU_road_th), the object is classified as a road. If the laserID is greater than the road threshold (IoU_road_th), the object can be classified as a static object. Static objects and roads have minimal inter-frame motion and therefore are not subject to local motion estimation / compensation. However, dynamic objects are subject to local motion estimation / compensation, and information related to motion estimation / compensation is generated as signaling / parameter information and transmitted in the bitstream. For example, local motion vectors can be transmitted in the bitstream. Roads are captured in a consistent pattern despite motion, while static objects are affected by global motion and can take motion into account. For dynamic objects, local motion calculated from the object's motion can be applied to the optimal motion. Therefore, in embodiments, global motion may not be applied to objects classified as roads, but may be applied to objects classified as static objects. In addition, local motion can be applied to dynamic objects. This motion compensation based on object characteristics can improve compression efficiency.

[0258] If the value of the global motion vector is less than or equal to the threshold, object search may be skipped for the frame. Skipping a frame for object detection may not signal information such as motion vectors and min / max bounding boxes for obj_idx.

[0259] The described method / apparatus may also merge and split detected objects.

[0260] Obj_idx can be merged or split based on object size, number of points, and area comparison with the previous frame. In addition, in the two one-dimensional arrays listed as azimuth ranges (laserID_N_M_Azi[0] to laserID_N_M_Azi[laserID_N_M-1]) and radius ranges (laserID_N_M_Rad[0] to laserID_N_M_Rad[laserID_N_M-1]) for M points with laserID N, the first azimuth value (laserID_N_M_Azi[0]) of point M of laserID N and the last azimuth value (laserID_N_M_Azi[laserID_N_M-1]) of point M of laserID N can belong to the same object. The first value of the radius of point M for laserID N (laserID_N_M_Rad[0]) and the last value of the radius of point M for laserID N (laserID_N_M_Rad[laserID_N_M-1]) may also belong to the same object. Therefore, after performing the object search, it is necessary to determine whether the last point in the array belongs to the same object as the first point. As conditions for this determination, the same azimuth threshold (laserID_N_M_Azi_th) and radius threshold (laserID_N_M_Rad_th) are used. Intra-frame object detection and inter-frame object detection, classification, and clustering can improve the accuracy of object detection by determining whether points belong to the same object.

[0261] Figure 14 A point cloud data transmitting device according to an embodiment is illustrated.

[0262] Figure 14 Illustrated with Figure 1 The sending device 10000, the point cloud video encoder 10002, the transmitter 10003, Figure 2 Acquisition 20000-Encoding 20001-Transmission 20002, Figure 3 The encoder in Figure 8 The sending device in Figure 10 The device in Figure 13 Object-based search encoding in Figure 23The sending method in corresponds to the point cloud data sending method / device according to the implementation manner. Figure 14 Each component in may correspond to hardware, software, a processor and / or a combination thereof.

[0263] like Figure 14 As shown, according to an embodiment, an encoder (which may be referred to as an encoding device, a transmitting device, etc.) may encode points within a frame or between frames based on object detection.

[0264] The data input unit acquires point cloud data. In intra-frame coding, the position (geometry) and attributes of points in the current frame are encoded separately. In inter-frame coding, the geometry of the current frame is encoded by referencing the geometry of the reference frame, and the attributes of the current frame are encoded by referencing the attributes of the reference frame.

[0265] The encoding operation of the geometry encoder is described below.

[0266] The coordinate transformer can transform the geometric coordinate system into a coordinate system suitable for encoding.

[0267] The quantization / voxelization processor can quantize and voxelize points based on the quantization parameters. The first step in reconstructing the position information for each point in the entire acquired point cloud is to quantize the position information. The minimum x, y, and z position value of all points is found, subtracted from the position value of each point, multiplied by the quantization scale, and rounded to the nearest integer. After quantization, octree-based voxelization is performed based on the position information of the points to reconstruct each point in the point cloud.

[0268] Similar to a pixel, which is the smallest unit with information about a 2D image / video, a voxel is a three-dimensional cubic space created by dividing the 3D space into cells (cell = 1.0) based on each axis (x, y, z) to store information about a point present in the 3D space. The operation of matching a point in the 3D space to a specific voxel is called voxelization. Voxel is a portmanteau of "volume" and "pixel". The spatial coordinates of a voxel can be estimated based on its positional relationship to a group of voxels. Like pixels, voxels can also contain information such as color or reflectivity.

[0269] According to an embodiment, the object searcher performs intra-frame object search methods, inter-frame object search methods, and object merging / splitting methods. For example, the object searcher clusters points based on thresholds for azimuth and radius (laserID_N_M_Azi_th and laserID_N_M_Rad_th). The thresholds are sent as parameter information through the bitstream and signaled to the decoder.

[0270] When a point is within the azimuth threshold (laserID_N_M_Azi_th) and radius threshold (laserID_N_M_Rad_th) but has different laser IDs, a laserID threshold flag (laserID_th_flag) is generated and sent in the bitstream as a condition for clustering as the same object. If the value of laserID_th_flag is true, the laserID threshold (laserID_th) is signaled and used for object clustering.

[0271] Generate and send in the bitstream obj_idx indicating the number of objects found by the object searcher.For each obj_idx, send obj_idx_min and obj_idx_max of the bounding box.

[0272] To perform inter-frame object search, an object motion flag (obj_motion_flag) may be signaled. A reference object index (ref_obj_idx) for the bounding box of each object (which indicates the number of objects in the reference frame), a minimum value of the reference object index (ref_obj_idx_min), and a maximum value of the reference object index (ref_obj_idx_max) are generated and sent in the bitstream. In addition, a current object index (cur_obj_idx) for the bounding box of each object (which indicates the number of objects in the current frame), a minimum value of the current object index (cur_obj_idx_min), and a maximum value of the current object index (cur_obj_idx_max) are generated and sent in the bitstream as parameter information.

[0273] An object ID (object_id) indicating each object and / or an object type (object_type) indicating the characteristics of the object are generated and transmitted as parameter information in the bitstream. The value of object_id can indicate the following: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object. Alternatively, object_id can indicate an ID identifying an object, and object_type can indicate an object type as follows: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object.

[0274] For intra-frames, the prediction tree encoder generates a prediction tree based on the detected objects within the frame. The prediction tree is generated by generating neighboring nodes similar to the current point (node) as slave nodes (children) of the current node. When encoding the current node, the prediction value with the minimum error for the current node is found by referring to the parent, grandparent, and great-grandparent nodes in the prediction tree. A residual value is generated, encoded, and transmitted in the bitstream. By finding the prediction value most similar to a static object, dynamic object, or road object, only the residual with the smallest size is encoded to improve the compression rate. For inter-frames, a prediction tree is generated using detected objects from both the current frame and a reference frame (which is the frame before the current frame), using objects detected between frames. Based on the similarity between the current frame and the reference frame, predictions can be made according to the prediction tree, and only the residual with the smallest size can be encoded. The similarity between dynamic objects, static objects, and road objects detected in both the reference frame and the current frame is maximized to improve the compression rate.

[0275] The arithmetic coder encodes the residual using an entropy-based method to encode the geometry.

[0276] The geometry encoder generates and sends a bitstream containing the encoded geometry.

[0277] The reference frame and / or current frame geometry reconstructor reconstructs the encoded geometry and passes it to the attribute encoder for attribute encoding.

[0278] The attribute encoder performs the following operations.

[0279] The color converter can convert the system representing color (one of the attributes) into a color system suitable for encoding the attribute. The encoding can be performed by changing the color from RGB to YCbCr. Color conversion refers to the operation of converting the color format.

[0280] The attribute transformation processor transforms the attributes of points that have been relocated or merged due to voxelization. The attribute transformation can include calculating the average of an attribute (e.g., color or reflectance) of neighboring points within a certain radius from the center position of the voxel, or a weighted average based on the distance from the center position. In this case, each voxel has a position and a calculated attribute value.

[0281] The Neighborhood Transform Processor handles prediction, lifting, and RAHT transforms. The prediction transform applies a Level of Detail (LOD) technique. Each point has an LOD value calculated based on a set LOD distance. Each point in the point cloud can be separated by LOD, and the configuration of points for each LOD includes points belonging to a lower LOD than the corresponding LOD value. For example, LOD level 2 can include all points belonging to LOD level 1 and LOD level 2.

[0282] For the prediction transformation, a prediction sub-element is created for each point in the point cloud. For details on the prediction transformation, refer to the reference above. Figure 5 、 Figure 6 etc. provide descriptions.

[0283] The lifting transformation involves generating a predictor for each point, setting the LOD for the prediction calculation, registering neighboring points, and assigning weights based on the distance to the neighboring points. The difference from the prediction transformation is the way the weights are cumulatively applied to the attribute values. For details of the lifting transformation, refer to Figure 5 、 Figure 6 etc. Description.

[0284] RAHT is an intra-frame encoding method for attribute information using backward scanning of the octree. It predicts attribute information about nodes at higher levels based on attribute information related to nodes at lower levels of the octree. For details of RAHT transform, refer to Figure 5 、 Figure 6 etc. Description.

[0285] The coefficient quantization processor can quantize the attribute coefficients generated by prediction / lifting / RAHT transformation.

[0286] The arithmetic coder encodes attributes based on the entropy method.

[0287] The attribute encoder generates and sends a bitstream containing the encoded attributes.

[0288] Based on the type of object detected in the reference frame, the prediction tree encoder can apply global motion to the current point position value when the object type is static, or apply local motion when the object type is dynamic. The prediction tree encoder can then perform inter-frame prediction.

[0289] Figure 15 A point cloud data receiving device according to an embodiment is illustrated.

[0290] Figure 15 Illustrated with Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002 - decoding 20003 - rendering 20004, Figure 7 The decoder in Figure 9 The receiving device in Figure 10 The device in Figure 14 Object search-based decoding in Figure 24 The point cloud data receiving method / device according to the implementation method corresponds to the receiving method in. Figure 15 Each component in may correspond to hardware, software, a processor and / or a combination thereof.

[0291] like Figure 15 As shown, according to an embodiment, a decoder (also referred to as a decoding device, a receiving device, etc.) can use object detection to decode points within a frame or between frames.

[0292] Figure 15 The decoder in can perform the same Figure 14 The operation of the encoder is the opposite process.

[0293] The receiver receives a bitstream containing the encoded point cloud data and parameters from the transmitting device.

[0294] The geometry decoder performs the following operations.

[0295] The arithmetic decoder decodes the geometry bitstream based on an entropy method.

[0296] The object reconstructor parses the laserID threshold flag (laserID_th_flag), which is a condition that allows points to be clustered as the same object if they are within the thresholds (laserID_N_M_Azi_th and laserID_N_M_Rad_th) but have different laserIDs. When the value of laserID_th_flag is true, the object reconstructor parses the laserID threshold (laserID_th) and the object index (obj_idx), which indicates the number of objects detected from the bitstream. It parses the minimum and maximum values ​​(obj_idx_min, obj_idx_max) of the object index in the bounding box from the bitstream per object index (obj_idx).

[0297] To determine whether to perform inter-frame object search, the object motion flag (obj_motion_flag) is parsed from the bitstream. The reference object index (ref_obj_idx) of the bounding box of each object (which indicates the number of objects in the reference frame) and the minimum value of the reference object index (ref_obj_idx_min) and the maximum value of the reference object index (ref_obj_idx_max) are parsed from the bitstream. The current object index (cur_obj_idx) of the bounding box of each object (which indicates the number of objects in the current frame) and the minimum value of the current object index (cur_obj_idx_min) and the maximum value of the current object index (cur_obj_idx_max) are parsed from the bitstream.

[0298] An object ID (object_id) indicating each object and / or an object type (object_type) indicating the characteristics of the object are generated and transmitted as parameter information in the bitstream. The value of object_id can indicate the following: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object. Alternatively, object_id can indicate an ID identifying an object, and object_type can indicate an object type as follows: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object.

[0299] Similar to the transmitting device, a prediction tree-based reconstructor can generate a prediction tree for the point cloud and generate prediction values ​​based on the prediction tree according to intra or inter frames. The encoded and transmitted residual can be summed with the prediction value to reconstruct the geometry.

[0300] The surface model processor can use the surface model to reconstruct the positions of points in the node area based on voxels. For details of surface model processing, refer to Figure 4 and description of the related drawings.

[0301] The coordinate inverse transformer may inversely transform the transformed coordinates generated at the transmitter side for encoding.

[0302] The geometry decoder reconstructs the position values ​​of the points in the current frame.

[0303] The reference frame and / or current frame geometry reconstructor can reconstruct the geometry for attribute decoding and pass it to the attribute decoder, as referenced Figure 7 described.

[0304] The attribute decoder can perform the following operations.

[0305] The arithmetic decoder may use entropy methods to decode attributes contained in the received bitstream.

[0306] The inverse quantization processor may inversely quantize the attribute in a process opposite to the quantization of the attribute performed by the transmitting device.

[0307] As reference Figure 7 As described, similar to the transmission side, the prediction / lifting / RAHT transform processor may apply at least one of the prediction transform, the lifting transform, or the RAHT to the attribute.

[0308] The attribute reconstructor can be used with Figure 14 The attributes are reconstructed by the opposite process of the attribute transformation in .

[0309] The color inverse converter can be Figure 14 Transform the colors using the opposite process of the color transformation in .

[0310] Based on the position values ​​of points in the reference frame, objects can be segmented by determining whether the object's position value falls within the range defined by the minimum reference object index (ref_obj_idx_min) and the maximum reference object index (ref_obj_idx_max). Alternatively, objects that have been segmented in the previous frame can be retained as reference frame objects and used to reconstruct the current frame.

[0311] Based on the type of object detected in the reference frame, global motion may be applied to the position value of the current point when the object type is static, or local motion may be applied when the object type is dynamic. A reconstruction processor based on the prediction tree may then perform inter-frame prediction reconstruction.

[0312] Figure 16 A bitstream containing point cloud data and parameters according to an embodiment is illustrated.

[0313] and Figure 1 The sending device 10000, the point cloud video encoder 10002, the transmitter 10003, Figure 2 Acquisition 20000-Encoding 20001-Transmission 20002, Figure 3 The encoder in Figure 8 The sending device in Figure 10 The device in Figure 13 Object-based search encoding in Figure 14 The sending device (encoder) and Figure 23 The point cloud data sending method / device according to the embodiment corresponding to the sending method in can generate and send the following Figure 16 The bitstream is shown.

[0314] and Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002 - decoding 20003 - rendering 20004, Figure 7 The decoder in Figure 9 The receiving device in Figure 10 The device in Figure 14 Object search-based decoding in Figure 15 The receiving device (decoder) and Figure 24 The point cloud data receiving method / device according to the embodiment corresponding to the receiving method in the embodiment can receive the following Figure 16 The bitstream shown is obtained and the point cloud is decoded based on the parameters.

[0315] Signaling can be performed to add / execute intra / inter encoding / decoding methods based on object detection. Parameters (which may be referred to as metadata, signaling information, etc.) may be generated in a transmitter process according to the embodiments described below and sent to a receiver according to the embodiments for use in a reconstruction process. For example, the parameters according to the embodiments may be generated by a metadata processor (or metadata generator) in a transmitting device according to the embodiments described below and acquired by a metadata parser in a receiving device.

[0316] Each of the following abbreviations means: SPS: sequence parameter set; GPS: geometry parameter set; APS: attribute parameter set; TPS: patch parameter set; Geom: geometry bit stream = geometry data unit (geometry data unit header + geometry data + geometry data + geometry data unit footer); Attr: attribute bit stream = attribute data unit (attribute data unit header + attribute data + attribute data unit footer).

[0317] The point cloud can be divided into regions for processing such as tiles or slices. Each region has a different level of importance. Depending on the importance, different filters or filter units can be applied, allowing filtering methods with higher complexity but higher quality results to be used in important areas. Instead of applying complex filtering methods to the entire point cloud, different filtering methods can be applied to different areas (tiles or slices) depending on the processing capabilities of the receiver, ensuring better quality for areas important to the user and appropriate latency in the system. Therefore, when the point cloud is divided into tiles, different filters or filter units can be applied to the corresponding tiles. When the point cloud is divided into slices, different filters or filter units can be applied to the corresponding slices.

[0318] Reference Figure 14 , the bitstream is the target unit for application parameters and may include an SPS, a GPS, one or more APSs, a TPS, and one or more slices. The TPS may include information about the origin and size (width, depth, and height) of a patch bounding box for one or more patches. A slice is used as a unit for encoding / decoding and may include geometry and one or more attributes. The geometry may consist of a geometry slice header and geometry slice data. A slice may also be referred to as a data unit. The geometry slice header or geometry data unit header carries information such as a parameter set ID, patch ID, slice ID, the origin and size of the geometry box, and the number of points for the geometry. The geometry slice data or geometry data unit carries the coded geometry.

[0319] Figure 17 A frame parameter set (FPS) according to an embodiment is illustrated.

[0320] Figure 17The FPS shown in Figure 16 Frame parameter sets in the bitstream in

[0064] . Embodiments may add intra / inter structure information based on object detection to the FPS.

[0321] laserID_N_M_Azi_th: indicates the threshold for azimuth in the object searcher. It indicates the azimuth threshold for points with laserID N.

[0322] laserID_N_M_Rad_th: indicates the threshold value for radius in the object searcher. It indicates the radius threshold for points with laserID N.

[0323] laserID_th_flag: Indicates the conditions under which different LaserIDs can be clustered into the same object. When true, it indicates that the laserID threshold (laserID_th) is sent and used for object clustering. When false, it indicates that the laserID threshold (laserID_th) is not sent and object clustering is not used.

[0324] obj_idx: Indicates the number of objects detected by the object searcher for the current frame.

[0325] obj_motion_flag: Indicates whether to perform object search between frames.

[0326] obj_idx_min and obj_idx_max: Indicates the bounding box for each object in the current frame. The bounding box can be indicated by the values ​​of obj_idx_min and obj_idx_max.

[0327] object_id: indicates the ID of an object. The ID can be used to identify an object with specific characteristics.

[0328] object_type: Indicates the type of object. Based on the value of object_type, the object is identified. Each type value can indicate: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object. Objects can be identified by object_id and can have characteristics that categorize them as road, static object, dynamic object, or other object. The encoder generates information based on the type and passes it to the decoder.

[0329] object_motion_vector[3]: indicates the motion vector of the object when the object is a dynamic object.

[0330] ref_obj_idx: Indicates the number of objects found by the object searcher in the reference frame.

[0331] ref_obj_idx_min and ref_obj_idx_max: Indicates the bounding box for each object in the reference frame. The bounding box of an object in the reference frame can be indicated by the values ​​of ref_obj_idx_min and ref_obj_idx_max.

[0332] ref_object_id: indicates an identifier for an object in a reference frame.

[0333] ref_object_type: indicates object type information indicating characteristics of an object in a reference frame. For example, this value may indicate the following: 0=road, 1=static object, 2=dynamic object, and 3=other object.

[0334] Figure 18 A sequence parameter set (SPS) according to an embodiment is illustrated.

[0335] Figure 18 Illustrated Figure 16 The sequence parameter set in the bitstream of the MPEG-4 frame can be added to the SPS. Intra / inter structure information based on object detection can be added to the SPS.

[0336] laserID_N_M_Azi_th: indicates the threshold for azimuth in the object searcher. It indicates the azimuth threshold for points with laserID N.

[0337] laserID_N_M_Rad_th: indicates the threshold value for radius in the object searcher. It indicates the radius threshold for points with laserID N.

[0338] laserID_th_flag: Indicates the conditions under which different laserIDs can be clustered to the same object. When true, it indicates that the laserID threshold (laserID_th) is sent and used for object clustering. When false, it indicates that the laserID threshold (laserID_th) is not sent and object clustering is not used.

[0339] obj_idx: Indicates the number of objects detected by the object searcher for the current frame.

[0340] obj_motion_flag: Indicates whether to perform object search between frames.

[0341] obj_idx_min and obj_idx_max: Indicates the bounding box for each object in the current frame. The bounding box can be indicated by the values ​​of obj_idx_min and obj_idx_max.

[0342] object_id: indicates the ID of an object. The ID can be used to identify an object with specific characteristics.

[0343] object_type: Indicates the type of object. Based on the value of object_type, the object is identified. Each type value can indicate: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object. Objects can be identified by object_id and can have characteristics that categorize them as road, static object, dynamic object, or other object. The encoder generates information based on the type and passes it to the decoder.

[0344] object_motion_vector[3]: indicates the motion vector of the object when the object is a dynamic object.

[0345] ref_obj_idx: Indicates the number of objects found by the object searcher in the reference frame.

[0346] ref_obj_idx_min and ref_obj_idx_max: Indicates the bounding box for each object in the reference frame. The bounding box of an object in the reference frame can be indicated by the values ​​of ref_obj_idx_min and ref_obj_idx_max.

[0347] ref_object_id: indicates an identifier for an object in a reference frame.

[0348] ref_object_type: indicates object type information indicating characteristics of an object in a reference frame. For example, this value may indicate the following: 0=road, 1=static object, 2=dynamic object, and 3=other object.

[0349] Figure 19 A patch parameter set (TPS) according to an embodiment is illustrated.

[0350] Figure 19 Illustrated Figure 16 The patch parameter set in the bitstream of the object detection can be added to the TPS.

[0351] num_tiles: indicates the number of tiles

[0352] tile_bounding_box_offset_x,y,z: Indicates the x, y, and z offset values ​​representing the origin of the tile bounding box.

[0353] tile_bounding_box_scale_factor: Indicates the scaling factor applied to the tile bounding box.

[0354] tile_bounding_box_size_width: indicates the width as the size of the tile bounding box.

[0355] tile_bounding_box_size_height: indicates the height as the size of the tile bounding box.

[0356] tile_bounding_box_size_depth: indicates the depth as the size of the tile bounding box.

[0357] laserID_N_M_Azi_th: indicates the threshold for azimuth in the object searcher. It indicates the azimuth threshold for points with laserID N.

[0358] laserID_N_M_Rad_th: indicates the threshold value for radius in the object searcher. It indicates the radius threshold for points with laserID N.

[0359] laserID_th_flag: Indicates the conditions under which different laserIDs can be clustered to the same object. When true, it indicates that the laserID threshold (laserID_th) is sent and used for object clustering. When false, it indicates that the laserID threshold (laserID_th) is not sent and object clustering is not used.

[0360] obj_idx: Indicates the number of objects detected by the object searcher for the current frame.

[0361] obj_motion_flag: Indicates whether to perform object search between frames.

[0362] obj_idx_min and obj_idx_max: Indicates the bounding box for each object in the current frame. The bounding box can be indicated by the values ​​of obj_idx_min and obj_idx_max.

[0363] object_id: indicates the ID of an object. The ID can be used to identify an object with specific characteristics.

[0364] object_type: Indicates the type of object. Based on the value of object_type, the object is identified. Each type value can indicate: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object. Objects can be identified by object_id and can have characteristics that categorize them as road, static object, dynamic object, or other object. The encoder generates information based on the type and passes it to the decoder.

[0365] object_motion_vector[3]: indicates the motion vector of the object when the object is a dynamic object.

[0366] ref_obj_idx: Indicates the number of objects found by the object searcher in the reference frame.

[0367] ref_obj_idx_min and ref_obj_idx_max: Indicates the bounding box for each object in the reference frame. The bounding box of an object in the reference frame can be indicated by the values ​​of ref_obj_idx_min and ref_obj_idx_max.

[0368] ref_object_id: indicates an identifier for an object in a reference frame.

[0369] ref_object_type: indicates object type information indicating characteristics of an object in a reference frame. For example, this value may indicate the following: 0=road, 1=static object, 2=dynamic object, and 3=other object.

[0370] Figure 20 A geometry parameter set (GPS) according to an embodiment is illustrated.

[0371] Figure 20 Illustrated Figure 16 The geometric parameter set in the bitstream of the GPS can be added to the intra-frame / inter-frame coding structure information based on object detection.

[0372] laserID_N_M_Azi_th: indicates the threshold for azimuth in the object searcher. It indicates the azimuth threshold for points with laserID N.

[0373] laserID_N_M_Rad_th: indicates the threshold value for radius in the object searcher. It indicates the radius threshold for points with laserID N.

[0374] laserID_th_flag: Indicates the conditions under which different laserIDs can be clustered to the same object. When true, it indicates that the laserID threshold (laserID_th) is sent and used for object clustering. When false, it indicates that the laserID threshold (laserID_th) is not sent and object clustering is not used.

[0375] obj_idx: Indicates the number of objects detected by the object searcher for the current frame.

[0376] obj_motion_flag: Indicates whether to perform object search between frames.

[0377] obj_idx_min and obj_idx_max: Indicates the bounding box of each object in the current frame. The bounding box can be indicated by the values ​​of obj_idx_min and obj_idx_max.

[0378] object_id: indicates the ID of an object. The ID can be used to identify an object with specific characteristics.

[0379] object_type: Indicates the type of object. Based on the value of object_type, the object is identified. Each type value can indicate: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object. Objects can be identified by object_id and can have characteristics that categorize them as road, static object, dynamic object, or other object. The encoder generates information based on the type and passes it to the decoder.

[0380] object_motion_vector[3]: indicates the motion vector of the object when the object is a dynamic object.

[0381] object_id: indicates an ID representing the characteristics of an object. The value of object_id indicates the type of object: 0 = road, 1 = static object, 2 = dynamic object, 3 = other object. The object_id element can be replaced by the object_type element.

[0382] ref_obj_idx: Indicates the number of objects found by the object searcher in the reference frame.

[0383] ref_obj_idx_min and ref_obj_idx_max: Indicates the bounding box of each object in the reference frame. The bounding box of an object in the reference frame can be indicated by the values ​​of ref_obj_idx_min and ref_obj_idx_max.

[0384] ref_object_id: indicates an identifier for an object in a reference frame.

[0385] ref_object_type: indicates object type information indicating characteristics of an object in a reference frame. For example, this value may indicate the following: 0=road, 1=static object, 2=dynamic object, and 3=other object.

[0386] Figure 21 An attribute parameter set (APS) according to an embodiment is illustrated.

[0387] Figure 21 Illustrated Figure 16The attribute parameter set in the bitstream of the object detection can be added to the intra-frame / inter-frame coding structure information.

[0388] laserID_N_M_Azi_th: indicates the threshold for azimuth in the object searcher. It indicates the azimuth threshold for points with laserID N.

[0389] laserID_N_M_Rad_th: indicates the threshold value for radius in the object searcher. It indicates the radius threshold for points with laserID N.

[0390] laserID_th_flag: Indicates the conditions under which different laserIDs can be clustered to the same object. When true, it indicates that the laserID threshold (laserID_th) is sent and used for object clustering. When false, it indicates that the laserID threshold (laserID_th) is not sent and object clustering is not used.

[0391] obj_idx: Indicates the number of objects detected by the object searcher for the current frame.

[0392] obj_motion_flag: Indicates whether to perform object search between frames.

[0393] obj_idx_min and obj_idx_max: Indicates the bounding box for each object in the current frame. The bounding box can be indicated by the values ​​of obj_idx_min and obj_idx_max.

[0394] object_id: indicates the ID of an object. The ID can be used to identify an object with specific characteristics.

[0395] object_type: Indicates the type of object. Based on the value of object_type, the object is identified. Each type value can indicate: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object. Objects can be identified by object_id and can have characteristics that categorize them as road, static object, dynamic object, or other object. The encoder generates information based on the type and passes it to the decoder.

[0396] object_motion_vector[3]: indicates the motion vector of the object when the object is a dynamic object.

[0397] ref_obj_idx: Indicates the number of objects found by the object searcher in the reference frame.

[0398] ref_obj_idx_min and ref_obj_idx_max: Indicates the bounding box for each object in the reference frame. The bounding box of an object in the reference frame can be indicated by the values ​​of ref_obj_idx_min and ref_obj_idx_max.

[0399] ref_object_id: indicates an identifier for an object in a reference frame.

[0400] ref_object_type: indicates object type information indicating characteristics of an object in a reference frame. For example, this value may indicate the following: 0=road, 1=static object, 2=dynamic object, and 3=other object.

[0401] Figure 22 A geometry slice header (GSH) according to an embodiment is illustrated.

[0402] Figure 22 Illustrated Figure 16 The geometric slice header in the bitstream of the image is added. The intra-frame / inter-frame coding structure information based on object detection can be added to the slice header of the geometric part (Geom) in the bitstream. The slice can be called a data unit, and the slice header can be called a data unit header.

[0403] laserID_N_M_Azi_th: indicates the threshold for azimuth in the object searcher. It indicates the azimuth threshold for points with laserID N.

[0404] laserID_N_M_Rad_th: indicates the threshold value for radius in the object searcher. It indicates the radius threshold for points with laserID N.

[0405] laserID_th_flag: Indicates the conditions under which different laserIDs can be clustered to the same object. When true, it indicates that the laserID threshold (laserID_th) is sent and used for object clustering. When false, it indicates that the laserID threshold (laserID_th) is not sent and object clustering is not used.

[0406] obj_idx: Indicates the number of objects detected by the object searcher for the current frame.

[0407] obj_motion_flag: Indicates whether to perform object search between frames.

[0408] obj_idx_min and obj_idx_max: Indicates the bounding box for each object in the current frame. The bounding box can be indicated by the values ​​of obj_idx_min and obj_idx_max.

[0409] object_id: indicates the ID of an object. The ID can be used to identify an object with specific characteristics.

[0410] object_type: Indicates the type of object. Based on the value of object_type, the object is identified. Each type value can indicate: 0 = road, 1 = static object, 2 = dynamic object, and 3 = other object. Objects can be identified by object_id and can have characteristics that categorize them as road, static object, dynamic object, or other object. The encoder generates information based on the type and passes it to the decoder.

[0411] object_motion_vector[3]: indicates the motion vector of the object when the object is a dynamic object.

[0412] ref_obj_idx: Indicates the number of objects found by the object searcher in the reference frame.

[0413] ref_obj_idx_min and ref_obj_idx_max: Indicates the bounding box for each object in the reference frame. The bounding box of an object in the reference frame can be indicated by the values ​​of ref_obj_idx_min and ref_obj_idx_max.

[0414] ref_object_id: indicates an identifier for an object in a reference frame.

[0415] ref_object_type: indicates object type information indicating characteristics of an object in a reference frame. For example, this value may indicate the following: 0=road, 1=static object, 2=dynamic object, and 3=other object.

[0416] Figure 23 A point cloud data transmission method according to an embodiment is illustrated.

[0417] S2300: The point cloud data sending method according to an embodiment may include encoding the point cloud data.

[0418] The encoding operation according to an embodiment includes [[ID=2 The sending device 10000, the point cloud video encoder 10002, the transmitter 10003, ​ Acquisition 20000-Encoding 20001-Transmission 20002, ​ The encoder in​ The sending device in ​ The device in ​ Prediction tree-based coding, ​ Laser ID-based object search in ​ The sending device (encoder) in ​ Operations such as bitstream generation in .

[0419] S2301: The point cloud data sending method according to the embodiment may further include sending a bit stream containing the point cloud data.

[0420] The sending operation according to an embodiment includes ​ The sending device 10000, the point cloud video encoder 10002, the transmitter 10003, ​ Acquisition 20000-Encoding 20001-Transmission 20002, ​ The encoder in ​ The sending device in ​ The device in ​ Prediction tree-based coding, ​ Laser ID-based object search in ​ The sending device (encoder) in ​ Operations such as bit stream sending in .

[0421] ​ A point cloud data receiving method according to an embodiment is illustrated.

[0422] S2400: The point cloud data receiving method according to an embodiment may include receiving a bit stream containing point cloud data.

[0423] The receiving operation according to an embodiment includes ​ The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, ​ Transmission 20002 - decoding 20003 - rendering 20004, ​ The decoder in ​ The receiving device in ​ The device in ​ Prediction tree-based coding in ​ Laser ID-based object search in ​ The receiving device (decoder) and ​ The operation of receiving the bit stream in.

[0424] ​ The receiving device and decoder and bit stream reception are included in the receiving operation according to the embodiment.

[0425] S2401: The point cloud data receiving method according to the embodiment may further include decoding the point cloud data.

[0426] The decoding operation according to an embodiment includes ​ The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, ​ Transmission 20002 - decoding 20003 - rendering 20004, ​ The decoder in ​ The receiving device in ​ The device in ​ Prediction tree-based coding in ​ Laser ID-based object search in ​ The receiving device (decoder) and ​ The operation of decoding the bit stream in.

[0427] Reference ​ According to an embodiment, a method for transmitting point cloud data may include the following steps: encoding point cloud data; and transmitting a bit stream containing the point cloud data.

[0428] Reference ​ , with respect to the object searcher, the step of encoding the point cloud data may include encoding the geometry of the point cloud data, wherein the step of encoding the geometry may include searching for objects based on the geometry.

[0429] Reference ​ Regarding coordinate transformation and intra-frame object search, encoding the geometry may include transforming the coordinates of points in the point cloud data from a Cartesian coordinate system into radius, azimuth, and laser ID. The points may be sorted based on the laser ID value. Points corresponding to the laser ID value may be clustered based on radius and azimuth, and objects may be classified based on at least one of a threshold for the azimuth or a threshold for the radius.

[0430] Reference ​, regarding coordinate transformation and intra-frame object search, refer to for determined conditions (laser ID_N_M_Azi[x] - laser ID_N_M_Azi[x + 1]) < laser ID_N_M_Azi_th and / or (laser ID_N_M_Rad[x] - laser ID_N_M_Rad[x + 1]) < laser ID_N_M_Rad_th), based on the difference in azimuth between the first point among the points for the laser ID and the second point among the points for the laser ID being less than the threshold for azimuth, or the difference in radius between the first point among the points for the laser ID and the second point among the points for the laser ID being less than the threshold for radius, or based on the difference in azimuth between the first point among the points for the laser ID and the second point among the points for the laser ID being less than the threshold for azimuth, and the difference in radius between the first point among the points for the laser ID and the second point among the points for the laser ID being less than the threshold for radius, the first point and the second point can be detected as the same object.

[0431] Refer to ​ , regarding the prediction tree and intra-frame prediction, the steps of encoding the point cloud data may include generating a prediction tree for the points in the point cloud data, generating a predicted value for the geometry of the point cloud data based on the prediction tree, generating a residual based on the predicted value, and encoding the residual. The generation of the prediction tree may include sorting the points, finding neighbor nodes for the first point among the sorted points, and adding the found neighbor nodes as child nodes to the node of the first point.

[0432] Refer to ​ , regarding the prediction tree and inter-frame prediction (inter-frame prediction point (p’0) and additional inter-frame prediction point (p’1)), the steps of encoding the point cloud data may include generating a prediction tree for the points in the current frame containing the point cloud data, generating a predicted value for the geometry of the point cloud data from the reference points in the reference frame for the current frame based on the prediction tree, generating a residual based on the predicted value, and encoding the residual. The reference points may include a first point having an azimuth equal to the azimuth of the points in the current frame and having a similar azimuth to the points in the current frame, and a second point having the same laser ID as the first point and having an azimuth less than the azimuth of the first point.

[0433] Regarding inter-frame object search, the step of encoding the point cloud data may include encoding the geometry of the point cloud data, wherein the step of encoding the geometry may include detecting dynamic objects based on a ratio of an overlapping area between a bounding box area of ​​an object found in a reference frame for the current frame containing the point cloud data and a bounding box area of ​​an object found in the current frame being greater than a threshold, detecting static objects and road objects based on the ratio being less than a threshold, wherein the static objects and road objects are classified based on an additional threshold and a laser ID, applying local motion to dynamic objects, and applying global motion to static objects.

[0434] Regarding object merging / splitting, if the difference in azimuth between the leading point and the last point among the points for a laser ID is less than a threshold for azimuth, the leading point and the last point can be detected as the same object. If the difference in radius between the leading point and the last point among the points for a laser ID is less than a threshold for radius, the leading point and the last point can be detected as the same object. Alternatively, if the difference in azimuth between the leading point and the last point among the points for a laser ID is less than a threshold for azimuth, and the difference in radius between the leading point and the last point among the points for a laser ID is less than a threshold for radius, the leading point and the last point can be detected as the same object.

[0435] Reference ​ , with respect to signaling, the bitstream may include at least one of the following items: a threshold for an azimuth angle, a threshold for a radius, a flag related to a threshold for a laser ID, information indicating the number of objects, information indicating whether an object search is performed between frames, information indicating a bounding box of an object in a current frame, information identifying an object, information indicating a type of an object, a motion vector for a dynamic object, information indicating the number of objects in a reference frame, information indicating a bounding box of an object in a reference frame, information identifying an object in a reference frame, or information indicating a type of an object in a reference frame.

[0436] The point cloud data sending method can be executed by a sending device. ​ A point cloud data transmitting device may include: an encoder configured to encode point cloud data; and a transmitter configured to transmit a bitstream containing the point cloud data. The transmitting device may include a memory and a processor. The memory may store instructions related to encoding operations, and the instructions may cause the processor to perform encoding operations on the point cloud data.

[0437] Reference ​ The point cloud receiving method is opposite to the sending method and may include the following steps: receiving a bit stream containing point cloud data and decoding the point cloud data.

[0438] The step of decoding the point cloud data may include decoding the geometry of the point cloud data, wherein the step of decoding the geometry may include searching for objects based on the geometry.

[0439] Decoding the geometry may include transforming the coordinates of the points in the point cloud data from a Cartesian coordinate system into a radius, an azimuth, and a laser ID. The points may be sorted based on the laser ID value. The points for the laser ID values ​​may be clustered based on the radius and the azimuth, and the objects for the points may be classified based on at least one of a threshold for the azimuth or a threshold for the radius.

[0440] The point cloud data receiving method can be executed by a receiving device. ​ The point cloud data receiving device may include: a receiver configured to receive a bitstream containing point cloud data, and a decoder configured to decode the point cloud data. The receiving device may include a memory and a processor. The memory may store instructions for decoding operations, and the instructions may cause the processor to perform decoding operations on the point cloud data.

[0441] The decoder may perform operations including decoding the geometry of the point cloud data, wherein the operations of decoding the point cloud data may include searching for objects based on the geometry.

[0442] Embodiments can provide a method for object detection during point cloud compression and improve encoding performance. Due to the proposed inter-frame / intra-frame object search method, a compression method that reflects object characteristics can be used to improve the compression efficiency of the prediction tree, which is not achievable using conventional techniques.

[0443] The embodiments are described in terms of methods and / or devices, and the description of the methods and the description of the devices can be used complementary to each other.

[0444] Although the drawings are described separately for simplicity, new embodiments can be designed by combining the embodiments shown in the corresponding figures. Designing a recording medium that can be read by a computer and records a program for executing the above-mentioned embodiments according to the needs of those skilled in the art also falls within the scope of the attached claims and their equivalents. The apparatus and method according to the embodiment may not be limited to the configuration and method of the above-mentioned embodiment. Various modifications can be made to the embodiment by selectively combining all or some of the embodiments. Although preferred embodiments have been described with reference to the drawings, it will be understood by those skilled in the art that various modifications and changes can be made to the embodiment without departing from the spirit or scope of the present disclosure described in the attached claims. These modifications should not be understood separately from the technical ideas or viewpoints of the embodiment.

[0445] The various elements of the device of the embodiment can be implemented by hardware, software, firmware or a combination thereof. The various elements in the embodiment can be implemented by a single chip (e.g., a single hardware circuit). According to the embodiment, the components according to the embodiment can be implemented as separate chips respectively. According to the embodiment, at least one or more components of the device according to the embodiment may include one or more processors capable of executing one or more programs. One or more programs can execute any one or more operations / methods according to the embodiment or include instructions for executing them. The executable instructions for executing the method / operation of the device according to the embodiment can be stored in a non-transitory CRM or other computer program product configured to be executed by one or more processors, or can be stored in a temporary CRM or other computer program product configured to be executed by one or more processors. In addition, the memory according to the embodiment can be used as not only covering volatile memory (e.g., RAM), but also covering the concept of non-volatile memory, flash memory and PROM. In addition, it can also be implemented in the form of a carrier wave (e.g., transmission via the Internet). In addition, the processor-readable recording medium can be distributed to computer systems connected via a network so that the processor-readable code can be stored and executed in a distributed manner.

[0446] In the present disclosure, “ / ” and “,” should be interpreted as indicating “and / or”. For example, the expression “A / B” may mean “A and / or B”. Furthermore, “A, B” may mean “A and / or B”. Furthermore, “A / B / C” may mean “at least one of A, B and / or C”. Additionally, “A / B / C” may mean “at least one of A, B and / or C”. Furthermore, in the present specification, the term “or” should be interpreted as indicating “and / or”. For example, the expression “A or B” may mean 1) only A, 2) only B, or 3) both A and B. In other words, the term “or” used in this document should be interpreted as indicating “in addition or alternatively”.

[0447] Terms such as first and second may be used to describe various elements of an embodiment. However, the various components according to the embodiment should not be limited by the above terms. These terms are only used to distinguish one element from another. For example, a first user input signal may be referred to as a second user input signal. Similarly, a second user input signal may be referred to as a first user input signal. The use of these terms should not be interpreted without departing from the scope of the various embodiments. Both the first user input signal and the second user input signal are user input signals, but unless the context clearly dictates otherwise, they do not refer to the same user input signal.

[0448] The terms used to describe the embodiments are used to describe specific embodiments and are not intended to limit the embodiments. As used in the description of the embodiments and in the claims, unless the context clearly dictates otherwise, the singular includes the plural referents. The expression "and / or" is used to include all possible combinations of terms. Terms such as "including" or "having" are intended to indicate the presence of graphics, quantities, steps, elements and / or components, and should be understood as not excluding the possibility of additional presence of graphics, quantities, steps, elements and / or components. As used herein, conditional expressions such as "if" and "when" are not limited to optional cases, and are intended to perform relevant operations or interpret relevant definitions according to specific conditions when specific conditions are met.

[0449] The operations described in this specification according to the embodiments may be performed by a transmitting / receiving device including a memory and / or a processor according to the embodiments. The memory may store a program for processing / controlling operations according to the embodiments, and the processor may control the various operations described in this specification. The processor may be referred to as a controller, etc. In the embodiments, the operations may be performed by firmware, software, and / or a combination thereof. The firmware, software, and / or a combination thereof may be stored in the processor or the memory.

[0450] The operations according to the above-described embodiments may be performed by a transmitting device and / or a receiving device according to the embodiments. The transmitting / receiving device may include a transmitter / receiver configured to transmit and receive media data, a memory configured to store instructions (program code, algorithm, flow chart and / or data) for the process according to the embodiments, and a processor configured to control the operation of the transmitting / receiving device.

[0451] The processor may be referred to as a controller, etc., and may correspond to, for example, hardware, software, and / or a combination thereof. The operations according to the above-described embodiments may be performed by the processor. In addition, the processor may be implemented as an encoder / decoder for the operations of the above-described embodiments.

[0452] Invention Mode

[0453] As described above, relevant details are described in the best mode for carrying out the embodiment.

[0454] Industrial Applicability

[0455] As described above, the embodiments may be applied in whole or in part to a point cloud data transmitting / receiving device and system.

[0456] A skilled person can change or modify the embodiments in various ways within the scope of the embodiments.

[0457] The embodiments may include changes / modifications within the scope of the claims and their equivalents.

Claims

1. A method for sending point cloud data, the method comprising the following steps: Encoding point cloud data; and A bitstream containing the point cloud data is sent.

2. The method according to claim 1, wherein: The step of encoding the point cloud data comprises: encoding the geometry of the point cloud data, The step of encoding the geometry comprises: Search for objects based on the geometry.

3. The method according to claim 2, wherein: The steps of encoding the geometry include: transforming the coordinates of the points in the point cloud data from a Cartesian coordinate system into radius, azimuth and laser ID, in, sorting the points based on the values ​​of the laser IDs; clustering the points for the values ​​of the laser ID based on the radius and the azimuth; An object for the point is classified based on at least one of a threshold for the azimuth or a threshold for the radius.

4. The method according to claim 3, wherein: based on: a difference in azimuth between a first point of the points for the laser ID and a second point of the points for the laser ID being less than the threshold for the azimuth; or a difference in radius between the first of the points for the laser ID and the second of the points for the laser ID is less than the threshold value for the radius, or based on: the difference in the azimuth angle between the first one of the points for the laser ID and the second one of the points for the laser ID is less than the threshold value for the azimuth angle; and the difference in the radius between the first one of the points for the laser ID and the second one of the points for the laser ID is less than the threshold value for the radius, The first point and the second point are detected as the same object.

5. The method according to claim 2, wherein: The step of encoding the point cloud data comprises: generating a prediction tree for points in the point cloud data; generating a predicted value for the geometry of the point cloud data based on the prediction tree; generating residuals based on the predicted values; Encoding the residual, The step of generating the prediction tree comprises: sorting the points; and A neighbor node for a first point among the sorted points is found, and the found neighbor node is added as a child node to the node of the first point.

6. The method according to claim 2, wherein: The step of encoding the point cloud data comprises: generating a prediction tree for points in a current frame containing the point cloud data; generating a prediction value for the geometry of the point cloud data from reference points in a reference frame for the current frame based on the prediction tree; generating residuals based on the predicted values; and Encoding the residual, Wherein, the reference points include: a first point having an azimuth equal to the azimuth of a point in the current frame and having an azimuth similar to that of the point in the current frame; and A second point having the same laser ID as the first point and having an azimuth angle smaller than the azimuth angle of the first point.

7. The method according to claim 1, wherein: The step of encoding the point cloud data comprises: encoding the geometry of the point cloud data, The step of encoding the geometry comprises: detecting a dynamic object based on a ratio of an overlapping area between a bounding box area of ​​an object found in a reference frame for a current frame containing the point cloud data and a bounding box area of ​​an object found in the current frame being greater than a threshold; Based on the ratio being less than the threshold, detecting a static object and a road object, wherein the static object and the road object are classified based on an additional threshold and a laser ID; applying local motion to the dynamic object; and Apply global motion to the static object.

8. The method according to claim 4, wherein: Based on a difference in azimuth between a leading point and a last point among the points for the laser ID being less than a threshold value for the azimuth, the leading point and the last point are detected as the same object; Based on a difference in radius between the leading point and the last point among the points for the laser ID being less than a threshold value for the radius, the leading point and the last point are detected as the same object; or Based on the difference in the azimuth between the leading point and the last point among the points for the laser ID being less than the threshold for the azimuth, and the difference in the radius between the leading point and the last point among the points for the laser ID being less than the threshold for the radius, the leading point and the last point are detected as the same object.

9. The method according to claim 1, wherein: The bitstream includes at least one of the following: Threshold for azimuth; Threshold value for radius; Flags related to thresholds for laser ID; information indicating the number of objects; Information indicating whether to perform object search between frames; Information indicating a bounding box of an object in the current frame; information identifying the object; information indicating the type of the object; Motion vectors for dynamic objects; information indicating the number of objects in the reference frame; information indicating a bounding box of the object in the reference frame; identifying information of the object in the reference frame; or Information indicating a type of the object in the reference frame.

10. A device for transmitting point cloud data, the device comprising: an encoder configured to encode point cloud data; as well as A transmitter is configured to transmit a bit stream containing the point cloud data.

11. A method for receiving point cloud data, the method comprising the following steps: receiving a bitstream containing point cloud data; as well as The point cloud data is decoded.

12. The method according to claim 11, wherein: The step of decoding the point cloud data comprises: Decoding the geometry of the point cloud data, The step of decoding the geometry comprises: Search for objects based on the geometry.

13. The method according to claim 12, wherein: The steps of decoding the geometry include: transforming the coordinates of the points in the point cloud data from a Cartesian coordinate system into radius, azimuth and laser ID, in, sorting the points based on the values ​​of the laser IDs; clustering the points for the values ​​of the laser ID based on the radius and the azimuth; An object for the point is classified based on at least one of a threshold for the azimuth or a threshold for the radius.

14. A device for receiving point cloud data, the device comprising: a receiver configured to receive a bitstream containing point cloud data; as well as A decoder is configured to decode the point cloud data.

15. The device according to claim 14, wherein: The decoder performs operations including: Decoding the geometry of the point cloud data, The step of decoding the point cloud data includes: Search for objects based on the geometry.